:root{color-scheme:light;--bg: #f5f3f9;--text: #1b1333;--muted: #736c87;--muted-2: #6a6382;--accent: #6e38d5;--accent-deep: #5a28bc;--accent-press: #5a28bc;--ok: #0b7e83;--danger: #c33a54;--card: #ffffff;--border: #e7e3f0;--tint: #f2ecfd;--tint-border: #e0d2fa;--fill: #f3f1f7;--shadow: 0 1px 2px rgba(27, 19, 51, .06);--shadow-btn: 0 8px 20px rgba(110, 56, 213, .22);--safe-top: 0px;--safe-right: 0px;--safe-bottom: 0px;--safe-left: 0px}@supports (padding: constant(safe-area-inset-top)){:root{--safe-top: constant(safe-area-inset-top);--safe-right: constant(safe-area-inset-right);--safe-bottom: constant(safe-area-inset-bottom);--safe-left: constant(safe-area-inset-left)}}@supports (padding: env(safe-area-inset-top)){:root{--safe-top: env(safe-area-inset-top, 0px);--safe-right: env(safe-area-inset-right, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px)}}*{box-sizing:border-box;margin:0}html{height:100%;background:var(--bg)}html,body{width:100%;height:100%;overflow:hidden}body{background:var(--bg);color:var(--text);font-family:Archivo,system-ui,sans-serif;-webkit-font-smoothing:antialiased;overscroll-behavior:none;min-height:100%;min-height:100dvh;min-height:100svh}#root{position:fixed;inset:0;width:100%;max-width:480px;margin:0 auto;height:auto;min-height:0;display:flex;flex-direction:column;overflow:hidden;background:var(--bg)}main.page{flex:1 1 auto;min-height:0;min-width:0;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;--page-pad-left: 22px;--page-pad-right: 22px;padding-top:calc(10px + var(--safe-top));padding-right:var(--page-pad-right);padding-bottom:24px;padding-left:var(--page-pad-left);display:flex;flex-direction:column;gap:22px}html.has-tabs main.page{padding-bottom:calc(16px + var(--tabbar-h, 64px))}main.page-onboarding{padding-top:calc(18px + var(--safe-top));padding-right:24px;padding-bottom:calc(28px + var(--safe-bottom));padding-left:24px;gap:0}.page-head{display:flex;flex-direction:column;gap:8px;--header-title: 0}.page-head h1{opacity:max(0,calc(1 - var(--header-title) * 1.05));transform:translate3d(0,calc(var(--header-title) * -4px),0)}.compact-header{position:fixed;top:0;left:0;right:0;z-index:15;width:100%;max-width:480px;margin:0 auto;pointer-events:none;--header-glass: 0;--header-title: 0}.compact-header-glass{position:absolute;left:0;right:0;top:0;height:calc(var(--safe-top) + 96px);opacity:var(--header-glass);pointer-events:none}.compact-header-frost{position:absolute;left:0;right:0;top:0;height:calc(var(--safe-top) + 52px);background:linear-gradient(to bottom,#ffffff8c,#fff0 48%),#f5f3f99e;backdrop-filter:blur(28px) saturate(1.8);-webkit-backdrop-filter:blur(28px) saturate(1.8);-webkit-transform:translateZ(0);transform:translateZ(0)}.compact-header-fade{position:absolute;left:0;right:0;top:calc(var(--safe-top) + 40px);height:56px;background:linear-gradient(to bottom,#f5f3f994,#f5f3f938 45%,#f5f3f900)}.compact-header-bar{position:relative;display:flex;align-items:center;justify-content:center;height:calc(var(--safe-top) + 48px);padding:var(--safe-top) 48px 0}.compact-header-title{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center;font-size:17px;font-weight:800;letter-spacing:-.02em;line-height:1.1;color:var(--text);opacity:var(--header-title);transform:translate3d(0,calc((1 - var(--header-title)) * 10px),0) scale(calc(.96 + var(--header-title) * .04));transform-origin:50% 100%}@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))){.compact-header-frost{background:#f5f3f9f0}}.kicker{font-size:10.5px;font-weight:700;letter-spacing:.18em;color:var(--muted);text-transform:uppercase}h1,.page-title{font-size:30px;font-weight:900;letter-spacing:-.02em;line-height:1.12}.lede{font-size:13.5px;line-height:1.55;color:var(--muted-2);margin-top:2px}.section-label{font-size:10.5px;font-weight:700;letter-spacing:.18em;color:var(--muted);text-transform:uppercase}.stack{display:flex;flex-direction:column;gap:14px}.stack-tight{display:flex;flex-direction:column;gap:12px}.card{background:var(--card);border:1px solid var(--border);border-radius:20px;padding:18px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:16px}.card-focus{border-color:var(--tint-border);box-shadow:0 0 0 3px #6e38d529}.card-tint{background:var(--tint);border-color:var(--tint-border);box-shadow:none}.row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.row-center{align-items:center}.title-20{font-size:20px;font-weight:800;letter-spacing:-.01em}.title-16{font-size:16px;font-weight:800;line-height:1.2}.meta{font-size:13.5px;color:var(--muted-2)}.hint{display:flex;gap:9px;align-items:center;font-size:12.5px;line-height:1.45;color:var(--muted)}.hint.ok{color:var(--ok);font-weight:600}.subtle{color:var(--muted-2);font-size:13.5px;line-height:1.5}button,.btn{font:inherit;border:none;border-radius:15px;padding:0 16px;min-height:50px;background:var(--accent);color:#fff;font-weight:800;font-size:15px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:9px;box-shadow:var(--shadow-btn);text-decoration:none}button:active,.btn:active{background:var(--accent-press)}button.secondary:active,.btn-secondary:active{background:var(--fill)}button.danger:active,.btn-text-danger:active{background:transparent}button.secondary,.btn-secondary{background:var(--fill);color:var(--text);border:1px solid var(--border);box-shadow:none;font-weight:700;font-size:14px;min-height:48px}button.danger,.btn-text-danger{background:transparent;color:var(--danger);border:none;box-shadow:none;min-height:50px;padding:0 16px;font-size:14px;font-weight:700}button:disabled{opacity:.5}.btn-sm{min-height:38px;padding:0 16px;border-radius:12px;font-size:13px;box-shadow:none}.icon-add{flex:none;width:36px;height:36px;min-height:36px;padding:0;border-radius:12px;background:var(--fill);border:1px solid var(--border);color:var(--muted-2);box-shadow:none;display:flex;align-items:center;justify-content:center}.chip-armed{flex:none;height:36px;min-height:36px;padding:0 15px;border-radius:12px;background:var(--accent);color:#fff;box-shadow:none;font-size:12px;font-weight:800;letter-spacing:.06em;gap:8px;display:inline-flex;align-items:center}input{font:inherit;width:100%;height:52px;padding:0 16px;border-radius:16px;border:1px solid var(--border);background:var(--card);color:var(--text);font-size:15px;font-weight:500}input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #6e38d52e}label,.field-label{font-size:10.5px;font-weight:700;letter-spacing:.16em;color:var(--muted);text-transform:uppercase;display:block}.field{display:flex;flex-direction:column;gap:6px}.password-wrap{position:relative}.password-wrap input{padding-right:72px}.password-wrap .show{position:absolute;right:16px;top:50%;transform:translateY(-50%);min-height:0;padding:0;background:none;box-shadow:none;color:var(--accent);font-size:11px;font-weight:700;letter-spacing:.1em}.status{display:flex;align-items:center;gap:7px;flex:none;font-size:10.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.status-dot{width:7px;height:7px;border-radius:999px;background:currentColor}.status-booked{color:var(--accent-deep)}.status-confirmed,.status-linked{color:var(--ok)}.status-canceled{color:var(--muted)}.status-failed{color:var(--danger)}.error,.error-banner{color:var(--danger);font-size:14px}.error-banner{border-radius:18px;padding:16px;background:#fdecef;border:1px solid #f5c5cd;display:flex;gap:12px;align-items:flex-start;color:var(--text)}.error-banner strong{color:var(--danger);font-size:14px;font-weight:800;display:block}.error-banner p{font-size:12.5px;line-height:1.45;color:var(--muted-2);margin-top:3px}.update-banner{flex:none;padding:0 16px 10px}.update-banner .banner{padding:12px 14px}.banner{background:var(--tint);border:1px solid var(--tint-border);border-radius:18px;padding:16px 18px;display:flex;gap:14px;align-items:center}.banner-copy{flex:1;font-size:13px;line-height:1.5;color:var(--muted-2)}.banner-copy strong{font-weight:800;color:var(--text)}.banner-icon{color:var(--accent);display:flex;flex:none}.stat-banner{display:flex;align-items:center;gap:14px;padding:15px 18px;border-radius:18px;background:var(--tint);border:1px solid var(--tint-border)}.stat-banner strong{font-size:22px;font-weight:900;color:var(--accent-deep);line-height:1}.stat-banner span{font-size:13px;font-weight:600;color:var(--muted-2)}.roster-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:15px 18px;border-radius:18px;background:var(--card);border:1px solid var(--border);box-shadow:var(--shadow);width:100%;min-height:0;color:inherit;font-weight:inherit;text-align:left}.roster-row.armed{background:var(--tint);border-color:var(--tint-border);box-shadow:none}button.roster-row:active{background:var(--card)}button.roster-row.armed:active{background:var(--tint)}.password-wrap .show:active{background:none}.list-block{display:flex;flex-direction:column;gap:10px}.list-row{display:flex;align-items:center;justify-content:space-between;padding:12px 2px;gap:16px}.hairline{height:1px;background:var(--border)}.empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:16px;padding:38px 24px;border-radius:26px;background:var(--card);border:1px dashed var(--border)}.empty-icon{width:64px;height:64px;border-radius:22px;background:var(--tint);color:var(--accent);display:flex;align-items:center;justify-content:center}.fact-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px 2px}.toggle{width:48px;height:29px;border-radius:999px;background:var(--accent);padding:3px;display:flex;justify-content:flex-end;align-items:center;flex:none}.toggle span{width:23px;height:23px;border-radius:999px;background:#fff;box-shadow:0 1px 3px #0000002e;display:block}.af-mark{width:48px;height:48px;border-radius:15px;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:900;flex:none}.stat-grid{display:flex;gap:12px}.stat-box{flex:1;padding:13px 15px;border-radius:14px;background:var(--fill)}.stat-box .kicker{letter-spacing:.14em;font-size:10px}.lock-note{display:flex;gap:10px;align-items:flex-start;font-size:12px;line-height:1.5;color:var(--muted)}.hero{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:18px;padding:24px 0 28px}.hero-mark{width:82px;height:82px;border-radius:26px;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 18px 44px #6e38d547}.hero h1{font-size:38px;letter-spacing:-.02em;text-align:center}.hero .lede{text-align:center;font-size:15px}.auth-panel{display:flex;flex-direction:column;gap:14px;margin-top:auto}.segmented{display:flex;padding:4px;background:var(--fill);border-radius:999px}.segmented button{flex:1;min-height:42px;border-radius:999px;background:transparent;color:var(--muted-2);box-shadow:none;font-size:14px;font-weight:700}.segmented button.on{background:var(--card);color:var(--text);box-shadow:var(--shadow)}.segmented button:active{background:transparent}.segmented button.on:active{background:var(--card)}.steps{display:flex;gap:6px;align-items:center;margin-bottom:8px}.steps span{width:26px;height:3px;border-radius:999px;background:var(--border);display:block}.steps span.on{background:var(--accent)}.actions{display:flex;gap:12px;align-items:center}.actions>button:first-child,.actions>.btn:first-child{flex:1}.build-stamp{margin-top:8px;padding-top:14px;font-size:11px;line-height:1.45;color:var(--muted);text-align:center}.build-stamp-label{display:none}.build-stamp .sha{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--muted-2)}nav.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:20;width:100%;max-width:480px;height:auto;margin:0 auto;display:flex;justify-content:space-around;align-items:flex-start;background:#f5f3f9f5;border-top:1px solid var(--border);padding-top:6px;padding-left:12px;padding-right:12px;padding-bottom:var(--tab-safe, 8px);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}nav.tabbar a{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:3px;padding:0;min-height:0;color:var(--muted);text-decoration:none;font-size:10.5px;font-weight:600;letter-spacing:.07em}nav.tabbar a.active{color:var(--accent);font-weight:800}.skel{border-radius:22px;background:linear-gradient(90deg,var(--fill) 25%,#ece9f3 50%,var(--fill) 75%);background-size:260px 100%;animation:shim 1.2s linear infinite}@keyframes shim{0%{background-position:-260px 0}to{background-position:260px 0}}.btn-block{width:100%}@media(max-width:480px){main.page{--page-pad-left: calc(22px + var(--safe-left));--page-pad-right: calc(22px + var(--safe-right));padding-left:var(--page-pad-left);padding-right:var(--page-pad-right)}main.page-onboarding{padding-left:calc(24px + var(--safe-left));padding-right:calc(24px + var(--safe-right))}nav.tabbar{padding-left:calc(12px + var(--safe-left));padding-right:calc(12px + var(--safe-right))}.compact-header-bar{padding-left:calc(48px + var(--safe-left));padding-right:calc(48px + var(--safe-right))}.update-banner{padding-left:calc(16px + var(--safe-left));padding-right:calc(16px + var(--safe-right))}}html.has-tabs .update-banner{margin-bottom:var(--tabbar-h, 64px)}.segmented-sm{flex:none;width:auto}.segmented-sm button{min-height:34px;padding:0 14px;font-size:13px}.roster-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px}.roster-chips{display:flex;gap:8px;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:none;touch-action:pan-x;overscroll-behavior-x:contain;margin:0;padding:0 var(--page-pad-right) 2px var(--page-pad-left)}.roster-chips::-webkit-scrollbar{display:none}.roster-chip{flex:none;min-height:34px;padding:0 12px;border-radius:999px;background:var(--fill);color:var(--muted-2);border:1px solid transparent;box-shadow:none;font-size:13px;font-weight:700}.roster-chip.on{background:var(--accent);color:#fff}.roster-chip:active{background:var(--fill)}.roster-chip.on:active{background:var(--accent-press)}.roster-days{min-width:0;margin-left:calc(-1 * var(--page-pad-left));margin-right:calc(-1 * var(--page-pad-right));display:flex;flex-direction:column;gap:14px}.roster-carousel{display:flex;flex-direction:row;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-snap-stop:always;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;scrollbar-width:none}.roster-carousel::-webkit-scrollbar{display:none}.roster-pane{box-sizing:border-box;flex:0 0 100%;width:100%;max-width:100%;min-width:0;overflow:hidden;padding:0 var(--page-pad-right) 0 var(--page-pad-left);scroll-snap-align:start;scroll-snap-stop:always}.spinner{width:16px;height:16px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:999px;animation:spin .65s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
