.landing{--ink: #14101f;--l-surface: #1e1730;--l-surface-2: #251c3d;--violet: #7c5cfc;--violet-bright: #9b7fff;--lavender: #b9a6ff;--paper: #f5f2ff;--paper-2: #ede7ff;--settled: #3ddc97;--owe: #ff6b6b;--text-on-dark: #ede9fb;--text-muted: #a79bc9;--text-on-light: #1c1530;--text-on-light-muted: #5c4e7a;background:var(--ink);color:var(--text-on-dark);min-height:100vh}.landing h1,.landing h2,.landing h3{color:#fff}.landing .mono{font-family:JetBrains Mono,ui-monospace,monospace}.landing-wrap{max-width:1160px;margin:0 auto;padding:0 32px}.landing-header{position:sticky;top:0;z-index:20;padding:20px 0;background:#14101fb8;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid rgba(185,166,255,.08)}.landing-nav{display:flex;align-items:center;justify-content:space-between}.landing-logo{display:flex;align-items:center;gap:10px;font-family:Figtree,sans-serif;font-weight:800;font-size:20px;letter-spacing:-.01em;color:#fff;text-decoration:none}.landing-navlinks{display:flex;gap:28px;align-items:center;font-size:14.5px;color:var(--text-muted)}.landing-navlinks a{color:var(--text-muted);text-decoration:none}.landing-navlinks a:hover{color:var(--text-on-dark)}.landing-navlinks .btn{white-space:nowrap}@media(max-width:780px){.landing-navlinks a.landing-anchor{display:none}}@media(max-width:420px){.landing-navlinks{gap:8px}.landing-navlinks .btn{padding:10px 14px;font-size:13.5px}.landing-wrap{padding:0 18px}}.landing .btn{padding:12px 22px;border-radius:100px;font-size:14.5px}.landing .btn-ghost{border-color:#ede9fb38;color:var(--text-on-dark)}.landing .btn-ghost:hover{border-color:#ede9fb73;background:#ede9fb0f}.landing-hero{padding:120px 0 100px;position:relative}.landing-eyebrow{display:inline-flex;align-items:center;gap:8px;font-family:JetBrains Mono,monospace;font-size:12.5px;color:var(--lavender);background:#7c5cfc1f;border:1px solid rgba(124,92,252,.28);padding:6px 14px;border-radius:100px;margin-bottom:26px;letter-spacing:.02em}.landing-eyebrow-dot{width:6px;height:6px;border-radius:50%;background:var(--settled)}.landing-hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center}.landing-hero h1{font-size:clamp(36px,5vw,60px);color:#fff;max-width:600px;letter-spacing:-.02em;line-height:1.04}.landing-hero h1 em{font-style:normal;color:var(--lavender)}.landing-hero p{font-size:18px;line-height:1.6;color:var(--text-muted);max-width:480px;margin-top:22px}.landing-hero-ctas{display:flex;gap:14px;margin-top:34px;flex-wrap:wrap}@media(max-width:900px){.landing-hero-grid{grid-template-columns:1fr}.landing-hero{padding:90px 0 60px}}.stackcard{background:var(--l-surface);border:1px solid rgba(185,166,255,.12);border-radius:22px;padding:26px;position:relative;box-shadow:0 40px 80px -30px #0009}.stackcard-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:18px}.stackcard-label{font-size:13px;color:var(--text-muted)}.stackcard-total{font-size:27px;color:#fff;font-weight:600;margin-top:4px}.stackcard-badge{font-family:JetBrains Mono,monospace;font-size:11.5px;background:#3ddc9724;border:1px solid rgba(61,220,151,.3);padding:5px 10px;border-radius:100px;transition:color .3s ease}.stackbar{display:flex;width:100%;height:50px;border-radius:12px;overflow:hidden;background:var(--l-surface-2);margin-bottom:20px}.stackbar .seg{height:100%;transition:flex-basis 1.2s cubic-bezier(.65,0,.35,1)}.avatars{display:flex;justify-content:space-between;gap:10px}.avatar-col{flex:1;text-align:center}.avatar-dot{width:38px;height:38px;border-radius:50%;margin:0 auto 8px;display:flex;align-items:center;justify-content:center;font-family:Figtree,sans-serif;font-weight:700;font-size:13.5px}.avatar-share{font-size:13px;color:var(--text-on-dark);transition:color .3s ease}.avatar-name{font-size:11.5px;color:var(--text-muted);margin-top:2px}.landing-section{padding:100px 0}.landing-section-head{max-width:560px;margin-bottom:56px}.landing-section-eyebrow{font-family:JetBrains Mono,monospace;font-size:12.5px;color:var(--violet-bright);letter-spacing:.04em;margin-bottom:12px;display:block}.landing-section-head h2{font-size:clamp(26px,3.4vw,40px);color:#fff}.landing-section-head p{color:var(--text-muted);font-size:16.5px;margin-top:14px;line-height:1.6}.landing-flow{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:#b9a6ff1f;border-radius:18px;overflow:hidden;border:1px solid rgba(185,166,255,.12)}.landing-flow-step{background:var(--l-surface);padding:34px 30px}.landing-flow-num{font-family:JetBrains Mono,monospace;color:var(--violet-bright);font-size:13px;margin-bottom:18px}.landing-flow-step h3{color:#fff;font-size:19px;margin-bottom:10px}.landing-flow-step p{color:var(--text-muted);font-size:14.5px;line-height:1.6}@media(max-width:780px){.landing-flow{grid-template-columns:1fr}}.landing-light{background:var(--paper);color:var(--text-on-light)}.landing-light h2,.landing-light h3{color:var(--text-on-light)}.landing-light .landing-section-eyebrow{color:var(--violet)}.landing-light .landing-section-head p{color:var(--text-on-light-muted)}.landing-featgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.landing-feat{background:#fff;border:1px solid rgba(28,21,48,.08);border-radius:16px;padding:30px;transition:transform .2s ease,box-shadow .2s ease}.landing-feat:hover{transform:translateY(-3px);box-shadow:0 20px 40px -20px #7c5cfc59}.landing-feat-icon{width:42px;height:42px;border-radius:12px;background:var(--paper-2);display:flex;align-items:center;justify-content:center;margin-bottom:18px}.landing-feat h3{font-size:17.5px;margin-bottom:8px}.landing-feat p{font-size:14.5px;color:var(--text-on-light-muted);line-height:1.6}@media(max-width:780px){.landing-featgrid{grid-template-columns:1fr}}.landing-stats{background:var(--ink);border-top:1px solid rgba(185,166,255,.1);border-bottom:1px solid rgba(185,166,255,.1);padding:64px 0}.landing-statgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;text-align:center}.landing-stat-num{font-family:JetBrains Mono,monospace;font-size:clamp(28px,3.8vw,42px);color:#fff;font-weight:600}.landing-stat-label{color:var(--text-muted);font-size:13.5px;margin-top:8px}@media(max-width:680px){.landing-statgrid{grid-template-columns:1fr;gap:36px}}.landing-banner{padding:110px 0;text-align:center;position:relative;overflow:hidden}.landing-banner:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 0%,rgba(124,92,252,.35),transparent 60%)}.landing-banner-inner{position:relative;max-width:620px;margin:0 auto}.landing-banner h2{font-size:clamp(28px,4.2vw,46px);color:#fff}.landing-banner p{color:var(--text-muted);margin-top:16px;font-size:17px}.landing-banner .landing-hero-ctas{justify-content:center;margin-top:32px}.landing-footer{padding:44px 0;border-top:1px solid rgba(185,166,255,.1)}.landing-footwrap{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:18px}.landing-footlinks{display:flex;gap:26px;font-size:13.5px;color:var(--text-muted)}.landing-footlinks a{color:var(--text-muted);text-decoration:none}.landing-footlinks a:hover{color:var(--text-on-dark)}.landing-foot-copy{font-size:13px;color:var(--text-muted)}@media(max-width:600px){.landing-footwrap{flex-direction:column;align-items:flex-start}}:root{--bg: #f5f2ff;--surface: #ffffff;--surface-2: #ede7ff;--border: #e0d9f7;--text: #1c1530;--text-dim: #5c4e7a;--accent: #7c5cfc;--accent-soft: #ede7ff;--accent-text: #ffffff;--pos: #1fae73;--neg: #e0483d;--danger: #e0483d;--favorite: #b8860b;--shadow: 0 1px 2px rgba(28, 21, 48, .06), 0 4px 16px rgba(28, 21, 48, .05);--radius: 12px}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #14101f;--surface: #1e1730;--surface-2: #251c3d;--border: rgba(185, 166, 255, .16);--text: #ede9fb;--text-dim: #a79bc9;--accent: #9b7fff;--accent-soft: rgba(124, 92, 252, .18);--accent-text: #14101f;--pos: #3ddc97;--neg: #ff6b6b;--danger: #ff6b6b;--favorite: #e6b93d;--shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 4px 20px rgba(0, 0, 0, .3)}}:root[data-theme=dark]{--bg: #14101f;--surface: #1e1730;--surface-2: #251c3d;--border: rgba(185, 166, 255, .16);--text: #ede9fb;--text-dim: #a79bc9;--accent: #9b7fff;--accent-soft: rgba(124, 92, 252, .18);--accent-text: #14101f;--pos: #3ddc97;--neg: #ff6b6b;--danger: #ff6b6b;--favorite: #e6b93d;--shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 4px 20px rgba(0, 0, 0, .3)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.55 Figtree,ui-sans-serif,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased}h1,h2,h3{margin:0;line-height:1.15;letter-spacing:-.02em;font-family:Figtree,ui-sans-serif,sans-serif;font-weight:800}h1{font-size:1.6rem}h2{font-size:1.15rem}h3{font-size:.95rem}a{color:var(--accent)}.spacer{flex:1}.app-shell{display:flex;flex-direction:column;min-height:100vh}.app-main{display:flex;flex-direction:column;min-width:0;flex:1}.app-topnav{--sb-ink: #14101f;--sb-surface: #181229;--sb-hover: #221a38;--sb-text: #e8e3f7;--sb-text-dim: #b9afd6;--sb-text-faint: #7c6fa0;background:var(--sb-ink);color:var(--sb-text);display:flex;align-items:center;gap:8px;padding:10px 20px;position:sticky;top:0;z-index:20}.topnav-logo{display:flex;align-items:center;gap:9px;padding:6px 10px 6px 4px;margin-right:8px;font-family:Figtree,sans-serif;font-weight:800;font-size:16px;color:#fff;text-decoration:none;flex:0 0 auto}.topnav-links{display:flex;align-items:center;gap:2px;overflow-x:auto;scrollbar-width:none}.topnav-links::-webkit-scrollbar{display:none}.topnav-item{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:9px;font-size:13.5px;color:var(--sb-text-dim);text-decoration:none;white-space:nowrap;flex:0 0 auto;transition:background .15s ease,color .15s ease}.topnav-item:hover{background:var(--sb-hover);color:#fff}.topnav-item[aria-current=page]{background:linear-gradient(135deg,#7c5cfc,#6647e0);color:#fff;box-shadow:0 6px 18px -6px #7c5cfc99}.topbar-search{flex:0 1 320px}.topbar-search input{width:100%}.profile-menu{position:relative;flex:0 0 auto}.profile-menu-trigger{display:flex;align-items:center;padding:0;border:none;background:none;cursor:pointer;border-radius:999px}.profile-menu-trigger:hover .avatar{box-shadow:0 0 0 2px var(--sb-hover)}.profile-menu-panel{position:absolute;top:calc(100% + 10px);right:0;width:260px;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-lg, 0 16px 40px -12px rgba(0, 0, 0, .35));padding:8px;z-index:30}.profile-menu-header{display:flex;align-items:center;gap:10px;padding:8px}.profile-menu-name{font-size:13.5px;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-menu-email{font-size:12px;color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-menu-divider{height:1px;background:var(--border);margin:6px 4px}.profile-menu-item{display:flex;align-items:center;gap:10px;width:100%;padding:9px 8px;border-radius:8px;border:none;background:none;font-size:13.5px;color:var(--text);text-decoration:none;text-align:left;cursor:pointer}.profile-menu-item:hover{background:var(--surface-2)}.profile-menu-signout{color:var(--neg)}@media(max-width:900px){.app-topnav{flex-wrap:wrap;padding:10px 14px;row-gap:8px}.topbar-search{order:3;flex:1 1 100%;max-width:none}.topnav-links{order:2}}@media(max-width:640px){.topnav-logo span:last-child{display:none}}.module-card{min-height:132px}.module-icon{display:grid;place-items:center;width:30px;height:30px;flex:0 0 30px;border-radius:9px;background:var(--surface-2);font-size:1rem}.page{max-width:940px;margin:0 auto;padding:28px 20px 80px}.page-head{display:flex;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-bottom:22px}.group-page-head{display:grid;grid-template-columns:1fr auto 1fr;align-items:center}.group-page-head h1{overflow-wrap:break-word}@media(max-width:720px){.group-page-head{display:flex;flex-direction:column;align-items:center;gap:12px}.group-page-head>div:first-child{display:none}.group-page-head .row:last-child{justify-self:unset}}.stack{display:grid;gap:14px}.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.muted{color:var(--text-dim)}.small{font-size:.85rem}.tabular{font-variant-numeric:tabular-nums;font-family:JetBrains Mono,ui-monospace,monospace}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px}.card-head{display:flex;align-items:center;gap:10px;margin-bottom:14px}.group-card{display:block;text-decoration:none;color:inherit;transition:transform .12s ease,border-color .12s ease}.group-card:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--accent) 45%,var(--border))}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}.widget-stack{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-flow:row;gap:18px;align-items:start;container-type:inline-size;container-name:dash}.widget-head{display:flex;align-items:center;gap:8px;margin-bottom:12px}@container dash (max-width: 479px){.widget{grid-column:1 / -1!important}}@container dash (min-width: 480px) and (max-width: 679px){.widget[data-span="4"]{grid-column:span 6!important}.widget[data-span="5"],.widget[data-span="7"]{grid-column:span 12!important}}@supports not (container-type: inline-size){@media(max-width:720px){.widget{grid-column:1 / -1!important}}}.widget-handle{cursor:grab;color:var(--text-dim);font-size:1.15rem;line-height:1;padding:2px 5px;border-radius:6px;-webkit-user-select:none;user-select:none}.widget-handle:hover{background:var(--surface-2);color:var(--text)}.widget-handle:active{cursor:grabbing}.widget-move-buttons{display:flex;gap:2px;flex:0 0 auto}.widget-move-buttons button{padding:3px 8px;font-size:.7rem;line-height:1}.widget-extra-actions{display:flex;gap:2px;flex:0 0 auto}.widget-extra-actions button{padding:3px 8px;font-size:.8rem;line-height:1}.widget{border-radius:var(--radius);transition:opacity .15s ease}.widget-dragging{opacity:.45}.widget-drag-over{outline:2px dashed var(--accent);outline-offset:8px;border-radius:12px}.balance-row{display:flex;align-items:center;gap:10px;padding:10px 4px;border-bottom:1px solid var(--border);text-decoration:none;color:var(--text)}.balance-row:last-child{border-bottom:none}.balance-row:hover{background:var(--surface-2)}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px}.stat-tile{background:var(--surface-2);border-radius:var(--radius);padding:14px}.stat-tile .stat-value{font-size:1.6rem;font-weight:700;line-height:1.1}.stat-tile .stat-label{margin-top:4px}.side-nav{display:flex;flex-direction:column;gap:2px;position:sticky;top:20px;flex:0 0 auto}.side-nav button{border:none;border-radius:8px;background:none;color:var(--text-dim);padding:9px 12px;text-align:left;justify-content:flex-start}.side-nav button[aria-current=page]{background:var(--accent-soft);color:var(--accent);font-weight:600}.side-nav button:hover{background:var(--surface-2);color:var(--text)}.side-nav button[aria-current=page]:hover{background:var(--accent-soft)}.group-icon-nav{display:flex;gap:6px}.group-icon-nav button{flex:1;display:flex;align-items:center;justify-content:center;padding:10px;border:none;border-radius:10px;background:var(--surface);box-shadow:var(--shadow);color:var(--text-dim);font-size:17px;line-height:1}.group-icon-nav button:hover{background:var(--surface-2);color:var(--text)}.group-icon-nav button[aria-current=page]{background:var(--accent-soft);color:var(--accent)}.tooltip-anchor{position:relative}.tooltip-anchor:after{content:attr(data-tooltip);position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%) translateY(4px);background:var(--text);color:var(--surface);font-size:11.5px;font-weight:600;white-space:nowrap;padding:5px 9px;border-radius:6px;pointer-events:none;opacity:0;transition:opacity .12s ease,transform .12s ease;z-index:20}.tooltip-anchor:hover:after,.tooltip-anchor:focus-visible:after{opacity:1;transform:translate(-50%) translateY(0)}.admin-layout{display:grid;grid-template-columns:180px minmax(0,1fr);gap:24px;align-items:start}.page-wide{max-width:1680px;margin-left:0;margin-right:0}.group-layout{display:grid;grid-template-columns:230px minmax(0,1fr) 300px;grid-template-areas:"groups main balance";gap:24px;align-items:start}.group-layout .group-groups-area{grid-area:groups;position:sticky;top:20px;max-height:calc(100vh - 40px);overflow-y:auto}.group-groups-area .dash-group-grid{grid-template-columns:1fr;gap:6px;margin-bottom:0}.group-groups-area .dash-group-card{display:flex;align-items:center;gap:10px;padding:9px 10px}.group-groups-area .dash-group-emoji{width:28px;height:28px;font-size:14px;flex:0 0 auto}.group-groups-area .dash-group-name{margin-top:0;font-size:13.5px}.group-groups-area .dash-group-members,.group-groups-area .dash-group-footer{display:none}.group-layout .group-main-area{grid-area:main;min-width:0}.group-layout .group-balance-area{grid-area:balance;position:sticky;top:20px}@media(max-width:1100px){.group-layout{grid-template-columns:190px minmax(0,1fr);grid-template-areas:"groups balance" "groups main"}}@media(max-width:720px){.admin-layout,.group-layout{display:block}.side-nav{position:static;flex-direction:row;overflow-x:auto;gap:4px;padding-bottom:10px;margin-bottom:16px;border-bottom:1px solid var(--border)}.side-nav button{white-space:nowrap;flex:0 0 auto}.group-groups-area{position:static;max-height:none;overflow-y:visible}.group-groups-area .dash-group-grid{grid-auto-flow:column;grid-template-columns:none;overflow-x:auto;padding-bottom:4px}.group-groups-area .dash-group-card{min-width:140px;touch-action:pan-x}.group-layout>*{margin-bottom:20px}.group-layout>*:last-child{margin-bottom:0}}button,.btn{font:inherit;font-weight:550;border-radius:9px;border:1px solid var(--border);background:var(--surface);color:var(--text);padding:8px 14px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:7px;transition:background .12s ease,border-color .12s ease}button:hover,.btn:hover{background:var(--surface-2)}button:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.btn-primary:hover{background:color-mix(in srgb,var(--accent) 88%,black)}.btn-ghost{background:none;border-color:transparent;color:var(--text-dim);padding:5px 8px}.btn-ghost:hover{background:var(--surface-2);color:var(--text)}.btn-danger{color:var(--danger)}.btn-sm{padding:5px 10px;font-size:.85rem}label{display:grid;gap:5px;font-size:.85rem;font-weight:550;color:var(--text-dim)}input,select,textarea{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:9px;padding:9px 11px;width:100%}input:focus,select:focus,textarea:focus{outline:2px solid color-mix(in srgb,var(--accent) 45%,transparent);outline-offset:1px;border-color:var(--accent)}.field-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.field-row>*{min-width:0}.segmented{display:flex;flex-wrap:wrap;padding:3px;gap:3px;background:var(--surface-2);border-radius:10px;border:1px solid var(--border)}.segmented button{border:none;background:none;padding:6px 13px;border-radius:7px;font-size:.87rem;color:var(--text-dim)}.segmented button[aria-pressed=true]{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.avatar{display:grid;place-items:center;width:30px;height:30px;flex:0 0 30px;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-size:.72rem;font-weight:700}.avatar-lg{width:38px;height:38px;flex-basis:38px;font-size:.85rem}.person-row{display:flex;align-items:center;gap:11px;padding:9px 0;border-bottom:1px solid var(--border)}.person-row:last-child{border-bottom:none}.activity-row{display:flex;align-items:flex-start;padding:9px 0;border-bottom:1px solid var(--border)}.activity-row:last-child{border-bottom:none}.activity-row-link{color:inherit;text-decoration:none;cursor:pointer;border-radius:8px;margin:0 -8px;padding-left:8px;padding-right:8px}.activity-row-link:hover{background:var(--surface-2)}.activity-row-highlight{animation:activity-row-flash 2.4s ease-out;border-radius:8px}@keyframes activity-row-flash{0%,35%{background:var(--accent-soft)}to{background:transparent}}@media(prefers-reduced-motion:reduce){.activity-row-highlight{animation:none;background:var(--accent-soft)}}.split-row{display:flex;align-items:center;gap:11px;padding:7px 10px;border-radius:9px}.split-row:hover{background:var(--surface-2)}.split-row input[type=checkbox]{width:16px;height:16px;margin:0;flex:0 0 auto;accent-color:var(--accent)}.split-row .amount-input{width:110px;flex:0 0 110px;text-align:right}.amount{font-variant-numeric:tabular-nums;font-weight:600}.pos{color:var(--pos)}.neg{color:var(--neg)}.zero{color:var(--text-dim)}.big-amount{font-size:1.5rem;font-weight:700;letter-spacing:-.02em}.pill{display:inline-flex;align-items:center;gap:5px;padding:2px 9px;border-radius:999px;background:var(--surface-2);border:1px solid var(--border);font-size:.78rem;color:var(--text-dim);font-weight:550}.pill-pro{background:color-mix(in srgb,var(--favorite) 16%,var(--surface));border-color:color-mix(in srgb,var(--favorite) 45%,var(--border));color:var(--favorite);font-weight:650}.category-pill{background:color-mix(in srgb,var(--cat-color) 14%,var(--surface));border-color:color-mix(in srgb,var(--cat-color) 38%,var(--border));color:color-mix(in srgb,var(--cat-color) 65%,var(--text))}.expense{display:flex;align-items:center;gap:13px;padding:12px 10px;margin:0 -10px;border-radius:10px;border-bottom:1px solid var(--border);transition:background-color .12s ease}.expense:hover{background:var(--surface-2)}.card>.expense:last-child,.card>.expense-item:last-child>.expense{border-bottom:none}.month-header{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:10px 0 6px;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);border-bottom:1px solid var(--border);position:sticky;top:63px;z-index:5;background:var(--surface)}.month-group:not(:first-child){margin-top:10px}@media(max-width:900px){.month-header{position:static}}.month-header-total{text-transform:none;letter-spacing:0;font-weight:550;font-variant-numeric:tabular-nums}.expense-date{flex:0 0 44px;text-align:center;line-height:1.1}.expense-date .m{font-size:.68rem;text-transform:uppercase;color:var(--text-dim);letter-spacing:.04em}.expense-date .d{font-size:1.05rem;font-weight:650}.expense-main{flex:1;min-width:0}.expense-main .title{font-weight:550}.expense-right{text-align:right}.expense-amounts{display:flex;gap:16px}.expense-amt-col{min-width:62px}@media(max-width:560px){.expense{display:grid;grid-template-columns:40px 1fr auto;grid-template-rows:auto auto;column-gap:10px;row-gap:4px;align-items:start}.expense-date{grid-column:1;grid-row:1 / span 2}.expense-main{grid-column:2;grid-row:1 / span 2}.expense-right{grid-column:3;grid-row:1;text-align:right}.expense>*:last-child{grid-column:3;grid-row:2;justify-self:end}}.settle-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2)}.viz{--viz-1: #7c5cfc;--viz-2: #c8482f;--viz-3: #12875f;--viz-4: #a6740a;--viz-5: #b03d74;--viz-6: #166a80;--viz-7: #4c3fa6;--viz-8: #c23333;--viz-other: #898781;--viz-pos: #7c5cfc;--viz-neg: #e0483d;--viz-grid: #e4def5;--viz-axis: #c7bee8;position:relative}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .viz{--viz-1: #9b7fff;--viz-2: #f07a5f;--viz-3: #2fcb94;--viz-4: #e8b23d;--viz-5: #e37aae;--viz-6: #3b9fbd;--viz-7: #8a7deb;--viz-8: #f06767;--viz-other: #898781;--viz-pos: #9b7fff;--viz-neg: #ff6b6b;--viz-grid: #2c2440;--viz-axis: #443768}}:root[data-theme=dark] .viz{--viz-1: #9b7fff;--viz-2: #f07a5f;--viz-3: #2fcb94;--viz-4: #e8b23d;--viz-5: #e37aae;--viz-6: #3b9fbd;--viz-7: #8a7deb;--viz-8: #f06767;--viz-other: #898781;--viz-pos: #9b7fff;--viz-neg: #ff6b6b;--viz-grid: #2c2440;--viz-axis: #443768}.viz svg{display:block;width:100%;height:auto;overflow:visible}.viz-mark{transition:opacity .1s ease}.viz:hover .viz-mark{opacity:.72}.viz .viz-mark:hover{opacity:1}.viz-tip{position:absolute;z-index:5;transform:translate(-50%,-100%);pointer-events:none;white-space:nowrap;padding:5px 9px;border-radius:7px;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);font-size:.8rem}.viz-legend{display:flex;flex-wrap:wrap;gap:4px 14px;margin-top:10px;font-size:.8rem;color:var(--text-dim)}.viz-legend span.key{display:inline-flex;align-items:center;gap:6px}.viz-legend i{width:10px;height:10px;border-radius:3px;flex:0 0 10px}.alert{padding:10px 13px;border-radius:9px;font-size:.9rem;background:color-mix(in srgb,var(--danger) 12%,var(--surface));border:1px solid color-mix(in srgb,var(--danger) 35%,var(--border));color:var(--danger)}.alert-ok{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 35%,var(--border));color:var(--accent)}.alert-upgrade{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;background:color-mix(in srgb,var(--favorite) 12%,var(--surface));border-color:color-mix(in srgb,var(--favorite) 40%,var(--border));color:var(--text)}.alert-action{flex:none;font-weight:650;color:var(--favorite);text-decoration:none;white-space:nowrap}.alert-action:hover{text-decoration:underline}.empty{text-align:center;padding:34px 16px;color:var(--text-dim)}.empty h3{color:var(--text);margin-bottom:5px}.auth-shell{min-height:100vh;display:grid;grid-template-columns:minmax(0,1fr);place-items:center;padding:24px}.auth-card{width:100%;max-width:380px}.modal-backdrop{position:fixed;inset:0;z-index:50;background:#0a0c1073;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:grid;grid-template-columns:minmax(0,1fr);place-items:start center;padding:6vh 16px 24px;overflow-y:auto}.modal{width:100%;max-width:520px;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:14px;box-shadow:0 20px 60px #0000004d;padding:20px}.divider{height:1px;background:var(--border);margin:4px 0}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:16px}.tabs button{border:none;background:none;border-bottom:2px solid transparent;border-radius:0;padding:9px 13px;color:var(--text-dim)}.tabs button[aria-selected=true]{color:var(--text);border-bottom-color:var(--accent)}.tabs button:hover{background:none;color:var(--text)}.robot-check{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2)}.robot-check-box{flex:0 0 auto;width:26px;height:26px;padding:0;border:2px solid var(--border);border-radius:6px;background:var(--surface);color:var(--accent);font-size:1rem;line-height:1;display:flex;align-items:center;justify-content:center}.robot-check-box:hover:not(:disabled){border-color:var(--accent);background:var(--surface)}.robot-check-box[aria-checked=true]{border-color:var(--accent);background:var(--accent-soft)}.robot-check-box:disabled{cursor:default}.robot-check-spinner{width:14px;height:14px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:robot-check-spin .7s linear infinite}@keyframes robot-check-spin{to{transform:rotate(360deg)}}.honeypot-field{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.attachment-thumb{position:relative;width:64px;height:64px;flex:0 0 64px;border:1px solid var(--border);border-radius:9px;overflow:hidden;background:var(--surface-2)}.attachment-thumb img{width:100%;height:100%;object-fit:cover;display:block}.attachment-thumb .attachment-file{display:grid;place-items:center;width:100%;height:100%;font-size:1.4rem}.attachment-remove{position:absolute;top:3px;right:3px;width:18px;height:18px;padding:0;border-radius:50%;font-size:.68rem;line-height:1;background:color-mix(in srgb,var(--surface) 85%,black);border-color:var(--border);color:var(--text-dim)}.attachment-remove:hover{color:var(--danger)}.favorite-btn{font-size:1.15rem;line-height:1;padding:4px 6px;color:var(--text-dim)}.favorite-btn:hover,.favorite-btn[aria-pressed=true]{color:var(--favorite)}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:20px;height:100%}.stat-card-clickable{display:block;width:100%;text-align:left;cursor:pointer;transition:border-color .12s ease,transform .12s ease}.stat-card-clickable:hover{border-color:color-mix(in srgb,var(--accent) 40%,var(--border));transform:translateY(-1px)}.stat-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.stat-label{font-size:12.5px;color:var(--text-dim);font-weight:500}.stat-icon{width:30px;height:30px;border-radius:9px;background:var(--accent-soft);display:flex;align-items:center;justify-content:center;font-size:14px;flex:0 0 auto}.stat-value{font-size:26px;font-weight:600;letter-spacing:-.01em}.stat-sub{font-size:12.5px;color:var(--text-dim);margin-top:8px}.pill-delta{font-family:JetBrains Mono,monospace;font-size:11px;padding:2px 7px;border-radius:100px;font-weight:600}.pill-up{background:var(--accent-soft);color:var(--pos)}.pill-down{background:var(--accent-soft);color:var(--neg)}.card-title{font-size:15px;font-weight:700}.card-sub{font-size:12.5px;color:var(--text-dim);margin-top:2px}.cat-list{margin-top:18px;display:flex;flex-direction:column;gap:15px}.cat-row{display:flex;align-items:center;gap:12px}.cat-icon{width:32px;height:32px;border-radius:9px;background:var(--accent-soft);display:flex;align-items:center;justify-content:center;font-size:14px;flex:0 0 auto}.cat-info{flex:1;min-width:0}.cat-top{display:flex;justify-content:space-between;font-size:13px;margin-bottom:6px;gap:8px}.cat-top .amt{font-weight:600;flex:0 0 auto}.cat-bar{height:6px;border-radius:100px;background:var(--surface-2);overflow:hidden}.cat-bar-fill{height:100%;border-radius:100px}.section-title-row{display:flex;justify-content:space-between;align-items:center;margin:8px 0 14px}.section-title-row h2{font-size:16px}.dash-group-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:26px}.dash-group-card{display:block;background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:20px;text-decoration:none;color:inherit;transition:box-shadow .15s ease,transform .15s ease}.dash-group-card:hover{box-shadow:0 16px 32px -18px #7c5cfc59;transform:translateY(-2px)}.dash-group-card-active{border-color:var(--accent);background:var(--accent-soft)}.dash-group-card{cursor:grab;touch-action:pan-y;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.dash-group-card:active{cursor:grabbing}.dash-group-card-dragging{opacity:.5}.dash-group-card-drag-over{outline:2px dashed var(--accent);outline-offset:2px}.dash-group-emoji{width:38px;height:38px;border-radius:11px;background:var(--accent-soft);display:flex;align-items:center;justify-content:center;font-size:18px}.dash-group-name{font-size:15px;font-weight:700;margin-top:14px}.dash-group-members{font-size:12.5px;color:var(--text-dim);margin-top:3px}.dash-group-footer{display:flex;justify-content:space-between;align-items:center;margin-top:16px;padding-top:14px;border-top:1px solid var(--border)}.dash-group-amt{font-weight:600;font-size:13.5px}.status-badge{font-family:JetBrains Mono,monospace;font-size:10.5px;font-weight:600;padding:4px 9px;border-radius:100px;white-space:nowrap}.badge-settled{background:var(--accent-soft);color:var(--text-dim)}.badge-owe{background:color-mix(in srgb,var(--neg) 16%,transparent);color:var(--neg)}.badge-owed{background:color-mix(in srgb,var(--pos) 16%,transparent);color:var(--pos)}.dash-activity-row{display:flex;align-items:center;gap:14px;padding:14px 20px;border-bottom:1px solid var(--border);text-decoration:none;color:inherit}.dash-activity-row:last-child{border-bottom:none}.dash-activity-row:hover{background:var(--surface-2)}.dash-activity-icon{width:36px;height:36px;border-radius:10px;background:var(--surface-2);display:flex;align-items:center;justify-content:center;font-size:16px;flex:0 0 auto}.dash-activity-title{font-size:13.8px;font-weight:600}.dash-activity-paidby{flex:0 0 auto;min-width:90px}.dash-activity-amt{flex:0 0 auto;min-width:76px;text-align:right;font-weight:600}@media(max-width:1000px){.dash-two-col{grid-template-columns:1fr}.dash-group-grid{grid-template-columns:1fr 1fr}}@media(max-width:720px){.stat-row,.dash-group-grid{grid-template-columns:1fr}.dash-activity-paidby{display:none}}.dash-split{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:20px;transition:grid-template-columns .18s ease}.dash-split.rail-collapsed{grid-template-columns:minmax(0,1fr) 44px}.dash-side-rail{display:flex;flex-direction:column;overflow-y:auto;position:relative;padding-top:40px}.dash-side-rail.collapsed{overflow:hidden;padding:40px 0 12px;align-items:center}.dash-rail-toggle{position:absolute;top:10px;right:10px;width:26px;height:26px;border-radius:8px;border:1px solid var(--border);background:var(--surface-2);color:var(--text-dim);font-size:15px;line-height:1;cursor:pointer}.dash-rail-toggle:hover{color:var(--text);border-color:var(--accent)}.dash-side-rail.collapsed .dash-rail-toggle{position:static}.dash-rail-section-head{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:600;color:var(--text-dim);margin-bottom:10px;width:100%;background:none;border:none;padding:4px 2px;cursor:pointer;border-radius:6px}.dash-rail-section-head:hover{color:var(--text);background:var(--surface-2)}.dash-rail-chevron{transition:transform .15s ease;font-size:10px}.dash-rail-chevron.collapsed{transform:rotate(-90deg)}.dash-rail-section-row{display:flex;align-items:center;gap:4px}.dash-rail-section-row .dash-rail-section-head{flex:1;min-width:0}.dash-rail-add-btn{flex:0 0 auto;width:20px;height:20px;border-radius:6px;margin-bottom:10px;border:1px solid var(--border);background:none;color:var(--text-dim);font-size:13px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}.dash-rail-add-btn:hover{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}.dash-rail-pin{display:flex;align-items:stretch;gap:4px;margin-bottom:10px}.dash-rail-pin .widget-handle{flex:0 0 auto;align-self:center}.dash-rail-pin .dash-group-card{padding:12px 14px}.dash-rail-move-buttons{display:flex;flex-direction:column;gap:2px;flex:0 0 auto}.dash-rail-move-buttons .btn-ghost{padding:2px 6px;font-size:10px;line-height:1}.dash-side-rail .dash-group-grid{grid-template-columns:1fr;margin-bottom:0}@media(max-width:1000px){.dash-split,.dash-split.rail-collapsed{grid-template-columns:1fr}.dash-side-rail{overflow-y:visible}.dash-side-rail.collapsed{padding:10px 0;min-height:0}.dash-side-rail .dash-group-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:720px){.dash-side-rail .dash-group-grid{grid-template-columns:1fr}}.avatar-stack-item{color:#fff;margin-left:-8px;border:2px solid var(--surface)}.avatar-stack-item:first-child{margin-left:0}.game-avatar-stack{display:flex}.active-games-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}@media(max-width:900px){.active-games-grid{grid-template-columns:1fr}}.game-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:22px;position:relative;display:flex;flex-direction:column;gap:14px}.game-card-top{display:flex;align-items:center;gap:12px}.game-card-emoji{width:40px;height:40px;border-radius:11px;display:flex;align-items:center;justify-content:center;font-size:18px;flex:0 0 auto}.game-card-title{font-weight:700;font-size:1rem}.game-stat-row{display:flex;justify-content:space-between;background:var(--surface-2);border-radius:12px;padding:12px 14px}.game-stat{display:flex;flex-direction:column;gap:2px}.live-pill{position:absolute;top:20px;right:20px;display:flex;align-items:center;gap:6px;font-family:JetBrains Mono,monospace;font-size:10.5px;color:var(--pos);background:var(--accent-soft);padding:4px 10px;border-radius:100px;font-weight:600}.live-dot{width:6px;height:6px;border-radius:50%;background:var(--pos);animation:games-pulse 1.6s infinite}@keyframes games-pulse{0%,to{opacity:1}50%{opacity:.35}}.module-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px}.module-card-grid .card{cursor:pointer}.tab-toggle{display:flex;background:var(--surface-2);border-radius:10px;padding:4px;gap:4px}.tab-btn{flex:1;text-align:center;padding:8px 0;border-radius:8px;font-size:13px;font-weight:600;color:var(--text-dim);cursor:pointer;border:none;background:transparent}.tab-btn.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.game-table-layout{display:grid;grid-template-columns:1fr 260px;gap:24px;align-items:start;margin-top:8px}.game-table-players{position:sticky;top:84px}@media(max-width:900px){.game-table-layout{grid-template-columns:1fr}.game-table-players{position:static}}.trip-hero{background:linear-gradient(120deg,#1e1733,#2a2050 55%,#3b2c6e);border-radius:16px;padding:14px 20px 16px;color:#fff;margin:16px 0 20px;position:relative;overflow:hidden}.trip-hero:before{content:"";position:absolute;top:-70px;right:-50px;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,rgba(124,92,252,.45),transparent 70%);pointer-events:none}.trip-hero-row{position:relative;display:grid;grid-template-columns:1fr auto 1fr;align-items:start;gap:12px}.trip-status{display:inline-flex;align-items:center;gap:6px;font-family:JetBrains Mono,monospace;font-size:11px;background:#ffffff1a;border:1px solid rgba(255,255,255,.18);padding:4px 11px;border-radius:100px;color:#d9ccff;justify-self:start}.trip-hero h1{margin:0;font-size:22px;color:#fff;overflow-wrap:break-word}.trip-hero h1 .muted{color:#b9afd6}.trip-hero-meta{color:#b9afd6;font-size:13px;margin-top:4px}.trip-hero-progress{position:relative;max-width:460px;margin:12px auto 0}.trip-hero-progress .trip-budget-bar{background:#ffffff24;margin:0 0 5px}.trip-hero-progress-caption{display:flex;justify-content:space-between;gap:10px;font-size:12px;color:#b9afd6}.trip-hero-progress-caption b{color:#fff;font-family:JetBrains Mono,monospace;font-weight:600}.trip-hero .btn-link{background:none;border:none;color:#d9ccff;padding:0;font:inherit;text-decoration:underline;cursor:pointer}@media(max-width:720px){.trip-hero-row{grid-template-columns:1fr;justify-items:center}.trip-hero .trip-status{justify-self:start}.trip-hero-row>:last-child{justify-self:center!important}}.trip-people-stack{display:flex}.trip-people-stack .avatar{border:2px solid #241c3f;margin-left:-9px}.trip-people-stack .avatar:first-child{margin-left:0}.trip-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px;align-items:start}.trip-rail{display:flex;flex-direction:column;gap:16px;position:sticky;top:84px}.trip-rail-title{font-size:12.5px;font-weight:700;margin-bottom:12px}.trip-stat-line{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--border);font-size:13px;color:var(--text-dim)}.trip-stat-line:last-child{border-bottom:none}.trip-stat-line b{font-family:JetBrains Mono,monospace;color:var(--text);font-weight:700}.trip-budget-bar{height:8px;border-radius:100px;background:var(--surface-2);overflow:hidden;margin:10px 0 4px}.trip-budget-fill{height:100%;background:linear-gradient(90deg,var(--accent),color-mix(in srgb,var(--accent) 60%,#fff));border-radius:100px}.trip-budget-fill.over{background:var(--neg)}.trip-budget-caption{display:flex;justify-content:space-between;font-size:11.5px;color:var(--text-dim)}.trip-quick-actions{display:flex;flex-direction:column;gap:8px}.trip-qa-btn{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;border:1px solid var(--border);background:var(--surface);font-size:13px;font-weight:600;cursor:pointer;color:var(--text);text-align:left}.trip-qa-btn:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.trip-timeline-day{display:flex;gap:16px}.trip-timeline-rail{display:flex;flex-direction:column;align-items:center;width:16px;flex-shrink:0}.trip-day-dot{width:11px;height:11px;border-radius:50%;background:var(--accent);border:2px solid var(--surface);box-shadow:0 0 0 3px var(--accent-soft);margin-top:4px;flex-shrink:0}.trip-day-dot.empty{background:var(--border);box-shadow:0 0 0 3px var(--bg)}.trip-day-line{flex:1;width:2px;background:var(--border);margin-top:2px;min-height:12px}.trip-timeline-day:last-child .trip-day-line{display:none}.trip-day-block{flex:1;padding-bottom:22px;min-width:0}.trip-timeline-day:last-child .trip-day-block{padding-bottom:0}.trip-day-label-row{display:flex;align-items:baseline;gap:9px;margin-bottom:9px}.trip-day-name{font-size:13px;font-weight:700}.trip-day-date{font-family:JetBrains Mono,monospace;font-size:11px;color:var(--text-dim)}.trip-item-card{display:flex;align-items:center;gap:13px;background:var(--surface-2);border:1px solid var(--border);border-radius:12px;padding:12px 14px;margin-bottom:8px;transition:box-shadow .15s ease,border-color .15s ease}.trip-item-card:hover{box-shadow:0 10px 22px -14px #7c5cfc59;border-color:color-mix(in srgb,var(--accent) 35%,var(--border))}.trip-item-icon{width:36px;height:36px;border-radius:10px;background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0}.trip-item-info{flex:1;min-width:0}.trip-item-tag{font-size:10px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--accent)}.trip-item-title{font-size:13.5px;font-weight:700;margin-top:2px}.trip-item-sub{font-size:11.5px;color:var(--text-dim);margin-top:2px}.trip-item-actions{display:flex;gap:2px;opacity:0;transition:opacity .15s ease}.trip-item-card:hover .trip-item-actions{opacity:1}.trip-empty-day{display:flex;align-items:center;gap:9px;border:1.5px dashed var(--border);border-radius:12px;padding:11px 14px;color:var(--text-dim);font-size:13px;cursor:pointer;background:none;width:100%}.trip-empty-day:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}@media(max-width:1000px){.trip-layout{grid-template-columns:1fr}.trip-rail{position:static}}:root{--info: #3576d6;--info-soft: #eaf2fe}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--info: #5b9ef4;--info-soft: rgba(91, 158, 244, .16)}}:root[data-theme=dark]{--info: #5b9ef4;--info-soft: rgba(91, 158, 244, .16)}.admin-nav-count{font-family:JetBrains Mono,monospace;font-size:10.5px;background:var(--surface-2);color:var(--text-dim);padding:2px 7px;border-radius:100px}.side-nav button[aria-current=page] .admin-nav-count{background:color-mix(in srgb,var(--accent) 18%,transparent);color:var(--accent)}.admin-stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin-bottom:6px}.admin-stat-card{border-radius:14px;padding:18px}.admin-stat-card.tone-accent{background:var(--accent-soft)}.admin-stat-card.tone-gold{background:color-mix(in srgb,var(--favorite) 16%,var(--surface))}.admin-stat-card.tone-pos{background:color-mix(in srgb,var(--pos) 14%,var(--surface))}.admin-stat-card.tone-info{background:var(--info-soft)}.admin-stat-num{font-size:30px;font-family:Figtree,sans-serif;font-weight:800;line-height:1.1}.admin-stat-label{color:var(--text-dim);font-size:12.5px;margin-top:6px}.admin-stat-caption{font-family:JetBrains Mono,monospace;font-size:10.5px;color:var(--text-dim);margin-top:8px}.admin-two-col{display:grid;grid-template-columns:1fr 1fr;gap:18px}@media(max-width:720px){.admin-two-col{grid-template-columns:1fr}}.admin-signup-row,.admin-activity-row{display:flex;align-items:center;gap:11px;padding:9px 0;border-bottom:1px solid var(--border)}.admin-signup-row:last-child,.admin-activity-row:last-child{border-bottom:none}.admin-module-usage-row{display:flex;align-items:center;gap:10px;padding:6px 0}.admin-module-mini-icon{width:26px;height:26px;border-radius:8px;background:var(--surface-2);display:flex;align-items:center;justify-content:center;font-size:13px;flex-shrink:0}.admin-module-row{display:flex;align-items:center;gap:16px;padding:16px 0;border-bottom:1px solid var(--border)}.admin-module-row:last-child{border-bottom:none}.admin-module-icon{width:40px;height:40px;border-radius:11px;background:var(--accent-soft);display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}.admin-module-info{flex:1;min-width:0}.admin-module-name{font-size:14px;font-weight:700}.admin-module-desc{font-size:12px;color:var(--text-dim);margin-top:2px}.admin-module-mid{width:160px;flex-shrink:0}.admin-module-mid-label{display:flex;justify-content:space-between;font-size:10.5px;color:var(--text-dim);margin-bottom:5px}.admin-module-progress{height:6px;background:var(--surface-2);border-radius:100px;overflow:hidden}.admin-module-progress-fill{height:100%;border-radius:100px;background:var(--accent)}.admin-switch{width:40px;height:23px;border-radius:100px;background:var(--border);position:relative;cursor:pointer;flex-shrink:0;display:inline-block}.admin-switch.on{background:var(--accent)}.admin-switch input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}.admin-switch:after{content:"";position:absolute;top:3px;left:3px;width:17px;height:17px;border-radius:50%;background:#fff;transition:transform .15s ease;box-shadow:0 1px 3px #00000040}.admin-switch.on:after{transform:translate(17px)}.admin-toolbar{display:flex;gap:10px;margin-bottom:16px;flex-wrap:wrap;align-items:center}.admin-search{flex:1;min-width:200px;display:flex;align-items:center;gap:8px;background:var(--surface-2);border:1px solid var(--border);border-radius:9px;padding:8px 12px}.admin-search input{border:none;background:transparent;outline:none;font-size:13px;flex:1;color:var(--text)}.admin-table{width:100%;border-collapse:collapse}.admin-table th{text-align:left;font-size:10.5px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.03em;padding:9px 10px;border-bottom:1px solid var(--border);white-space:nowrap}.admin-table td{padding:11px 10px;border-bottom:1px solid var(--border);font-size:13px;vertical-align:middle}.admin-table tr:last-child td{border-bottom:none}.admin-user-cell{display:flex;align-items:center;gap:10px}.admin-user-name{font-weight:600}.admin-badge{font-family:JetBrains Mono,monospace;font-size:10px;font-weight:700;padding:3px 9px;border-radius:100px;display:inline-block;white-space:nowrap}.badge-role-admin{background:var(--accent-soft);color:var(--accent)}.badge-role-member{background:var(--surface-2);color:var(--text-dim)}.badge-status-active{background:color-mix(in srgb,var(--pos) 16%,transparent);color:var(--pos)}.badge-status-new{background:color-mix(in srgb,var(--favorite) 18%,transparent);color:var(--favorite)}@media(max-width:900px){.admin-stat-grid{grid-template-columns:1fr 1fr}.admin-module-mid{display:none}}.admin-side-nav a{display:flex;align-items:center;padding:9px 12px;border-radius:8px;font-size:13.5px;color:var(--text-dim);text-decoration:none}.admin-side-nav a:hover{background:var(--surface-2);color:var(--text)}.admin-side-nav a.admin-nav-active{background:var(--accent-soft);color:var(--accent);font-weight:600}.admin-nav-group-label{font-family:JetBrains Mono,monospace;font-size:10px;color:var(--text-dim);letter-spacing:.06em;text-transform:uppercase;padding:14px 12px 5px}.admin-nav-group-label:first-child{padding-top:2px}.admin-top-nav{display:flex;align-items:center;flex-wrap:wrap;gap:2px;padding:6px;margin:18px 0 20px;background:var(--surface-2);border:1px solid var(--border);border-radius:12px;overflow-x:auto}.admin-top-nav-group{display:flex;align-items:center;gap:2px}.admin-top-nav-divider{width:1px;height:20px;background:var(--border);margin:0 6px;flex:0 0 auto}.admin-top-nav a{display:flex;align-items:center;white-space:nowrap;padding:8px 13px;border-radius:8px;font-size:13.5px;color:var(--text-dim);text-decoration:none;flex:0 0 auto}.admin-top-nav a:hover{background:var(--surface);color:var(--text)}.admin-top-nav a.admin-nav-active{background:var(--accent);color:var(--accent-text);font-weight:600}@media(max-width:720px){.admin-top-nav{flex-wrap:nowrap}.admin-top-nav-divider{margin:0 8px}}.admin-perm-table{width:100%;border-collapse:collapse}.admin-perm-table th,.admin-perm-table td{padding:11px 12px;text-align:center;border-bottom:1px solid var(--border);font-size:13px}.admin-perm-table th:first-child,.admin-perm-table td:first-child{text-align:left}.admin-perm-table td:first-child{font-weight:500}.admin-perm-table tr:last-child td{border-bottom:none}.admin-check-yes{color:var(--pos);font-size:15px}.admin-check-no{color:var(--border);font-size:15px}.admin-empty-note{background:var(--surface-2);border:1px dashed var(--border);border-radius:12px;padding:16px 18px;font-size:13px;color:var(--text-dim);line-height:1.5}.announcement-banner{display:flex;align-items:center;gap:10px;padding:11px 28px;background:var(--accent-soft);color:var(--text);font-size:13.5px;border-bottom:1px solid var(--border)}.announcement-dismiss{border:none;background:none;color:var(--text-dim);cursor:pointer;padding:4px 6px;flex-shrink:0}.announcement-dismiss:hover{color:var(--text)}.feedback-widget{position:fixed;right:22px;bottom:22px;z-index:60;display:flex;flex-direction:column;align-items:flex-end;gap:12px}.feedback-bubble{width:52px;height:52px;border-radius:50%;border:none;cursor:pointer;background:var(--accent);color:var(--accent-text);font-size:22px;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 24px -8px color-mix(in srgb,var(--accent) 60%,transparent),0 2px 8px #0003;transition:transform .15s ease}.feedback-bubble:hover{transform:scale(1.06)}.feedback-panel{width:min(340px,calc(100vw - 44px));background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:18px;box-shadow:0 20px 48px -16px #0006}.feedback-panel-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.feedback-panel-head h3{margin:0}.feedback-close{border:none;background:none;color:var(--text-dim);cursor:pointer;padding:4px 6px}.feedback-close:hover{color:var(--text)}.feedback-type-row{display:flex;flex-wrap:wrap;gap:6px}.feedback-type-pill{border:1px solid var(--border);background:var(--surface-2);color:var(--text-dim);border-radius:100px;padding:6px 12px;font-size:12.5px;cursor:pointer}.feedback-type-pill.active{background:var(--accent-soft);color:var(--accent);border-color:var(--accent);font-weight:600}.feedback-panel textarea{resize:vertical;min-height:88px}@media(max-width:900px){.admin-side-nav{flex-direction:row;overflow-x:auto}.admin-nav-group-label{display:none}}.hw{height:100%}.hw-head{display:flex;align-items:center;gap:8px;margin-bottom:10px;font-size:14px}.hw-head a{color:var(--accent);text-decoration:none}.hw-row{display:flex;align-items:center;gap:12px;padding:9px 0;border-top:1px solid var(--border)}.hw-row:first-of-type{border-top:none}.hw-grow{flex:1;min-width:0}.hw-title{font-weight:600;font-size:13.5px;overflow-wrap:anywhere}.hw-icon{width:32px;height:32px;border-radius:9px;background:var(--accent-soft);display:grid;place-items:center;flex:0 0 auto}.hw-avatar{width:30px;height:30px;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-size:11px;font-weight:700;display:grid;place-items:center;flex:0 0 auto}.hw-check{width:16px;height:16px;border-radius:5px;border:1.5px solid var(--border);flex:0 0 auto}.hw-section{display:flex;justify-content:space-between;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--text-dim);background:var(--surface-2);margin:10px -20px 0;padding:6px 20px}.hw-filters{display:flex;gap:4px}.hw-filters button{border:none;background:transparent;color:var(--text-dim);border-radius:100px;padding:4px 12px;font-size:12.5px}.hw-filters button.on{background:var(--text);color:var(--surface)}.hw-pill{font-size:11px;padding:2px 8px;border-radius:100px;background:var(--surface-2);color:var(--text-dim);white-space:nowrap}.hw-pill-neg{background:color-mix(in srgb,var(--neg) 14%,transparent);color:var(--neg)}.hw-pill-warn{background:color-mix(in srgb,#d99a1f 18%,transparent);color:#a86f00}.hw-big{font-size:26px;font-weight:600;letter-spacing:-.01em;margin-bottom:4px}.hw-split{display:flex;height:8px;border-radius:100px;overflow:hidden;margin:12px 0 6px;background:var(--surface-2)}.hw-split-pos{background:var(--pos)}.hw-split-neg{background:var(--neg)}.hw-foot{margin-top:10px;padding-top:10px;border-top:1px solid var(--border)}.hw-kv{display:flex;justify-content:space-between;gap:10px;margin:10px 0 4px}.hw-kv-row .hw-kv{margin-top:8px}.hw-bar{height:7px;border-radius:100px;background:var(--surface-2);overflow:hidden}.hw-bar-fill{height:100%;border-radius:100px}.hw-accent{background:var(--accent)}.hw-pos{background:var(--pos)}.hw-neg{background:var(--neg)}.hw-week{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;text-align:center}.hw-day{display:grid;gap:2px;min-width:0;justify-items:center;padding:6px 0;border-radius:10px;font-size:13px}.hw-day.today{background:var(--text);color:var(--surface)}.hw-day.today .muted{color:inherit;opacity:.7}.hw-dots{display:flex;gap:2px;height:6px}.hw-dots i,.hw-legend i{display:inline-block;width:6px;height:6px;border-radius:50%}.hw-legend{display:flex;flex-wrap:wrap;gap:4px 14px;margin-top:12px}.hw-legend span{display:inline-flex;align-items:center;gap:5px}.hw-quick{display:grid;grid-template-columns:1fr 1fr;gap:8px}.hw-quick-btn{padding:12px;border-radius:10px;font-size:13px;font-weight:600;text-decoration:none}.hw-q-green{background:#e3f4ec;color:#1f6b4f}.hw-q-blue{background:#e4edf8;color:#2c5c8f}.hw-q-amber{background:#fbefd8;color:#8a5a00}.hw-q-violet{background:#ece7fb;color:#5a45b5}.hw-q-grey{background:var(--surface-2);color:var(--text)}.hw-q-red{background:#fbe6e0;color:#a3432c}.hw-note{display:block;padding:9px 0;border-top:1px solid var(--border);text-decoration:none;color:inherit}.hw-note:first-of-type{border-top:none}.hw-clamp{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.hw-stacked{display:flex;height:16px;border-radius:6px;overflow:hidden;gap:1px}.hw-seg-0{background:#1f4e8c}.hw-seg-1{background:#4a7ab8}.hw-seg-2{background:#8fb0dc}.hw-seg-3{background:#b9cde9}.hw-seg-4{background:#6a5acd}.hw-seg-rest{background:var(--surface-2)}.hw-legend i.hw-seg-0,.hw-legend i.hw-seg-1,.hw-legend i.hw-seg-2,.hw-legend i.hw-seg-3,.hw-legend i.hw-seg-4,.hw-legend i.hw-seg-rest{border-radius:2px}.home-greeting{margin-bottom:14px}.home-date{font-size:13px;color:var(--text-dim);margin-bottom:4px}.home-greeting h1{margin:0;font-size:2rem;letter-spacing:-.02em}.home-toolbar{display:flex;align-items:center;gap:10px;margin-bottom:12px}.home-toolbar .row{margin-bottom:0!important}.hw-daychip{border:1px solid var(--accent);background:var(--accent-soft);color:var(--accent);border-radius:100px;padding:5px 12px;font-size:12.5px;font-weight:600}button.hw-day{border:none;background:transparent;color:inherit;font:inherit;cursor:pointer}button.hw-day:hover{background:var(--surface-2)}button.hw-day.today{background:var(--text);color:var(--surface)}button.hw-day.picked{outline:2px solid var(--accent);outline-offset:-2px}
