:root{--bg:#0a0a0a;--panel:#111;--panel2:#151515;--line:#292929;--text:#fafafa;--muted:#969696;--muted2:#666;--accent:#ff3d00;--accent-soft:#ff3d001f;--ok:#52d273;--warn:#ffc857;--bad:#ff6b6b;--radius:18px;--mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace}*{box-sizing:border-box}html{background:var(--bg)}body{background:var(--bg);color:var(--text);margin:0;font-family:Outfit,Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button{cursor:pointer}.mono{font-family:var(--mono)}::selection{background:var(--accent);color:#fff}.muted{color:var(--muted)}.subtle{color:var(--muted2)}.portal{grid-template-columns:260px 1fr;min-height:100vh;display:grid}.sidebar{border-right:1px solid var(--line);background:#0c0c0c;flex-direction:column;height:100vh;padding:26px 18px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:11px;padding:0 8px 28px;display:flex}.brand-mark{background:var(--accent);border-radius:8px;place-items:center;width:29px;height:29px;padding:5px;display:grid}.brand-mark img{filter:brightness(0)invert();width:100%;height:100%}.brand-name{letter-spacing:-.04em;font-size:19px;font-weight:700}.brand-sub{font:9px var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}.nav-section{font:9px var(--mono);letter-spacing:.16em;text-transform:uppercase;color:#575757;margin:18px 10px 8px}.nav-link{color:#a8a8a8;border-radius:11px;align-items:center;gap:10px;margin:2px 0;padding:10px 11px;font-size:14px;display:flex}.nav-link:hover{color:#fff;background:#151515}.nav-link.active{background:var(--accent-soft);color:#fff}.nav-dot{border:1px solid;border-radius:50%;width:7px;height:7px}.nav-link.active .nav-dot{background:var(--accent);border-color:var(--accent)}.sidebar-foot{border-top:1px solid var(--line);margin-top:auto;padding-top:18px}.user-chip{align-items:center;gap:10px;padding:8px;display:flex}.avatar{background:#222;border:1px solid #333;border-radius:50%;place-items:center;width:34px;height:34px;font-size:11px;font-weight:700;display:grid}.user-name{font-size:13px;font-weight:600}.user-role{font:9px var(--mono);color:var(--muted);letter-spacing:.08em;text-transform:uppercase}.main{min-width:0}.topbar{border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);z-index:10;background:#0a0a0ade;align-items:center;height:72px;padding:0 clamp(22px,4vw,54px);display:flex;position:sticky;top:0}.topbar-title{color:var(--muted);font-size:13px}.topbar-spacer{flex:1}.topbar-badge{font:9px var(--mono);letter-spacing:.12em;text-transform:uppercase;border:1px solid var(--line);color:#aaa;border-radius:999px;padding:7px 10px}.page{max-width:1380px;margin:0 auto;padding:clamp(28px,4vw,54px)}.page-head{justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:32px;display:flex}.eyebrow{font:10px var(--mono);letter-spacing:.2em;color:var(--accent);text-transform:uppercase;margin-bottom:9px}.page h1{letter-spacing:-.045em;margin:0;font-size:clamp(34px,4vw,54px);line-height:1}.page-intro{color:var(--muted);max-width:680px;margin-top:13px;font-size:15px}.actions{flex-wrap:wrap;gap:9px;display:flex}.btn{border:1px solid var(--line);color:#eee;background:#151515;border-radius:11px;justify-content:center;align-items:center;gap:8px;padding:10px 14px;font-size:13px;font-weight:600;display:inline-flex}.btn:hover{background:#191919;border-color:#444}.btn-accent{background:var(--accent);border-color:var(--accent);color:#fff}.btn-accent:hover{background:#ed3900}.btn-ghost{background:0 0}.btn-danger{color:#f99;border-color:#4d2525}.btn-sm{padding:7px 10px;font-size:12px}.btn:disabled{opacity:.5;cursor:not-allowed}.grid{gap:14px;display:grid}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);min-width:0;padding:20px}.card-head{justify-content:space-between;align-items:center;gap:14px;margin-bottom:17px;display:flex}.card-title{letter-spacing:-.015em;font-size:15px;font-weight:650}.metric-label{font:9px var(--mono);letter-spacing:.14em;color:var(--muted);text-transform:uppercase}.metric-value{letter-spacing:-.045em;margin-top:7px;font-size:34px;font-weight:700}.metric-note{color:var(--muted);margin-top:5px;font-size:12px}.accent{color:var(--accent)}.project-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:22px;transition:transform .22s,border-color .22s;display:block}.project-card:hover{border-color:#424242;transform:translateY(-2px)}.project-top{justify-content:space-between;gap:14px;display:flex}.project-code{font:9px var(--mono);letter-spacing:.13em;color:var(--accent);text-transform:uppercase}.project-name{letter-spacing:-.025em;margin:5px 0;font-size:21px;font-weight:700}.project-phase{color:#aaa;font-size:13px}.progress-wrap{margin-top:22px}.progress-meta{color:#777;font:9px var(--mono);letter-spacing:.08em;text-transform:uppercase;justify-content:space-between;margin-bottom:8px;display:flex}.progress{background:#242424;border-radius:999px;height:5px;overflow:hidden}.progress>i{background:var(--accent);border-radius:999px;height:100%;display:block}.badge{font:9px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:#bbb;white-space:nowrap;border:1px solid #333;border-radius:999px;align-items:center;gap:6px;padding:4px 8px;display:inline-flex}.badge:before{content:"";background:#777;border-radius:50%;width:6px;height:6px}.badge.active:before,.badge.paid:before,.badge.approved:before,.badge.complete:before{background:var(--ok)}.badge.open:before,.badge.awaiting_approval:before,.badge.current:before{background:var(--warn)}.badge.overdue:before,.badge.failed:before,.badge.blocked:before{background:var(--bad)}.table-wrap{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);overflow:auto}table{border-collapse:collapse;width:100%;min-width:720px}th,td{border-bottom:1px solid var(--line);text-align:left;padding:14px 16px;font-size:13px}th{font:9px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:#747474;background:#101010}td{color:#c5c5c5}tr:last-child td{border-bottom:0}tr:hover td{background:#131313}.right{text-align:right}.section{margin-top:28px}.section-head{justify-content:space-between;align-items:end;gap:16px;margin-bottom:14px;display:flex}.section-title{letter-spacing:-.025em;font-size:19px;font-weight:700}.section-note{color:var(--muted);font-size:12px}.timeline{display:grid}.timeline-item{grid-template-columns:28px 1fr;gap:12px;padding-bottom:18px;display:grid;position:relative}.timeline-item:after{content:"";background:#303030;width:1px;position:absolute;top:18px;bottom:-1px;left:7px}.timeline-item:last-child:after{display:none}.timeline-dot{z-index:1;background:#151515;border:2px solid #555;border-radius:50%;width:15px;height:15px;margin-top:4px}.timeline-item.complete .timeline-dot{background:var(--ok);border-color:var(--ok)}.timeline-item.current .timeline-dot{background:var(--accent);border-color:var(--accent);box-shadow:0 0 0 5px #ff3d001a}.timeline-item.blocked .timeline-dot{background:var(--bad);border-color:var(--bad)}.timeline-name{font-size:13px;font-weight:600}.timeline-date{color:#777;margin-top:2px;font-size:11px}.feed{gap:11px;display:grid}.feed-item{border-bottom:1px solid var(--line);padding:16px 0}.feed-item:first-child{padding-top:0}.feed-item:last-child{border-bottom:0;padding-bottom:0}.feed-meta{justify-content:space-between;gap:10px;margin-bottom:6px;display:flex}.feed-title{font-size:14px;font-weight:650}.feed-time{font:9px var(--mono);color:#6d6d6d}.feed-body{color:#a9a9a9;font-size:13px;line-height:1.6}.file-row{border-bottom:1px solid var(--line);align-items:center;gap:13px;padding:12px 0;display:flex}.file-row:last-child{border:0}.file-icon{width:37px;height:42px;font:9px var(--mono);color:var(--accent);border:1px solid #353535;border-radius:8px;place-items:center;display:grid}.file-main{flex:1;min-width:0}.file-name{white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.file-meta{color:#747474;margin-top:3px;font-size:11px}.message-list{gap:13px;display:grid}.message{gap:11px;display:flex}.message-body{border:1px solid var(--line);background:#151515;border-radius:4px 14px 14px;max-width:760px;padding:12px 14px}.message.staff .message-body{background:#ff3d000e;border-color:#ff3d0042}.message-meta{margin-bottom:4px;font-size:11px;font-weight:650}.message-text{color:#bcbcbc;white-space:pre-wrap;font-size:13px}.message-time{font:8px var(--mono);color:#696969;margin-top:7px}.form{gap:13px;display:grid}.form-grid{grid-template-columns:1fr 1fr;gap:13px;display:grid}.field{gap:6px;display:grid}.field label{font:9px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:#777}.input,.textarea,.select{color:#eee;background:#0c0c0c;border:1px solid #303030;border-radius:10px;outline:none;width:100%;padding:11px 12px}.input:focus,.textarea:focus,.select:focus{border-color:#575757}.textarea{resize:vertical;min-height:110px}.form-error{color:#ff8d8d;font-size:12px}.form-success{color:#88e5a0;font-size:12px}.callout{color:#aaa;background:#111;border:1px solid #333;border-radius:14px;padding:15px 17px;font-size:13px}.callout.demo{background:#ffc8570b;border-color:#ffc8574d}.callout strong{color:#fff}.empty{text-align:center;color:#777;border:1px dashed #333;border-radius:14px;padding:34px}.empty b{color:#bbb;margin-bottom:5px;display:block}.login-page{grid-template-columns:1.1fr .9fr;min-height:100vh;display:grid}.login-art{border-right:1px solid var(--line);background:radial-gradient(circle at 40% 45%,#ff3d0024,#0000 35%),#090909;flex-direction:column;justify-content:space-between;padding:60px;display:flex;position:relative;overflow:hidden}.login-art:after{content:"";border:1px solid #ff3d001f;border-radius:50%;width:520px;height:520px;position:absolute;top:18%;right:-190px;box-shadow:0 0 0 70px #ff3d0006,0 0 0 140px #ff3d0004}.login-copy{z-index:1;position:relative}.login-copy h1{letter-spacing:-.06em;margin:0 0 25px;font-size:clamp(54px,7vw,102px);line-height:.86}.login-copy h1 em{color:var(--accent);font-weight:300}.login-copy p{color:#9d9d9d;max-width:500px;font-size:16px}.login-panel{place-items:center;padding:34px;display:grid}.login-box{width:min(430px,100%)}.login-box h2{letter-spacing:-.04em;margin:0 0 9px;font-size:32px}.login-box>p{color:#858585;margin-bottom:27px;font-size:14px}.login-foot{font:9px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:#555;margin-top:20px}.admin-banner{color:#d2a190;background:#ff3d0014;border:1px solid #ff3d0033;border-radius:10px;padding:9px 16px;font-size:12px}.split{grid-template-columns:minmax(0,1.6fr) minmax(280px,.75fr);gap:14px;display:grid}.sticky-card{align-self:start;position:sticky;top:90px}.kpi-strip{flex-wrap:wrap;gap:24px;display:flex}.kpi{min-width:120px}.kpi b{font-size:19px;display:block}.kpi span{font:8px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:#6e6e6e}@media (max-width:1100px){.grid-4,.grid-3{grid-template-columns:repeat(2,1fr)}.split{grid-template-columns:1fr}.sticky-card{position:static}}@media (max-width:820px){.portal{grid-template-columns:1fr}.sidebar{border-right:0;border-bottom:1px solid var(--line);height:auto;padding:15px;position:relative}.brand{padding:0}.nav-section,.sidebar-foot{display:none}.sidebar nav{gap:3px;margin-top:12px;display:flex;overflow:auto}.nav-link{white-space:nowrap}.nav-dot,.topbar{display:none}.page{padding:26px 18px}.login-page{grid-template-columns:1fr}.login-art{display:none}.grid-4,.grid-3,.grid-2,.form-grid{grid-template-columns:1fr}.page-head{flex-direction:column;align-items:flex-start}.project-top{flex-direction:column}}
