:root{--brand-900: #25286a;--brand-800: #2f3482;--brand-700: #3c42a0;--brand-600: #4a50b8;--brand-100: #e2e3f7;--ground: #f3f3fa;--surface: #ffffff;--soft: #ebebf6;--line: #e1e2ef;--ink: #1a1c3a;--muted: #5a5c7c;--on-brand: #ffffff;--on-brand-muted: rgba(255, 255, 255, .78);--glow: rgba(255, 255, 255, .14);--red: #c7303a;--red-bg: #fbe4e6;--green: #17623b;--green-bg: #dcf2e5;--scrim: rgba(26, 28, 58, .42);--font-body: "Be Vietnam Pro", sans-serif;--font-display: "Lexend", "Be Vietnam Pro", sans-serif;--text-xs: 12px;--text-sm: 14px;--text-md: 16px;--text-lg: 18px;--text-xl: 22px;--text-2xl: 28px;--radius-sheet: 28px;--radius-xl: 18px;--radius-lg: 14px;--radius: 10px;--radius-pill: 999px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--page-gutter: var(--space-4);--tap-min: 44px;--control-h: 40px;--tabbar-h: 68px;--sidebar-w: 240px;--page-w: 1120px;--drawer-w: 440px;--sheet-h: 90dvh;--auth-w: 400px;--avatar-sm: 36px;--avatar-md: 44px;--wordmark-h: 28px;--avatar-lg: 72px;--cover-w: 112px;--dot: 8px;--calendar-cell: 44px;--qr-size: 288px;--scan-size: 360px;--shadow-card: 0 1px 3px rgba(37, 40, 106, .06), 0 6px 18px rgba(37, 40, 106, .07);--shadow-pop: 0 10px 30px rgba(37, 40, 106, .16);--shadow-panel: -8px 0 28px rgba(37, 40, 106, .12);--ease: cubic-bezier(.32, .72, 0, 1);--ease-in: cubic-bezier(.4, 0, .8, .4);--dur-fast: .2s;--dur: .25s;--dur-slow: .4s;--dur-pulse: 1.4s;--dur-spin: .8s;--z-sidebar: 20;--z-tabbar: 30;--z-drawer: 50;--z-menu: 60;--z-dialog: 70;--z-toast: 80}@media(min-width:768px){:root{--page-gutter: var(--space-8);--cover-w: 132px}}@media(min-width:1024px){:root{--tap-min: 40px}}@media(prefers-reduced-motion:reduce){:root{--dur: 0s;--dur-slow: 0s;--dur-fast: 0s;--dur-pulse: 0s;--dur-spin: 0s}}*,*:before,*:after{box-sizing:border-box}body{margin:0;background:var(--ground);color:var(--ink);font:400 var(--text-sm) / 1.5 var(--font-body);-webkit-font-smoothing:antialiased}h1,h2,h3,h4,.brand{margin:0;font-family:var(--font-display);font-weight:600;line-height:1.25}h4{font-size:var(--text-sm)}p,dl,dd,ul{margin:0;padding:0}ul{list-style:none}a{color:inherit;text-decoration:none}img{display:block}button,input,select,textarea{font:inherit;color:inherit}button{padding:0;background:none;border:0;cursor:pointer;text-align:inherit}:focus-visible{outline:2px solid var(--brand-600);outline-offset:2px}.muted{color:var(--muted)}.stack{display:grid;gap:var(--space-4);align-content:start;min-width:0}.spin{display:inline-flex;animation:spin var(--dur-spin) linear infinite}.prose{white-space:pre-wrap;overflow-wrap:anywhere}@keyframes fade{0%{opacity:0}}@keyframes enter{0%{opacity:0;transform:translateY(var(--space-3))}}@keyframes pop{0%{opacity:0;transform:translateY(calc(-1 * var(--space-1))) scale(.98)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes rise{0%{transform:translateY(100%)}}@keyframes drop{to{transform:translateY(100%)}}@keyframes slide-in{0%{transform:translate(100%)}}@keyframes slide-out{to{transform:translate(100%)}}@keyframes fade-out{to{opacity:0}}@keyframes pulse{50%{opacity:.5}}@keyframes countdown{to{transform:scaleX(0)}}.shell{min-height:100dvh}.main{min-width:0}.sidenav{display:none}.brand{display:grid;gap:var(--space-1)}.wordmark{display:block;height:var(--wordmark-h);aspect-ratio:847 / 208;background:currentColor;-webkit-mask:url(/brandname.svg) center / contain no-repeat;mask:url(/brandname.svg) center / contain no-repeat}.brand small{font-family:var(--font-body);font-size:var(--text-xs);font-style:italic;font-weight:400;letter-spacing:0}.brand-dark .wordmark{color:var(--brand-700)}.brand-dark small{color:var(--muted)}.hero{position:relative;overflow:hidden;padding:var(--space-4) var(--page-gutter) calc(var(--space-8) + var(--space-6));background:linear-gradient(160deg,var(--brand-900),var(--brand-700));color:var(--on-brand)}.hero:after{content:"";position:absolute;top:calc(-1 * var(--space-10));right:calc(-1 * var(--space-10));width:240px;height:240px;border-radius:var(--radius-pill);background:radial-gradient(closest-side,var(--glow),transparent);pointer-events:none}.hero>*{position:relative;z-index:1}.hero-top{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.hero-actions{display:flex;align-items:center;gap:var(--space-3)}.hero-btn{position:relative;display:inline-grid;place-items:center;width:var(--tap-min);height:var(--tap-min);border-radius:var(--radius-pill)}.hero-btn .dot{position:absolute;top:var(--space-2);right:var(--space-2);background:var(--red)}.hero h1{margin-top:var(--space-6);font-size:var(--text-2xl);font-weight:500}.hero p{margin-top:var(--space-2);max-width:36ch;color:var(--on-brand-muted)}.page{position:relative;margin-top:calc(-1 * var(--space-6));padding:var(--space-4) var(--page-gutter) calc(var(--tabbar-h) + var(--space-8) + env(safe-area-inset-bottom));border-radius:var(--radius-sheet) var(--radius-sheet) 0 0;background:var(--ground)}.page>*{max-width:var(--page-w);margin-right:auto;margin-left:auto}.tabbar{position:fixed;right:0;bottom:0;left:0;z-index:var(--z-tabbar);display:flex;align-items:center;justify-content:space-around;min-height:var(--tabbar-h);padding:var(--space-2) var(--space-2) calc(var(--space-2) + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--surface)}.tab{display:grid;justify-items:center;gap:2px;min-width:64px;padding:var(--space-1) var(--space-3);color:var(--muted);font-size:var(--text-xs);font-weight:500}.tab.active{color:var(--brand-700);font-weight:600}.btn,.icon-btn,.chip,.tab,.side-link,.row-main,.menu-item,.tile,.shortcut,.leader-card,.calendar-day,.input{transition:background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease),opacity var(--dur-fast) var(--ease)}.row:has(.row-main:active){background:var(--soft)}.media:has(.media-main:active){background:var(--ground)}.btn:active:not(:disabled),.icon-btn:active,.chip:active,.shortcut:active,.tile:active,.leader-card:active,.calendar-day:active{transform:scale(.96)}.media-list>li,.list>li,.tiles>li,.shortcuts>li{animation:enter var(--dur) var(--ease) backwards}.media-list>:nth-child(2),.list>:nth-child(2),.tiles>:nth-child(2),.shortcuts>:nth-child(2){animation-delay:40ms}.media-list>:nth-child(n+3),.list>:nth-child(n+3),.tiles>:nth-child(n+3),.shortcuts>:nth-child(n+3){animation-delay:80ms}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:var(--tap-min);padding:0 var(--space-5);border-radius:var(--radius-pill);background:var(--brand-700);color:var(--on-brand);font-weight:600;white-space:nowrap;cursor:pointer}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{border:1px solid var(--line);background:var(--surface);color:var(--ink)}.btn-danger{background:var(--red-bg);color:var(--red)}.btn-block{width:100%}.btn-add{width:var(--tap-min);padding:0}.btn-add span{display:none}.icon-btn{display:inline-grid;flex:none;place-items:center;width:var(--tap-min);height:var(--tap-min);border-radius:var(--radius-pill);color:var(--ink);cursor:pointer}.icon-btn:disabled{opacity:.4;cursor:not-allowed}.form{display:grid;gap:var(--space-4)}.field{display:grid;gap:var(--space-1);font-weight:500}.input{width:100%;min-height:var(--tap-min);padding:0 var(--space-3);border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);font-size:var(--text-md)}.input:focus-visible{outline-offset:0}.textarea{padding:var(--space-3);resize:vertical}.error-text{color:var(--red)}.row-gap{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3)}.cover-preview{overflow:hidden;border-radius:var(--radius-lg);aspect-ratio:16 / 9;background:var(--soft)}.cover-preview img{width:100%;height:100%;object-fit:cover}.chips{display:flex;gap:var(--space-2);overflow-x:auto;padding:var(--space-1) 0;scrollbar-width:none}.chips::-webkit-scrollbar{display:none}.chip{display:inline-flex;flex:none;align-items:center;gap:var(--space-2);min-height:var(--tap-min);padding:0 var(--space-4);border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--surface);font-weight:500;white-space:nowrap;cursor:pointer}.chip.active{border-color:var(--brand-700);background:var(--brand-700);color:var(--on-brand)}.chips-static{display:flex;flex-wrap:wrap;gap:var(--space-2)}.segment{display:flex;gap:var(--space-2)}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.search{position:relative;display:block}.search svg{position:absolute;top:50%;left:var(--space-3);color:var(--muted);transform:translateY(-50%);pointer-events:none}.search .input{padding-left:calc(var(--space-3) + var(--space-6));border-radius:var(--radius-pill)}.section{display:grid;gap:var(--space-3);align-content:start;min-width:0}.section-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.section-head h2{font-size:var(--text-lg)}.section-link{display:inline-flex;align-items:center;gap:var(--space-1);min-height:var(--tap-min);color:var(--muted)}.card{padding:var(--space-4);border-radius:var(--radius-xl);background:var(--surface);box-shadow:var(--shadow-card)}.empty{padding:var(--space-8) var(--space-4);border-radius:var(--radius-xl);background:var(--surface);color:var(--muted);text-align:center;box-shadow:var(--shadow-card)}.state{display:grid;justify-items:center;gap:var(--space-3);padding:var(--space-8) var(--space-4);border-radius:var(--radius-xl);background:var(--surface);text-align:center;box-shadow:var(--shadow-card)}.sk,.avatar.sk,.cover.sk,.tile-date.sk{display:block;background:var(--soft);animation:pulse var(--dur-pulse) ease-in-out infinite}.sk-line{height:14px;margin:var(--space-1) 0;border-radius:var(--radius-sm)}.sk-input{min-height:var(--tap-min);border-radius:var(--radius)}.sk-block{height:260px;border-radius:var(--radius-lg)}.sk-calendar{display:grid;gap:var(--space-4)}.sk-title{width:60%;height:32px;margin-top:var(--space-6);border-radius:var(--radius)}.sk-light,.sk-dark{animation:pulse var(--dur-pulse) ease-in-out infinite}.sk-light{background:#ffffff2e}.sk-dark{background:#ffffff1a}.w30{width:30%}.w40{width:40%}.w50{width:50%}.w60{width:60%}.w70{width:70%}.w80{width:80%}.pill{display:inline-flex;align-items:center;justify-self:start;padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);background:var(--brand-100);color:var(--brand-800);font-size:var(--text-xs);font-weight:500;white-space:nowrap}.pill.red{background:var(--red-bg);color:var(--red)}.pill.green{gap:var(--space-1);background:var(--green-bg);color:var(--green)}.tag{display:inline-flex;align-items:center;justify-self:start;padding:2px var(--space-2);border-radius:var(--radius-pill);background:var(--brand-100);color:var(--brand-800);font-size:var(--text-xs);font-weight:500}.dot{display:inline-block;flex:none;width:var(--dot);height:var(--dot);border-radius:var(--radius-pill);background:var(--brand-600)}.dot-red{background:var(--red)}.avatar{display:inline-grid;flex:none;place-items:center;width:var(--avatar-md);height:var(--avatar-md);overflow:hidden;border-radius:var(--radius-pill);background:var(--brand-100);color:var(--brand-800);font-family:var(--font-display);font-weight:600}.avatar img{width:100%;height:100%;object-fit:cover}.avatar-sm{width:var(--avatar-sm);height:var(--avatar-sm)}.avatar-lg{width:var(--avatar-lg);height:var(--avatar-lg);font-size:var(--text-xl)}.list{display:grid;overflow:hidden;border-radius:var(--radius-xl);background:var(--surface);box-shadow:var(--shadow-card)}.list>*+*{border-top:1px solid var(--line)}.row{display:flex;align-items:center;min-height:60px;transition:background var(--dur-fast) var(--ease)}.row-main{flex:1;display:flex;align-items:center;gap:var(--space-3);min-width:0;min-height:60px;padding:var(--space-2) var(--space-4);color:inherit}.row-text{flex:1;display:grid;min-width:0}.row-text b{overflow:hidden;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.row-text small{display:-webkit-box;overflow:hidden;color:var(--muted);font-size:var(--text-xs);-webkit-box-orient:vertical;-webkit-line-clamp:2}.row-actions{display:flex;flex:none;align-items:center;padding-right:var(--space-2)}.info-row{gap:var(--space-3);padding:var(--space-3) var(--space-4)}.info-row svg{flex:none;color:var(--brand-700)}.info-row span{flex:1}.info-row b{max-width:60%;font-weight:500;text-align:right;overflow-wrap:anywhere}.media-list{display:grid;gap:var(--space-3)}.media{display:flex;align-items:center;border-radius:var(--radius-xl);background:var(--surface);box-shadow:var(--shadow-card);transition:background var(--dur-fast) var(--ease)}.media-main{flex:1;display:flex;align-items:center;gap:var(--space-3);min-width:0;padding:var(--space-3);border-radius:var(--radius-xl)}.cover{display:grid;flex:none;place-items:center;width:var(--cover-w);aspect-ratio:4 / 3;overflow:hidden;border-radius:var(--radius-lg);background:var(--brand-100);color:var(--brand-600)}.cover img{width:100%;height:100%;object-fit:cover}.cover-wide{width:100%;aspect-ratio:16 / 9}.media-text{display:grid;flex:1;gap:var(--space-1);min-width:0}.media-text b{display:-webkit-box;overflow:hidden;font-family:var(--font-display);font-weight:500;-webkit-box-orient:vertical;-webkit-line-clamp:2}.meta-line{display:flex;flex-wrap:wrap;gap:var(--space-1) var(--space-3);color:var(--muted);font-size:var(--text-xs)}.meta-line span{display:inline-flex;align-items:center;gap:var(--space-1)}.media-actions{display:flex;flex:none;align-items:center;padding-right:var(--space-2)}.media-main .dot-red{align-self:flex-start}.shortcuts{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-3)}.shortcut{position:relative;display:grid;justify-items:center;align-content:center;gap:var(--space-2);min-height:92px;padding:var(--space-3);border-radius:var(--radius-xl);background:var(--surface);color:var(--ink);font-weight:600;text-align:center;box-shadow:var(--shadow-card)}.shortcut svg{color:var(--brand-700)}.shortcut .dot{position:absolute;top:var(--space-3);right:var(--space-3)}.two-col{display:grid;gap:var(--space-6)}.tiles{display:grid;gap:var(--space-3)}.tile{display:flex;align-items:center;gap:var(--space-3);width:100%;padding:var(--space-3);border-radius:var(--radius-xl);background:var(--surface);box-shadow:var(--shadow-card)}.tile-date{display:grid;flex:none;place-items:center;align-content:center;width:52px;height:52px;border-radius:var(--radius-lg);background:var(--brand-100);color:var(--brand-800);line-height:1.1}.tile-date b{font-family:var(--font-display);font-size:var(--text-lg)}.tile-date small{font-size:var(--text-xs)}.tile-text{display:grid;min-width:0}.tile-text b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tile-text small{color:var(--muted)}.leader-cards{display:flex;gap:var(--space-3);overflow-x:auto;padding:var(--space-1) 0 var(--space-2);scrollbar-width:none}.leader-cards li{flex:none;width:148px}.leader-card{display:grid;justify-items:center;gap:var(--space-2);width:100%;padding:var(--space-4) var(--space-3);border-radius:var(--radius-xl);background:var(--surface);text-align:center;box-shadow:var(--shadow-card)}.leader-card b{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2}.leader-card .pill{justify-self:center}.profile-head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-4)}.profile-name{display:grid;flex:1 1 10rem;gap:var(--space-1);min-width:0}.kv{display:grid;gap:var(--space-3)}.kv dt{color:var(--muted);font-size:var(--text-xs)}.kv dd{overflow-wrap:anywhere}.detail{display:grid;gap:var(--space-3);align-content:start}.calendar{padding:var(--space-4);border-radius:var(--radius-xl);background:var(--surface);box-shadow:var(--shadow-card)}.calendar-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-3)}.calendar-head h3{font-size:var(--text-md)}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--space-1)}.calendar-dow{padding:var(--space-1) 0;color:var(--muted);font-size:var(--text-xs);text-align:center}.calendar-day{position:relative;display:grid;place-items:center;min-height:var(--calendar-cell);border-radius:var(--radius-lg)}.calendar-day .dot{position:absolute;bottom:var(--space-1)}.calendar-day.today{box-shadow:inset 0 0 0 1px var(--brand-600)}.calendar-day.selected{background:var(--brand-700);color:var(--on-brand)}.calendar-day.selected .dot{background:var(--on-brand)}.drawer-backdrop,.menu-backdrop{position:fixed;inset:0;display:flex;align-items:flex-end}.drawer-backdrop{z-index:var(--z-drawer)}.menu-backdrop{z-index:var(--z-menu)}.drawer-backdrop:before,.menu-backdrop:before{content:"";position:absolute;inset:0;background:var(--scrim);animation:fade var(--dur-slow) var(--ease)}.drawer-backdrop.leaving:before,.menu-backdrop.leaving:before{opacity:0;transition:opacity var(--dur) var(--ease-in)}.drawer{position:relative;display:grid;gap:var(--space-4);align-content:start;width:100%;max-height:var(--sheet-h);padding:var(--space-4) var(--space-4) calc(var(--space-6) + env(safe-area-inset-bottom));overflow-y:auto;border-radius:var(--radius-xl) var(--radius-xl) 0 0;background:var(--surface);animation:rise var(--dur-slow) var(--ease)}.drawer.leaving{animation:drop var(--dur) var(--ease-in) forwards}.drawer-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.drawer-head h2{font-size:var(--text-lg);overflow-wrap:anywhere}.drawer-body{display:grid;gap:var(--space-4);align-content:start}.menu{position:fixed;right:0;bottom:0;left:0;display:grid;gap:var(--space-1);padding:var(--space-4) var(--space-4) calc(var(--space-6) + env(safe-area-inset-bottom));border-radius:var(--radius-xl) var(--radius-xl) 0 0;background:var(--surface);animation:rise var(--dur-slow) var(--ease)}.menu.leaving{animation:drop var(--dur) var(--ease-in) forwards}.menu-title{padding:0 var(--space-3) var(--space-2);color:var(--muted);font-size:var(--text-xs)}.menu-item{display:flex;align-items:center;gap:var(--space-3);width:100%;min-height:var(--tap-min);padding:0 var(--space-3);border-radius:var(--radius);color:var(--ink)}.menu-item.danger{color:var(--red)}.auth{display:grid;place-items:center;min-height:100dvh;padding:var(--space-4)}.auth-box{display:grid;gap:var(--space-4);width:100%;max-width:var(--auth-w);padding:var(--space-6);border-radius:var(--radius-xl);background:var(--surface);box-shadow:var(--shadow-card)}.auth-box h1{font-size:var(--text-xl)}.auth-link{display:grid;place-items:center;min-height:var(--tap-min);color:var(--muted)}.auth-link b{color:var(--ink)}@media(hover:hover){.btn:hover:not(:disabled){background:var(--brand-800)}.btn-secondary:hover:not(:disabled){background:var(--soft)}.btn-danger:hover:not(:disabled){background:var(--red-bg);opacity:.85}.icon-btn:hover:not(:disabled),.menu-item:hover{background:var(--soft)}.row:has(.row-main):hover{background:var(--soft)}.row:has(.row-main):hover .icon-btn:hover{background:var(--line)}.chip:hover:not(.active){background:var(--soft)}.media:has(.media-main):hover{background:var(--ground)}.media:hover .icon-btn:hover{background:var(--line)}.tile:hover,.shortcut:hover,.leader-card:hover{background:var(--ground)}.calendar-day:hover:not(.selected){background:var(--soft)}.section-link:hover{color:var(--ink)}}@media(min-width:768px){.btn-add{width:auto;padding:0 var(--space-5)}.btn-add span{display:inline}.shortcuts{grid-template-columns:repeat(4,1fr);gap:var(--space-4)}.tiles{grid-template-columns:repeat(2,1fr)}.hero h1{font-size:calc(var(--text-2xl) + var(--space-1))}}@media(min-width:1024px){.shell{display:grid;grid-template-columns:var(--sidebar-w) 1fr}.tabbar,.hero-top .brand{display:none}.hero-top{justify-content:flex-end}.page{padding-bottom:var(--space-10)}.btn,.input,.chip,.icon-btn,.hero-btn{min-height:var(--control-h)}.icon-btn,.hero-btn{width:var(--control-h);height:var(--control-h)}.btn-add{width:auto}.two-col{grid-template-columns:repeat(2,1fr);align-items:start}.tiles{grid-template-columns:1fr}.sidenav{position:sticky;top:0;display:flex;flex-direction:column;gap:var(--space-8);height:100dvh;padding:var(--space-6) var(--space-4);background:var(--brand-900);color:var(--on-brand);z-index:var(--z-sidebar)}.sidenav nav{display:grid;gap:var(--space-2)}.side-link{display:flex;align-items:center;gap:var(--space-3);min-height:var(--control-h);padding:0 var(--space-4);border-radius:var(--radius-pill);color:var(--on-brand-muted);font-weight:500}.side-link.active{background:var(--brand-600);color:var(--on-brand)}.side-link:hover:not(.active){background:var(--brand-800);color:var(--on-brand)}.drawer-backdrop{align-items:stretch;justify-content:flex-end}.drawer{width:var(--drawer-w);max-height:none;height:100%;padding-bottom:var(--space-6);border-radius:0;box-shadow:var(--shadow-panel);animation:slide-in var(--dur-slow) var(--ease)}.drawer.leaving{animation:slide-out var(--dur) var(--ease-in) forwards}.menu-backdrop:before{display:none}.menu{top:var(--dd-top);right:var(--dd-right);bottom:auto;left:auto;min-width:220px;padding:var(--space-2);border-radius:var(--radius-lg);box-shadow:var(--shadow-pop);transform-origin:top right;animation:pop var(--dur) var(--ease)}.menu.leaving{animation:fade-out var(--dur-fast) var(--ease-in) forwards}.menu-title{display:none}}.back-link{display:inline-flex;align-items:center;gap:var(--space-1);justify-self:start;min-height:var(--tap-min);color:var(--brand-700);font-weight:500}.page-sub{font-size:var(--text-lg)}.profile-head>div{flex:1 1 10rem;min-width:0}.form-actions{position:sticky;bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom));z-index:1;margin:0 calc(-1 * var(--page-gutter));padding:var(--space-3) var(--page-gutter);background:var(--ground);box-shadow:0 -1px 0 var(--line)}@media(min-width:1024px){.form-actions{bottom:0}}.select-btn{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);text-align:left;cursor:pointer}.select-btn[aria-expanded=true]{border-color:var(--brand-600)}.select-btn:disabled{opacity:.6;cursor:not-allowed}.select-btn.placeholder .select-value{color:var(--muted)}.select-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.menu.pick{max-height:var(--sheet-h);overflow-y:auto}.pick-list{display:grid;gap:var(--space-1)}.pick-label{flex:1;text-align:left}.menu-item.selected{background:var(--soft);color:var(--brand-700);font-weight:600}.pick-time{display:grid;gap:var(--space-3)}.pick-time .calendar{padding:0;box-shadow:none}.time-row{display:grid;gap:var(--space-1)}.time-row .chips{padding-bottom:var(--space-1)}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{appearance:none;-webkit-appearance:none}input[type=search]{appearance:none;-webkit-appearance:none}.dialog-backdrop{position:fixed;inset:0;z-index:var(--z-dialog);display:flex;align-items:flex-end}.dialog-backdrop:before{content:"";position:absolute;inset:0;background:var(--scrim);animation:fade var(--dur-slow) var(--ease)}.dialog-backdrop.leaving:before{opacity:0;transition:opacity var(--dur) var(--ease-in)}.dialog{position:relative;display:grid;gap:var(--space-3);width:100%;padding:var(--space-5) var(--space-4) calc(var(--space-6) + env(safe-area-inset-bottom));border-radius:var(--radius-xl) var(--radius-xl) 0 0;background:var(--surface);animation:rise var(--dur-slow) var(--ease)}.dialog.leaving{animation:drop var(--dur) var(--ease-in) forwards}.dialog h2{font-size:var(--text-lg);overflow-wrap:anywhere}.dialog-actions{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3);margin-top:var(--space-2)}.toasts{position:fixed;right:var(--page-gutter);bottom:calc(var(--tabbar-h) + var(--space-4) + env(safe-area-inset-bottom));left:var(--page-gutter);z-index:var(--z-toast);display:grid;gap:var(--space-2);pointer-events:none}.toast{padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);background:var(--ink);color:var(--surface);box-shadow:var(--shadow-pop);animation:enter var(--dur) var(--ease)}@media(min-width:768px){.dialog-backdrop{align-items:center;justify-content:center}.dialog{width:min(420px,100%);border-radius:var(--radius-xl);box-shadow:var(--shadow-pop);animation:pop var(--dur) var(--ease)}.dialog.leaving{animation:fade-out var(--dur-fast) var(--ease-in) forwards}.menu.pick{left:var(--dd-left);right:auto;width:var(--dd-w);min-width:var(--dd-w);max-height:calc(100dvh - var(--dd-top) - var(--space-4));transform-origin:top left}.menu-backdrop:has(.wide):before{display:block}.menu.pick.wide{inset:0;width:340px;min-width:0;height:fit-content;max-height:calc(100dvh - var(--space-8));margin:auto}.toasts{right:var(--space-6);bottom:var(--space-6);left:auto;width:360px}}.sk-icon{width:24px;height:24px;border-radius:var(--radius-sm)}.tab .sk-line{margin:0}.side-link.sk-dark{height:var(--control-h)}.sk-light,.sk-dark{display:block}.hero .sk-line{height:16px;margin-top:var(--space-3)}.toolbar-actions{display:flex;align-items:center;gap:var(--space-2)}.participation{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3)}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-3)}.stats>div{display:grid;gap:var(--space-1);padding:var(--space-3) var(--space-4);border-radius:var(--radius-xl);background:var(--surface);box-shadow:var(--shadow-card)}.stats dd{order:1;font-family:var(--font-display);font-size:var(--text-2xl);font-weight:600;line-height:1.1}.stats dt{order:2;color:var(--muted);font-size:var(--text-xs)}.row-main .pill{flex:none;justify-self:auto}.qr-dialog{justify-items:center;text-align:center}.qr-dialog .dialog-actions{width:100%}.qr-box{display:grid;place-items:center;width:min(var(--qr-size),100%);aspect-ratio:1;padding:var(--space-2);border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);transition:opacity var(--dur) var(--ease)}.qr-box img{width:100%;height:100%;image-rendering:pixelated}.qr-box.expired{opacity:.25}.qr-sk{width:100%;height:100%;border-radius:var(--radius)}.qr-timer{width:min(var(--qr-size),100%);height:6px;overflow:hidden;border-radius:var(--radius-pill);background:var(--soft)}.qr-timer i{display:block;height:100%;border-radius:inherit;background:var(--brand-600);transform-origin:left;animation:countdown linear forwards}.qr-state{display:grid;justify-items:center;align-content:center;gap:var(--space-2);width:100%;min-height:var(--qr-size)}.qr-state.ok{color:var(--green)}.scan-frame{position:relative;display:grid;width:min(var(--scan-size),100%);aspect-ratio:1;margin-inline:auto;overflow:hidden;border-radius:var(--radius-xl);background:var(--brand-900)}.scan-frame video{width:100%;height:100%;object-fit:cover}.scan-frame i{position:absolute;inset:18%;border:3px solid var(--on-brand);border-radius:var(--radius-lg);opacity:.85;pointer-events:none}.scan-note{text-align:center}.scan-error{display:grid;justify-items:center;gap:var(--space-3);padding:var(--space-8) var(--space-4);border-radius:var(--radius-xl);background:var(--surface);color:var(--muted);text-align:center;box-shadow:var(--shadow-card)}.checkin{display:grid;justify-items:center;align-content:start;gap:var(--space-3);padding:var(--space-10) var(--space-4);text-align:center}.checkin.ok>svg{color:var(--green)}.checkin.bad>svg{color:var(--red)}.checkin-sk{width:64px;height:64px;border-radius:var(--radius-pill)}.checkin-actions{display:grid;gap:var(--space-3);width:min(320px,100%);margin-top:var(--space-3)}
