/* Shared by the sample and the future production application. No external font or asset requests. */
:root{color-scheme:light;--ink:#233c36;--muted:#62746d;--green:#235f4c;--green-dark:#164535;--line:#dce4df;--paper:#fff;--ground:#f4f6f2;--soft:#edf3ee;--gold:#ac7840;--radius:18px;font-family:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Noto Sans JP",Meiryo,sans-serif;font-size:15px;line-height:1.75;color:var(--ink);background:var(--ground)}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}[hidden]{display:none!important}a{color:var(--green);text-underline-offset:4px}a:hover{color:var(--green-dark)}:focus-visible{outline:3px solid #3485b1;outline-offset:4px}h1,h2,h3,h4,p{margin-top:0}h1{font-size:clamp(27px,3vw,38px);line-height:1.45;letter-spacing:.04em;margin-bottom:12px;font-weight:650}h2{font-size:23px;line-height:1.5}h3{font-size:19px}h4{font-size:16px}p{overflow-wrap:anywhere}button{cursor:pointer;min-height:44px;border:1px solid #cfdcd3;border-radius:9px;padding:10px 18px;background:white;color:var(--green);font-weight:600;transition:background .15s,border-color .15s,box-shadow .15s}button:hover{background:var(--soft);border-color:#96b2a1}button:disabled{opacity:.5;cursor:not-allowed}button.primary,form>button:not([type]),#login>button,#booking>.booking-review>button{background:var(--green);color:#fff;border-color:var(--green)}button.primary:hover,form>button:not([type]):hover,#login>button:hover{background:var(--green-dark)}button.quiet{background:transparent;border-color:transparent;color:var(--muted)}label{display:block;font-size:14px;font-weight:600;margin:18px 0 10px}input,select,textarea{display:block;width:100%;min-height:48px;background:#fff;color:var(--ink);border:1px solid #cbd7cf;border-radius:9px;padding:11px 13px;margin-top:7px;max-width:100%}input::placeholder,textarea::placeholder{color:#8a9790;font-weight:400}input[type=checkbox]{display:inline-block;width:19px;min-height:19px;height:19px;vertical-align:middle;margin:0 6px;accent-color:var(--green)}textarea{min-height:130px;resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--green)}pre{white-space:pre-wrap;overflow-wrap:anywhere}img{max-width:100%;height:auto}.site-header{height:82px;padding:0 max(28px,calc((100% - 1120px)/2));display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:#fff;gap:16px}.brand{display:flex;align-items:center;gap:12px;white-space:nowrap;font-size:18px;letter-spacing:.02em}.brand strong{font-weight:400;color:var(--muted)}.brand-mark{display:grid;place-items:center;background:var(--green);color:#fff;border-radius:11px;width:39px;height:39px;font-family:Georgia,serif;font-size:29px;line-height:1;padding-bottom:5px}.header-label,.eyebrow{font-size:10px;font-weight:700;letter-spacing:.19em;color:var(--green)}.header-label{color:var(--muted)}.page-shell{max-width:1120px;margin:0 auto;padding:28px 28px 70px}.page-heading{margin:38px 0 32px}.eyebrow{margin-bottom:9px}.lead{color:var(--muted);font-size:14px;margin:0}.site-footer{border-top:1px solid var(--line);padding:24px;display:flex;justify-content:space-between;gap:16px;color:var(--muted);font-size:11px;max-width:1120px;margin:0 auto}.site-footer>span:first-child{font-weight:700}#notice{font-size:12px;color:#665b3d;background:#f6f1e4;border:1px solid #e8dfc6;border-radius:8px;margin:0;padding:12px 16px}#message:not(:empty){background:#edf3ee;border:1px solid #c5d9cb;border-radius:10px;padding:16px;margin:24px 0;color:var(--green-dark);white-space:pre-line}#message:empty{margin:0}#dev-navigation{background:#fff;border:1px dashed #c6d1c8;padding:15px;border-radius:9px;margin-bottom:20px}#shop-form{max-width:440px}#shop-form button{margin-top:10px}.salon-heading{display:flex;align-items:center;gap:20px;border-top:1px solid var(--line);padding:28px 0;margin-bottom:8px}.salon-monogram{display:grid;place-items:center;flex:0 0 68px;height:68px;border-radius:50%;background:#e4ece3;color:var(--green);font:32px Georgia,serif}.salon-heading h2{margin:0 0 4px;font-size:25px}.salon-heading .eyebrow{margin-bottom:3px}#shop-info{font-size:13px;color:var(--muted);margin:0}#booking{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:26px;align-items:start}.form-card{background:white;border:1px solid var(--line);padding:28px;border-radius:var(--radius);margin-bottom:20px}.step-title{display:flex;align-items:center;gap:12px;margin:0 0 16px}.step-title>span{font-size:12px;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--soft);color:var(--green)}.hint{font-size:12px;color:var(--muted);font-weight:400;margin-bottom:16px}.booking-review{position:sticky;top:22px;border:1px solid #d6dfd0;border-radius:var(--radius);background:#eef2e8;padding:28px}.booking-review h3{font-size:20px}.booking-review>p{font-size:12px;color:var(--muted)}#review-details{white-space:pre-line;font-size:14px;min-height:70px;border-top:1px solid #d5dfd0;border-bottom:1px solid #d5dfd0;padding:18px 0;margin:20px 0}.booking-submit{width:100%;display:flex;justify-content:space-between;align-items:center}.booking-review>.hint{margin:14px 0 0!important;font-size:11px}.modes{display:flex;gap:5px;padding:5px;background:var(--ground);border-radius:10px;margin:20px 0}.modes button{flex:1;margin:0;padding:8px 5px;font-size:12px;border:0;background:transparent}.modes button[aria-pressed=true]{background:#fff;color:var(--green-dark);box-shadow:0 1px 5px #233c3615}.nav{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.nav button{font-size:12px;padding:6px 10px}#load{width:100%;margin:8px 0}.calendar-wrap{overflow-x:auto}table{border-collapse:collapse;min-width:38rem;width:100%;font-size:12px}th,td{border:1px solid var(--line);padding:6px;text-align:center}th{background:var(--soft)}td button{min-width:35px;padding:4px 8px;margin:0}td button[aria-pressed=true]{background:var(--green);color:white}#calendar-picker>p{font-size:12px;color:var(--muted)}#calendar-status{min-height:1.5em}#confirmation{max-width:650px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:40px;margin:20px auto}#confirmation-details{white-space:pre-line;border-block:1px solid var(--line);padding:20px 0}.success-mark{display:grid;place-items:center;width:48px;height:48px;background:var(--soft);border-radius:50%;font-size:26px;color:var(--green);margin-bottom:20px}#unavailable{padding:25px;background:#fff;border-radius:var(--radius);border:1px solid var(--line)}
/* Management: separate sign-in and workspace, with the same visual language. */
#login{max-width:480px;margin:36px auto 70px;padding:36px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 12px 40px #233c3606}#login h2{font-size:21px;margin-bottom:12px}#login>button{width:100%;margin-top:20px}.workspace-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px;gap:12px}.workspace-toolbar p{margin:0;font-size:13px;color:var(--muted)}.workspace-toolbar button{font-size:12px;padding:8px 12px}.live-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#54896a;margin-right:7px}#shops>h2{padding-top:22px;margin-bottom:18px;font-size:26px}details{border:1px solid var(--line);border-radius:12px;background:#fff;padding:16px 20px;margin:12px 0;scroll-margin-top:100px}summary{cursor:pointer;font-weight:600;font-size:14px;padding:2px 0;color:var(--green)}details[open]>summary{margin-bottom:18px}section{scroll-margin-top:100px}.shop-navigation{position:sticky;top:0;z-index:5;display:flex;gap:6px;overflow-x:auto;padding:12px 0;background:var(--ground);margin-bottom:20px;border-block:1px solid var(--line)}.shop-navigation button{flex-shrink:0;font-size:12px;padding:8px 12px;margin:0}.shop-navigation button[aria-current=true]{background:var(--green);color:white;border-color:var(--green)}#shops>section{background:white;border:1px solid var(--line);border-radius:var(--radius);padding:28px;margin:22px 0}#shops>section>h3{margin-bottom:8px}#shops>section>h3+p{font-size:12px;color:var(--muted)}article{background:#fff;border:1px solid var(--line);border-left:4px solid #d0d9d2;border-radius:12px;padding:22px;margin:16px 0;overflow-wrap:anywhere}article[data-status=pending]{border-left-color:#bd8c46}article[data-status=confirmed]{border-left-color:var(--green)}article[data-status=cancelled],article[data-status=rejected]{background:#f8f9f6;color:var(--muted)}.booking-card-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}.booking-card-head h4{font-size:18px;margin:0}.status-badge{font-size:11px;border-radius:30px;background:var(--soft);color:var(--green);padding:4px 12px;font-weight:600;white-space:nowrap}article[data-status=pending] .status-badge{background:#f7eedc;color:#83591f}.booking-meta{font-size:13px;color:var(--muted);margin-bottom:18px;white-space:pre-line}article button{font-size:12px;padding:8px 13px;margin:6px 6px 0 0}article details{background:#fafbf8;padding:12px 15px;margin:10px 0}article details summary{font-size:12px}article>button:last-child:not(.danger){margin-right:0}article>button.confirm-action{background:var(--green);color:#fff;border-color:var(--green)}article>button.danger{color:#8c564d}#notifications p{padding:12px;border-bottom:1px solid var(--line);font-size:13px}#shops>section>p:last-child{color:var(--muted);font-size:12px}#shops form>button{margin-top:12px}#shops details form{max-width:680px}#workspace{background:white;border:1px solid var(--line);border-radius:var(--radius);padding:28px}#workspace article{box-shadow:none}#workspace>h2{margin-top:28px}#workspace button{margin:6px 4px 6px 0}#workspace h3,#workspace h4{margin-top:28px}.application-page .page-shell,.password-page .page-shell{max-width:760px}.application-page #form,.application-page #review,.application-page #complete,.password-page #form{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:32px}.application-page #form>button,.password-page #form>button{margin-top:22px}.summary{white-space:pre-wrap;overflow-wrap:anywhere}#notification-section{color:var(--muted)}
@media(min-width:900px){.admin-page .page-shell{max-width:1180px}.admin-page .page-heading{margin:30px 0}.admin-page #shops>section>div:has(>article){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.admin-page #shops>section>div:has(>article)>article{margin:0}.admin-page #shops>section>div:has(>article)>p{grid-column:1/-1}}
@media(max-width:760px){.site-header{height:68px;padding:0 20px}.brand{font-size:16px;gap:10px}.brand-mark{width:34px;height:34px;font-size:26px}.header-label{font-size:8px;letter-spacing:.1em}.page-shell{padding:20px 18px 40px}.page-heading{margin:26px 0}#notice{font-size:11px;padding:11px 13px}#booking{display:block}.form-card{padding:22px 20px}.booking-review{position:static;padding:25px 22px}.salon-heading{gap:14px;padding:22px 0}.salon-monogram{flex-basis:52px;height:52px;font-size:26px}.salon-heading h2{font-size:21px}#shop-info{font-size:12px}.site-footer{padding:22px 18px;flex-direction:column;gap:5px}#login{padding:28px 22px;margin:26px auto 40px}#shops>section{padding:20px 16px}.shop-navigation{margin-inline:-18px;padding:10px 18px;flex-wrap:wrap}article{padding:18px 15px}.booking-card-head{align-items:flex-start}.booking-card-head h4{font-size:17px}.workspace-toolbar{align-items:flex-start;flex-direction:column}.workspace-toolbar>div{align-self:flex-end}#workspace{padding:20px 16px}#confirmation{padding:28px 22px}details{padding:14px}.application-page #form,.application-page #review,.application-page #complete,.password-page #form{padding:24px 20px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
.customer-header{justify-content:center;font-size:21px;letter-spacing:.04em}.consent-label{display:flex;align-items:flex-start;gap:10px;font-size:12px;line-height:1.8;margin:20px 0}.consent-label input{flex:0 0 19px;margin-top:4px}#slots-status{font-size:12px;color:var(--muted);margin:10px 0}.shop-footer{border-top:1px solid var(--line);max-width:1120px;margin:0 auto;padding:40px 28px;display:grid;grid-template-columns:1fr 1.3fr;gap:40px}.shop-footer h2{font-size:22px}.shop-footer p{font-size:13px;color:var(--muted);margin-bottom:12px}.shop-footer a{font-size:13px}.footer-map iframe{width:100%;height:260px;border:0;border-radius:14px;background:var(--soft)}.privacy-page .page-shell{max-width:820px}.privacy-content{padding:30px;background:#fff;border-radius:var(--radius)}.privacy-content h2{font-size:18px;margin-top:30px}.privacy-content h2:first-child{margin-top:0}.privacy-content p{font-size:14px}.privacy-content a{overflow-wrap:anywhere}.retention-settings{margin-top:25px;padding:18px;background:var(--soft);border-radius:12px}@media(max-width:760px){.shop-footer{grid-template-columns:1fr;padding:30px 20px;gap:20px}.customer-header{font-size:19px}.privacy-content{padding:22px 18px}}
.business-hour-row{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:14px;border-bottom:1px solid var(--line);padding:8px 0}.business-hour-row label{margin:8px 0}.menu-check{display:flex;gap:10px;align-items:center}.day-timetable{display:grid;grid-template-columns:54px repeat(var(--staff-count),minmax(180px,1fr));min-width:max-content;margin:25px 0 15px}.day-time-axis{position:relative;margin-top:40px}.day-time-axis span{position:absolute;font-size:11px;color:var(--muted);transform:translateY(-50%)}.day-staff-column>strong{display:block;height:40px;text-align:center;background:var(--soft);border:1px solid var(--line)}.day-staff-slots{position:relative;border-inline:1px solid var(--line);background:#fafbf8}.day-hour-line{position:absolute;inset-inline:0;border-top:1px solid var(--line)}.day-booking{position:absolute;left:4px;width:calc(100% - 8px);min-height:0;padding:6px;font-size:12px;background:#e7f0e8;border:1px solid #b5cbb9;overflow:hidden;text-align:left;white-space:normal;line-height:1.45}.day-booking.pending{background:#fff2d8;border-color:#d9b46e}.day-booking.cancelled,.day-booking.rejected{opacity:.6}.day-modes+div{overflow-x:auto}.day-timetable:only-child{max-width:100%}details:has(.day-timetable)>div:has(>.day-timetable){overflow-x:auto}@media(max-width:760px){.business-hour-row{grid-template-columns:1fr 1fr}.business-hour-row>label:first-child{grid-column:1/-1}}
/* Daily workspace and compact reservation rows. */
.admin-page .booking-entry{padding:0;margin:7px 0;border-left-width:3px;border-radius:9px}.booking-expander{border:0;padding:0;margin:0;background:transparent}.booking-expander>summary.booking-row{display:grid;grid-template-columns:108px minmax(0,1fr) minmax(64px,.5fr) auto;align-items:center;gap:12px;padding:13px 16px;margin:0;list-style:none;min-height:50px}.booking-row::-webkit-details-marker{display:none}.booking-row:after{content:'＋';color:var(--muted);font-weight:400}.booking-expander[open]>.booking-row:after{content:'−'}.booking-row{grid-template-columns:108px minmax(0,1fr) minmax(64px,.5fr) auto 14px!important}.booking-row-time{font-variant-numeric:tabular-nums;font-size:12px;white-space:nowrap}.booking-row-name{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.booking-row-staff{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}.booking-row-body{padding:18px;border-top:1px solid var(--line)}.booking-row-body .booking-card-head{margin-bottom:12px}.admin-page .booking-rows{display:block!important}.daily-workspace{padding:22px;margin-top:10px}.day-filters{display:grid;grid-template-columns:1.2fr 1fr 1fr auto;align-items:end;gap:12px;max-width:none!important}.day-filters label{margin:8px 0}.day-filters button{margin:8px 0!important}.day-date-nav{display:flex;gap:6px}.daily-workspace>summary{font-size:18px}.day-timetable{margin-top:12px}.admin-page .page-heading{margin:20px 0}.admin-page .page-heading h1{font-size:28px}.logo-preview{display:block;object-fit:contain;max-width:280px;max-height:100px;margin:18px 0}.logo-wordmark{display:flex;gap:10px;align-items:center}.logo-wordmark input{width:auto}.customer-header{justify-content:space-between;height:94px;gap:20px;padding-inline:max(28px,calc((100vw - 1064px)/2));background:#fff}.salon-brand{display:flex;align-items:center;gap:14px;min-width:0}.salon-brand strong{font-size:23px;letter-spacing:.08em;font-family:Georgia,'Yu Mincho','Hiragino Mincho ProN',serif;overflow-wrap:anywhere}.salon-brand img{object-fit:contain;max-width:280px;max-height:66px;min-width:0}.salon-brand:has(strong[hidden]) img{max-width:340px}.salon-brand #header-monogram{display:grid;place-items:center;width:42px;height:42px;flex-shrink:0;border:1px solid #acbdb0;border-radius:50%;font:24px Georgia,'Yu Mincho',serif;color:var(--green)}.header-phone{white-space:nowrap;font-size:14px;letter-spacing:.05em;text-decoration:none}.customer-page .page-heading{margin:28px 0 24px}.customer-page .page-heading h1{font-size:30px}
@media(max-width:760px){.customer-header{height:auto;min-height:82px;padding:16px 18px;gap:10px}.salon-brand{gap:9px}.salon-brand strong{font-size:18px;letter-spacing:.03em}.salon-brand img{max-width:100px;max-height:48px}.salon-brand:has(strong[hidden]) img{max-width:205px}.salon-brand #header-monogram{width:32px;height:32px;font-size:20px}.header-phone{font-size:11px;letter-spacing:0}.customer-page .page-heading h1{font-size:25px}.daily-workspace{padding:16px 12px}.day-filters{grid-template-columns:1fr 1fr;gap:8px}.day-filters label:first-child{grid-column:1/-1}.booking-expander>summary.booking-row{padding:12px 8px;gap:6px;grid-template-columns:84px minmax(0,1fr) auto 12px!important}.booking-row-staff{display:none}.booking-row-name{font-size:13px}.booking-row-time{font-size:11px}.booking-row .status-badge{font-size:10px;padding:3px 7px}.booking-row-body{padding:15px 12px}.day-date-nav button{flex:1}.admin-page .shop-navigation{position:static}.admin-page .page-shell{padding-top:12px}}

.day-filters{grid-template-columns:1.2fr 1fr 1fr}.daily-workspace .day-timetable{min-width:max-content}.daily-workspace>div:has(>.day-timetable){overflow-x:auto}@media(max-width:760px){.day-filters{grid-template-columns:1fr 1fr}.admin-page #shops>h2{padding-top:8px;margin-bottom:10px;font-size:23px}.admin-page .workspace-toolbar{margin-bottom:8px}.admin-page .page-heading{margin:15px 0}.daily-workspace>p:first-of-type{font-size:12px;margin-bottom:10px}}

/* The workspace uses real panels, so a tab switches content without moving the page. */
.shop-tabs{position:sticky;top:0;z-index:5;display:flex;gap:6px;overflow-x:auto;padding:12px 0;background:var(--ground);margin-bottom:20px;border-block:1px solid var(--line)}.shop-tabs button{flex-shrink:0;font-size:12px;padding:8px 12px;margin:0}.shop-tabs button[aria-selected=true]{background:var(--green);color:white;border-color:var(--green)}
@media(max-width:760px){.shop-tabs{position:static;margin-inline:-18px;padding:10px 18px;flex-wrap:wrap}}

/* A staff is configured in one compact workspace. */
.staff-weekly-row{display:grid;grid-template-columns:2.5rem minmax(0,1fr) minmax(0,1fr) auto;align-items:end;gap:8px;padding:8px 0;border-bottom:1px solid var(--line)}.staff-weekly-row>span{font-weight:700;padding-bottom:12px}.staff-weekly-row input{min-width:0}.staff-weekly-row label{display:flex;align-items:center;white-space:nowrap;margin:0 0 12px}.staff-weekly-row label input{width:auto}@media(max-width:520px){.staff-weekly-row{grid-template-columns:2rem minmax(0,1fr) minmax(0,1fr)}.staff-weekly-row>span{padding-bottom:10px}.staff-weekly-row label{grid-column:2/-1;margin:0}.staff-weekly-row input{min-height:42px}}

.mail-body{min-height:280px;line-height:1.7}.mail-fields{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 22px}.mail-fields .hint{width:100%;margin:0}.mail-fields button{min-height:36px;padding:4px 10px;font-size:12px;border:1px solid #cfdcd3}
