@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-vietnamese-wght-normal-BUzh504Q.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-ext-wght-normal-CcLUaPy7.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-wght-normal-DLoelf7F.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Figtree Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(/assets/figtree-latin-ext-wght-normal-DCwSJGxG.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Figtree Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(/assets/figtree-latin-wght-normal-D_ZTVpCC.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--paper:#f2f5f3;--surface:#fff;--ink:#0e2a30;--ink-soft:#1a3c43;--ink-line:#24494f;--text:#10262b;--text-muted:#56696d;--line:#dbe2df;--line-strong:#c3ceca;--brand:#0b5563;--brand-hover:#093f4b;--brand-tint:#e0eef0;--signal:#d9e64c;--danger:#b3261e;--danger-tint:#fbe9e7;--ok:#1f7a4d;--ok-tint:#e2f3ea;--warn-tint:#f6f0d2;--font-display:"Bricolage Grotesque Variable", "Segoe UI", sans-serif;--font-body:"Figtree Variable", "Segoe UI", system-ui, sans-serif;--text-xs:.8125rem;--text-sm:.9375rem;--text-md:1rem;--text-lg:1.25rem;--text-xl:1.75rem;--text-2xl:clamp(1.75rem, 1.2rem + 2.2vw, 2.6rem);--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--radius-sm:6px;--radius:10px;--radius-lg:16px;--shadow-pop:0 12px 40px #0e2a3038;--sidebar-w:248px;--tabbar-h:64px}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--paper);color:var(--text);font-family:var(--font-body);font-size:var(--text-md);-webkit-font-smoothing:antialiased;margin:0;line-height:1.5}h1,h2,h3{font-family:var(--font-display);letter-spacing:-.015em;margin:0;font-weight:650;line-height:1.15}h1{font-size:var(--text-2xl)}h2{font-size:var(--text-lg)}p{margin:0}a{color:var(--brand)}button,input,select{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:3px solid var(--brand);outline-offset:2px}.on-dark :focus-visible,.sidebar :focus-visible{outline-color:var(--signal)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.skip-link{left:var(--space-3);z-index:100;background:var(--signal);color:var(--ink);padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);font-weight:600;text-decoration:none;position:absolute;top:-4rem}.skip-link:focus{top:var(--space-3)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.btn{justify-content:center;align-items:center;gap:var(--space-2);min-height:44px;padding:0 var(--space-4);border-radius:var(--radius);font-weight:600;font-size:var(--text-sm);border:1px solid #0000;text-decoration:none;transition:background .15s,border-color .15s;display:inline-flex}.btn-primary{background:var(--brand);color:#fff}.btn-primary:hover{background:var(--brand-hover)}.btn-secondary{background:var(--surface);border-color:var(--line-strong);color:var(--text)}.btn-secondary:hover{border-color:var(--brand)}.btn-danger{background:var(--danger);color:#fff}.btn-ghost{color:var(--brand);padding:0 var(--space-3);background:0 0}.btn-ghost:hover{background:var(--brand-tint)}.btn-sm{min-height:36px;padding:0 var(--space-3)}.btn[disabled]{opacity:.55;cursor:not-allowed}.field{gap:var(--space-1);display:grid}.field>label,.field>.label{font-weight:600;font-size:var(--text-sm)}.field .hint{color:var(--text-muted);font-size:var(--text-xs)}.field .error{color:var(--danger);font-size:var(--text-xs);font-weight:600}.input{width:100%;min-height:44px;padding:0 var(--space-3);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius)}.input:hover{border-color:var(--text-muted)}.input[aria-invalid=true]{border-color:var(--danger)}.input-row{gap:var(--space-2);display:flex}.input-row .input{flex:1;min-width:0}.form{gap:var(--space-4);display:grid}.form-error{background:var(--danger-tint);color:var(--danger);padding:var(--space-3);border-radius:var(--radius);font-size:var(--text-sm);font-weight:600}.badge{font-size:var(--text-xs);background:var(--brand-tint);color:var(--brand);border-radius:999px;align-items:center;gap:6px;padding:2px 10px;font-weight:600;display:inline-flex}.badge-director{background:var(--ink);color:var(--signal)}.badge-guest{background:var(--brand-tint);color:var(--brand)}.badge-active{background:var(--ok-tint);color:var(--ok)}.badge-inactive{color:var(--text-muted);background:#ececec}.badge-soon{background:var(--warn-tint);color:#6b5d00}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--space-5)}.panel-head{justify-content:space-between;align-items:baseline;gap:var(--space-2) var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.state{text-align:center;padding:var(--space-6) var(--space-4);color:var(--text-muted);gap:var(--space-3);justify-items:center;display:grid}.state h3{color:var(--text);font-size:var(--text-lg)}.state p{max-width:42ch}.skeleton{border-radius:var(--radius-sm);background:linear-gradient(90deg,#e6ecea 25%,#f1f5f3 50%,#e6ecea 75%) 0 0/200% 100%;animation:1.4s infinite shimmer}@keyframes shimmer{to{background-position:-200% 0}}dialog.dialog{border-radius:var(--radius-lg);width:min(520px,100vw - 2rem);box-shadow:var(--shadow-pop);color:var(--text);background:var(--surface);border:0;padding:0}dialog.dialog::backdrop{background:#0e2a308c}.dialog-body{padding:var(--space-5);gap:var(--space-4);display:grid}.dialog-actions{justify-content:flex-end;gap:var(--space-2);flex-wrap:wrap;display:flex}@media (width<=640px){dialog.dialog{border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:100%;max-width:none;max-height:92dvh;margin:auto 0 0}.dialog-actions .btn{flex:1}}.toasts{z-index:50;right:var(--space-4);bottom:var(--space-4);gap:var(--space-2);display:grid;position:fixed}.toast{background:var(--ink);color:#fff;padding:var(--space-3) var(--space-4);border-radius:var(--radius);box-shadow:var(--shadow-pop);font-size:var(--text-sm);border-left:4px solid var(--signal)}.toast-error{border-left-color:#ff8a80}@media (width<=860px){.toasts{bottom:calc(var(--tabbar-h) + var(--space-3));left:var(--space-4)}}.shell{min-height:100dvh}.sidebar{width:var(--sidebar-w);background:var(--ink);color:#c9d8d6;padding:var(--space-5) var(--space-3);flex-direction:column;display:flex;position:fixed;inset:0 auto 0 0}.brand{align-items:center;gap:var(--space-3);padding:0 var(--space-3) var(--space-5);color:#fff;text-decoration:none;display:flex}.brand-mark{flex:none;width:34px;height:34px}.brand-name{font-family:var(--font-display);letter-spacing:-.01em;font-size:1.1rem;font-weight:650;line-height:1.1}.brand-name small{font-family:var(--font-body);color:#8fa9a8;letter-spacing:.02em;font-size:.72rem;font-weight:500;display:block}.nav{gap:2px;display:grid}.nav-group{margin:var(--space-5) var(--space-3) var(--space-2);font-size:var(--text-xs);color:#7f9997;font-weight:600}.nav-item{align-items:center;gap:var(--space-3);min-height:44px;padding:0 var(--space-3);border-radius:var(--radius);color:inherit;font-weight:500;font-size:var(--text-sm);text-align:left;background:0 0;border:0;width:100%;text-decoration:none;display:flex;position:relative}.nav-item:hover,.nav-item[aria-current=page]{background:var(--ink-soft);color:#fff}.nav-item[aria-current=page]:before{content:"";background:var(--signal);border-radius:0 4px 4px 0;width:4px;position:absolute;top:10px;bottom:10px;left:-12px}.nav-item[aria-disabled=true]{opacity:.5;cursor:default}.nav-item[aria-disabled=true]:hover{color:inherit;background:0 0}.nav-soon{color:#8fa9a8;border:1px solid var(--ink-line);border-radius:999px;margin-left:auto;padding:0 8px;font-size:.7rem}.icon{flex:none;width:20px;height:20px}.sidebar-foot{border-top:1px solid var(--ink-line);padding-top:var(--space-4);gap:var(--space-2);margin-top:auto;display:grid}.me{align-items:center;gap:var(--space-3);padding:0 var(--space-3);display:flex}.avatar{background:var(--signal);width:36px;height:36px;color:var(--ink);font-weight:700;font-size:var(--text-sm);border-radius:50%;flex:none;place-items:center;display:grid}.me-text{min-width:0;line-height:1.25}.me-name{color:#fff;font-weight:600;font-size:var(--text-sm);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.me-role{font-size:var(--text-xs);color:#8fa9a8}.main{margin-left:var(--sidebar-w);padding:var(--space-6) var(--space-7) var(--space-7);max-width:calc(1180px + var(--sidebar-w))}.page-head{justify-content:space-between;align-items:flex-end;gap:var(--space-4);margin-bottom:var(--space-6);flex-wrap:wrap;display:flex}.page-head p{color:var(--text-muted);margin-top:var(--space-2);max-width:60ch}.topbar,.tabbar{display:none}@media (width<=860px){.sidebar{display:none}.main{padding:var(--space-4) var(--space-4) calc(var(--tabbar-h) + var(--space-6));margin-left:0}.topbar{background:var(--ink);color:#fff;padding:var(--space-3) var(--space-4);padding-top:calc(var(--space-3) + env(safe-area-inset-top));z-index:20;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.topbar .brand{padding:0}.topbar .avatar-btn{background:0 0;border:0;border-radius:50%;place-items:center;min-width:44px;min-height:44px;padding:0;display:grid}.tabbar{z-index:20;height:calc(var(--tabbar-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--ink);border-top:1px solid var(--ink-line);grid-auto-columns:1fr;grid-auto-flow:column;display:grid;position:fixed;inset:auto 0 0}.tab{color:#a9bfbd;align-content:center;place-items:center;gap:2px;min-height:44px;font-size:.72rem;font-weight:600;text-decoration:none;display:grid}.tab[aria-current=page]{color:var(--signal)}.page-head{margin-bottom:var(--space-5)}}.login{grid-template-columns:1.05fr 1fr;min-height:100dvh;display:grid}.login-art{background:var(--ink);color:#fff;padding:var(--space-7);flex-direction:column;justify-content:space-between;display:flex;position:relative;overflow:hidden}.login-art .lead{font-family:var(--font-display);letter-spacing:-.03em;max-width:14ch;font-size:clamp(2rem,1rem + 3vw,3.6rem);font-weight:600;line-height:1.05}.login-art .sub{color:#9db5b3;max-width:34ch;margin-top:var(--space-4)}.login-ribbon{gap:6px;display:flex}.login-ribbon span{background:var(--ink-line);border-radius:999px;flex:1;height:10px}.login-ribbon span:first-child{background:var(--signal);flex:2.4}.login-ribbon span:nth-child(2){background:#7fb3ba;flex:1.6}.login-ribbon span:nth-child(3){background:#3d6f78;flex:1.1}.login-form-wrap{padding:var(--space-5);place-items:center;display:grid}.login-form{gap:var(--space-5);width:min(400px,100%);display:grid}.login-form h2{font-size:var(--text-xl)}@media (width<=860px){.login{grid-template-rows:auto 1fr;grid-template-columns:1fr}.login-art{padding:var(--space-5);gap:var(--space-5)}.login-art .lead{font-size:2rem}.login-art .sub{display:none}}.pipeline{gap:var(--space-4);display:grid}.ribbon{grid-template-columns:repeat(5,1fr);gap:6px;display:grid}.ribbon-seg{gap:var(--space-2);display:grid}.ribbon-bar{border:2px dashed var(--line-strong);border-radius:999px;height:14px}.ribbon-seg[data-filled=true] .ribbon-bar{background:var(--brand);border:0}.ribbon-name{font-size:var(--text-xs);color:var(--text-muted);font-weight:600}.ribbon-count{font-family:var(--font-display);font-size:var(--text-xl);font-weight:650;line-height:1}.home-grid{gap:var(--space-5);grid-template-columns:1.6fr 1fr;align-items:start;display:grid}.home-grid>.span-2{grid-column:1/-1}.module-list{gap:0;margin:0;padding:0;list-style:none;display:grid}.module-list li{gap:var(--space-3);padding:var(--space-3) 0;border-top:1px solid var(--line);align-items:center;display:flex}.module-list li:first-child{border-top:0;padding-top:0}.module-list .icon{color:var(--brand)}.module-list .m-text{flex:1;min-width:0}.module-list .m-name{font-weight:600}.module-list .m-desc{color:var(--text-muted);font-size:var(--text-sm)}.team-stat{font-family:var(--font-display);font-size:var(--text-xl);font-weight:650}@media (width<=860px){.home-grid{grid-template-columns:1fr}.ribbon-name{font-size:.7rem}}.table-wrap{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden}table.table{border-collapse:collapse;width:100%}.table th{text-align:left;font-size:var(--text-xs);color:var(--text-muted);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--line);background:#f8faf9;font-weight:600}.table td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--line);vertical-align:middle}.table tr:last-child td{border-bottom:0}.table tr.is-inactive td:not(.actions){color:var(--text-muted)}.person{align-items:center;gap:var(--space-3);min-width:0;display:flex}.person .avatar{background:var(--brand-tint);color:var(--brand)}.is-inactive .person .avatar{color:var(--text-muted);background:#ececec}.person-name{color:var(--text);font-weight:600}.person-email{font-size:var(--text-sm);color:var(--text-muted);overflow-wrap:anywhere}.actions{text-align:right;white-space:nowrap}.user-cards{display:none}@media (width<=860px){.table-wrap{display:none}.user-cards{gap:var(--space-3);display:grid}.user-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--space-4);gap:var(--space-3);display:grid}.user-card .meta{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.user-card .card-actions{gap:var(--space-2);display:flex}.user-card .card-actions .btn{flex:1}}
