:root{--font-ui:var(--font-outfit),Outfit,system-ui,sans-serif;--r-sm:var(--r-control);--r-md:var(--r-card);--bg-card:var(--bg-surface)}*{box-sizing:border-box}body,html{margin:0;padding:0}body{font-family:var(--font-ui);font-size:var(--fs-body);line-height:1.5;color:var(--text);background:var(--bg-canvas);-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}.shell{display:flex;height:100dvh;overflow:hidden}.shell-main{flex:1 1;min-width:0;height:100%;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-gutter:stable}@media (min-width:881px){body,html{height:100%;overflow:hidden}}html.ui-scroll-locked .shell-main{overflow-y:hidden}.wrap{max-width:1520px;margin:0 auto;padding:var(--sp-4) var(--sp-5) var(--sp-7)}@media (prefers-reduced-motion:no-preference){.wrap{animation:page-in var(--t-med) var(--ease)}@keyframes page-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}}.sidebar{height:100%;overflow-y:auto;width:var(--w-sidebar);flex-shrink:0;gap:var(--sp-5);padding:var(--sp-5) var(--sp-4);background:linear-gradient(180deg,var(--ink-900) 0,var(--ink-950) 100%);color:var(--ink-fg)}.brand-block,.sidebar{display:flex;flex-direction:column}.brand-block{gap:var(--sp-3);padding-bottom:var(--sp-4);border-bottom:1px solid var(--ink-line)}.brand-row{justify-content:space-between}.brand-row,.salon-name{display:flex;align-items:center;gap:var(--sp-3)}.salon-name{margin:0;padding:var(--sp-2) var(--sp-3);border:1px solid var(--ink-line);border-radius:var(--r-card);background:linear-gradient(135deg,rgba(87,201,159,.1),rgba(233,235,247,.03) 60%);color:var(--ink-fg);cursor:pointer;transition:background var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease)}.salon-mark{flex:none;width:32px;height:32px;display:grid;place-items:center;border-radius:9px;color:var(--ink-950);background:linear-gradient(140deg,var(--ink-glow) 0,#2fbd9c 100%);box-shadow:0 0 0 1px rgba(87,201,159,.25),0 4px 12px -4px rgba(87,201,159,.55)}.salon-text{flex:1 1;min-width:0;display:flex;flex-direction:column;line-height:1.25}.salon-text b{font-size:14px;font-weight:650;letter-spacing:-.1px}.salon-text b,.salon-text small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.salon-text small{font-size:10.5px;font-weight:500;letter-spacing:.04em;color:var(--ink-dim);transition:color var(--t-fast) var(--ease)}.salon-name>svg{flex:none;color:var(--ink-dim);transition:color var(--t-fast) var(--ease),transform var(--t-fast) var(--ease)}.salon-name:hover{border-color:rgba(87,201,159,.4);background:linear-gradient(135deg,rgba(87,201,159,.18),rgba(233,235,247,.06) 60%);box-shadow:0 6px 20px -12px rgba(87,201,159,.8)}.salon-name:hover .salon-text small{color:var(--ink-mut)}.salon-name:hover>svg{color:var(--ink-glow);transform:translate(1px,-1px)}.salon-name:focus-visible{outline:2px solid rgba(233,235,247,.5);outline-offset:1px}.salon-name.is-static{cursor:default}.brand{display:flex;align-items:center;padding:var(--sp-1) var(--sp-2);font-size:20px;font-weight:600;color:var(--ink-fg);letter-spacing:-.2px;--ui-wordmark-accent:var(--ink-glow)}.brand small{margin-left:var(--sp-2);font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-mut);border:1px solid var(--ink-line);border-radius:999px;padding:2px 8px}.side-nav{display:flex;flex-direction:column;gap:var(--sp-5);flex:1 1}.side-group>p{margin:0 0 var(--sp-2);padding:0 var(--sp-3);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-dim)}.side-group.is-system{margin-top:auto;padding-top:var(--sp-4);border-top:1px solid var(--ink-line)}.side-nav .soon,.side-nav a{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-control);font-size:var(--fs-body);font-weight:450;color:var(--ink-mut);transition:background var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}.side-nav a svg{width:18px;height:18px;flex:none;opacity:.85}.side-nav a:hover{background:rgba(233,235,247,.07);color:var(--ink-fg)}.side-nav a.active{background:rgba(233,235,247,.12);color:#ffffff;font-weight:600;box-shadow:inset 0 1px 0 rgba(255,255,255,.06)}.side-nav a.active svg{opacity:1;color:var(--ink-glow)}.side-nav a:focus-visible{outline:2px solid rgba(233,235,247,.5);outline-offset:1px}.side-nav .soon{cursor:default;opacity:.55;justify-content:space-between}.lang-switch{display:inline-flex;gap:2px;padding:2px;border:1px solid var(--ink-line);border-radius:999px;align-self:flex-start;margin:0 var(--sp-2)}.lang-switch button{font:inherit;font-size:11px;font-weight:600;letter-spacing:.04em;color:var(--ink-mut);background:none;border:0;border-radius:999px;padding:3px 10px;cursor:pointer;transition:background var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}.lang-switch button:hover{color:var(--ink-fg)}.lang-switch button.active{background:rgba(233,235,247,.14);color:#ffffff}.side-user{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);padding-top:var(--sp-4);border-top:1px solid var(--ink-line)}.side-user .who{flex:1 1 auto;min-width:0;font-size:var(--fs-caption);color:var(--ink-mut);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.side-user form{flex:none}.logout-btn{flex:none;white-space:nowrap;font:inherit;font-size:var(--fs-caption);font-weight:500;color:var(--ink-mut);background:none;border:1px solid var(--ink-line);border-radius:var(--r-control);padding:var(--sp-1) var(--sp-3);cursor:pointer;transition:background var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}.logout-btn:hover{background:rgba(233,235,247,.08);color:var(--ink-fg)}.bottom-nav{display:none}@media (max-width:880px){.shell{flex-direction:column;min-height:100dvh}.shell,.shell-main{height:auto;overflow:visible}.shell-main{overscroll-behavior:auto;padding-bottom:calc(64px + env(safe-area-inset-bottom))}.sidebar{position:-webkit-sticky;position:sticky;top:0;z-index:30;height:auto;width:100%;flex-direction:row;align-items:center;justify-content:space-between;gap:var(--sp-3);overflow:visible;padding:calc(var(--sp-3) + env(safe-area-inset-top)) calc(var(--sp-4) + env(safe-area-inset-right)) var(--sp-3) calc(var(--sp-4) + env(safe-area-inset-left))}.side-nav{display:none}.brand-block{flex:1 1;min-width:0;flex-direction:row;align-items:center;gap:var(--sp-3);padding-bottom:0;border-bottom:0}.brand{display:none}.brand-row{flex:none;order:2}.salon-name{flex:1 1;min-width:0;padding:6px var(--sp-2)}.salon-mark{width:28px;height:28px}.salon-text small{display:none}.lang-switch{margin:0}.side-user{flex:none;padding-top:0;border-top:0}.side-user .who{display:none}.wrap{padding:var(--sp-4) calc(var(--sp-4) + env(safe-area-inset-right)) var(--sp-6) calc(var(--sp-4) + env(safe-area-inset-left))}.bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:40;display:flex;justify-content:space-around;gap:2px;padding:6px calc(6px + env(safe-area-inset-left)) calc(6px + env(safe-area-inset-bottom)) calc(6px + env(safe-area-inset-right));background:linear-gradient(180deg,var(--ink-900) 0,var(--ink-950) 100%);border-top:1px solid var(--ink-line)}.bottom-nav a{flex:1 1;min-width:48px;min-height:48px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:4px 2px;border-radius:var(--r-control);color:var(--ink-dim);font-size:10.5px;font-weight:600;line-height:1.1;text-align:center;-webkit-tap-highlight-color:transparent;transition:color var(--t-fast) var(--ease),background var(--t-fast) var(--ease)}.bottom-nav a svg{width:22px;height:22px;flex:none}.bottom-nav a span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bottom-nav a.active{color:#ffffff;background:rgba(233,235,247,.1)}.bottom-nav a.active svg{color:var(--ink-glow)}.bottom-nav a:active{transform:scale(.96)}}@media (pointer:coarse){.icon-btn,.ui-btn,.ui-input,.ui-select{min-height:48px}.ui-btn-sm{min-height:40px}}.menu-list{margin-bottom:var(--sp-5)}.menu-list h2{margin:0 0 var(--sp-2);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-subtle)}.menu-row{display:flex;align-items:center;gap:var(--sp-3);min-height:56px;padding:0 var(--sp-4);border:1px solid var(--border);border-bottom:0;background:var(--bg-surface);color:var(--text);font-weight:550}.menu-row:first-of-type{border-radius:var(--r-card) var(--r-card) 0 0}.menu-row:last-of-type{border-bottom:1px solid var(--border);border-radius:0 0 var(--r-card) var(--r-card)}.menu-row:only-of-type{border-radius:var(--r-card)}.menu-row:active{background:var(--bg-inset)}.menu-row-ico{flex:none;width:36px;height:36px;display:grid;place-items:center;border-radius:10px;background:var(--accent-soft);color:var(--accent)}.menu-row-label{flex:1 1}.menu-row>svg{color:var(--text-subtle)}.pwa-bar{position:fixed;z-index:80;left:50%;transform:translateX(-50%);top:calc(var(--sp-4) + env(safe-area-inset-top));display:flex;align-items:center;gap:var(--sp-3);max-width:calc(100vw - 2 * var(--sp-4));padding:var(--sp-2) var(--sp-2) var(--sp-2) var(--sp-4);border-radius:999px;background:var(--ink-950);color:var(--ink-fg);font-size:var(--fs-caption);font-weight:550;box-shadow:var(--shadow-lg)}.pwa-bar svg{flex:none;color:var(--ink-glow)}.pwa-bar-btn{font:inherit;font-weight:650;min-height:32px;padding:0 var(--sp-3);border:0;border-radius:999px;background:var(--ink-glow);color:var(--ink-950);cursor:pointer}.pwa-install{position:fixed;z-index:80;left:var(--sp-4);right:var(--sp-4);bottom:calc(var(--sp-4) + env(safe-area-inset-bottom));display:flex;align-items:center;gap:var(--sp-3);max-width:460px;margin:0 auto;padding:var(--sp-3) var(--sp-4);border:1px solid var(--border);border-radius:var(--r-card);background:var(--bg-surface);box-shadow:var(--shadow-lg)}.pwa-install-ico{flex:none;width:38px;height:38px;display:grid;place-items:center;border-radius:11px;background:var(--accent-soft);color:var(--accent)}.pwa-install-text{flex:1 1;min-width:0;display:flex;flex-direction:column;line-height:1.3}.pwa-install-text b{font-size:var(--fs-body);font-weight:650}.pwa-install-text small{font-size:var(--fs-caption);color:var(--text-muted)}.pwa-install-x{flex:none;width:32px;height:32px;display:grid;place-items:center;border:0;border-radius:50%;background:none;color:var(--text-subtle);cursor:pointer}.pwa-install-x:hover{background:var(--bg-inset);color:var(--text)}@media (max-width:880px){.pwa-install{bottom:calc(70px + env(safe-area-inset-bottom))}}.page-head{position:-webkit-sticky;position:sticky;top:0;z-index:30;display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:var(--sp-3) var(--sp-4);margin:0 calc(-1 * var(--sp-5)) var(--sp-5);padding:var(--sp-3) var(--sp-5) var(--sp-4);border-bottom:1px solid var(--border);background:var(--bg-canvas);background:color-mix(in srgb,var(--bg-canvas) 78%,transparent);-webkit-backdrop-filter:saturate(180%) blur(14px);backdrop-filter:saturate(180%) blur(14px)}@supports not ((-webkit-backdrop-filter:blur(2px)) or (backdrop-filter:blur(2px))){.page-head{background:var(--bg-canvas)}}@supports (animation-timeline:scroll()){.page-head{animation:page-head-stick linear both;animation-timeline:scroll(nearest);animation-range:0 32px}@keyframes page-head-stick{0%{box-shadow:0 0 0 0 rgba(16,21,43,0)}to{box-shadow:0 10px 24px -18px rgba(16,21,43,.65)}}}.page-head-text{min-width:0}.page-head-actions{display:flex;align-items:center;gap:var(--sp-2)}.page-head h1{margin:0 0 var(--sp-1);font-size:var(--fs-page);font-weight:600;letter-spacing:-.4px}.page-head p{margin:0;color:var(--text-muted);max-width:60ch}@media (max-width:880px){.page-head{position:static;margin-inline:calc(-1 * var(--sp-4));padding:var(--sp-2) var(--sp-4) var(--sp-3);backdrop-filter:none;-webkit-backdrop-filter:none;animation:none}.page-head h1{font-size:21px}.page-head p{display:none}}.panel{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-card);padding:var(--sp-5);margin-bottom:var(--sp-5);box-shadow:var(--shadow-sm)}.plan-not{margin:var(--sp-3) 0 0;color:var(--text-subtle)}.chip,.plan-not{font-size:var(--fs-caption)}.chip{display:inline-flex;align-items:center;padding:2px var(--sp-2);border-radius:999px;font-weight:550}.chip-ok{background:var(--ok-bg);color:var(--ok)}.chip-gold{background:var(--warn-bg);color:var(--warn)}.chip-danger{background:var(--danger-bg);color:var(--danger)}.chip-mute{background:var(--bg-inset);color:var(--text-muted)}.login-wrap{position:relative;min-height:100dvh;display:grid;place-items:center;padding:var(--sp-5);background:radial-gradient(90vh 90vh at 85% -20%,rgba(87,201,159,.16),transparent 60%),radial-gradient(70vh 70vh at -10% 110%,rgba(87,201,159,.08),transparent 55%),linear-gradient(160deg,var(--ink-900),var(--ink-950))}.login-lang{position:absolute;top:calc(var(--sp-4) + env(safe-area-inset-top));right:calc(var(--sp-4) + env(safe-area-inset-right));margin:0;z-index:1}.auth-split{display:grid;grid-template-columns:1fr 1fr;min-height:100dvh}.auth-hero{display:flex;flex-direction:column;justify-content:space-between;gap:var(--sp-6);padding:clamp(28px,4vw,56px);color:var(--ink-fg);background:radial-gradient(90vh 90vh at 85% -20%,rgba(87,201,159,.16),transparent 60%),radial-gradient(70vh 70vh at -10% 110%,rgba(87,201,159,.08),transparent 55%),linear-gradient(160deg,var(--ink-900),var(--ink-950))}.auth-hero-brand{font-size:24px;font-weight:600;letter-spacing:-.2px;--ui-wordmark-accent:var(--ink-glow)}.auth-hero-body h2{margin:0 0 var(--sp-2);font-size:clamp(26px,2.6vw,34px);font-weight:600;letter-spacing:-.5px;line-height:1.15}.auth-hero-sub{margin:0 0 var(--sp-6);max-width:44ch;color:var(--ink-mut);line-height:1.55}.auth-hero-list{display:flex;flex-direction:column;gap:var(--sp-4);margin:0;padding:0;list-style:none}.auth-hero-list li{display:flex;align-items:flex-start;gap:var(--sp-3)}.auth-hero-ico{display:grid;place-items:center;flex:none;width:38px;height:38px;border:1px solid var(--ink-line);border-radius:var(--r-control);background:rgba(87,201,159,.1);color:var(--ink-glow)}.auth-hero-list b{display:block;margin-bottom:2px;font-weight:600}.auth-hero-list small{display:block;max-width:40ch;line-height:1.5}.auth-hero-foot,.auth-hero-list small{color:var(--ink-mut);font-size:var(--fs-caption)}.auth-hero-foot{margin:0}.auth-pane{position:relative;display:grid;place-items:center;padding:var(--sp-6);background:var(--bg-canvas)}@media (min-width:901px){.auth-split .login-card h1{display:none}.auth-pane .lang-switch{background:var(--bg-surface);border:1px solid var(--border)}.auth-pane .lang-switch button{color:var(--text-muted)}.auth-pane .lang-switch button.active{background:var(--ink-900);color:#fff}}@media (max-width:900px){.auth-split{grid-template-columns:1fr}.auth-hero{display:none}.auth-pane{background:radial-gradient(90vh 90vh at 85% -20%,rgba(87,201,159,.16),transparent 60%),linear-gradient(160deg,var(--ink-900),var(--ink-950))}}.login-card{width:100%;max-width:400px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-card);padding:var(--sp-6);box-shadow:var(--shadow-lg)}@media (prefers-reduced-motion:no-preference){.login-card{animation:login-in .35s var(--ease)}@keyframes login-in{0%{opacity:0;transform:translateY(10px) scale(.99)}to{opacity:1;transform:none}}}.login-card h1{margin:0 0 var(--sp-1);font-size:var(--fs-page);font-weight:600;letter-spacing:-.3px;--ui-wordmark-accent:var(--accent)}.login-card>p{margin:0 0 var(--sp-5);color:var(--text-muted)}.login-error{margin:0 0 var(--sp-4);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-control);background:var(--danger-bg);color:var(--danger);font-size:var(--fs-body);font-weight:550}.hours-edit{display:flex;flex-direction:column;gap:var(--sp-2)}.hours-edit-row{display:grid;grid-template-columns:minmax(96px,180px) 132px 148px 148px;grid-gap:var(--sp-3);gap:var(--sp-3);align-items:center}.hours-edit-row .day{font-weight:500}.hours-edit-row.has-error .ui-picker{border-color:var(--danger)}.hours-error{grid-column:2/-1;font-size:var(--fs-caption);font-weight:600;color:var(--danger)}.hours-edit-row .ui-picker:disabled{opacity:.45}@media (max-width:640px){.hours-edit-row{grid-template-columns:1fr 1fr}.hours-edit-row .day{grid-column:1/-1;margin-top:var(--sp-2)}.hours-edit-row .ui-toggle-wrap{grid-column:1/-1}}.hours-row{display:flex;justify-content:space-between;gap:var(--sp-4);padding:var(--sp-2) 0;border-bottom:1px solid var(--border);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.hours-row:last-child{border-bottom:0}.hours-row .day{color:var(--text-muted)}.hours-row .closed{color:var(--text-subtle)}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-gap:var(--sp-4);gap:var(--sp-4);margin-bottom:var(--sp-5)}.metric{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-card);padding:var(--sp-4) var(--sp-5);display:flex;flex-direction:column;gap:var(--sp-2);box-shadow:var(--shadow-sm)}.metric-top{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3)}.metric-label{font-size:var(--fs-caption);font-weight:500;color:var(--text-muted)}.metric-ico{width:34px;height:34px;flex:none;display:grid;place-items:center;border-radius:10px;background:var(--accent-soft);color:var(--accent)}.metric-ico svg{width:18px;height:18px}.metric-value{font-size:var(--fs-metric);font-weight:600;letter-spacing:-.6px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:1.05}.metric-hint{font-size:var(--fs-caption);color:var(--text-subtle)}.progress{height:5px;border-radius:999px;background:var(--bg-inset);overflow:hidden;margin:var(--sp-2) 0 var(--sp-3)}.progress i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent),#159c77);transition:width var(--t-med) var(--ease)}.hero{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-5);padding:var(--sp-6);margin-bottom:var(--sp-5);border-radius:var(--r-card);background:radial-gradient(120% 160% at 100% 0,rgba(87,201,159,.28) 0,rgba(87,201,159,0) 55%),linear-gradient(135deg,var(--ink-900) 0,var(--ink-950) 100%);color:var(--ink-fg)}.hero-eyebrow{margin:0 0 var(--sp-2);font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-glow)}.hero h1{margin:0;font-size:30px;font-weight:600;letter-spacing:-.7px;line-height:1.15}.hero-sub{margin:var(--sp-2) 0 0;font-size:var(--fs-body);color:var(--ink-mut)}.hero-date{flex:none;padding:var(--sp-2) var(--sp-4);border:1px solid var(--ink-line);border-radius:999px;font-size:var(--fs-caption);font-weight:500;color:var(--ink-fg);background:rgba(233,235,247,.06)}.section-title{margin:var(--sp-6) 0 var(--sp-3);font-size:var(--fs-section);font-weight:600}.quick-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));grid-gap:var(--sp-3);gap:var(--sp-3);margin-bottom:var(--sp-6)}.quick-tile{display:flex;flex-direction:column;align-items:center;gap:var(--sp-3);padding:var(--sp-4) var(--sp-2);border:1px solid var(--border);border-radius:var(--r-card);background:var(--bg-surface);box-shadow:var(--shadow-sm);font-size:var(--fs-caption);font-weight:600;color:var(--text);text-align:center;transition:box-shadow var(--t-fast) var(--ease),transform var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease)}.quick-tile:hover{box-shadow:var(--shadow-md);border-color:var(--border-strong);transform:translateY(-2px)}.quick-tile:active{transform:translateY(0)}.quick-ico{width:44px;height:44px;display:grid;place-items:center;border-radius:50%;color:var(--on-accent)}.quick-ico.tone-a{background:#0b4c3c}.quick-ico.tone-b{background:var(--accent)}.quick-ico.tone-c{background:#12836a}.quick-ico.tone-d{background:#169a7d}.quick-ico.tone-e{background:#1fae8e}.quick-ico.tone-f{background:#2fbd9c}.quick-ico.tone-g{background:#5368db}.quick-ico.tone-h{background:#12162f}.board{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:var(--sp-4);gap:var(--sp-4);align-items:start}.board-col{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-card);box-shadow:var(--shadow-sm);overflow:hidden}.board-head{justify-content:space-between;padding:var(--sp-4) var(--sp-4) var(--sp-3);border-bottom:1px solid var(--border)}.board-head,.board-head h2{display:flex;align-items:center;gap:var(--sp-2)}.board-head h2{margin:0;font-size:var(--fs-body);font-weight:650}.board-head h2 svg{flex:none;color:var(--accent)}.board-badge{min-width:20px;padding:0 6px;border-radius:999px;background:var(--bg-inset);font-size:11px;font-weight:600;text-align:center;color:var(--text-muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.board-all{flex:none;font-weight:600;color:var(--accent)}.board-all,.board-empty{font-size:var(--fs-caption)}.board-empty{margin:0;padding:var(--sp-5) var(--sp-4);color:var(--text-subtle)}.board-list{list-style:none;margin:0;padding:0}.board-list li{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border)}.board-list li:last-child{border-bottom:0}.board-when{flex:none;display:flex;flex-direction:column;min-width:52px}.board-when b{font-size:var(--fs-body);font-weight:650;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.board-what small,.board-when small{font-size:11px;color:var(--text-subtle)}.board-what{flex:1 1;min-width:0;display:flex;flex-direction:column}.board-what b{font-weight:550}.board-what b,.board-what small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.board-status{flex:none;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;background:var(--bg-inset);color:var(--text-muted)}.board-status.st-completed{background:var(--ok-bg);color:var(--ok)}.board-status.st-cancelled,.board-status.st-no_show{background:var(--danger-bg);color:var(--danger)}.board-status.st-booked{background:var(--warn-bg);color:var(--warn)}.setup-strip{margin-top:var(--sp-6);padding:var(--sp-5);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-card);box-shadow:var(--shadow-sm)}.setup-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3)}.setup-head h2{margin:0;font-size:var(--fs-section);font-weight:600}.setup-rows{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));grid-gap:0 var(--sp-4);gap:0 var(--sp-4)}.home-muted{margin:0 0 var(--sp-4);color:var(--text-muted);line-height:1.55}.check-row{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-1);border-radius:var(--r-control);color:var(--text)}.check-row:hover{background:var(--bg-inset)}.check-dot{width:18px;height:18px;flex-shrink:0;border-radius:50%;border:1.5px solid var(--border-strong)}.check-dot.done{border-color:var(--ok);background:var(--ok);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M4 8.2l2.6 2.6L12 5.4' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-size:12px;background-position:50%;background-repeat:no-repeat}.check-label{flex:1 1}.check-label.done{color:var(--text-muted)}.check-go{color:var(--text-subtle);font-size:var(--fs-section)}.list-scroll{overflow-x:auto;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-card);box-shadow:var(--shadow-sm)}.list-table{width:100%;border-collapse:collapse;font-size:var(--fs-body)}.list-table.is-fixed{table-layout:fixed}.list-table td{padding:var(--sp-3) var(--sp-4);border-top:1px solid var(--border);vertical-align:middle}.list-table tr:first-child td{border-top:0}.list-table thead th{padding:var(--sp-2) var(--sp-4);border-bottom:1px solid var(--border);background:var(--bg-inset);text-align:left;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-subtle);white-space:nowrap}.list-table thead+tbody tr:first-child td{border-top:0}.group-row>td,.group-row>th{padding:var(--sp-3) var(--sp-4);border-top:1px solid var(--border);background:var(--bg-inset);vertical-align:middle}.group-row>th{text-align:left;font-size:var(--fs-input);font-weight:600}.group-row:first-child>td,.group-row:first-child>th{border-top:0}.list-table tbody tr.group-row:hover>td,.list-table tbody tr.group-row:hover>th{background:var(--bg-inset)}.group-empty-row td{color:var(--text-subtle);font-size:var(--fs-caption)}.list-table tr{transition:background var(--t-fast) var(--ease)}.list-table tbody tr:hover{background:var(--bg-canvas)}.list-name{overflow-wrap:anywhere}.list-name b{font-weight:600}.list-name p{margin:2px 0 0;font-size:var(--fs-caption);max-width:48ch}.list-name p,.list-num{color:var(--text-muted)}.list-num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.list-actions{text-align:right}.row-actions{display:inline-flex;gap:var(--sp-2);align-items:center}.row-actions form{display:inline-flex;gap:2px}.icon-btn{display:inline-grid;place-items:center;width:26px;height:26px;border:1px solid var(--border-strong);border-radius:var(--r-control);background:var(--bg-surface);color:var(--text-muted);cursor:pointer;transition:background var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}.icon-btn:hover{background:var(--bg-inset);color:var(--text)}.icon-btn svg{width:14px;height:14px}.empty-action{margin-top:var(--sp-4)}.empty-state{text-align:left}.empty-title{margin:0 0 var(--sp-2);font-size:var(--fs-section);font-weight:600}.empty-state .home-muted{margin-bottom:0;max-width:60ch}@media (max-width:1080px){.board{grid-template-columns:1fr}}@media (max-width:880px){.stat-grid{grid-template-columns:1fr 1fr}.hero{flex-direction:column;padding:var(--sp-5)}.hero h1{font-size:24px}}.check-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));grid-gap:8px 14px;gap:8px 14px}.check-list{display:flex;flex-direction:column;gap:2px;max-height:420px;overflow-y:auto}.emp-state{margin:0 0 var(--sp-4)}.check-item{display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--text);cursor:pointer;padding:6px 8px;border-radius:var(--r-control);transition:background var(--t-fast) var(--ease)}.check-item:hover{background:var(--bg-inset)}.check-item input{accent-color:var(--accent);width:15px;height:15px;flex:none}.notice-denied{background:var(--warn-bg);border:1px solid var(--warn);color:var(--text);border-radius:var(--r-control);padding:10px 14px;font-size:13.5px;margin-bottom:16px}.clients-search{display:flex;gap:10px;margin-bottom:14px}.search-box{flex:1 1;max-width:420px;display:flex;align-items:center;gap:8px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-control);padding:0 12px;height:var(--h-input);color:var(--text-subtle);transition:border-color var(--t-fast) var(--ease)}.search-box:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--focus-ring)}.search-box input{flex:1 1;border:0;outline:0;background:transparent;font:inherit;font-size:var(--fs-body);color:var(--text);height:100%}.tag-bar{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.tag-pill{font-size:var(--fs-caption);padding:5px 12px;border-radius:999px;border:1px solid var(--border);background:var(--bg-surface);color:var(--text-muted);text-decoration:none;transition:all var(--t-fast) var(--ease)}.tag-pill:hover{border-color:var(--border-strong);color:var(--text)}.tag-pill.active{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.pinned-alert{display:flex;align-items:center;gap:8px;background:var(--warn-bg);border:1px solid var(--warn);color:var(--text);border-radius:var(--r-control);padding:10px 14px;font-size:13.5px;margin-bottom:16px}.pinned-alert svg{color:var(--warn);flex:none}.alert-ico{display:inline-flex;vertical-align:-2px;margin-left:6px;color:var(--warn)}.alert-ico.is-cake{color:var(--accent)}.seg-bar{margin-bottom:10px}.tag-count{display:inline-block;margin-left:6px;padding:0 6px;border-radius:999px;background:color-mix(in srgb,currentColor 12%,transparent);font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.tag-pill.seg-at_risk:not(.active){border-color:var(--warn);color:var(--warn)}.tag-pill.seg-lost:not(.active){border-color:var(--danger);color:var(--danger)}.cell-ok{color:var(--ok)}.cell-warn{color:var(--warn);font-size:var(--fs-caption)}.cell-mute,.fact-sub{color:var(--text-subtle)}.fact-sub{margin-left:4px;font-size:var(--fs-caption);font-weight:400}.list-num .fact-sub{display:block;margin-left:0;margin-top:2px;line-height:1.3}.client-strip .member-facts{flex:1 1}.offer-preview{margin:var(--sp-3) 0 var(--sp-4);padding:var(--sp-3) var(--sp-4);border:1px solid var(--accent);border-radius:var(--r-card);background:var(--accent-soft)}.offer-preview-label{display:block;margin-bottom:2px;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-subtle)}.offer-preview p{margin:0;display:flex;align-items:baseline;gap:var(--sp-2);flex-wrap:wrap}.offer-preview s{color:var(--text-subtle)}.offer-preview b{font-size:var(--fs-section);font-weight:700;color:var(--text)}.offer-preview-save{font-size:var(--fs-caption);font-weight:600;color:var(--ok)}.fin-tiles{display:grid;grid-template-columns:1fr 1fr 1.4fr;grid-gap:var(--sp-4);gap:var(--sp-4);margin-bottom:var(--sp-5)}@media (max-width:880px){.fin-tiles{grid-template-columns:1fr}}.fin-tile{display:flex;flex-direction:column;gap:2px;padding:var(--sp-4);border:1px solid var(--border);border-radius:var(--r-card);background:var(--bg-surface);box-shadow:var(--shadow-sm)}.fin-tile-label{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-subtle)}.fin-tile b{font-size:26px;font-weight:700;letter-spacing:-.4px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--text)}.fin-tile-sub{font-size:var(--fs-caption);color:var(--text-muted)}.fin-tile-sub.is-good{color:var(--ok)}.fin-tile-sub.is-bad{color:var(--danger)}.fin-tile.is-hero{border-color:var(--accent);background:var(--accent-soft)}.fin-tile.is-hero b{font-size:34px}.fin-tile.is-hero.is-loss{border-color:var(--danger);background:var(--danger-bg)}.fin-tile.is-hero.is-loss b{color:var(--danger)}.fin-total>td{border-top:2px solid var(--border-strong,var(--border));background:var(--bg-inset)}.fin-inline-total{font-size:var(--fs-section);font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.sec-head-row{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-4);flex-wrap:wrap;margin-bottom:var(--sp-3)}.sec-head-row .sec-desc,.sec-head-row .sec-title{margin-bottom:2px}.month-picker select{height:var(--h-control,36px);padding:0 var(--sp-3);border:1px solid var(--border);border-radius:var(--r-control);background:var(--bg-surface);font:inherit;font-size:var(--fs-caption);font-weight:600;color:var(--text);cursor:pointer}.month-picker select:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.note-feed{display:flex;flex-direction:column;gap:12px;margin-bottom:24px}.note-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-card);padding:14px 16px;box-shadow:var(--shadow-sm)}.note-card header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.note-card time{font-size:var(--fs-caption);color:var(--text-subtle)}.note-card p{font-size:var(--fs-body);color:var(--text);white-space:pre-wrap}.note-card img{margin-top:10px;max-width:320px;width:100%;border-radius:var(--r-control);border:1px solid var(--border);display:block}.file-input{font-size:var(--fs-body);color:var(--text-muted)}.file-input::-webkit-file-upload-button{margin-right:10px;border:1px solid var(--border-strong);background:var(--bg-surface);color:var(--text);border-radius:var(--r-control);height:var(--h-btn-sm);padding:0 14px;font:inherit;font-size:13px;cursor:pointer}.file-input::file-selector-button{margin-right:10px;border:1px solid var(--border-strong);background:var(--bg-surface);color:var(--text);border-radius:var(--r-control);height:var(--h-btn-sm);padding:0 14px;font:inherit;font-size:13px;cursor:pointer}.day-nav{margin:4px 0 14px}.day-nav,.day-nav h2{display:flex;align-items:center;gap:10px}.day-nav h2{font-size:var(--fs-section);font-weight:600;color:var(--text)}.day-nav-fill{flex:1 1}.time-end{color:var(--text-subtle);font-size:var(--fs-caption)}.appt-detail-meta{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-caption)}.appt-detail-meta,.appt-detail-note{margin:0 0 var(--sp-3);color:var(--text-muted)}.appt-detail .row-actions{margin-top:var(--sp-4);flex-wrap:wrap}.row-muted .list-name b,.row-muted .list-name p,.row-muted .list-num{opacity:.5}.cancel-why{color:var(--text-subtle);margin-top:2px}.cancel-why,.saved-note{font-size:var(--fs-caption)}.saved-note{margin:0 0 var(--sp-4);font-weight:600;color:var(--ok)}.cal{margin-top:var(--sp-2)}.cal-notes{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-bottom:var(--sp-3)}.cal-note{font-size:var(--fs-caption);padding:4px 10px;border-radius:999px;background:var(--bg-inset);color:var(--text-muted);border:1px solid var(--border)}.cal-note.is-warn{background:var(--warn-bg);border-color:transparent;color:var(--warn)}.cal-note.is-toggle{cursor:pointer;font-family:inherit}.cal-note.is-toggle:hover{border-color:var(--border-strong)}.cal-none{color:var(--text-muted);padding:var(--sp-5) 0}.staff-strip{display:flex;gap:var(--sp-2);overflow-x:auto;overscroll-behavior-x:contain;padding-bottom:var(--sp-2);margin-bottom:var(--sp-3);scrollbar-width:thin}.staff-chip{flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:6px 10px 6px 12px;border:1px solid var(--border);border-radius:999px;background:var(--bg-surface);color:var(--text);font:inherit;font-size:13px;line-height:1.2;cursor:pointer;white-space:nowrap;transition:border-color .12s,background .12s}.staff-chip:hover{border-color:var(--border-strong)}.staff-chip:active{transform:translateY(1px)}.staff-chip i{font-style:normal;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:12px;min-width:1.6em;padding:1px 5px;border-radius:999px;background:var(--accent-soft);color:var(--text-muted);text-align:center}.staff-chip.is-on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.staff-chip.is-on i{background:rgba(255,255,255,.22);color:inherit}.staff-chip.is-off{opacity:.55}.staff-chip.is-off.is-on{opacity:1}.cal-scroll{overflow-x:auto;border:1px solid var(--border);border-radius:var(--r-card);background:var(--bg-surface)}.cal-inner{min-width:calc(72px + var(--cal-cols) * 150px)}.cal-body,.cal-head{display:grid;grid-template-columns:72px repeat(var(--cal-cols),minmax(150px,1fr))}.cal-head{position:-webkit-sticky;position:sticky;top:0;z-index:2;background:var(--bg-surface);border-bottom:1px solid var(--border)}.cal-colhead,.cal-corner{border-right:1px solid var(--border)}.cal-colhead{padding:10px 12px;display:grid;grid-gap:2px;gap:2px}.cal-colhead:last-child{border-right:0}.cal-colhead b{font-size:13px;font-weight:600;color:var(--text)}.cal-colhead span{font-size:var(--fs-caption)}.cal-colhead span,.cal-colhead.is-off b,.cal-colhead.is-off span{color:var(--text-subtle)}.cal-body{position:relative;height:var(--cal-h)}.cal-gutter{position:relative;border-right:1px solid var(--border);background:var(--bg-canvas)}.cal-tick{position:absolute;right:8px;transform:translateY(-50%);font-size:var(--fs-caption);color:var(--text-subtle);white-space:nowrap}.cal-tick:first-child{transform:none}.cal-tick:last-child{transform:translateY(-100%)}.cal-col{position:relative;border-right:1px solid var(--border);background:var(--bg-inset);overflow:hidden}.cal-col:last-child{border-right:0}.cal-shift{position:absolute;left:0;right:0;background:var(--bg-surface)}.cal-col.is-off .cal-shift{background:repeating-linear-gradient(45deg,var(--bg-surface),var(--bg-surface) 6px,var(--bg-inset) 6px,var(--bg-inset) 12px)}.cal-line{border-top:1px solid var(--border)}.cal-line,.cal-now{position:absolute;left:0;right:0}.cal-now{border-top:2px solid var(--danger);z-index:3;pointer-events:none}.cal-appt{position:absolute;padding:0;border:0;background:transparent;text-align:left;cursor:pointer;font-family:inherit;z-index:1;border-radius:8px;overflow:hidden;display:block}.cal-appt:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.cal-seg{position:absolute;left:0;right:0}.cal-seg.is-work{background:var(--accent-soft);border-left:3px solid var(--accent)}.cal-seg.is-wait{background:var(--bg-surface);border-left:3px dashed var(--border-strong)}.cal-seg.is-buffer{background:repeating-linear-gradient(45deg,var(--bg-inset),var(--bg-inset) 4px,var(--bg-surface) 4px,var(--bg-surface) 8px);border-left:3px solid var(--border-strong)}.cal-appt-txt{position:absolute;inset:0 0 auto 0;display:block;padding:4px 6px 4px 9px;pointer-events:none}.cal-appt-txt b{display:flex;align-items:center;gap:4px;font-size:12px;font-weight:600;color:var(--text);line-height:1.25}.cal-appt-txt>span{display:block;font-size:11px;color:var(--text-muted);line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-col{container-type:inline-size}@container (min-width: 340px){.cal-appt-txt{display:flex;align-items:baseline;gap:10px}.cal-appt-txt b{flex:0 0 auto}.cal-appt-txt>span{flex:1 1 auto}}.cal-appt.is-split .cal-appt-txt{padding-right:4px}.cal-appt{border-right:2px solid transparent}.cal-appt.is-arrived .cal-seg.is-work,.cal-appt.is-confirmed .cal-seg.is-work{border-left-color:var(--warn)}.cal-appt.is-completed .cal-seg.is-work,.cal-appt.is-started .cal-seg.is-work{border-left-color:var(--ok)}.cal-appt.is-cancelled,.cal-appt.is-no_show{opacity:.55}.cal-appt.is-cancelled .cal-seg.is-work,.cal-appt.is-no_show .cal-seg.is-work{background:var(--danger-bg);border-left-color:var(--danger)}.inline-submit .ui-btn{height:var(--h-btn-sm);padding:0 12px;font-size:13px}.tab-form{display:block}.col-2,.col-75-25{display:grid;grid-gap:var(--sp-5);gap:var(--sp-5);align-items:start}.col-2{grid-template-columns:1fr 1fr}.col-75-25{grid-template-columns:3fr 1fr}.col-75-25 .col-side .social-grid,.col-75-25 .col-side .ui-field{max-width:none}.col-75-25 .col-side .social-grid{grid-template-columns:1fr}@media (max-width:1100px){.col-2,.col-75-25{grid-template-columns:1fr}}.tab-footer{position:-webkit-sticky;position:sticky;bottom:0;z-index:5;margin-top:var(--sp-4);padding:var(--sp-3) 0;background:linear-gradient(180deg,rgba(246,247,244,0) 0,var(--bg-canvas) 40%)}.tab-footer.is-inline{position:static;background:none}.sec-title{margin:0 0 var(--sp-1);font-size:var(--fs-section);font-weight:650}.sec-desc{margin:0 0 var(--sp-4);color:var(--text-muted);max-width:68ch}.hint-line,.sec-desc{font-size:var(--fs-caption)}.hint-line{margin:var(--sp-2) 0 0;color:var(--text-subtle)}.notice-warn{display:flex;align-items:flex-start;gap:var(--sp-2);margin:var(--sp-3) 0 0;padding:var(--sp-3) var(--sp-4);border-radius:var(--r-control);background:var(--warn-bg);color:var(--warn);font-size:var(--fs-caption);font-weight:500}.notice-warn svg{flex:none;margin-top:1px}.pick-group{margin-bottom:var(--sp-5)}.pick-name{display:flex;align-items:baseline;flex-wrap:wrap;gap:var(--sp-2)}.pick-primary{display:inline-flex;align-items:center;padding:1px var(--sp-2);border-radius:999px;background:var(--accent);color:var(--on-accent);font-size:10px;font-style:normal;font-weight:650;letter-spacing:.04em;text-transform:uppercase;line-height:1.5;white-space:nowrap}.pick-group h3{margin:0 0 var(--sp-2);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-subtle)}.pick-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));grid-gap:var(--sp-2);gap:var(--sp-2);margin-bottom:var(--sp-4)}.pick-grid.is-compact{grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}.pick{display:flex;align-items:center;gap:var(--sp-3);min-height:48px;padding:var(--sp-2) var(--sp-3);border:1px solid var(--border);border-radius:var(--r-control);background:var(--bg-surface);font-size:13.5px;cursor:pointer;transition:border-color var(--t-fast) var(--ease),background var(--t-fast) var(--ease)}.pick:hover{border-color:var(--border-strong)}.pick input[type=checkbox]{flex:none;width:18px;height:18px;margin:0;accent-color:var(--accent);cursor:pointer}.pick:has(input:checked){border-color:var(--accent);background:var(--accent-soft)}.pick-label{display:flex;flex-direction:column;gap:2px;line-height:1.35}.pick-label small{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--warn)}.social-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));grid-gap:0 var(--sp-4);gap:0 var(--sp-4)}.social-grid .ui-field{max-width:none}.soc-label{display:inline-flex;align-items:center;gap:var(--sp-2)}.soc-label svg{flex:none;color:var(--text-muted)}.addr-search{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-bottom:var(--sp-1)}.addr-search .search-box{flex:1 1;min-width:240px}.addr-hits{list-style:none;margin:var(--sp-3) 0 0;padding:0;border:1px solid var(--border);border-radius:var(--r-control);overflow:hidden}.addr-hits li+li{border-top:1px solid var(--border)}.addr-hits button{width:100%;min-height:48px;padding:var(--sp-2) var(--sp-4);border:0;background:var(--bg-surface);font:inherit;font-size:13.5px;color:var(--text);text-align:left;cursor:pointer}.addr-hits button:hover{background:var(--accent-soft)}.address-map{height:320px;margin-top:var(--sp-4);border:1px solid var(--border);border-radius:var(--r-card);overflow:hidden;background:var(--bg-inset)}.address-map.is-loading{display:grid;place-items:center}.address-map .leaflet-bottom,.address-map .leaflet-pane,.address-map .leaflet-top{z-index:1}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));grid-gap:var(--sp-4);gap:var(--sp-4)}.photo-card{position:relative;margin:0;border:1px solid var(--border);border-radius:var(--r-card);background:var(--bg-surface);overflow:hidden;box-shadow:var(--shadow-sm)}.photo-card img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;background:var(--bg-inset)}.photo-card>.chip{position:absolute;top:var(--sp-2);left:var(--sp-2)}.photo-card figcaption{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3) var(--sp-3);font-size:var(--fs-caption);color:var(--text-muted)}.photo-card figcaption .row-actions{justify-content:flex-end}.photo-card figcaption>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.photo-upload{margin-bottom:var(--sp-5)}.dropzone{display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);padding:var(--sp-6) var(--sp-4);border:1.5px dashed var(--border-strong);border-radius:var(--r-card);background:var(--bg-canvas);color:var(--text-muted);text-align:center;transition:border-color var(--t-fast) ease,background var(--t-fast) ease}.dropzone.is-over{border-color:var(--accent);background:var(--accent-soft)}.dropzone.is-invalid{border-color:var(--danger)}.dropzone p{margin:0;font-size:var(--fs-body);font-weight:550;color:var(--text)}.dropzone small{font-size:var(--fs-caption);color:var(--text-subtle)}.upload-preview{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));grid-gap:var(--sp-3);gap:var(--sp-3);margin:var(--sp-3) 0 0;padding:0;list-style:none}.upload-preview li{display:flex;flex-direction:column;gap:2px;font-size:var(--fs-caption);color:var(--text-muted)}.upload-preview img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:var(--r-control);border:1px solid var(--border);background:var(--bg-inset)}.upload-preview span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text)}.upload-preview small{color:var(--text-subtle)}.notice-info{display:flex;align-items:flex-start;gap:var(--sp-2);margin:0 0 var(--sp-4);padding:var(--sp-3) var(--sp-4);border-radius:var(--r-control);background:var(--accent-soft);color:var(--accent);font-size:var(--fs-caption);font-weight:500}.notice-info svg{flex:none;margin-top:1px}.photo-card.is-cover{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent),var(--shadow-sm)}.cover-flag{position:absolute;top:var(--sp-2);left:var(--sp-2);display:inline-flex;align-items:center;gap:4px;padding:3px var(--sp-2);border-radius:999px;background:var(--accent);color:var(--on-accent);font-size:11px;font-weight:650;letter-spacing:.02em}.photo-alt{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filter-bar{display:flex;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-4)}.filter-bar .search-box{flex:1 1;min-width:0}.filter-pick{width:200px}.filter-count{white-space:nowrap}.filter-count,.menu-count{font-size:var(--fs-caption);color:var(--text-subtle)}.menu-count{margin-left:var(--sp-1);font-weight:500}.type-tag{display:inline-flex;align-items:center;gap:4px;margin-left:var(--sp-2);padding:2px var(--sp-2);border-radius:999px;background:var(--bg-inset);color:var(--text-muted);font-size:11px;font-weight:550;vertical-align:1px}.type-tag.is-warn{background:var(--warn-bg);color:var(--warn)}.list-toggle{width:64px}.tpl-type h3{margin:var(--sp-5) 0 var(--sp-2);font-size:var(--fs-body);font-weight:650;color:var(--text)}.tpl-type:first-of-type h3{margin-top:0}.tpl-group{margin-bottom:var(--sp-3)}.tpl-group-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-2);padding:var(--sp-1) 0;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-subtle)}.link-btn{border:0;background:none;padding:0;font:inherit;font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--accent);cursor:pointer}.link-btn:hover{text-decoration:underline}.tpl-row{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-2);border-radius:var(--r-control);cursor:pointer}.tpl-row:hover{background:var(--bg-inset)}.tpl-row.is-added{opacity:.6;cursor:default}.tpl-row input[type=checkbox]{accent-color:var(--accent);width:16px;height:16px;flex:none}.tpl-name{flex:1 1;min-width:0;font-size:var(--fs-body);color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tpl-meta{flex:none;font-size:var(--fs-caption);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--text-subtle)}.foot-count{margin-right:auto;font-size:var(--fs-caption);color:var(--text-muted)}@media (max-width:640px){.filter-bar{flex-wrap:wrap}.filter-pick{width:100%}.filter-count{display:none}}.tab-form .ui-field,.tab-form .ui-field-row{max-width:none}.tab-form .ui-field-row:has(>:nth-child(3)){grid-template-columns:2fr 2fr 1fr}@media (max-width:720px){.tab-form .ui-field-row:has(>:nth-child(3)){grid-template-columns:1fr}}.access-dd{flex-wrap:wrap}.access-dd,.code-pill{display:inline-flex;align-items:center;gap:var(--sp-2)}.code-pill{padding:2px var(--sp-2) 2px var(--sp-3);border:1px dashed var(--warn-solid);border-radius:var(--r-control);background:var(--warn-bg);color:var(--text);font:inherit;cursor:pointer;transition:border-color var(--t-fast) var(--ease),background var(--t-fast) var(--ease)}.code-pill-value{font-size:15px;font-weight:700;letter-spacing:.14em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.code-pill svg{flex:none;opacity:.6}.code-pill:hover{border-style:solid;border-color:var(--accent)}.code-pill:hover svg{opacity:1}.code-pill:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.code-pill.is-copied{border-style:solid;border-color:var(--ok-solid);background:var(--ok-bg,var(--bg-inset))}.code-pill.is-copied svg{opacity:1;color:var(--ok-solid)}.access-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));grid-gap:var(--sp-3) var(--sp-4);gap:var(--sp-3) var(--sp-4);margin:0 0 var(--sp-3)}.access-facts dt{margin-bottom:2px;font-size:var(--fs-caption);font-weight:600;color:var(--text-subtle)}.access-facts dd{margin:0;font-size:var(--fs-body);color:var(--text)}.access-missing{color:var(--warn)}.pw-lead{margin:0 0 var(--sp-5);color:var(--text-muted)}.pw-done{display:flex;flex-direction:column;gap:var(--sp-3);align-items:center;text-align:center;padding:var(--sp-4) 0 var(--sp-2)}.pw-mark{display:grid;place-items:center;width:44px;height:44px;border-radius:999px;background:var(--ok-bg);color:var(--ok-solid);animation:pw-pop .32s var(--ease-out,cubic-bezier(.16,1,.3,1)) both}@keyframes pw-pop{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:none}}.pw-ok{margin:0;color:var(--ok-solid);font-weight:600}.pw-next{margin:0;font-size:var(--fs-caption);color:var(--text-muted)}.pw-bar{width:100%;height:3px;margin-top:var(--sp-2);border-radius:999px;background:var(--bg-inset);overflow:hidden}.pw-bar:after{content:"";display:block;height:100%;border-radius:999px;background:var(--ok-solid);animation:pw-fill 2s linear both}@keyframes pw-fill{0%{width:0}to{width:100%}}@media (prefers-reduced-motion:reduce){.pw-bar:after,.pw-mark{animation:none}.pw-bar:after{width:100%}}.login-notice{margin:0 0 var(--sp-4);padding:var(--sp-3);border:1px solid var(--ok-solid);border-radius:var(--r-control);background:var(--ok-bg);color:var(--text);font-size:var(--fs-caption)}.row-stretch{color:inherit;text-decoration:none}.row-stretch:after{content:"";position:absolute;inset:0;z-index:0}.row-stretch:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:var(--r-control)}.panel>.ui-form-footer.is-inline{margin:var(--sp-4) 0 0;padding:var(--sp-3) 0 0;border-top:1px solid var(--border);background:none}.list-table tr.row-open{cursor:pointer;position:relative}.list-table tr.row-open .list-actions,.list-table tr.row-open button,.list-table tr.row-open form{position:relative;z-index:1}.list-table tr.row-open:hover{background:var(--bg-inset)}.list-table tr.is-passive .list-name b,.list-table tr.is-passive .list-num{color:var(--text-muted)}.split-set{border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-4);margin:0 0 var(--sp-4);min-width:0}.split-set>legend{padding:0 var(--sp-2);font-size:.82rem;font-weight:600;letter-spacing:.01em;color:var(--text)}.split-set>.sec-desc{margin:0 0 var(--sp-3)}.split-set>.ui-field-row:last-child{margin-bottom:0}.split-map{display:flex;flex-wrap:wrap;gap:4px;margin:var(--sp-2) 0 0}.split-map span{flex:1 1;min-width:0;padding:5px 10px;border-radius:var(--r-sm);font-size:.76rem;white-space:nowrap;text-align:center}.split-map .split-busy{background:var(--bg-inset);color:var(--text);border:1px solid var(--border)}.split-map .split-free{background:none;color:var(--text-muted);border:1px dashed var(--border-strong,var(--border))}.free-tag{display:block;margin-top:2px;font-size:.7rem;font-weight:500;color:var(--text-muted)}.showcase{display:flex;flex-direction:column;gap:var(--sp-3)}.showcase-stage{position:relative;margin:0;border-radius:var(--r-card);overflow:hidden;background:var(--bg-inset);aspect-ratio:16/10}.showcase-stage img{width:100%;height:100%;object-fit:cover;display:block}.showcase-strip{display:flex;gap:var(--sp-2);overflow-x:auto;scrollbar-width:thin;overscroll-behavior-x:contain;padding-bottom:2px}.strip-item{flex:none;width:76px;height:56px;padding:0;border:2px solid transparent;border-radius:var(--r-control);overflow:hidden;background:var(--bg-inset);cursor:pointer;transition:border-color var(--t-fast) var(--ease)}.strip-item img{width:100%;height:100%;object-fit:cover;display:block}.strip-item:hover{border-color:var(--border-strong)}.strip-item.is-active{border-color:var(--accent)}.showcase-id{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-3);flex-wrap:wrap;padding-top:var(--sp-1)}.showcase-id b{font-size:var(--fs-section);font-weight:650}.stars{display:inline-flex;align-items:center;gap:3px;color:var(--warn)}.stars,.stars b{font-size:var(--fs-caption)}.stars b{margin-left:4px;color:var(--text)}.stars small{color:var(--text-muted)}.stars-none{font-size:var(--fs-caption);color:var(--text-subtle)}.showcase-actions{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);flex-wrap:wrap;padding-top:var(--sp-2);border-top:1px solid var(--border)}.showcase-empty{display:grid;place-items:center;grid-gap:var(--sp-2);gap:var(--sp-2);padding:var(--sp-7) var(--sp-4);border:1px dashed var(--border-strong);border-radius:var(--r-card);color:var(--text-muted)}.showcase-empty p{margin:0}.role-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));grid-gap:var(--sp-4);gap:var(--sp-4);align-items:start}.role-card{flex-direction:column}.role-card,.role-head{display:flex;gap:var(--sp-3)}.role-head{align-items:center;justify-content:space-between}.role-head .sec-title{margin:0}.role-who{margin:calc(var(--sp-1) * -1) 0 var(--sp-3);font-size:.78rem;color:var(--text-muted)}.role-base{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:4px;padding-bottom:var(--sp-3);border-bottom:1px solid var(--border)}.role-base li{display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--text)}.role-base li small{margin-left:auto;font-size:11px;color:var(--text-subtle)}.role-base-empty{color:var(--text-muted);font-size:var(--fs-caption)}.role-lock{flex:none;width:14px;height:14px;background-repeat:no-repeat;background-position:50%;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Crect x='3.2' y='7' width='9.6' height='7' rx='1.6' fill='%2357635b'/%3E%3Cpath d='M5.5 7V5.2a2.5 2.5 0 015 0V7' stroke='%2357635b' stroke-width='1.4'/%3E%3C/svg%3E")}.list-total{margin:var(--sp-3) 0 0;font-size:var(--fs-caption);color:var(--text-muted);text-align:center}.slot-box{display:flex;flex-direction:column;gap:var(--sp-2);min-width:0}.slot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(72px,1fr));grid-gap:6px;gap:6px;max-height:190px;overflow-y:auto;overscroll-behavior:contain;padding-right:2px}.slot-grid.is-stale{opacity:.45;pointer-events:none}.slot{padding:7px 4px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--bg-card);color:var(--text);font:inherit;font-size:.82rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;cursor:pointer;transition:border-color var(--t-fast) var(--ease),background var(--t-fast) var(--ease)}.slot.is-on,.slot:hover{border-color:var(--accent)}.slot.is-on{background:var(--accent);color:var(--on-accent);font-weight:600}.series-list{list-style:none;margin:var(--sp-2) 0 0;padding:0;max-height:190px;overflow-y:auto;overscroll-behavior:contain;border:1px solid var(--border);border-radius:var(--r-sm)}.series-list li{display:flex;align-items:baseline;gap:var(--sp-2);padding:6px 10px;font-size:.8rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;border-bottom:1px solid var(--border)}.series-list li:last-child{border-bottom:0}.series-list li span{flex:1 1 auto;color:var(--text-muted)}.series-list li small{color:var(--text-subtle)}.series-list li.series-moved b{color:var(--warn)}.series-list li.series-closed b,.series-list li.series-conflict b{color:var(--danger)}.cal-week-pick{max-width:280px;margin-bottom:var(--sp-3)}.cal-month.is-stale,.cal-week.is-stale{opacity:.6;transition:opacity var(--t-fast) var(--ease)}.cal-month-summary{display:flex;flex-wrap:wrap;gap:var(--sp-2) var(--sp-4);margin:0 0 var(--sp-3);font-size:var(--fs-caption);color:var(--text-muted)}.cal-month-summary .is-warn{color:var(--warn);font-weight:600}.month-body,.month-head{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.month-head{gap:1px;margin-bottom:4px}.month-head span{padding:4px 8px;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-subtle)}.month-body{gap:1px;background:var(--border);border:1px solid var(--border);border-radius:var(--r-card);overflow:hidden}.month-cell{display:flex;flex-direction:column;gap:4px;min-height:108px;padding:6px 8px 8px;border:0;background:var(--bg-surface);font:inherit;text-align:left;cursor:pointer;transition:background var(--t-fast) var(--ease)}.month-cell:hover{background:var(--accent-soft)}.month-cell:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.month-cell.is-outside{background:var(--bg-inset);opacity:.55}.month-cell.is-closed{background:repeating-linear-gradient(135deg,var(--bg-inset) 0 6px,var(--bg-surface) 6px 12px)}.month-cell-head{display:flex;align-items:center;gap:6px}.month-day{font-size:var(--fs-caption);font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--text-muted)}.month-cell.is-today .month-day{display:inline-grid;place-items:center;min-width:22px;height:22px;margin:-2px -2px -2px -4px;border-radius:999px;background:var(--accent);color:var(--on-accent)}.month-count{margin-left:auto;padding:0 6px;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-size:11px;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.month-closed{margin-left:auto;font-size:10px;letter-spacing:.04em;text-transform:uppercase;color:var(--text-subtle)}.month-items{display:flex;flex-direction:column;gap:2px;min-width:0}.month-item{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:1px 5px;border-radius:4px;border-left:2px solid var(--accent);background:var(--bg-inset);font-size:11.5px;color:var(--text)}.month-item b{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--text-muted);font-weight:600}.month-item.st-arrived,.month-item.st-confirmed{border-left-color:var(--warn)}.month-item.st-completed,.month-item.st-started{border-left-color:var(--ok)}.month-more{padding:0 5px;font-size:11px;font-weight:600;color:var(--text-subtle)}@media (max-width:880px){.month-cell{min-height:62px}.month-items{display:none}}.ui-avatar{display:block;border-radius:999px;background:var(--bg-inset);object-fit:cover;flex:none}.ui-avatar.is-passive{opacity:.45;filter:grayscale(1)}.side-user .ui-avatar{background:rgba(233,235,247,.14)}.list-name.has-avatar{display:flex;align-items:center;gap:10px}.list-name.has-avatar .list-name-text{min-width:0}.head-with-avatar{display:inline-flex;align-items:center;gap:12px}.member-strip{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--sp-3) var(--sp-5);margin:0 0 var(--sp-4);padding:var(--sp-4);border:1px solid var(--border);border-radius:var(--r-card);background:var(--bg-inset)}.member-facts{display:flex;flex-wrap:wrap;gap:var(--sp-3) var(--sp-6);margin:0;min-width:0}.member-facts dt{margin-bottom:2px;font-size:var(--fs-caption);font-weight:600;color:var(--text-subtle)}.member-facts dd{margin:0;font-size:var(--fs-body);color:var(--text);overflow-wrap:anywhere}.member-facts dd a{color:inherit;text-decoration:none}.member-facts dd a:hover{color:var(--accent);text-decoration:underline}.member-strip-actions{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-left:auto}.member-strip .ui-error{flex:1 0 100%;margin:0;order:2}@media (max-width:720px){.member-strip-actions{margin-left:0;width:100%}}.bell{flex:none}.bell,.bell-btn{position:relative}.bell-btn{display:grid;place-items:center;width:34px;height:34px;border:1px solid transparent;border-radius:var(--r-control);background:none;color:var(--ink-mut);cursor:pointer;transition:color var(--t-fast) var(--ease),background var(--t-fast) var(--ease)}.bell-btn:hover,.bell-btn[aria-expanded=true]{color:#fff;background:var(--ink-hi,rgba(255,255,255,.08))}.bell-dot{position:absolute;top:1px;right:1px;min-width:16px;height:16px;padding:0 4px;border-radius:999px;background:var(--gold-solid,#c9a227);color:#1a1a1a;font-size:10px;font-weight:700;line-height:16px;text-align:center}.bell-panel{position:fixed;z-index:200;width:min(340px,calc(100vw - 32px));padding:var(--sp-3);border:1px solid var(--border);border-radius:var(--r-card);background:var(--bg-surface);color:var(--text);box-shadow:var(--shadow-lg,0 12px 32px rgba(0,0,0,.18))}.bell-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-3);margin-bottom:var(--sp-2);padding-bottom:var(--sp-2);border-bottom:1px solid var(--border);color:var(--text)}.bell-head a{color:var(--accent);text-decoration:none}.bell-empty,.bell-head a{font-size:var(--fs-caption)}.bell-empty{margin:0;padding:var(--sp-3) 0;color:var(--text-subtle);text-align:center}.bell-list{display:flex;flex-direction:column;margin:0;padding:0;list-style:none}.bell-item>a,.bell-item>span{display:block;padding:var(--sp-2) var(--sp-2);border-radius:var(--r-control);color:var(--text);text-decoration:none}.bell-item>a:hover{background:var(--bg-inset)}.bell-item.is-unread>a,.bell-item.is-unread>span{border-left:2px solid var(--accent)}.bell-text{display:block;font-size:var(--fs-caption);line-height:1.45}.bell-time{display:block;margin-top:2px;color:var(--text-subtle);font-size:11px}.bell-list.is-page .bell-item+.bell-item{border-top:1px solid var(--border)}@media (max-width:880px){.bell-panel{max-width:calc(100vw - 24px)}}.side-user .who{display:flex;align-items:center;gap:8px;text-decoration:none}.side-user .who-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.side-user .who:hover .who-text{color:#fff}.member-facts.is-stacked{flex-direction:column;gap:var(--sp-3)}.svc-icon{display:inline-grid;place-items:center;width:22px;height:22px;flex:none;color:var(--text-subtle)}.list-name.has-svc-icon{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.list-name.has-svc-icon>p{flex:1 0 100%;margin:2px 0 0}.icon-pick{margin:0 0 var(--sp-4);padding:0;border:0}.icon-pick>legend{margin-bottom:var(--sp-2);padding:0;font-size:var(--fs-caption);font-weight:600;color:var(--text-subtle)}.icon-pick-grid{display:flex;flex-wrap:wrap;gap:6px}.icon-pick-item{display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--border);border-radius:var(--r-control);color:var(--text-subtle);cursor:pointer;transition:border-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}.icon-pick-item.is-auto{width:auto;padding:0 var(--sp-3);font-size:var(--fs-caption)}.icon-pick-item input{position:absolute;opacity:0;width:1px;height:1px}.icon-pick-item:hover{border-color:var(--text-subtle);color:var(--text)}.icon-pick-item:has(input:checked){border-color:var(--accent);color:var(--accent);background:var(--accent-bg,transparent)}.icon-pick-item:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}.rating-summary{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap;margin-bottom:var(--sp-4);padding:var(--sp-3) var(--sp-4);border:1px solid var(--border);border-radius:var(--r-card);background:var(--bg-inset)}.rating-score{font-size:28px;font-weight:700;letter-spacing:-.4px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:1}.rating-stars{display:inline-flex;gap:1px;color:var(--warn)}.rating-count{font-size:var(--fs-caption);color:var(--text-muted)}.book-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-4);flex-wrap:wrap;margin-bottom:var(--sp-4)}.seg-switch{display:inline-flex;flex:none;padding:3px;gap:2px;border:1px solid var(--border);border-radius:999px;background:var(--bg-inset)}.seg-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:none;padding:5px var(--sp-3);border-radius:999px;font:inherit;font-size:var(--fs-caption);font-weight:550;color:var(--text-muted);cursor:pointer;transition:background var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}.seg-btn.is-on,.seg-btn:hover{color:var(--text)}.seg-btn.is-on{background:var(--bg-surface);box-shadow:var(--shadow-sm)}.book-body.is-busy{opacity:.55;transition:opacity var(--t-fast) var(--ease)}.book-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));grid-gap:var(--sp-3);gap:var(--sp-3);margin-bottom:var(--sp-5)}.book-stat{display:flex;flex-direction:column;gap:2px;padding:var(--sp-3) var(--sp-4);border:1px solid var(--border);border-radius:var(--r-card);background:var(--bg-surface)}.book-stat-label{font-size:var(--fs-caption);font-weight:500;color:var(--text-muted)}.book-stat-value{font-size:1.35rem;font-weight:600;letter-spacing:-.4px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.book-stat-note{font-size:var(--fs-caption);color:var(--text-subtle)}.book-sub{margin:var(--sp-5) 0 var(--sp-1);font-size:.95rem;font-weight:600}.book-sub:first-of-type{margin-top:0}.book-foot{margin-top:var(--sp-2);font-size:var(--fs-caption);color:var(--text-subtle)}.share-bar{display:inline-block;width:84px;height:6px;margin-right:var(--sp-2);border-radius:999px;background:var(--bg-inset);vertical-align:middle;overflow:hidden}.share-bar i{display:block;height:100%;border-radius:999px;background:var(--accent)}.share-num{font-size:var(--fs-caption);color:var(--text-muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.row-link{color:inherit;text-decoration:none}.row-link:hover b{text-decoration:underline;text-underline-offset:2px}.book-more{margin-top:var(--sp-3)}.pulse{margin-bottom:var(--sp-4)}.pulse .book-stats{margin-bottom:0}.pay-strip{margin-top:var(--sp-4);padding-top:var(--sp-4);border-top:1px solid var(--border)}.pay-head{display:flex;align-items:baseline;gap:var(--sp-2);flex-wrap:wrap;margin-bottom:var(--sp-3)}.pay-head b{font-size:.95rem;font-weight:600}.pay-row{display:flex;flex-wrap:wrap;gap:var(--sp-5);align-items:flex-start}.pay-fact{display:flex;flex-direction:column;gap:3px;min-height:44px;justify-content:flex-start}.pay-fact b{font-size:1.15rem;font-weight:600;letter-spacing:-.3px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.pay-owed{color:var(--ok)}.group-toggle{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:none;padding:0;margin:0;font:inherit;color:inherit;letter-spacing:inherit;text-transform:inherit;display:inline-flex;align-items:center;gap:var(--sp-2);cursor:pointer}.group-toggle:hover{color:var(--text)}.group-caret{flex:none;transition:transform var(--t-fast) var(--ease)}.group-toggle[aria-expanded=true] .group-caret{transform:rotate(90deg)}.group-row.is-closed td,.group-row.is-closed th{border-bottom:1px solid var(--border)}.portal-actions{margin-top:var(--sp-3)}.roster{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));grid-gap:var(--sp-3);gap:var(--sp-3);list-style:none;margin:0;padding:0}.roster-card{border:1px solid var(--border);border-radius:var(--r-card);background:var(--bg-surface);position:relative}.roster-card>a{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3);text-decoration:none;color:inherit}.roster-card:hover{border-color:var(--border-strong,var(--border));box-shadow:var(--shadow-sm)}.roster-text{display:flex;flex-direction:column;gap:1px;flex:1 1;min-width:0}.roster-text b{font-weight:600}.roster-text small{font-size:var(--fs-caption);color:var(--text-subtle)}.roster-card.is-passive{opacity:.6}.pay-model{font-size:1.15rem;font-weight:600;letter-spacing:-.3px}.fact-list{display:grid;grid-gap:var(--sp-2) var(--sp-4);gap:var(--sp-2) var(--sp-4);margin:var(--sp-3) 0 0}.fact-list>div{display:grid;grid-template-columns:minmax(96px,max-content) 1fr;grid-gap:var(--sp-3);gap:var(--sp-3);align-items:center}.fact-list dt{font-size:var(--fs-caption);font-weight:500;color:var(--text-muted)}.fact-list dd{margin:0;min-width:0;overflow-wrap:anywhere}.login-remember{display:flex;align-items:flex-start;gap:var(--sp-3);padding:var(--sp-2) 0;cursor:pointer;font-size:var(--fs-body);color:var(--text-muted)}.login-remember input{width:18px;height:18px;margin-top:2px;accent-color:var(--accent);flex:none}.login-remember span{display:grid;grid-gap:2px;gap:2px}.login-remember small{color:var(--text-subtle);font-size:var(--fs-caption)}.login-submit .ui-btn{width:100%;justify-content:center}.login-alt{margin:0;text-align:center;font-size:var(--fs-body)}.login-alt a{color:var(--text-muted);text-decoration:underline;text-underline-offset:3px;display:inline-block;padding:.6rem .4rem}.login-alt a:hover{color:var(--accent)}.lic-banner{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--sp-2) var(--sp-3);padding:var(--sp-3) var(--sp-5);border-bottom:1px solid var(--border-strong);font-size:var(--fs-body);line-height:1.5}.lic-banner strong{font-weight:650}.lic-banner span{color:inherit;opacity:.86}.lic-banner a{-webkit-margin-start:auto;margin-inline-start:auto;color:inherit;font-weight:600;text-underline-offset:3px}.lic-banner-warn{background:var(--warn-bg);color:var(--warn)}.lic-banner-closed{background:var(--danger-bg);color:var(--danger)}.lic-desc{margin:0 0 var(--sp-5);color:var(--text-muted);max-width:60ch;line-height:1.6}.lic-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));grid-gap:var(--sp-4);gap:var(--sp-4);margin:0 0 var(--sp-6)}.lic-facts>div{padding:var(--sp-4);background:var(--bg-inset);border-radius:var(--r-card)}.lic-facts dt{font-size:var(--fs-caption);color:var(--text-subtle);text-transform:uppercase;letter-spacing:.04em;margin-bottom:var(--sp-2)}.lic-facts dd{margin:0;font-size:1.05rem;font-weight:600;color:var(--text)}.lic-sub{display:block;margin-top:2px;font-weight:400;color:var(--text-muted)}.lic-pill,.lic-sub{font-size:var(--fs-caption)}.lic-pill{display:inline-block;padding:2px 10px;border-radius:999px;font-weight:650}.lic-pill-on{background:var(--ok-bg);color:var(--ok)}.lic-pill-off{background:var(--danger-bg);color:var(--danger)}.lic-renew{padding:var(--sp-4);border:1px solid var(--border-strong);border-radius:var(--r-card)}.lic-renew h3{margin:0 0 var(--sp-2);font-size:1rem}.lic-renew p{margin:0;color:var(--text-muted);line-height:1.6;max-width:60ch}.lic-card{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2) var(--sp-4);padding:var(--sp-4) var(--sp-5);border-radius:var(--r-card);background:var(--warn-bg);color:var(--warn);margin-bottom:var(--sp-5)}.lic-card-off{background:var(--danger-bg);color:var(--danger)}.lic-card strong{font-weight:650}.lic-card a{-webkit-margin-start:auto;margin-inline-start:auto;color:inherit;font-weight:600;text-underline-offset:3px}.err-card{max-width:34rem;margin:clamp(2rem,8vh,5rem) auto;padding:var(--sp-6);text-align:center;background:var(--bg-card);border:1px solid var(--border-strong);border-radius:var(--r-card)}.err-card h1{margin:0 0 var(--sp-3);font-size:clamp(1.3rem,3vw,1.7rem);text-wrap:balance}.err-card p{margin:0 0 var(--sp-4);color:var(--text-muted);line-height:1.6}.err-note{color:var(--danger)!important}.err-actions{display:flex;flex-wrap:wrap;gap:var(--sp-3);justify-content:center}.err-digest{margin:var(--sp-5) 0 0!important;font-size:var(--fs-caption);color:var(--text-subtle)!important}.seg-switch>form{display:contents}.seg-btn:has(input:checked){background:var(--bg-surface);color:var(--text);box-shadow:var(--shadow-sm)}.seg-btn:disabled{cursor:default;opacity:.55}.seg-btn.is-on:disabled{opacity:1}.seg-btn,.seg-radio{display:inline-flex;align-items:center;gap:4px}.role-pick{display:grid;grid-gap:var(--sp-2);gap:var(--sp-2);margin:0 0 var(--sp-3);padding:0;border:0}.role-pick legend{padding:0;margin-bottom:var(--sp-1)}.role-pick .seg-switch{display:flex;width:100%}.role-pick .seg-btn{flex:1 1;justify-content:center;padding-inline:6px;white-space:nowrap}.stage-pair{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-gap:6px;gap:6px;width:100%}.stage-half{position:relative;display:block}.stage-half img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:8px}.stage-tag{position:absolute;top:var(--sp-2);left:var(--sp-2);padding:2px 8px;border-radius:999px;background:rgba(255,255,255,.92);color:#1a1a1a;font-size:11px;font-style:normal;font-weight:650;letter-spacing:.04em;text-transform:uppercase}.stage-tag.is-after{background:var(--accent);color:var(--on-accent)}.strip-item{position:relative}.strip-flag{position:absolute;top:3px;right:3px;display:inline-flex;padding:3px;border-radius:999px;background:var(--accent);color:var(--on-accent)}.pair-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--sp-2);margin-top:var(--sp-2);padding-top:var(--sp-2);border-top:1px solid var(--border)}.pair-note{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-caption);color:var(--text-muted)}.pair-attach{display:flex;flex-wrap:wrap;align-items:flex-start;gap:var(--sp-2)}.pair-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-gap:var(--sp-2);gap:var(--sp-2);margin-bottom:var(--sp-3)}.photo-pick{display:grid;grid-gap:4px;gap:4px}.photo-pick-btn{display:inline-flex;align-items:center;gap:6px}.photo-pick-btn img{width:22px;height:22px;object-fit:cover;border-radius:4px}.welcome-card{max-width:440px}.welcome-title{margin:0 0 var(--sp-2);font-size:var(--fs-section);font-weight:600}.welcome-request{margin:0 0 var(--sp-5);padding:var(--sp-4);border:1px solid var(--border);border-radius:var(--r-control);background:var(--accent-soft)}.welcome-kicker{margin:0 0 var(--sp-1);color:var(--text-muted);font-size:var(--fs-caption);font-weight:600;text-transform:uppercase;letter-spacing:.04em}.welcome-headline{font-size:var(--fs-section);font-weight:600}.welcome-headline,.welcome-services{margin:0 0 var(--sp-2);color:var(--text)}.welcome-services{padding-left:1.1em}.welcome-day{margin:0;color:var(--text-muted)}.welcome-enter{margin:0 0 var(--sp-4)}.welcome-note{margin:0 0 var(--sp-2);color:var(--text-muted);font-size:var(--fs-body)}.welcome-exits{margin-top:var(--sp-3)}.welcome-trap{position:absolute;left:-10000px;width:1px;height:1px;opacity:0}.login-hint{margin:var(--sp-3) 0 0;color:var(--text-subtle);font-size:var(--fs-caption);text-align:center}.req-welcome{margin:0 0 var(--sp-4);padding:var(--sp-4) var(--sp-5);border:1px solid var(--ok-solid);border-radius:var(--r-card);background:var(--ok-bg)}.req-welcome h2{margin:0 0 var(--sp-1);font-size:var(--fs-section)}.req-welcome p{margin:0;color:var(--text)}.req-focus{margin:0 0 var(--sp-5);padding:var(--sp-5);border:1px solid var(--border);border-radius:var(--r-card);background:var(--bg-surface);box-shadow:var(--shadow-md)}.req-focus-kicker{margin:0 0 var(--sp-1);color:var(--accent);font-size:var(--fs-caption);font-weight:600;text-transform:uppercase;letter-spacing:.04em}.req-focus h2{margin:0 0 var(--sp-1);font-size:var(--fs-section)}.req-focus-day{margin:0 0 var(--sp-4);color:var(--text-muted)}.req-focus-hint{margin:var(--sp-3) 0 0;color:var(--text-subtle);font-size:var(--fs-caption)}.req-focus.is-closed .req-focus-kicker{color:var(--text-muted)}tr.is-focus td{background:var(--accent-soft)}.ui-list-table td small.sub,td small.sub{display:block;margin-top:2px;color:var(--text-subtle);font-size:var(--fs-caption);line-height:1.4}