@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Noto+Sans+TC:wght@400;500;600;700;800&display=swap');

/* IceFeather design system v1.0. Platform and restaurant roles stay separate. */
:root{
 --if-deep:#0b2f78;--if-blue:#0e5cb8;--if-azure:#2e9fe5;--if-sky:#77c8f3;--if-frost:#b8e4fa;
 --if-ink:#14213a;--if-muted:#66758a;--if-canvas:#f5f9fc;--if-surface:#fff;--if-border:#dce5ed;
 --if-success:#176340;--if-success-bg:#e8f5ee;--if-warning:#825000;--if-warning-bg:#fff4db;--if-error:#b42332;--if-error-bg:#fff0f1;
 --space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--space-8:32px;--space-12:48px;--space-16:64px;
 --radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:24px;
 --if-shadow:0 8px 28px #14213a08;--if-motion:180ms cubic-bezier(.22,1,.36,1);
 --ink:var(--if-ink);--muted:var(--if-muted);--paper:var(--if-canvas);--card:var(--if-surface);--line:var(--if-border);
 --green:var(--if-blue);--brand:var(--if-blue);--brand-dark:var(--if-deep);--shadow:var(--if-shadow);
 --tenant-primary:#bd3b28;--tenant-action:#bd3b28;--tenant-on:#fff;--tenant-hover:#922b1d;--tenant-strong:#bd3b28;--tenant-soft:#fbefed;
 font-family:Inter,"Noto Sans TC","Microsoft JhengHei",sans-serif;color:var(--if-ink);background:var(--if-canvas);font-synthesis:none;
}
*{box-sizing:border-box}body{margin:0;background:var(--if-canvas);color:var(--if-ink);font:400 14px/1.65 Inter,"Noto Sans TC","Microsoft JhengHei",sans-serif}
html{scrollbar-gutter:stable}body.if-overlay-open{overflow:hidden}
.directory-reset{display:inline-flex;align-items:center;min-height:44px;margin:0 0 12px;padding:8px 14px;border:1px solid var(--if-border);border-radius:8px;background:#fff;color:var(--if-blue);cursor:pointer}
.directory-reset[hidden]{display:none}
@media(max-width:680px){input:not([type=checkbox]):not([type=radio]),select,textarea{font-size:16px}}
h1,h2,h3,h4{font-family:inherit;letter-spacing:-.025em;line-height:1.4;color:var(--if-ink)}h1{font-weight:750}h2{font-size:21px}h3{font-size:17px}
button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:var(--if-blue)}button{min-height:44px;transition:background var(--if-motion),border-color var(--if-motion),transform var(--if-motion)}
button:disabled{cursor:default;opacity:.55}button:not(:disabled):active{transform:translateY(1px)}
:is(button,a,input,select,textarea,summary):focus-visible{outline:3px solid var(--if-blue);outline-offset:3px}
input,select,textarea{color:var(--if-ink);background:var(--if-surface);border:1px solid var(--if-border);border-radius:var(--radius-sm);padding:12px;font-size:14px}
input:focus,textarea:focus,select:focus{border-color:var(--if-blue)}input[type=checkbox],input[type=radio]{accent-color:var(--if-blue)}
.primary{background:var(--if-blue);color:#fff;border:1px solid transparent;border-radius:var(--radius-md);font-weight:650;min-height:46px}
.primary:hover:not(:disabled){background:var(--if-deep)}.secondary{background:#fff;color:var(--if-ink);border:1px solid var(--if-border);border-radius:var(--radius-md)}
.eyebrow,.p-eyebrow{font:650 11px/1.6 Inter,"Noto Sans TC",sans-serif;letter-spacing:.16em;color:var(--if-blue);text-transform:uppercase}
.subtitle,.p-sub{color:var(--if-muted);font-size:14px;line-height:1.8}.page-header h1,.p-heading h1{font-size:32px;font-weight:750;margin:4px 0 8px}
.card,.p-card{border:1px solid var(--if-border);border-radius:var(--radius-lg);background:var(--if-surface);box-shadow:none}
.card{padding:24px}.card h2,.p-card h2{color:var(--if-ink)}.p-card-head{padding:20px 24px;border-bottom:1px solid var(--if-border)}
.if-brand{display:flex;align-items:center;gap:12px;color:var(--if-ink);text-decoration:none;white-space:nowrap;font-size:18px;font-weight:750;line-height:1.4}
.if-symbol{width:52px;height:42px;object-fit:contain}.if-brand small{display:block;font:500 10px/1.8 Inter,sans-serif;letter-spacing:.02em;color:var(--if-muted)}
.if-topbar{height:56px;border-bottom:1px solid var(--if-border);background:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100vw - 1200px)/2));color:var(--if-muted);font-size:11px;gap:12px}
.if-topbar a{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--if-ink);font:600 12px Inter,sans-serif}.if-topbar img{width:38px;height:30px;object-fit:contain}
.if-footer{display:flex;justify-content:center;align-items:center;gap:16px;padding:28px 20px;border-top:1px solid var(--if-border);background:#fff;color:var(--if-muted);font-size:12px;text-align:left;line-height:1.8}
.if-footer img{width:44px;height:36px;object-fit:contain}.if-footer small{display:block;font-size:10px}.if-footer span{max-width:100%;overflow-wrap:anywhere}
.layout{grid-template-columns:252px minmax(0,1fr)}.sidebar,.p-side{background:#fff;border-right:1px solid var(--if-border);padding:32px 20px;gap:28px;color:var(--if-ink)}
.sidebar .if-brand,.p-side .if-brand{margin:0 0 12px}.p-layout{grid-template-columns:252px minmax(0,1fr)}
.nav a,.p-nav a{font-size:14px;font-weight:550;min-height:46px;border-radius:var(--radius-sm);color:var(--if-muted);padding:12px 16px}
.nav a.active,.p-nav a.active{background:#eaf3fc;color:var(--if-blue);box-shadow:inset 3px 0 var(--if-blue)}
.nav a:hover,.p-nav a:hover{background:var(--if-canvas);color:var(--if-blue)}.nav-label{color:var(--if-muted);letter-spacing:.15em;font-size:10px}
.nav-icon,.p-nav>a>span:first-child{font-family:Inter,sans-serif;font-size:18px;width:20px}.side-bottom,.p-bottom{color:var(--if-muted);border-top-color:var(--if-border)}
.side-note,.p-bottom>p:last-child{line-height:1.8;color:var(--if-muted)}.restaurant-context{padding:14px 12px;border:1px solid var(--if-border);border-radius:var(--radius-md);font-size:13px;font-weight:650;overflow-wrap:anywhere;background:var(--if-canvas)}
.main,.p-main{background:var(--if-canvas);min-width:0}.main{padding:40px;max-width:1600px}.p-top{background:#fff;border-bottom:1px solid var(--if-border);color:var(--if-muted)}.p-top strong{color:var(--if-ink)}
.p-heading{padding-top:32px;margin-bottom:28px}.p-stats,.kpis{gap:16px}.p-stat,.kpi{border:1px solid var(--if-border);border-radius:var(--radius-lg);box-shadow:none;background:#fff;padding:24px}
.kpi-label,.kpi-note{font-size:12px;color:var(--if-muted)}.kpi-value{font-size:36px;letter-spacing:-.05em;color:var(--if-ink)}.kpi-icon{background:#edf5fd;color:var(--if-blue)}
.kpi.dark{background:var(--if-deep);color:#fff;border-color:var(--if-deep)}.kpi.dark .kpi-value{color:#fff}.kpi.dark :is(.kpi-label,.kpi-note){color:#dcecff}
.kpi.featured :is(.kpi-label,.kpi-value,.kpi-symbol){color:#fff}.kpi.featured .kpi-note{color:#dcecff}
.goal-card{background:#eaf3fc;border:1px solid #d4e6f8;color:var(--if-ink);border-radius:var(--radius-lg)}.goal-icon{background:#fff;color:var(--if-blue)}.goal-progress span,.bar.peak{background:var(--if-blue)}.bar{background:#b8d6f2}
.rank-track{background:var(--if-canvas)}.rank-track span{background:var(--if-blue)}.goal-percent{color:var(--if-blue)}.p-chip,.avatar{background:#eaf3fc;color:var(--if-blue)}
.menu-table,.p-table{font-size:14px}.menu-table th,.p-table th{font-size:12px;color:var(--if-muted);background:var(--if-canvas)}.meal-title{font-size:14px}.meal-desc{font-size:12px}
.p-filter{gap:12px}.p-table td{border-color:var(--if-border)}.p-content{padding:24px}.p-help{background:#eaf3fc;border:1px solid #d4e6f8;border-radius:var(--radius-md);color:var(--if-ink)}
.p-tabs{border-bottom:1px solid var(--if-border);gap:24px}.p-tabs button{border-radius:0;color:var(--if-muted);font-size:14px}.p-tabs button.active{color:var(--if-blue);border-color:var(--if-blue)}
.p-link,.quiet{color:var(--if-blue)}.p-danger,.login-error,.form-error,.p-error{color:var(--if-error)}.p-badge.active,.pill{color:var(--if-success);background:var(--if-success-bg)}.p-badge.suspended,.pill.inactive{color:var(--if-muted);background:#edf1f5}
.p-badge.draft,.pill.soldout{color:var(--if-warning);background:var(--if-warning-bg)}
.toast,#notice{background:var(--if-ink);color:#fff;border-radius:var(--radius-md);font-size:14px;box-shadow:var(--if-shadow)}
dialog{background:#fff;color:var(--if-ink);border-left:1px solid var(--if-border)}dialog::backdrop{background:#14213a60;backdrop-filter:blur(3px)}.editor-footer,.p-dialog-foot{background:#fff;border-color:var(--if-border)}
.p-empty,.empty{padding:56px 24px;font-size:14px;color:var(--if-muted)}.empty strong{color:var(--if-ink)}.mail-guide,.auth-help{border-color:var(--if-border);color:var(--if-muted)}.mail-guide{background:var(--if-canvas)}
.auth-help summary{color:var(--if-ink)}.auth-success{background:var(--if-success-bg);color:var(--if-success)}
.login-page{min-height:calc(100vh - 110px);grid-template-columns:1.08fr 1fr;background:#fff}
.login-story{padding:48px clamp(32px,5vw,88px);background:linear-gradient(145deg,#f5f9fc 10%,#e9f5fd 65%,#d9eefa);color:var(--if-ink);justify-content:space-between;min-height:680px}
.login-story:after{width:600px;height:180px;border:1px solid #0e5cb815;transform:rotate(-20deg);bottom:120px;right:-250px;box-shadow:0 24px 0 #77c8f310,0 48px 0 #77c8f309;pointer-events:none}
.login-logo{display:block;width:min(320px,85%);height:auto;align-self:center;margin:48px 0 32px;position:relative;z-index:1}
.login-story h1{font-size:clamp(28px,3vw,44px);line-height:1.45;letter-spacing:-.04em;margin:16px 0}.login-story p{color:var(--if-muted);font-size:15px}.login-story .eyebrow{color:var(--if-blue)}.login-story footer{color:var(--if-muted);font-size:11px;letter-spacing:.03em}
.login-panel{padding:64px 40px;background:#fff}.login-box{max-width:390px}.login-box>h2{font-size:30px}.login-box .field{font-size:14px;margin-bottom:24px}.login-links{font-size:13px}.login-links button{font-size:13px}.footer-note{font-size:11px}.auth-help{font-size:13px}
.store-entry-links{display:grid;gap:12px;margin-bottom:24px}.store-entry-links a{padding:12px 16px;text-decoration:none;border:1px solid var(--if-border);border-radius:var(--radius-sm);font-weight:600}
.branding-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.85fr);gap:40px;align-items:start}.branding-form{max-width:620px}.branding-form h2{margin:0 0 24px}.branding-form .field{font-size:14px;gap:12px}.branding-form input[type=file]{font-size:12px}.brand-color-label{margin-top:32px}.color-inputs{display:flex;gap:12px}.color-inputs input[type=color]{padding:5px;width:56px;flex:none;height:48px}.brand-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:20px}.brand-message{color:var(--if-muted);font-size:13px;min-height:26px}.brand-preview-link{display:block;margin-top:24px;font-size:13px}
.brand-preview-wrap>.eyebrow{margin-top:0}.brand-preview{background:#fff;border:1px solid var(--if-border);border-radius:var(--radius-xl);padding:24px;box-shadow:0 16px 48px #14213a08;max-width:400px}.brand-preview .if-brand{font-size:13px;border-bottom:1px solid var(--if-border);padding-bottom:18px}.brand-preview .if-symbol{width:36px}.preview-restaurant{text-align:center;padding:30px 0}.preview-restaurant .restaurant-logo{margin:auto;background:var(--tenant-soft);color:var(--tenant-strong)}.preview-restaurant h2{margin:16px 0 8px}.preview-restaurant p,.brand-preview article p{font-size:12px;color:var(--if-muted)}.preview-chips{display:flex;gap:8px;font-size:12px}.preview-chips span{padding:6px 12px;border-radius:8px;background:var(--if-canvas)}.preview-chips span:first-child{background:var(--tenant-action);color:var(--tenant-on)}.brand-preview article{padding:24px 0}.brand-preview article strong{color:var(--tenant-strong)}.brand-preview>button{width:100%;border:0;border-radius:12px;padding:14px;background:var(--tenant-action);color:var(--tenant-on);font-weight:650}.preview-credit{text-align:center;font-size:10px;color:var(--if-muted)}
.restaurant-logo{width:60px;height:60px;flex:none;display:grid;place-items:center;background:var(--tenant-soft);color:var(--tenant-strong);border-radius:16px;font-size:26px;font-weight:750;overflow:hidden}.restaurant-logo img{width:100%;height:100%;object-fit:contain;background:#fff;padding:3px}
/* The restaurant owns accents. IceFeather owns structure and semantic states. */
body[data-page=order]{--brand:var(--tenant-action);--brand-dark:var(--tenant-hover);background:var(--if-canvas)}
body[data-page=order][data-restaurant=nuu]{--paper:#f7f4ed;background:var(--paper)}
body[data-page=order] .shell{width:min(1200px,100%);padding:0 32px 64px;display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:48px}
.order-content{min-width:0}.hero{padding:40px 0 28px}.restaurant-eyebrow{margin:0 0 24px;color:var(--if-muted)}.brand-line{gap:16px}.hero h1{font:750 28px/1.4 Inter,"Noto Sans TC",sans-serif;letter-spacing:-.03em}.hero .eyebrow:not(.restaurant-eyebrow){font-size:12px;letter-spacing:0;color:var(--if-muted)}
.welcome{font-size:34px;line-height:1.4;margin-top:36px;font-weight:750}.welcome small{font:400 14px/1.8 Inter,"Noto Sans TC",sans-serif;margin-top:12px;color:var(--if-muted)}
.category-nav{padding:16px 0;background:var(--paper);border-bottom:0;gap:8px;top:0}.chip{border-radius:10px;font-size:13px;padding:10px 18px;color:var(--if-muted)}.chip.active{background:var(--tenant-action);border-color:var(--tenant-action);color:var(--tenant-on)}
.menu{padding:12px 0}.menu>.menu-card:last-child{border-bottom:0}.menu-card{padding:24px 0;border-color:var(--if-border);gap:20px;align-items:center}.menu-card h3{font-size:18px;font-weight:700}.menu-card p{font-size:13px;line-height:1.8;max-width:42ch}.price{font-size:16px;color:var(--tenant-strong);margin-top:16px}.badge{background:var(--tenant-soft);color:var(--tenant-strong)}
.stepper{gap:12px}.stepper button{width:38px;height:38px;min-height:38px;border-radius:10px;color:var(--if-ink);border-color:var(--if-border)}.stepper button.add{background:var(--tenant-action);color:var(--tenant-on);border-color:var(--tenant-action)}
.desktop-cart{position:sticky;top:32px;align-self:start;margin-top:40px;background:#fff;border:1px solid var(--if-border);border-radius:20px;padding:28px;box-shadow:var(--if-shadow)}.desktop-cart h2{font-size:20px;margin:8px 0 28px}.desktop-cart>.subtitle{font-size:11px;text-align:center;margin:16px 0 0}.desktop-cart .summary{padding-top:20px;border-top:1px solid var(--if-border);font-size:16px}.desktop-cart .summary strong{font-size:22px}.desktop-cart-row{display:flex;justify-content:space-between;gap:16px;font-size:13px;padding:12px 0;border-bottom:1px solid var(--if-border)}.desktop-cart-row span{overflow-wrap:anywhere}.desktop-cart-row strong{white-space:nowrap}
.cart-credit{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:24px;padding-top:20px;border-top:1px solid var(--if-border);font-size:10px;color:var(--if-muted)}.cart-credit img{width:28px}.cart-bar{display:none}
body[data-page=order] .primary{background:var(--tenant-action);color:var(--tenant-on)}body[data-page=order] .primary:hover:not(:disabled){background:var(--tenant-hover)}
body[data-page=order] .danger-primary{background:var(--if-error);color:#fff}.sheet{background:#14213a66}.sheet-panel{background:#fff;border-radius:24px 24px 0 0;padding:12px 28px 32px}.sheet-head h2{font-size:23px}.field span{font-size:14px}.pickup-option:has(input:checked){border-color:var(--tenant-strong);background:var(--tenant-soft)}.pickup-option:focus-within{outline:3px solid var(--if-blue);outline-offset:3px}.addon-chip.selected{background:var(--tenant-soft);border-color:var(--tenant-strong);color:var(--tenant-strong)}.success-card{border:1px solid var(--if-border);border-radius:24px;box-shadow:var(--if-shadow)}.success-card h2{color:var(--if-ink)}.order-number{color:var(--tenant-strong)}
body[data-page=order] .if-footer{padding-bottom:28px}.modal-card{background:#fff;border-radius:var(--radius-xl)}
.kitchen-shell{background:var(--if-canvas);padding:20px 24px;max-width:1800px}.kitchen-sticky-bar{background:var(--if-canvas);margin:-20px -24px 0;padding:20px 24px 1px}.kitchen-head{margin-bottom:20px}.kitchen-head h1{font:750 24px/1.4 Inter,"Noto Sans TC",sans-serif}.kitchen-head .restaurant-logo{width:44px;height:44px;font-size:20px;background:#eaf3fc;color:var(--if-blue)}.kitchen-shell .tab{border-radius:8px;min-height:44px;font-size:13px}.kitchen-shell .tab.active{background:var(--if-blue);color:#fff;border-color:var(--if-blue)}.kitchen-shell .orders-grid{grid-template-columns:1fr;gap:16px}.kitchen-shell .order-card{background:#fff;border:1px solid var(--if-border);border-top:4px solid var(--status-color);border-radius:16px;box-shadow:none;padding:20px}.kitchen-shell .ticket-number{font-size:38px;color:var(--if-ink)}.kitchen-shell .order-card[data-status=new]{--status-color:var(--if-blue);--status-bg:#eaf3fc}.kitchen-shell .item-list li{font-size:17px}.kitchen-shell .item-list b{background:#edf4fc;color:var(--if-deep)}.kitchen-shell .actions button{min-height:48px;font-size:14px}.kitchen-shell .order-total{background:var(--if-canvas)}.kitchen-shell .item-list{border-color:var(--if-border)}
@media(min-width:520px){.kitchen-shell .orders-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1000px){.kitchen-shell .orders-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(min-width:1440px){.kitchen-shell .orders-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:1100px){.layout,.p-layout{grid-template-columns:220px minmax(0,1fr)}.main{padding:28px}.sidebar,.p-side{padding:28px 16px}.if-brand{font-size:16px}.if-symbol{width:42px}.branding-layout{gap:24px}body[data-page=order] .shell{gap:28px;grid-template-columns:minmax(0,1fr) 300px}}
@media(max-width:850px){body[data-page=order] .shell{display:block;max-width:680px;padding:0 24px 100px}.desktop-cart{display:none}.cart-bar{display:block;background:#ffffffed;border-top:1px solid var(--if-border);backdrop-filter:blur(12px)}.cart-inner{max-width:632px;border-radius:14px;background:var(--tenant-action);color:var(--tenant-on);box-shadow:none}.cart-count{background:var(--tenant-on);color:var(--tenant-action)}body[data-page=order] .if-footer{padding-bottom:112px}.branding-layout{grid-template-columns:1fr}.brand-preview-wrap{max-width:400px}.hero{padding-top:28px}.welcome{font-size:30px}}
@media(max-width:800px){.layout,.p-layout{display:block}.sidebar,.p-side{position:relative;height:auto;width:100%;padding:20px;border-bottom:1px solid var(--if-border);gap:12px}.sidebar .if-brand,.p-side .if-brand{margin:0 0 16px}.nav,.p-nav{display:flex;flex-wrap:wrap;gap:6px}.nav a,.p-nav a{flex:initial;white-space:nowrap;padding:10px 12px;font-size:12px}.side-bottom,.p-bottom{position:static;padding:8px 0 0;border:0}.side-bottom .user-email,.side-note,.p-bottom>p,.workspace{display:none}.p-bottom{display:flex;justify-content:flex-end}.restaurant-context{font-size:12px;padding:8px 12px}.main{padding:24px}.p-main{padding:0 20px 28px}.p-top{margin:0 -20px;padding:14px 20px;min-height:64px;font-size:12px}.login-page{grid-template-columns:1fr}.login-story{min-height:0;padding:28px 32px;gap:12px}.login-story>.if-brand{display:none}.login-logo{width:220px;margin:0 auto 12px;align-self:flex-start}.login-story h1{font-size:26px;margin:8px 0}.login-story p{display:block;font-size:13px;margin:8px 0}.login-story footer{display:none}.login-panel{padding:36px 24px}.page-header h1,.p-heading h1{font-size:27px}.kitchen-shell{padding:16px}.kitchen-sticky-bar{margin:-16px -16px 0;padding:16px 16px 1px}}
@media(max-width:520px){.if-topbar{padding:0 20px;height:48px}.if-topbar>span{display:none}.if-footer{padding:24px 20px;gap:10px}.if-footer img{width:32px}.if-footer small{font-size:9px}.hero h1{font-size:23px}.restaurant-logo{width:52px;height:52px}.welcome{font-size:28px}.menu-card{padding:22px 0;gap:12px}.menu-card h3{font-size:16px}.stepper{gap:8px}.stepper button{width:34px;height:36px;min-height:36px}.kitchen-tools{gap:4px}.kitchen-head h1{font-size:20px}.kitchen-shell .restaurant-logo{display:none}.kitchen-shell .order-card{padding:16px}.sheet-panel{padding-left:20px;padding-right:20px}.p-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.p-stat{padding:16px}.p-tabs{gap:4px;overflow:auto}.p-tabs button{font-size:12px;padding:10px;white-space:nowrap}.p-heading{padding-top:24px}.main{padding:24px 16px}.card,.p-content{padding:20px}.brand-actions .primary{width:100%}.p-top>span:first-child{max-width:55%;overflow-wrap:anywhere}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
[hidden]{display:none!important}

.sheet:not(.open),.modal:not(.open),.success:not(.open){visibility:hidden}
.success-brand{display:flex;flex-direction:column;align-items:center;gap:12px;margin-bottom:24px;font-size:16px}.receipt-brand{font-size:12px!important;color:var(--if-muted)!important;margin-top:28px!important}.receipt-brand small{display:block;font-size:9px;line-height:1.8;margin-top:8px}
.p-heading .primary{white-space:nowrap}.store-entry-links a:hover{background:var(--if-canvas)}
.design-gallery{max-width:1100px;margin:auto;padding:56px 24px}.design-gallery>h1{font-size:44px}.design-gallery section{margin:40px 0}.design-swatches{display:grid;grid-template-columns:repeat(6,1fr);gap:16px}.design-swatch{border-radius:12px;overflow:hidden;border:1px solid var(--if-border);background:#fff}.design-swatch i{display:block;height:80px}.design-swatch span{display:block;padding:12px;font-size:12px}.component-row{display:flex;gap:16px;flex-wrap:wrap;align-items:center}.component-row button{padding:12px 24px}.design-gallery .field{max-width:420px}.error-page{max-width:640px;margin:12vh auto;padding:32px}.error-page h1{font-size:42px}.error-page .if-brand{margin-bottom:48px}
@media(max-width:600px){.design-swatches{grid-template-columns:repeat(2,1fr)}.design-gallery>h1{font-size:30px}}

.p-filter input{flex:1 1 240px;min-width:160px;width:auto}.p-filter select{flex:0 1 180px;width:180px}.p-filter .count{white-space:nowrap}
@media(max-width:600px){.p-filter input{flex-basis:100%}.p-filter select{flex:1;width:auto}}

.restaurant-status{padding:12px 16px;border:1px solid #e6c98f;border-radius:12px;color:var(--if-warning);background:var(--if-warning-bg);font-size:14px}.if-icon{width:20px;height:20px;flex:none;vertical-align:middle}.p-nav .if-icon,.nav .if-icon{margin-right:4px}

.success-icon{background:var(--if-success-bg);color:var(--if-success)}.success-icon.cancelled{background:var(--if-error-bg);color:var(--if-error)}

.primary:active:not(:disabled){background:var(--if-deep)}body[data-page=order] .primary:active:not(:disabled),body[data-page=order] .stepper button.add:active{background:var(--tenant-pressed)}

/* Store backgrounds only affect customer ordering, kitchen, and the local preview. */
body[data-page=order][data-custom-background],body[data-page=kitchen][data-custom-background]{--paper:var(--tenant-bg-background);background:var(--tenant-bg-background)}
body[data-page=order][data-custom-background] .hero :is(h1,.welcome){color:var(--tenant-bg-ink)}
body[data-page=order][data-custom-background] .hero :is(.eyebrow,.welcome small){color:var(--tenant-bg-muted)}
body[data-page=order][data-custom-background] .menu{background:#fff;border-radius:16px;padding:12px 16px}
body[data-page=kitchen][data-custom-background] :is(.kitchen-shell,.kitchen-sticky-bar){background:var(--tenant-bg-background)}
body[data-page=kitchen][data-custom-background] .kitchen-head h1{color:var(--tenant-bg-ink)}
body[data-page=kitchen][data-custom-background] .kitchen-head :is(.eyebrow,time,.sync-badge,.refresh-button){color:var(--tenant-bg-muted)}
body[data-page=kitchen][data-custom-background] .refresh-button:hover{background:var(--tenant-bg-background);color:var(--tenant-bg-ink)}
body[data-page=kitchen][data-custom-background] .orders-grid>.empty{color:var(--tenant-bg-muted)}
.brand-preview[data-custom-background]{background:var(--tenant-bg-background)}
.brand-preview[data-custom-background] :is(.preview-restaurant h2,.if-brand){color:var(--tenant-bg-ink)}
.brand-preview[data-custom-background] :is(.preview-restaurant p,.preview-credit,.if-brand small){color:var(--tenant-bg-muted)}
.brand-preview[data-custom-background] article{background:#fff;border-radius:12px;padding:20px;margin:16px 0}
.color-inputs{min-width:0}.color-inputs input:not([type=color]){min-width:0;width:100%}
body[data-page=kitchen][data-custom-background] .orders-grid>.empty h2{color:var(--tenant-bg-ink)}

.meal-sort-list{max-height:55vh;overflow:auto;overscroll-behavior:contain;border:1px solid var(--if-border);border-radius:12px}
.meal-sort-row{display:flex;align-items:center;gap:10px;padding:12px;background:#fff;border-bottom:1px solid var(--if-border)}
.meal-sort-row:last-child{border-bottom:0}.meal-sort-row.sort-source{opacity:.5}.meal-sort-row.sort-target{outline:3px solid var(--if-blue);outline-offset:-3px;background:#eaf3fc}
.meal-drag-handle{touch-action:none;cursor:grab;user-select:none;padding:8px;min-width:40px}.meal-drag-handle:active{cursor:grabbing}
.meal-sort-position{color:var(--if-muted);font-variant-numeric:tabular-nums;min-width:20px}.meal-sort-name{min-width:0;flex:1;overflow-wrap:anywhere}.meal-sort-name small{display:block;color:var(--if-muted)}
.meal-sort-actions{display:flex;gap:4px}.meal-sort-actions button{min-width:36px;padding:6px}
.meal-promotion{border:1px solid var(--if-border);border-radius:12px;padding:16px;margin:20px 0;display:flex;gap:16px;flex-wrap:wrap}.meal-promotion label{display:flex;align-items:center;gap:8px}.meal-promotion small{width:100%;color:var(--if-muted)}
.featured-section{background:#fff;border:1px solid var(--if-border);border-radius:20px;padding:20px;margin:0 0 20px}.featured-section[hidden]{display:none}.featured-section>h2{margin:0;color:var(--if-ink)}.featured-section>p{margin:6px 0;color:var(--if-muted);font-size:13px}.featured-section .menu-card:last-child{border-bottom:0}.promotion-badge{display:inline-block;font-size:12px;white-space:nowrap;vertical-align:middle}
@media(max-width:520px){.meal-sort-row{gap:6px;padding:10px 6px}.meal-sort-position{display:none}.meal-sort-actions{gap:2px}.featured-section{padding:16px}}

/* Keep admin content anchored while loading or changing sections. */
.main{margin:0 auto;align-self:start;min-height:calc(100vh - 110px)}
#main>.boot,#page>.p-loading,#page>div>.p-loading{min-height:360px;display:grid;place-content:center}
#dashboard{min-height:640px}.branding-layout{min-height:480px}
html{scrollbar-gutter:stable}.header-actions button{white-space:nowrap}
button[aria-busy=true]{cursor:wait}#sortAnnouncement{min-height:24px}

/* Shared loading placeholders keep the layout visible while data arrives. */
.loading-skeleton{min-height:560px;padding:24px 0}.sk-heading{display:grid;gap:16px;margin-bottom:32px}.sk-bar{display:block;height:14px;width:55%;border-radius:6px;background:linear-gradient(100deg,#e5edf5 25%,#f4f8fc 45%,#e5edf5 65%);background-size:220% 100%;animation:sk-shimmer 1.6s ease-in-out infinite}.sk-bar.short{width:28%}.sk-bar.wide{width:80%}.sk-bar.title{height:32px;width:45%}.sk-bar.input{height:44px;width:100%;margin-bottom:20px}.sk-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:22px}.sk-panel{border:1px solid var(--line,#d6e4f0);border-radius:16px;padding:24px;background:white;display:grid;gap:24px}.sk-row{display:grid;grid-template-columns:2fr 1fr 1fr;gap:20px;padding:15px 0;border-bottom:1px solid #edf2f7}.sk-form{max-width:640px;gap:14px}.self-account-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;align-items:start}.self-account-form{padding:28px}.self-account-form h2{margin-top:0}.self-account-form [data-message]{min-height:24px;overflow-wrap:anywhere}.self-account-form input[readonly]{background:#eef3f8;color:#53677c}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
@keyframes sk-shimmer{to{background-position:-220% 0}}
@media(max-width:760px){.sk-stats{grid-template-columns:repeat(2,1fr)}.self-account-grid{grid-template-columns:1fr}.self-account-form{padding:20px}}
@media(prefers-reduced-motion:reduce){.sk-bar{animation:none}}
.initial-skeleton{max-width:1200px;margin:0 auto;padding:32px;min-height:80vh}

/* Shared overlay finish: bounded surfaces, calm motion, and reachable actions. */
html:has(dialog[open],.sheet.open,.modal.open,.success.open){overflow:hidden}
#editor,#platform-editor{inset:0;margin:auto;width:min(620px,calc(100% - 48px));height:auto;max-width:none;max-height:calc(100dvh - 64px);padding:0;overflow:hidden;border:1px solid var(--if-border);border-radius:24px;background:#fff;box-shadow:0 32px 96px #14213a26,0 4px 16px #14213a0d}
#editor[open],#platform-editor[open]{display:flex;flex-direction:column;animation:if-dialog-in 220ms cubic-bezier(.22,1,.36,1)}
#editor::backdrop,#platform-editor::backdrop{background:#14213a66;backdrop-filter:blur(5px);animation:if-overlay-in 180ms ease-out}
#editor>.editor-form,#platform-editor>form{display:flex;flex-direction:column;min-height:0;max-height:inherit;width:100%;padding:0;margin:0;overflow:hidden}
.editor-head,.p-dialog-head{flex:none;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px 28px 20px;margin:0;border-bottom:1px solid var(--if-border);background:linear-gradient(120deg,#f5f9fc,#fff 70%)}
.editor-head>div,.p-dialog-head>div{min-width:0}.editor-head h2,.p-dialog-head h2{font-size:23px;margin:0;overflow-wrap:anywhere}
.dialog-eyebrow{margin:0 0 6px;font-size:12px;font-weight:600;color:var(--if-muted);letter-spacing:.04em;overflow-wrap:anywhere}
button.dialog-close,.sheet-head>.icon-btn{display:grid;place-items:center;flex:none;width:44px;height:44px;min-height:44px;padding:0;border:1px solid var(--if-border);border-radius:50%;background:#fff;color:var(--if-muted);font:400 26px/1 Inter,sans-serif}
button.dialog-close:hover,.sheet-head>.icon-btn:hover{background:#edf4fb;color:var(--if-ink);border-color:#c2d4e5}
.editor-body,.p-dialog-body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding:24px 28px;scroll-padding-block:24px}
:is(.editor-body,.p-dialog-body) :is(.field,.p-field){min-width:0;margin:0 0 22px;gap:8px;font-size:14px;font-weight:550;color:var(--if-ink)}
:is(.editor-body,.p-dialog-body)>:last-child{margin-bottom:0}
:is(.editor-body,.p-dialog-body) :is(input:not([type=checkbox]):not([type=radio]),select,textarea){width:100%;min-width:0;border:1px solid var(--if-border);border-radius:10px;padding:11px 13px;background:#fff;line-height:1.6;transition:border-color var(--if-motion),box-shadow var(--if-motion)}
:is(.editor-body,.p-dialog-body) textarea{resize:vertical;min-height:96px}
:is(.editor-body,.p-dialog-body) :is(input,select,textarea):focus{border-color:var(--if-blue);box-shadow:0 0 0 3px #0e5cb812}
:is(.editor-body,.p-dialog-body) :is(input,select,textarea):focus-visible{outline:2px solid var(--if-blue);outline-offset:2px}
:is(.editor-body,.p-dialog-body) :is(.field small,.p-field small,.p-sub){font-size:12px;line-height:1.8;font-weight:400;color:var(--if-muted)}
:is(.editor-body,.p-dialog-body)>.p-sub:first-child{margin:0 0 24px}
:is(.editor-body,.p-dialog-body) :is(.p-fields,.field-grid){grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
:is(.editor-body,.p-dialog-body) :is(.checks,.p-checks){gap:8px;margin-top:4px}
:is(.editor-body,.p-dialog-body) :is(.check,.p-checks label,.meal-promotion label){display:flex;align-items:center;gap:8px;min-height:44px;padding:10px 12px;border:1px solid var(--if-border);border-radius:10px;background:#fff;font-size:13px;font-weight:500;cursor:pointer}
:is(.editor-body,.p-dialog-body) :is(.check,.p-checks label,.meal-promotion label):has(input:checked){background:#eaf3fc;border-color:#a8caec;color:var(--if-deep)}
:is(.editor-body,.p-dialog-body) input[type=checkbox]{width:16px;height:16px;flex:none;margin:0}
.meal-promotion{background:var(--if-canvas);gap:10px;margin:0 0 22px}.meal-promotion legend{font-size:14px;font-weight:550;padding:0 6px}.meal-promotion small{line-height:1.8}
.editor-footer,.p-dialog-foot{position:static;flex:none;display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:12px;padding:18px 28px;margin:0;border-top:1px solid var(--if-border);background:#fff;box-shadow:0 -4px 18px #14213a03}
.editor-footer .save-state{margin-right:auto;font-size:12px}.editor-footer button,.p-dialog-foot button{min-height:46px;padding:11px 20px;border-radius:11px;font-size:14px;white-space:normal}
.editor-footer .primary,.p-dialog-foot .primary{width:auto;min-width:124px}
.editor-footer .form-error,.p-dialog-foot .p-error{order:-1;flex:0 0 100%;min-height:0;margin:0;padding:10px 14px;background:var(--if-error-bg);border-radius:10px;font-size:13px;overflow-wrap:anywhere}
.editor-footer .form-error:empty,.p-dialog-foot .p-error:empty{display:none}
.sheet,.modal{background:#14213a66;backdrop-filter:blur(5px)}
.sheet-panel,.modal-card{border:1px solid var(--if-border);box-shadow:0 24px 80px #14213a26;max-height:calc(100dvh - 48px);scroll-padding-block:24px}
.sheet-panel{padding:12px 28px calc(28px + env(safe-area-inset-bottom));transition:transform 240ms cubic-bezier(.22,1,.36,1)}
.handle{width:36px;height:4px;background:#ced9e4;margin-bottom:14px}
.modal-card{padding:28px}.sheet-head{gap:16px;margin-bottom:20px}.sheet-head h2{font-size:22px;overflow-wrap:anywhere}
.modal.open .modal-card,.success.open .success-card{animation:if-dialog-in 220ms cubic-bezier(.22,1,.36,1)}
.confirm-card{text-align:left}.confirm-card h2{margin:0 0 12px;font-size:22px}.confirm-card p{margin:0;line-height:1.8}.confirm-actions{gap:12px;margin-top:28px}
.success-card{background:#fff;padding:28px}.success-brand{margin-bottom:20px}.success-card .receipt-brand{margin-bottom:0}
.toast,#notice{max-width:min(480px,calc(100vw - 32px));width:max-content;padding:14px 20px;border:1px solid #ffffff1f;box-shadow:0 12px 40px #14213a26;line-height:1.7;overflow-wrap:anywhere;pointer-events:none;z-index:100}
#notice{bottom:calc(24px + env(safe-area-inset-bottom))}
@keyframes if-dialog-in{from{opacity:0;transform:translateY(12px) scale(.985)}to{opacity:1;transform:none}}
@keyframes if-overlay-in{from{opacity:0}to{opacity:1}}
@media(max-width:600px){
 #editor,#platform-editor{width:calc(100% - 24px);max-height:calc(100dvh - 24px);border-radius:20px}
 .editor-head,.p-dialog-head{padding:20px}.editor-head h2,.p-dialog-head h2{font-size:21px}
 .editor-body,.p-dialog-body{padding:20px}.editor-footer,.p-dialog-foot{padding:16px 20px;gap:10px}
 .editor-footer .save-state{flex-basis:100%}.editor-footer button,.p-dialog-foot button{flex:1;min-width:0}
 :is(.editor-body,.p-dialog-body) :is(input:not([type=checkbox]):not([type=radio]),select,textarea){font-size:16px}
 :is(.editor-body,.p-dialog-body) :is(.p-fields,.field-grid){gap:12px}
 .modal{padding:12px}.modal-card{padding:24px 20px;max-height:calc(100dvh - 24px)}
 .sheet-panel{padding-inline:20px;max-height:calc(100dvh - 16px)}.success{padding:16px}.success-card{padding:24px 20px}
}
@media(max-width:380px){:is(.editor-body,.p-dialog-body) :is(.p-fields,.field-grid){grid-template-columns:1fr;gap:0}}

.display-tools{padding:28px}.display-tools h2{margin-top:0}.display-tools>a{overflow-wrap:anywhere}.display-layout{border:0;padding:0;margin:24px 0;display:flex;gap:16px;flex-wrap:wrap}.display-layout legend{font-weight:700;margin-bottom:12px}.display-layout label{display:flex;align-items:center;gap:8px;padding:14px;border:1px solid #d6e4f0;border-radius:10px;cursor:pointer}.display-layout label:has(input:checked){background:#eaf4ff;border-color:#1260bd}.display-tools .header-actions{justify-content:flex-start;flex-wrap:wrap;margin:20px 0}.display-tools [data-message]{min-height:24px}.display-workspace{display:grid;grid-template-columns:minmax(300px,.85fr) minmax(0,1.15fr);gap:28px;align-items:start}.display-workspace>section{min-width:0}.display-workspace .display-layout{flex-direction:column}.display-preview{margin-top:0}.display-preview h2{margin-top:0}.display-preview iframe{display:block;width:100%;max-width:820px;height:auto;aspect-ratio:190/286;border:1px solid #d6e4f0;border-radius:12px;background:#eaf0f6}.display-tools .subtitle{line-height:1.8}
@media(max-width:760px){.display-tools{padding:20px}.display-preview iframe{height:auto}.display-layout{flex-direction:column}}

@media(max-width:1100px){.display-workspace{grid-template-columns:minmax(0,1fr)}}

/* Compact format picker: keep radio sizing independent of text-input styles. */
.display-tools .display-layout{display:flex;gap:12px;margin:28px 0 24px;min-width:0}.display-layout legend{font-size:14px;color:#536d89;margin-bottom:12px}.display-layout label.display-option{display:flex;flex-direction:row;justify-content:flex-start;gap:16px;min-height:92px;padding:16px 18px;border-radius:14px;background:#fff;transition:background .15s,border-color .15s;box-shadow:none}.display-layout label.display-option:hover{border-color:#85b1e1;background:#f8fbff}.display-layout label.display-option:has(input:checked){border-color:#1464bf;background:#f0f7ff;box-shadow:inset 0 0 0 1px #1464bf}.display-option .format-copy{display:flex;flex:1;min-width:0;flex-direction:column;gap:6px;text-align:left}.format-copy strong{font-size:16px;line-height:1.35;color:#102d50}.format-copy small{font-size:13px;line-height:1.5;color:#667e98}.display-layout .display-option input[type=radio]{appearance:auto;display:block;flex:0 0 18px;width:18px;min-width:18px;height:18px;padding:0;margin:0;border:0;box-shadow:none;accent-color:#1464bf}.display-option:focus-within{outline:3px solid #a9d0ff;outline-offset:3px}.format-thumb{display:grid;flex:0 0 40px;width:40px;height:54px;padding:7px 5px;gap:3px;border:1px solid #bdd1e5;border-radius:4px;background:white;box-shadow:0 3px 6px #183c6010}.format-thumb i{display:block;border-top:3px solid #4085cc;background:linear-gradient(#e8f2fc 40%,#b2cfea 40%,#b2cfea 75%,#e8f2fc 75%)}.format-four{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;padding:5px}.format-four i{border-top-width:2px}.display-actions{display:grid;grid-template-columns:1fr;gap:10px}.display-actions button{min-height:48px;width:100%;display:flex;align-items:center;justify-content:center;gap:10px;font-size:15px}.file-type{font-size:11px;font-weight:600;letter-spacing:.06em;border:1px solid #c9d9eb;border-radius:4px;padding:2px 5px;color:#657f9c}.display-print-help{margin-top:22px;padding-top:18px;border-top:1px solid #e2eaf3;color:#647c95;font-size:13px;line-height:1.8}.display-print-help summary{cursor:pointer;list-style-position:inside}.display-print-help p{margin:10px 0 0}.display-tools [data-message]{font-size:12px;line-height:1.6;color:#607c98;margin:12px 0 0;min-height:20px}

/* Compact desktop sidebar; preserve the existing text sizes. */
@media(min-width:851px){
 .sidebar{height:100dvh;padding:20px 18px;gap:12px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
 .sidebar>*{flex-shrink:0}
 .sidebar .if-brand{margin:0 0 4px}
 .sidebar .restaurant-switcher{gap:6px}
 .sidebar .restaurant-switcher select{padding:10px 12px}
 .sidebar .restaurant-context{padding:10px 12px}
 .sidebar .platform-return{padding:9px 12px}
 .sidebar .nav-label,.sidebar .platform-return+.nav-label{margin:4px 12px 0;line-height:1.4}
 .sidebar .nav{gap:4px}
 .sidebar .nav a{min-height:44px;padding:10px 14px}
 .sidebar .side-bottom{margin-top:auto;padding-top:12px;gap:9px}
 .sidebar .side-bottom>a{line-height:1.5}
 .sidebar .user-email{line-height:1.5;overflow-wrap:anywhere}
 .sidebar .side-bottom button{padding:9px 12px}
 .sidebar .side-note{display:none}
}

/* Match the preview panel to the settings card without stretching the paper. */
@media(min-width:1101px){
 .display-workspace>.display-preview{align-self:stretch;display:flex;flex-direction:column;height:0;min-height:100%;gap:16px}
 .display-workspace>.display-preview h2{flex:none;margin:0}
 .display-workspace>.display-preview iframe{flex:1;min-height:0;height:0;max-width:none;aspect-ratio:auto}
}

.display-share{margin-top:20px;padding:16px;border:1px solid #dce8f4;border-radius:12px;background:#f7faff}.display-share-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.display-share-heading h3{margin:0;font-size:14px}.display-share-heading a{font-size:12px;white-space:nowrap}.display-share-row{display:flex;gap:8px;align-items:stretch}.display-share-row input{flex:1;min-width:0;width:0;padding:10px 12px;font-size:13px;background:#fff;border:1px solid #cfdded;border-radius:8px;color:#385777}.display-share-row button{flex:none;padding:10px 12px;font-size:13px;white-space:nowrap}.display-share [data-copy-status]{margin:8px 0 0;font-size:12px;line-height:1.6;color:#607994}@media(max-width:420px){.display-share-row{flex-direction:column}.display-share-row input{width:100%;flex:auto}}

.my-orders{margin:20px 0;padding:18px;border:1px solid var(--brand-soft,#e5ded0);border-radius:18px;background:#fff}.my-orders h2{margin:0 0 8px}.my-orders p,#orderSyncStatus{font-size:13px;color:#666;line-height:1.6}.saved-order{display:flex;width:100%;flex-wrap:wrap;gap:6px 12px;align-items:center;text-align:left;margin-top:10px}.saved-order small{flex:1;min-width:0}.saved-order span{font-size:13px}

.time-field .pickup-time-control{position:relative;display:block;margin:0}.time-field input[type="time"]{min-height:48px}.time-field .pickup-time-hint{position:absolute;inset:1px;display:flex;align-items:center;margin:0;padding:12px 14px;border-radius:12px;background:#fff;color:var(--if-muted);font-size:14px;font-weight:400;pointer-events:none}.time-field .pickup-time-hint[hidden],.time-field .pickup-time-control:focus-within .pickup-time-hint{display:none}.time-field input[type="time"].is-empty:not(:focus)::-webkit-date-and-time-value{opacity:0}

/* Restaurant closure schedule and customer notice */
.closure-calendar{margin-bottom:28px;min-width:0}.closure-calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.closure-calendar-toolbar h2{margin:0;font-size:22px}.closure-month-actions{display:flex;gap:8px}.closure-month-actions button{min-width:40px;padding:8px 12px}.closure-calendar-weekdays,.closure-calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.closure-calendar-weekdays{margin:20px 0 8px;text-align:center;color:#60748a;font-size:13px}.closure-calendar-days .closure-calendar-day{min-width:0;min-height:76px;padding:10px 4px;border:1px solid #d9e3ed;border-radius:10px;background:#fff;color:#344d65;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px}.closure-calendar-day b{font-size:18px}.closure-calendar-day span{font-size:12px;line-height:1.3}.closure-calendar-days .closure-calendar-day.is-closed{background:#fff0db;border-color:#d9a344;color:#684516}.closure-calendar-days .closure-calendar-day.other-month{opacity:.55}.closure-calendar-days .closure-calendar-day.is-today{outline:2px solid #1862ad;outline-offset:-3px}.closure-calendar-days .closure-calendar-day:hover{border-color:#1862ad;box-shadow:0 0 0 1px #1862ad}.closure-calendar-days .closure-calendar-day:focus-visible{outline:3px solid #1862ad;outline-offset:2px;opacity:1}.closure-calendar-legend{display:flex;gap:16px;flex-wrap:wrap;margin-top:14px;font-size:13px;color:#536980}.closure-calendar-legend span{display:flex;align-items:center;gap:6px}.closure-legend-dot{display:inline-block;width:12px;height:12px;border-radius:4px;background:#fff0db;border:1px solid #d9a344}.closure-legend-dot.open{background:#fff;border-color:#a3b5c7}#closureCalendarSummary{font-size:13px;color:#536980}.closure-open-dates{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.closure-open-dates button{font-size:13px;padding:6px 10px}@media(max-width:600px){.closure-calendar-days,.closure-calendar-weekdays{gap:4px}.closure-calendar-days .closure-calendar-day{min-height:62px;padding:8px 2px;border-radius:8px}.closure-calendar-day b{font-size:16px}.closure-calendar-day span{font-size:10px}.closure-calendar-toolbar h2{font-size:20px}.closure-month-actions{gap:4px}.closure-month-actions button{padding:8px}}
.closure-settings{padding:24px;max-width:860px}.closure-settings fieldset{border:1px solid var(--line,#dbe4eb);border-radius:12px;padding:18px;margin:0 0 24px;min-width:0}.closure-settings legend{font-weight:700;padding:0 8px}.closure-range{display:grid;grid-template-columns:1fr 1fr auto;align-items:end;gap:12px;margin-bottom:16px}.closure-range .field{margin:0}.closure-range button{margin-bottom:0}.closure-notice{margin:0 0 24px;padding:22px;border:1px solid #e4c28b;border-radius:16px;background:#fff8e9;color:#624618;overflow-wrap:anywhere}.closure-notice h2{margin:0 0 8px;font-size:22px}.closure-notice p{margin:0 0 10px;white-space:pre-wrap}.closure-notice small{color:#765b32}.closure-notice[hidden]{display:none}@media(max-width:600px){.closure-settings{padding:16px}.closure-range{grid-template-columns:1fr}.closure-range button{justify-self:start}.closure-settings .header-actions{flex-wrap:wrap}}

/* Quiet brand panel for sign-in and account recovery. */
.login-simple{grid-template-columns:minmax(0,.85fr) minmax(0,1fr)}
.login-simple .login-story{min-height:620px;padding:48px clamp(32px,5vw,88px);background:#f3f7fb;justify-content:flex-start;gap:0}
.login-simple .login-story:after{content:none}
.login-simple .login-story-copy{margin:auto 0;padding:64px 0 112px;max-width:420px}
.login-simple .login-story h1{font-size:clamp(32px,3.1vw,46px);font-weight:650;line-height:1.5;letter-spacing:.01em;margin:0 0 20px}
.login-simple .login-story-copy p{font-size:18px;line-height:1.9;margin:0}
@media(max-width:800px){
  .login-simple{grid-template-columns:minmax(0,1fr);min-height:0}
  .login-simple .login-story{min-height:0;padding:24px;gap:0}
  .login-simple .login-story>.if-brand{display:flex;margin:0}
  .login-simple .login-story-copy{display:none}
  .login-simple .login-panel{padding:32px 24px 40px}
}

/* Readable type and restrained corners in the authentication flow. */
.login-simple .login-box{max-width:440px}
.login-simple .login-box>h2{font-size:34px}
.login-simple .login-box>.eyebrow{font-size:13px;letter-spacing:1.5px}
.login-simple .subtitle,.login-simple .field,.login-simple .field input,.login-simple .primary{font-size:17px}
.login-simple .subtitle{line-height:1.8}
.login-simple .field input{min-height:52px;border-radius:5px}
.login-simple button{border-radius:5px}
.login-simple .primary{min-height:50px}
.login-simple .login-links,.login-simple .login-links button,.login-simple .password-wrap button,.login-simple .auth-help{font-size:15px}
.login-simple .login-links{gap:16px;flex-wrap:wrap}
.login-simple .footer-note,.login-simple .field small,.login-simple .login-error,.login-simple .mail-guide,.login-simple .mail-guide p{font-size:14px}
.login-simple .mail-guide,.login-simple .auth-success{border-radius:6px}
