
.reservation-public{margin:0;background:#fff7fb;color:#49334f;font-family:"Noto Sans JP",system-ui,sans-serif;line-height:1.65}
.reservation-public main{max-width:800px;margin:0 auto;padding:28px 32px 30px;background:linear-gradient(135deg,#fff 50%,#fcf7ff);border:1px solid #eedce9;border-radius:20px;box-shadow:0 8px 28px #427e9710;box-sizing:border-box}
.reservation-public .reservation-back{display:none}
.reservation-public h1{font-size:25px;line-height:1.4;letter-spacing:.08em;margin:0 0 8px;padding:0 0 14px;border-bottom:1px solid #eedce9;color:#a94386}
.reservation-public main>p{font-size:13px;color:#68818d;margin:0 0 22px}
.reservation-fields{display:grid;grid-template-columns:1fr 1fr;gap:18px 22px}
.reservation-public label{display:block;margin:0;font-size:13px;font-weight:700;letter-spacing:.03em;min-width:0}
.reservation-public .field-name,.reservation-public .field-email,.reservation-public .field-message{grid-column:1/-1}
.required-mark,.optional-mark{display:inline-block;margin-left:10px;font-size:10px;font-weight:500;vertical-align:middle;letter-spacing:.04em;padding:1px 6px;border-radius:4px;background:#f9e4f1;color:#a94386}
.optional-mark{background:#edf1f3;color:#73858c}
.reservation-public input,.reservation-public select,.reservation-public textarea{margin-top:7px;border:1px solid #e6d3e0;background:#fff;border-radius:9px;padding:11px 13px;min-height:46px;font-size:16px;line-height:1.5;color:#264958;width:100%;transition:border-color .15s,box-shadow .15s}
.reservation-public textarea{min-height:94px;resize:vertical}
.reservation-public :is(input,select,textarea):focus{outline:none;border-color:#c85a9a;box-shadow:0 0 0 3px #c85a9a1b}
.reservation-public button[type=submit]{grid-column:1/-1;justify-self:center;width:min(100%,360px);min-height:50px;margin:4px 0 0;padding:12px 24px;border:0;border-radius:999px;background:linear-gradient(110deg,#df75b1,#9578cf);color:#fff;font-weight:700;font-size:15px;letter-spacing:.08em;box-shadow:0 5px 14px #187db325;transition:filter .15s,transform .15s}
.reservation-public button[type=submit]:hover{filter:brightness(1.07);transform:translateY(-1px)}
.reservation-public button[type=submit]:focus-visible{outline:3px solid #8ecde8;outline-offset:3px}
.reservation-public [role=alert]{padding:12px;background:#fff0f0;color:#a33434;border-radius:8px}
@media(max-width:540px){.reservation-public main{padding:22px 18px 24px;border-radius:14px}.reservation-public h1{font-size:22px}.reservation-fields{gap:16px 12px}.reservation-public main>p{font-size:12px;margin-bottom:18px}.reservation-public input,.reservation-public select{padding:10px;min-width:0}.required-mark,.optional-mark{margin-left:6px}.reservation-public button[type=submit]{width:100%}}

.reservation-login{margin:0;background:#fff7fb;color:#49334f;min-height:100vh;font-family:system-ui,sans-serif;line-height:1.6}
.reservation-login main{width:calc(100% - 32px);max-width:440px;box-sizing:border-box;margin:32px auto;padding:26px 24px;background:#fff;border:1px solid #eedce9;border-radius:18px;box-shadow:0 8px 28px #427e9710}
.reservation-login .reservation-back{font-size:12px;color:#567c8e;text-decoration:none}
.reservation-login h1{font-size:23px;line-height:1.5;margin:16px 0 22px;color:#a94386;letter-spacing:.04em}
.reservation-login label{margin:0 0 18px;font-size:13px;font-weight:600}
.reservation-login input{font-size:16px;margin-top:7px;min-height:46px;padding:11px 12px;background:#fff;border:1px solid #e6d3e0;border-radius:9px;color:#49334f}
.reservation-login input:focus{outline:0;border-color:#c85a9a;box-shadow:0 0 0 3px #c85a9a1b}
.reservation-login button{width:100%;min-height:48px;padding:12px 20px;border:0;border-radius:999px;background:linear-gradient(110deg,#df75b1,#9578cf);color:#fff;font-size:15px;font-weight:700;letter-spacing:.08em}
.reservation-login [role=alert]:empty{display:none}.reservation-login [role=alert]:not(:empty){font-size:13px;color:#a33434;background:#fff0f0;padding:12px;border-radius:8px}
@media(max-width:540px){.reservation-login main{margin:20px auto;padding:22px 20px}.reservation-login h1{font-size:22px}}

.reservation-public *, .reservation-login *{box-sizing:border-box}.reservation-public main{width:100%;min-width:0}.reservation-fields>*,.reservation-public input,.reservation-public select{min-width:0}.reservation-public select{max-width:100%}
.reservation-dashboard{margin:0;background:radial-gradient(ellipse at top left,#fce8f2,transparent 50%),#f8f6fb;color:#493b52;font:14px/1.7 system-ui,sans-serif;min-height:100vh}.reservation-dashboard *{box-sizing:border-box}.reservation-dashboard main{max-width:1160px;width:calc(100% - 64px);margin:36px auto;padding:0}.reservation-dashboard .reservation-back{display:inline-block;color:#8e6389;font-size:12px;text-decoration:none;margin-bottom:16px}.reservation-dashboard h1{margin:0;font-size:30px;letter-spacing:.06em;line-height:1.4}.dashboard-intro{display:flex;gap:20px;justify-content:space-between;align-items:center;margin:16px 0 28px}.dashboard-eyebrow{color:#ac6995;font-size:10px;font-weight:700;letter-spacing:.18em}.dashboard-intro p{margin:5px 0 0;color:#8b7e91;font-size:12px}.account-chip{max-width:100%;overflow-wrap:anywhere;background:#fff;border:1px solid #eadfea;border-radius:999px;padding:8px 16px;font-size:11px;color:#8e6389}.dashboard-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:0 0 24px}.dashboard-kpis article{border:1px solid #eee2ed;background:linear-gradient(125deg,#fff,#fdf9ff);border-radius:18px;padding:22px 24px;box-shadow:0 8px 26px #62466d05}.dashboard-kpis article>span{font-size:12px;font-weight:600;color:#947f96}.dashboard-kpis strong{display:block;font-size:44px;line-height:1.3;color:#8e548c;margin:8px 0;font-weight:600}.reservation-dashboard small{font-size:12px;font-weight:500;margin-left:6px;color:#9b859b}.dashboard-kpis p{font-size:11px;margin:0;color:#a495a5}.dashboard-card{background:#fff;border:1px solid #eee4ee;border-radius:18px;padding:24px;margin-bottom:22px;min-width:0;box-shadow:0 8px 26px #62466d04}.card-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:22px}.card-heading h2{font-size:17px;letter-spacing:.03em;margin:0}.card-heading>span{font-size:9px;letter-spacing:.13em;color:#b69bb0}.reservation-dashboard label{display:block;margin:0;font-size:11px;font-weight:600;color:#89718a;min-width:0}.reservation-dashboard input,.reservation-dashboard select{display:block;width:100%;min-width:0;max-width:100%;height:46px;margin-top:7px;padding:10px 12px;background:#fcfafd;border:1px solid #eadfea;border-radius:9px;font:inherit;color:#59465f}.reservation-dashboard input:focus,.reservation-dashboard select:focus{outline:0;border-color:#c584b3;box-shadow:0 0 0 3px #c584b319}.reservation-dashboard button{font:600 12px system-ui,sans-serif;min-height:44px;padding:11px 22px;border-radius:999px;border:1px solid #e2ccdf;cursor:pointer;color:#915d8d;background:#fcf7fc}.reservation-dashboard button:focus-visible{outline:3px solid #d4b9dd;outline-offset:3px}.reservation-dashboard button:hover{filter:brightness(.97)}.reservation-dashboard .dashboard-primary{border:0;background:linear-gradient(110deg,#d77aac,#9c80ca);color:#fff;box-shadow:0 4px 12px #b16ba220}.dashboard-filters{display:grid;grid-template-columns:1fr 1fr 1.25fr auto;gap:16px;align-items:end}.dashboard-note{font-size:11px;color:#a093a6;margin:14px 0 0}.dashboard-summary{display:grid;grid-template-columns:1fr 1fr;gap:22px}.member-summary,.date-summary{list-style:none;margin:0;padding:0}.member-summary li{margin:0 0 16px}.member-summary li:last-child{margin-bottom:0}.member-summary li>div:first-child,.date-summary li{display:flex;align-items:center;justify-content:space-between;gap:14px}.member-summary li span,.date-summary li span{font-size:12px}.member-summary b,.date-summary b{font-size:15px;color:#93668e;white-space:nowrap}.summary-track{height:5px;background:#f5edf5;border-radius:99px;margin-top:7px;overflow:hidden}.summary-track span{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#e2a0c5,#b39ad8)}.date-summary{max-height:380px;overflow:auto}.date-summary li{padding:12px 0;border-bottom:1px solid #f3edf4}.dashboard-exports{display:grid;grid-template-columns:1fr 1fr;gap:22px}.dashboard-exports form{padding:18px 20px;border:1px solid #eee4ee;border-radius:12px;background:#fdfbfe;min-width:0}.dashboard-exports h3{font-size:16px;color:#a2749b;margin:0 0 6px;letter-spacing:.1em}.dashboard-exports p{font-size:12px;color:#9d8ba1;margin:0 0 16px}.dashboard-exports button{margin-top:16px}.dashboard-exports label{max-width:340px}.reservation-dashboard .scroll{overflow-x:auto;max-width:100%;border:1px solid #f1e9f2;border-radius:10px}.reservation-dashboard table{border-collapse:collapse;width:100%;font-size:12px;min-width:620px}.reservation-dashboard th{background:#faf5fb;color:#987c97;font-size:11px;font-weight:600;text-align:left;padding:13px 15px;white-space:nowrap}.reservation-dashboard td{border-bottom:1px solid #f2ecf3;padding:16px 15px;vertical-align:top;overflow-wrap:anywhere;max-width:300px}.reservation-dashboard tbody tr:last-child td{border-bottom:0}.reservation-dashboard tbody tr:hover{background:#fefbfe}.reservation-date{white-space:nowrap;color:#8d6b8d;font-variant-numeric:tabular-nums}.member-pill{display:inline-block;background:#f6edf7;color:#976a94;padding:3px 9px;border-radius:999px;white-space:nowrap;font-size:11px}.reservation-dashboard .dashboard-empty{text-align:center;color:#b4a3b5;padding:44px 16px;font-size:12px}.dashboard-logout{text-align:right;padding:0 0 30px}.dashboard-logout button{background:transparent;color:#a58aa1;border-color:#e7dce7;min-height:38px;font-size:11px}
@media(max-width:700px){.reservation-dashboard main{width:calc(100% - 28px);margin:22px auto}.reservation-dashboard h1{font-size:25px}.dashboard-intro{align-items:flex-start;flex-direction:column;gap:12px;margin-bottom:20px}.dashboard-kpis{gap:8px;margin-bottom:16px}.dashboard-kpis article{border-radius:13px;padding:14px 10px}.dashboard-kpis article>span{font-size:10px}.dashboard-kpis strong{font-size:32px;margin:7px 0}.dashboard-kpis p{font-size:9px}.reservation-dashboard small{font-size:10px;margin-left:3px}.dashboard-card{padding:18px 16px;border-radius:14px;margin-bottom:16px}.card-heading{gap:6px;margin-bottom:18px}.card-heading h2{font-size:15px}.card-heading>span{font-size:8px}.dashboard-filters{grid-template-columns:1fr 1fr;gap:14px 12px}.dashboard-filters label:nth-child(3){grid-column:1/-1}.dashboard-filters button{grid-column:1/-1}.dashboard-summary,.dashboard-exports{grid-template-columns:1fr;gap:0}.dashboard-exports form+form{margin-top:12px}.reservation-dashboard input,.reservation-dashboard select{font-size:16px}.dashboard-note{font-size:10px}.reservation-dashboard .dashboard-empty{padding:26px 12px}}
.reservation-public .reservation-mail-note{font-size:12px;color:#a25c89;padding:12px 14px;background:#fff1f8;border-radius:10px}.reservation-receipt .receipt-success{font-size:14px;font-weight:600;color:#a25c89;margin:18px 0 14px}.receipt-capture-note{font-size:17px;line-height:1.7;font-weight:700;color:#a94386;margin:0 0 22px}.receipt-details{background:#fdf9fd;border:1px solid #ead9e8;border-radius:14px;padding:18px 22px}.receipt-brand{font-size:10px;letter-spacing:.12em;color:#a06e94;margin:0 0 14px}.receipt-details dl{margin:0}.receipt-details dl>div{padding:12px 0;border-top:1px solid #eee2ed;display:grid;grid-template-columns:100px 1fr;gap:14px}.receipt-details dt{font-size:12px;color:#9c7e98}.receipt-details dd{margin:0;font-size:16px;font-weight:600;overflow-wrap:anywhere}.receipt-details .receipt-id{font-size:13px;font-family:ui-monospace,monospace;font-weight:500}.receipt-disclaimer,.receipt-mail-note{font-size:11px;color:#a18b9f;line-height:1.8}.receipt-disclaimer{margin:14px 0 0}.receipt-mail-note{margin:14px 0 18px}.reservation-public .receipt-capture-button{display:block;width:100%;min-height:50px;border:0;border-radius:999px;background:linear-gradient(110deg,#df75b1,#9578cf);color:#fff;font-size:15px;font-weight:700;cursor:pointer}.receipt-capture-button:disabled{opacity:.6;cursor:wait}.receipt-save-status{font-size:12px;color:#a25c89}.receipt-image-preview p,.receipt-image-preview a{font-size:12px;color:#a25c89}.receipt-image-preview img{display:block;max-width:100%;height:auto;border:1px solid #ead9e8;border-radius:10px;margin:14px auto}.receipt-image-preview a{display:block;text-align:center;margin:12px 0}.receipt-image-preview[hidden]{display:none}@media(max-width:540px){.receipt-capture-note{font-size:15px}.receipt-details{padding:14px}.receipt-details dl>div{grid-template-columns:82px 1fr;gap:10px}.receipt-details dd{font-size:14px}.receipt-details .receipt-id{font-size:11px}}@media print{.receipt-capture-button,.receipt-save-status,.receipt-image-preview,.reservation-back{display:none!important}.reservation-public main{border:0;box-shadow:none;padding:0}.receipt-details{break-inside:avoid}}

/* Stack date and member controls on narrow screens, including native iOS date inputs. */
@media(max-width:540px){.reservation-public .reservation-fields{grid-template-columns:minmax(0,1fr)}.reservation-public .field-date,.reservation-public .field-member{grid-column:1/-1;min-width:0}.reservation-public input[type=date],.reservation-public select{width:100%;min-width:0;max-width:100%;box-sizing:border-box}}

/* Safari native date controls must be allowed to shrink inside the public form. */
.reservation-public .reservation-fields>*{min-width:0;box-sizing:border-box}
.reservation-public input,.reservation-public select,.reservation-public textarea{box-sizing:border-box;min-width:0;width:100%;max-width:100%}
.reservation-public input[type=date]{-webkit-appearance:none;appearance:none;display:block;min-inline-size:0;inline-size:100%;max-inline-size:100%;height:48px;min-height:48px;padding:10px 12px;line-height:26px;overflow:hidden;text-align:left}
.reservation-public input[type=date]::-webkit-date-and-time-value{min-width:0;text-align:left;margin:0;line-height:26px}
.reservation-public input[type=date]::-webkit-datetime-edit{display:inline-flex;min-width:0;padding:0;max-width:100%}
@media(max-width:540px){.reservation-public main{width:100%;max-width:100%;box-sizing:border-box}.reservation-public input,.reservation-public select{height:48px;min-height:48px}}

/* Native Safari month/date sizing in the shared staff/talent dashboard. */
.reservation-dashboard .dashboard-filters{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.25fr) auto}
.reservation-dashboard .dashboard-filters>*{min-width:0;max-width:100%;box-sizing:border-box}
.reservation-dashboard .dashboard-filters input,.reservation-dashboard .dashboard-filters select,.reservation-dashboard .dashboard-filters button{width:100%;min-width:0;max-width:100%;box-sizing:border-box}
.reservation-dashboard .dashboard-filters input[type=date],.reservation-dashboard .dashboard-filters input[type=month]{-webkit-appearance:none;appearance:none;display:block;min-inline-size:0;inline-size:100%;max-inline-size:100%;height:46px;min-height:46px;box-sizing:border-box;overflow:hidden;text-align:left;line-height:24px}
.reservation-dashboard .dashboard-filters input::-webkit-date-and-time-value{min-width:0;text-align:left;margin:0;line-height:24px}
.reservation-dashboard .dashboard-filters input::-webkit-datetime-edit{display:inline-flex;min-width:0;padding:0;max-width:100%}
@media(max-width:760px){.reservation-dashboard .dashboard-filters{grid-template-columns:minmax(0,1fr)}.reservation-dashboard .dashboard-filters>*{grid-column:1/-1;min-width:0;max-width:100%;box-sizing:border-box}}

.date-filter-actions {
    display:flex;
    align-items:stretch;
    gap:8px;
}
.date-filter-actions button {
    flex:1 1 auto;
    width:auto;
    min-height:46px;
    padding-inline:14px;
    white-space:nowrap;
}
.date-filter-actions .clear-date-button {
    background:#fff;
    border:1px solid currentColor;
    color:inherit;
}
@media(max-width:760px) {
    .date-filter-actions { grid-column:1/-1; }
    .date-filter-actions button { flex:1 1 0; margin-top:0; }
}
