@font-face{font-family:DM Sans;font-style:normal;font-weight:100 1000;font-display:swap;src:url(../media/c3cb240f9c892514-s.3z_x6eowsw16y.woff2)format("woff2");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:DM Sans;font-style:normal;font-weight:100 1000;font-display:swap;src:url(../media/5c285b27cdda1fe8-s.p.2_mbdogr7ni8i.woff2)format("woff2");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:DM Sans Fallback;src:local(Arial);ascent-override:94.9%;descent-override:29.66%;line-gap-override:0.0%;size-adjust:104.53%}.dm_sans_7e158b59-module__W-9B5a__className{font-family:DM Sans,DM Sans Fallback;font-style:normal}.dm_sans_7e158b59-module__W-9B5a__variable{--font-sans:"DM Sans", "DM Sans Fallback"}
@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/13bf9871fe164e7f-s.2f7nqdagzwx2-.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/cc545e633e20c56d-s.176arc174-8zp.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/71b036adf157cdcf-s.0bp8oijd_gu96.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/89b21bb081cb7469-s.1fby2rem9ngyr.woff2)format("woff2");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:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/3fe682a82f50d426-s.0vfdmo25voy_0.woff2)format("woff2");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:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/70bc3e132a0a741e-s.p.3t6q91iet4nsy.woff2)format("woff2");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:JetBrains Mono Fallback;src:local(Arial);ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.0%;size-adjust:134.59%}.jetbrains_mono_8be3b53a-module__CxiPNW__className{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.jetbrains_mono_8be3b53a-module__CxiPNW__variable{--font-mono:"JetBrains Mono", "JetBrains Mono Fallback"}
:root{--bg:#f1eee8;--white:#fff;--surface:#faf9f6;--text:#1a1917;--text2:#6b6960;--text3:#9c998f;--faint:#c4c1b9;--border:#e2dfd6;--border2:#d1cec5;--accent:#2563eb;--accent-bg:#eff6ff;--green:#059669;--green-bg:#ecfdf5;--amber:#d97706;--amber-bg:#fffbeb;--red:#dc2626;--red-bg:#fef2f2;--nav-bg:#1a1917;--nav-line:#2a2926;--nav-text:#a8a59d;--nav-hover:#2a2926;--nav-active:#3a3835;--sans:var(--font-sans), "DM Sans", sans-serif;--mono:var(--font-mono), "JetBrains Mono", monospace}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{font-family:var(--sans);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-size:13px}a{color:inherit;text-decoration:none}.btn{border:1px solid var(--border);background:var(--white);color:var(--text);font-family:var(--sans);cursor:pointer;white-space:nowrap;border-radius:6px;justify-content:center;align-items:center;gap:6px;padding:8px 18px;font-size:12px;font-weight:600;transition:all .15s;display:inline-flex}.btn:hover{background:var(--surface);border-color:var(--border2)}.btn-primary{background:var(--text);color:var(--white);border-color:var(--text)}.btn-primary:hover{opacity:.85;background:var(--text)}.btn-accent{background:var(--accent);color:#fff;border-color:var(--accent)}.btn-accent:hover{opacity:.9;background:var(--accent)}.btn-ghost{color:var(--text2);background:0 0;border-color:#0000}.btn-ghost:hover{background:#0000000d}.f{flex-direction:column;gap:4px;min-width:0;display:flex}.f label{text-transform:uppercase;letter-spacing:.06em;color:var(--text3);font-size:10px;font-weight:600}.f input,.f select,.f textarea{border:1px solid var(--border);font-family:var(--sans);color:var(--text);background:var(--white);border-radius:6px;outline:none;width:100%;padding:8px 10px;font-size:13px;transition:all .15s}.f input:focus,.f select:focus,.f textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #2563eb12}.f input.mono{font-family:var(--mono);font-size:12px}.f input::placeholder{color:var(--faint)}.grid{gap:12px;display:grid}.g2{grid-template-columns:1fr 1fr}.g3{grid-template-columns:1fr 1fr 1fr}.g4{grid-template-columns:1fr 1fr 1fr 1fr}@media (max-width:760px){.g3,.g4{grid-template-columns:1fr 1fr}}.card{background:var(--white);border:1px solid var(--border);border-radius:10px;overflow:hidden}.card-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:14px 20px;display:flex}.card-head h2{letter-spacing:-.01em;font-size:14px;font-weight:600}.card-body{padding:16px 20px}.sec{border-bottom:1px solid var(--border);padding:16px 20px}.sec:last-child{border-bottom:none}.stl{text-transform:uppercase;letter-spacing:.09em;color:var(--text3);margin-bottom:12px;font-size:10px;font-weight:700}.tw{border:1px solid var(--border);background:var(--white);border-radius:8px;overflow:hidden}.tb{border-collapse:collapse;width:100%;font-size:13px}.tb thead th{text-align:left;text-transform:uppercase;letter-spacing:.06em;color:var(--text3);background:var(--surface);border-bottom:1px solid var(--border);white-space:nowrap;padding:8px 12px;font-size:10px;font-weight:600}.tb tbody td{border-bottom:1px solid var(--border);padding:10px 12px}.tb tbody tr:last-child td{border-bottom:none}.tb tbody tr:hover td{background:var(--surface)}.tb .mono{font-family:var(--mono);font-size:12px}.tb .num{font-family:var(--mono);text-align:right;font-size:12px}.pill{text-transform:uppercase;letter-spacing:.05em;border-radius:20px;padding:3px 10px;font-size:9px;font-weight:700;display:inline-block}.pill-green{background:var(--green-bg);color:var(--green)}.pill-amber{background:var(--amber-bg);color:var(--amber)}.pill-red{background:var(--red-bg);color:var(--red)}.pill-blue{background:var(--accent-bg);color:var(--accent)}.pill-gray{background:var(--surface);color:var(--text2);border:1px solid var(--border)}.flash{border:1px solid;border-radius:8px;margin-bottom:14px;padding:10px 14px;font-size:12px;font-weight:500}.flash-error{background:var(--red-bg);color:var(--red);border-color:#fecaca}.flash-ok{background:var(--green-bg);color:var(--green);border-color:#a7f3d0}.empty{text-align:center;color:var(--text3);padding:44px 20px;font-size:13px}.empty strong{color:var(--text2);margin-bottom:4px;font-size:14px;display:block}.auth-wrap{background:radial-gradient(1200px 500px at 80% -10%, #2563eb0f, transparent 60%), var(--bg);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.auth-card{background:var(--white);border:1px solid var(--border);border-radius:14px;grid-template-columns:1fr 1fr;width:100%;max-width:820px;animation:.4s cubic-bezier(.16,1,.3,1) fadeUp;display:grid;overflow:hidden;box-shadow:0 24px 60px -30px #1a191740}@media (max-width:720px){.auth-card{grid-template-columns:1fr}.auth-brand{display:none}}.auth-brand{background:var(--nav-bg);color:#fff;flex-direction:column;justify-content:space-between;gap:40px;padding:36px 32px;display:flex}.auth-brand .logo{letter-spacing:-.02em;align-items:center;gap:10px;font-size:17px;font-weight:700;display:flex}.auth-brand .logo .dot{background:var(--accent);border-radius:50%;width:9px;height:9px}.auth-brand .tag{color:var(--nav-text);font-size:12px;line-height:1.7}.auth-brand .tag strong{color:#e8e6e1}.auth-brand .modules{font-family:var(--mono);color:#6b6960;letter-spacing:.08em;text-transform:uppercase;font-size:10px}.auth-form{flex-direction:column;justify-content:center;gap:14px;padding:36px 32px;display:flex}.auth-form h1{letter-spacing:-.01em;font-size:16px;font-weight:600}.auth-form .sub{color:var(--text3);margin-top:-8px;font-size:12px}.admin-wrap{background:var(--bg);min-height:100vh}.admin-top{background:var(--nav-bg);color:#fff;align-items:center;gap:12px;height:52px;padding:0 24px;display:flex}.admin-top .logo{align-items:center;gap:9px;font-size:14px;font-weight:700;display:flex}.admin-top .logo .dot{background:var(--accent);border-radius:50%;width:8px;height:8px}.admin-top .scope{font-family:var(--mono);color:var(--nav-text);border:1px solid var(--nav-line);text-transform:uppercase;letter-spacing:.08em;border-radius:20px;padding:3px 10px;font-size:10px}.admin-top .spacer{flex:1}.admin-top .who{color:var(--nav-text);font-size:12px}.admin-main{max-width:1080px;margin:0 auto;padding:28px 24px 60px}.admin-main h1{letter-spacing:-.02em;margin-bottom:4px;font-size:19px;font-weight:700}.admin-main .lead{color:var(--text2);margin-bottom:24px;font-size:13px}.stat-row{grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:24px;display:grid}@media (max-width:720px){.stat-row{grid-template-columns:1fr}}.stat{background:var(--white);border:1px solid var(--border);border-radius:10px;padding:16px 18px}.stat .k{text-transform:uppercase;letter-spacing:.08em;color:var(--text3);font-size:10px;font-weight:700}.stat .v{font-family:var(--mono);margin-top:6px;font-size:24px;font-weight:600}.shell{height:100vh;display:flex;overflow:hidden}.sidebar{background:var(--nav-bg);flex-direction:column;width:218px;min-width:218px;height:100vh;display:flex;overflow:hidden auto}.sidebar-logo{color:#fff;letter-spacing:-.03em;border-bottom:1px solid var(--nav-line);flex-shrink:0;align-items:center;gap:10px;padding:17px 20px 13px;font-size:15px;font-weight:700;display:flex}.sidebar-logo .dot{background:var(--accent);border-radius:50%;flex-shrink:0;width:8px;height:8px}.sidebar-company{border-bottom:1px solid var(--nav-line);color:var(--nav-text);flex-direction:column;gap:2px;padding:10px 20px;font-size:11px;display:flex}.sidebar-company strong{color:#e8e6e1;font-size:12px}.nav-section{flex:1;padding:8px 0}.nav-item{color:var(--nav-text);cursor:pointer;-webkit-user-select:none;user-select:none;border-left:3px solid #0000;align-items:center;gap:10px;padding:9px 20px;font-size:13px;font-weight:500;transition:all .12s;display:flex}.nav-item:hover{background:var(--nav-hover);color:#d4d1c9}.nav-item.active{background:var(--nav-active);color:#fff;border-left-color:var(--accent)}.nav-item svg{opacity:.6;flex-shrink:0;width:16px;height:16px}.nav-item.active svg{opacity:1}.nav-item .arrow{opacity:.4;width:12px;height:12px;margin-left:auto;transition:transform .2s}.nav-item.expanded .arrow{transform:rotate(90deg)}.nav-sub{max-height:0;transition:max-height .25s;overflow:hidden}.nav-sub.open{max-height:400px}.nav-sub-item{color:var(--nav-text);cursor:pointer;align-items:center;gap:6px;padding:7px 20px 7px 49px;font-size:12px;transition:all .12s;display:flex}.nav-sub-item:hover{color:#d4d1c9;background:var(--nav-hover)}.nav-sub-item.active{color:#60a5fa}.nav-sub-item:before{content:"";opacity:.5;background:currentColor;border-radius:50%;flex-shrink:0;width:4px;height:4px}.sidebar-footer{border-top:1px solid var(--nav-line);flex-shrink:0;padding:6px 0}.main{flex-direction:column;flex:1;min-width:0;height:100vh;display:flex;overflow:hidden}.topbar{background:var(--white);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:12px;height:48px;padding:0 20px;display:flex}.topbar-title{align-items:center;gap:8px;font-size:13px;font-weight:600;display:flex}.topbar-title .sep{color:var(--faint);font-weight:400}.topbar-title .sub{color:var(--text2);font-weight:500}.topbar-right{align-items:center;gap:10px;margin-left:auto;display:flex}.topbar-user{color:var(--text2);font-size:12px}.topbar-user strong{color:var(--text);font-weight:600}.content{flex:1;padding:20px;overflow-y:auto}.content-inner{max-width:1000px;margin:0 auto}.page-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.page-head h1{letter-spacing:-.02em;font-size:17px;font-weight:700}.page-head .desc{color:var(--text3);margin-top:2px;font-size:12px}.tile-row{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px;display:grid}@media (max-width:900px){.tile-row{grid-template-columns:1fr 1fr}}.tile{background:var(--white);border:1px solid var(--border);border-radius:10px;padding:14px 16px}.tile .k{text-transform:uppercase;letter-spacing:.07em;color:var(--text3);font-size:10px;font-weight:700}.tile .v{font-family:var(--mono);margin-top:6px;font-size:22px;font-weight:600}.tile .hint{color:var(--text3);margin-top:4px;font-size:11px}.check-item{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:12px 16px;font-size:13px;display:flex}.check-item:last-child{border-bottom:none}.check-item .mark{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;font-size:11px;font-weight:700;display:flex}.check-item .mark.done{background:var(--green-bg);color:var(--green)}.check-item .mark.todo{background:var(--surface);color:var(--text3);border:1px dashed var(--border2)}.check-item .grow{flex:1}.check-item .lbl{font-weight:600}.check-item .sub{color:var(--text3);font-size:11px}.wip{border:1.5px dashed var(--border2);text-align:center;background:var(--surface);border-radius:12px;padding:48px 24px}.wip h2{margin-bottom:6px;font-size:15px;font-weight:600}.wip p{color:var(--text3);max-width:440px;margin:0 auto;font-size:12px;line-height:1.7}.wip .badge{font-family:var(--mono);text-transform:uppercase;letter-spacing:.1em;color:var(--amber);background:var(--amber-bg);border:1px solid #fde68a;border-radius:20px;margin-bottom:14px;padding:3px 12px;font-size:10px;display:inline-block}@keyframes fadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.rise{animation:.35s cubic-bezier(.16,1,.3,1) fadeUp}
