:root{--bg:#0d1625;--panel:#142239;--panel2:#182a43;--muted:#8fa0bb;--line:#273852;--text:#eff6ff;--teal:#67e6cf;--teal-dark:#123e40;--warn:#ffd38e;--red:#fb9494;--radius:16px;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;color-scheme:dark}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text)}button,input,textarea,select{font:inherit}button{cursor:pointer}input,textarea,select{width:100%;color:var(--text);background:#0c192a;border:1px solid #32425b;border-radius:10px;padding:12px;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--teal);box-shadow:0 0 0 3px #67e6cf22}select{color-scheme:dark}textarea{min-height:84px;resize:vertical}input::placeholder,textarea::placeholder{color:#657792}label{font-size:12px;letter-spacing:.01em;color:#bac8df;display:flex;flex-direction:column;gap:8px}
.hidden{display:none!important}.layout{display:flex;min-height:100vh}.sidebar{width:252px;flex-shrink:0;background:#101d30;border-right:1px solid var(--line);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;padding:30px 16px}.brand{display:flex;align-items:center;gap:12px;margin:0 6px 46px}.brand-mark,.login-logo{display:grid;place-items:center;width:44px;height:44px;border-radius:13px;background:var(--teal);color:#102c30;font-size:26px;font-weight:900;box-shadow:0 4px 30px #67e6cf16}.brand-copy{display:flex;flex-direction:column;gap:4px}.brand-copy strong{font-size:14px}.brand-copy span,.eyebrow,.user-info small{color:var(--muted);font-size:11px}.nav{display:grid;gap:8px}.nav button,.logout{display:flex;align-items:center;gap:14px;border:0;text-align:left;background:none;color:#9bacbf;padding:14px 15px;border-radius:12px;font-weight:550;font-size:14px}.nav button span{font-size:20px;width:24px;text-align:center}.nav button:hover,.nav button.active{color:var(--teal);background:#1b3747}.side-bottom{margin-top:auto;display:grid;gap:17px}.selfhost{padding:15px;background:#152a35;border:1px solid #244b49;border-radius:13px;color:var(--teal);font-size:12px}.selfhost small{display:block;margin-top:6px;color:var(--muted);line-height:1.4}.logout{color:#9bacbf}.main{min-width:0;flex:1}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:27px 42px;border-bottom:1px solid var(--line)}.eyebrow{letter-spacing:.15em;font-size:10px;font-weight:750}.eyebrow span{letter-spacing:0;margin-left:11px;color:#698c9c}.topbar h1{font-size:25px;letter-spacing:-.7px;margin:8px 0 0}.top-right{display:flex;align-items:center;gap:11px}.user-avatar{border-radius:50%;width:38px;height:38px;display:grid;place-items:center;background:#24465a;color:var(--teal);font-weight:800}.user-info{display:flex;flex-direction:column;gap:4px;font-size:13px}.view{max-width:1360px;margin:auto;padding:32px 42px 50px}.welcome{background:linear-gradient(100deg,#1d3e47,#15273e 80%);border:1px solid #2b5057;border-radius:20px;padding:24px 26px;display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:25px}.welcome h2{font-size:23px;margin:0 0 9px;letter-spacing:-.7px}.welcome p{font-size:13px;color:#afc5d1;margin:0;line-height:1.5}.section-row{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:18px;flex-wrap:wrap}.section-row h2{font-size:17px;margin:0}.section-row p{margin:7px 0 0;color:var(--muted);font-size:13px}.btn{border:1px solid #38516b;border-radius:10px;padding:11px 16px;background:#1b2f48;color:var(--text);font-weight:700;font-size:13px;display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap}.btn:hover{filter:brightness(1.1)}.btn.primary{background:var(--teal);border-color:var(--teal);color:#102e31}.btn.soft{background:#1c3843;border-color:#31545b;color:var(--teal)}.btn.full{width:100%}.btn.sm{padding:8px 10px;font-size:12px}.btn:disabled{opacity:.4;cursor:not-allowed}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:25px}.metric{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:20px;min-width:0}.metric .cap{font-size:12px;color:var(--muted);display:flex;justify-content:space-between;gap:8px}.metric .num{font-size:30px;font-weight:780;letter-spacing:-1.2px;margin:14px 0 5px;overflow-wrap:anywhere}.metric .foot{color:#8195ad;font-size:11px}.accent{color:var(--teal)}.amber{color:var(--warn)}.card{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:20px;min-width:0}.dash-cols{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(250px,1fr);gap:18px}.card h3{margin:0 0 20px;font-size:15px}.table-wrap{width:100%;overflow:auto}.table{width:100%;border-collapse:collapse;text-align:left;font-size:13px}.table th{font-weight:600;color:#8395ae;font-size:11px;letter-spacing:.03em;padding:12px 12px;border-bottom:1px solid var(--line);white-space:nowrap}.table td{padding:13px 12px;border-bottom:1px solid #263650;color:#d6e0ee;vertical-align:middle}.table tr:last-child td{border:0}.table tbody tr:hover{background:#1a2b41}.table .strong{font-weight:730;color:#fff}.sub{font-size:11px;color:var(--muted);margin-top:5px}.status{display:inline-flex;border-radius:8px;padding:6px 9px;font-size:11px;font-weight:700;background:#243951;color:#bdcee6;white-space:nowrap}.status.new{background:#24405b;color:#9cd3ff}.status.active{background:#25454b;color:#91efe0}.status.done{background:#2b4a3b;color:#a3ecc0}.status.warn{background:#55422c;color:#ffdca5}.status.off{background:#42343d;color:#f7b4b4}.stage{margin:18px 0}.stage .stage-title{display:flex;justify-content:space-between;font-size:12px;color:#b2c1d4;margin-bottom:8px}.bar{background:#233550;height:8px;border-radius:8px;overflow:hidden}.bar>div{height:100%;background:var(--teal);border-radius:8px}.muted{color:var(--muted)}.empty{padding:35px 12px;text-align:center;color:#9bacbf;font-size:13px;line-height:1.7}.empty .symbol{font-size:30px;display:block;color:#568b96;margin-bottom:8px}.actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.search{width:min(360px,100%);min-width:160px}.filters{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.filters select{width:auto;min-width:160px}.clickable{cursor:pointer}.tiny{font-size:11px;color:var(--muted)}.pill{display:inline-flex;border:1px solid #567153;background:#263d3c;color:#b3edcf;border-radius:7px;font-size:10px;padding:4px 6px;margin:4px 0}.spacer{height:16px}.two-cols{display:grid;grid-template-columns:1fr 1fr;gap:15px}.three-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.line{border:0;border-top:1px solid var(--line);margin:22px 0}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.formgrid .wide{grid-column:1/-1}.form-actions{display:flex;gap:10px;margin-top:24px;justify-content:flex-end}.form-error{color:var(--red);font-size:12px;min-height:20px;margin-top:10px}.modal-layer,.login-layer{position:fixed;inset:0;z-index:200;display:grid;place-items:center}.modal-backdrop{position:absolute;inset:0;background:#000a;backdrop-filter:blur(5px)}.modal-dialog{position:relative;background:#17263b;border:1px solid #39536a;border-radius:20px;width:min(700px,calc(100vw - 30px));padding:30px;max-height:90vh;overflow:auto;box-shadow:0 25px 90px #0008}.modal-dialog h2{font-size:21px;margin:0 0 21px}.modal-close{position:absolute;right:19px;top:14px;border:0;background:transparent;color:#a7bad0;font-size:30px}.login-layer{background:radial-gradient(ellipse at 50% 20%,#204448,#0d1625 70%);padding:20px}.login-card{width:min(420px,100%);padding:34px;background:#14243a;border-radius:22px;border:1px solid #335066}.login-logo{margin-bottom:24px}.login-card h1{font-size:26px;margin:0 0 6px}.login-card p{margin:0 0 24px;color:var(--muted);font-size:13px}.login-card form{display:grid;gap:18px}.login-foot{margin-top:18px;color:#7e94ae;font-size:11px;text-align:center}.toast{position:fixed;bottom:25px;right:25px;background:#25413b;border:1px solid #4c8172;border-radius:12px;padding:14px 19px;z-index:300;box-shadow:0 8px 35px #0009;font-size:13px;max-width:360px}.toast.bad{background:#4c2c35;border-color:#985262}.bottomnav{display:none}.call-text{white-space:pre-wrap;max-height:260px;overflow:auto;background:#0d1c2c;padding:14px;border:1px solid var(--line);border-radius:10px;font-size:13px;line-height:1.7}.tag{font-size:11px;padding:4px 7px;border-radius:6px;background:#355263;color:#b1e4e2}.hint{font-size:12px;color:#96abc6;line-height:1.6}.loading{padding:55px;text-align:center;color:var(--muted)}.mobile-cards{display:none}.money-positive{color:var(--teal)}
@media (max-width:1100px){.sidebar{width:210px}.topbar{padding:23px 26px}.view{padding:25px}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.dash-cols{grid-template-columns:1fr}}
@media (max-width:760px){.sidebar{display:none}.layout{display:block}.topbar{padding:20px 19px 16px;align-items:flex-start}.topbar h1{font-size:22px}.user-info{display:none}.user-avatar{width:34px;height:34px}.view{padding:18px 14px 95px}.welcome{padding:19px;display:block}.welcome h2{font-size:20px}.welcome .btn{margin-top:16px}.metrics{gap:10px}.metric{padding:15px}.metric .num{font-size:25px}.metric .foot{font-size:10px}.card{padding:16px}.dash-cols{gap:12px}.section-row{align-items:flex-start}.section-row .btn{margin-left:auto}.table-wrap{overflow:auto}.bottomnav{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;bottom:0;left:0;right:0;z-index:90;background:#102136;border-top:1px solid #29405a;padding:8px 0 max(8px,env(safe-area-inset-bottom));box-shadow:0 -10px 35px #0004}.bottomnav button{border:0;background:transparent;color:#9cacc2;display:grid;gap:3px;place-items:center;font-size:23px;padding:2px}.bottomnav button small{font-size:10px}.bottomnav button.active{color:var(--teal)}.modal-dialog{width:100%;max-height:94dvh;border-radius:20px 20px 0 0;margin-top:auto;padding:24px 18px 40px}.modal-layer{align-items:end}.formgrid{grid-template-columns:1fr}.formgrid .wide{grid-column:auto}.two-cols,.three-cols{grid-template-columns:1fr}.filters{width:100%}.filters .search{width:100%}.toast{left:15px;right:15px;bottom:88px}.mobile-cards{display:grid;gap:10px}.mobile-job{padding:15px;background:var(--panel);border:1px solid var(--line);border-radius:14px}.mobile-job .row1{display:flex;justify-content:space-between;gap:10px}.mobile-job strong{font-size:14px}.mobile-job p{font-size:12px;color:var(--muted);margin:10px 0}.mobile-job .row2{display:flex;justify-content:space-between;gap:10px;align-items:center}.desktop-job-table{display:none}}
