:root{--nav:#183447;--nav2:#234b61;--green:#2f8158;--green2:#e9f7ee;--blue:#246b9b;--bg:#f4f7f9;--border:#dfe7ec;--text:#183247;--muted:#6d8191;--red:#aa3542;--amber:#9a6d12}*{box-sizing:border-box}body{margin:0;font-family:Inter,"Segoe UI",Arial,sans-serif;color:var(--text);background:var(--bg);font-size:14px}button,input,select{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh;display:flex}.sidebar{position:fixed;inset:0 auto 0 0;width:245px;background:var(--nav);color:#fff;padding:24px 16px;display:flex;flex-direction:column;z-index:20}.brand{height:58px;display:flex;align-items:center;gap:12px;padding:0 10px 20px}.brand>span,.brand-large>span{width:42px;height:42px;border:1px solid #6f8b9b;border-radius:10px;display:grid;place-items:center;font-size:25px;font-weight:800;color:#abedba}.brand b{display:block;letter-spacing:2px}.brand small{display:block;letter-spacing:4px;color:#b3c4cf;margin-top:3px}nav{margin-top:20px}nav button{border:0;background:transparent;color:#bdd0da;width:100%;display:flex;align-items:center;gap:13px;text-align:left;padding:12px 14px;border-radius:8px;margin:3px 0}nav button span{font-size:18px;width:20px;text-align:center}nav button:hover,nav button.active{background:var(--nav2);color:#fff}.side-user{margin-top:auto;border-top:1px solid #36566a;padding:20px 8px 0;display:flex;gap:10px;align-items:center}.avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#e5f3e9;color:var(--green);font-weight:700}.side-user b,.side-user a{display:block}.side-user a{color:#9db3c0;font-size:12px;margin-top:2px}.main{margin-left:245px;min-width:0;flex:1}.topbar{height:72px;background:#fff;border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 30px;gap:18px;position:sticky;top:0;z-index:10}.topbar>div{flex:1}.topbar b,.topbar small{display:block}.topbar small{color:var(--muted);font-size:12px;margin-top:3px}.content{padding:31px;max-width:1600px;margin:auto}.icon-btn{display:none}.page-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-end;margin-bottom:25px}.page-head>div>span{font-size:11px;letter-spacing:1.5px;color:#718697;font-weight:700}.page-head h1{font-size:29px;letter-spacing:-.6px;margin:4px 0 6px}.page-head p,.panel-head p{color:var(--muted);margin:0;line-height:1.5}.head-actions{display:flex;gap:8px}.primary,.secondary,.danger{border:0;border-radius:7px;min-height:40px;padding:0 16px;font-weight:650}.primary{background:#245b43;color:#fff}.primary:hover{background:#1e4d39}.secondary{background:#fff;color:#36576d;border:1px solid #cad7df}.danger{background:#fff0f1;color:var(--red);border:1px solid #efc3c8}.small{min-height:34px;padding:0 11px;font-size:12px}.wide{width:100%}.link{border:0;background:none;color:var(--blue);padding:5px;font-weight:600}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:22px}.metrics.three{grid-template-columns:repeat(3,minmax(0,1fr))}.metric{background:#fff;border:1px solid var(--border);border-radius:10px;padding:19px}.metric.green{border-top:3px solid #4a9b6c;padding-top:17px;background:#fbfffc}.metric>span{color:#637989}.metric strong{font-size:29px;display:block;margin-top:10px;letter-spacing:-.5px}.metric small,.stage-card small{font-size:12px;color:var(--muted);font-weight:400}.panel{background:#fff;border:1px solid var(--border);border-radius:10px;overflow:hidden;margin-bottom:22px}.panel-head{padding:20px 22px;display:flex;justify-content:space-between;align-items:center}.panel-head h2{font-size:16px;margin:0 0 4px}.flow{display:grid;grid-template-columns:repeat(5,1fr);border-top:1px solid var(--border)}.flow button{border:0;border-right:1px solid var(--border);background:#fff;text-align:left;padding:18px 20px}.flow button:last-child{border:0}.flow button:hover{background:#f8fbfc}.flow span,.flow b,.flow strong,.flow small{display:block}.flow span{font-size:11px;color:#8093a2}.flow b{font-size:13px;color:#4f6879;margin-top:12px}.flow strong{font-size:27px;margin-top:4px}.two-col{display:grid;grid-template-columns:1.6fr 1fr;gap:22px}.badge{background:#fff1d7;color:var(--amber);border-radius:20px;padding:4px 9px}.watch{padding:0 20px 12px}.watch button{width:100%;display:grid;grid-template-columns:1fr auto;text-align:left;border:0;border-top:1px solid #edf1f3;background:#fff;padding:15px 2px}.watch b{grid-row:1/3}.watch span{font-weight:700}.watch small{color:var(--muted);margin-top:3px}.empty{text-align:center;padding:45px 20px;color:var(--muted)}.empty b{color:var(--text);font-size:15px}.empty p{margin:7px 0}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%}th{background:#f8fafb;color:#6d8191;font-size:12px;text-align:left;font-weight:600;padding:12px 20px;border-top:1px solid #edf1f3}td{padding:14px 20px;border-top:1px solid #edf1f3;vertical-align:middle}td small{display:block;color:var(--muted);margin-top:4px}.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.reject{color:var(--red)}.actions{text-align:right;white-space:nowrap}.actions button{margin-left:5px}.canceled{opacity:.48}.tag{display:inline-flex;border-radius:5px;padding:4px 8px;font-size:12px;background:#eef3f6;color:#5e7383}.tag.green{background:var(--green2);color:var(--green)}.tag.amber{background:#fff2d8;color:var(--amber)}.tag.blue{background:#eaf3fa;color:var(--blue)}.stage-card{background:#eaf3f0;border-left:3px solid #6da48a;padding:19px 23px;margin-bottom:22px;border-radius:0 9px 9px 0}.stage-card span,.stage-card strong{display:block}.stage-card strong{font-size:28px;margin-top:5px}.filters{padding:20px;display:grid;grid-template-columns:1fr 1fr 1.2fr auto;gap:15px;align-items:end}label{display:flex;flex-direction:column;gap:7px;font-weight:600;color:#425d70}input,select{width:100%;min-height:43px;border:1px solid #cfdbe2;border-radius:7px;padding:9px 11px;background:#fff;color:var(--text)}input:focus,select:focus{outline:3px solid #d8ebf5;border-color:#6ea0bc}label small{font-weight:400;color:var(--muted)}.overlay{position:fixed;inset:0;background:rgba(14,32,43,.48);z-index:30}.modal{position:fixed;z-index:31;top:50%;left:50%;transform:translate(-50%,-50%);background:#fff;border-radius:12px;width:min(620px,calc(100% - 24px));max-height:92vh;overflow:auto;padding:26px;box-shadow:0 24px 60px rgba(0,0,0,.24)}.hidden{display:none!important}.modal-head{display:flex;justify-content:space-between;gap:20px;margin-bottom:22px}.modal-head h2{font-size:23px;margin:0 0 5px}.modal-head p{margin:0;color:var(--muted)}.modal-close{border:0;background:transparent;font-size:25px;color:#6b7f8d}.entry-form{display:flex;flex-direction:column;gap:17px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:15px}.modal-actions{border-top:1px solid var(--border);padding-top:18px;display:flex;justify-content:flex-end;gap:8px}.material-box{border:1px solid var(--border);background:#f7f9fa;border-radius:8px;padding:14px}.material-box>div:first-child{display:flex;justify-content:space-between;align-items:center}.material-box p{font-size:12px;color:var(--muted);margin:4px 0 9px}.material-row{display:grid;grid-template-columns:1fr 110px 30px;gap:7px;margin-top:8px}.material-row input,.material-row select{min-height:39px}.alert{padding:12px 14px;border-radius:7px;line-height:1.5}.alert.error{background:#fff0f1;color:var(--red)}.alert.success{background:#eaf8ef;color:var(--green)}.toast{position:fixed;right:24px;bottom:24px;background:#193c2d;color:#fff;padding:13px 17px;border-radius:8px;z-index:50;box-shadow:0 8px 25px #0003}.toast.bad{background:#8f2d39}.quick-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.quick-grid button{border:1px solid var(--border);background:#f9fbfc;border-radius:8px;padding:15px;text-align:left;display:flex;justify-content:space-between}.quick-grid button:hover{border-color:#90b6a0;background:#f2faf5}.detail dl{display:grid;grid-template-columns:130px 1fr;gap:10px;margin:0 0 22px}.detail dt{color:var(--muted)}.detail dd{margin:0}.detail h3{font-size:14px;border-top:1px solid var(--border);padding-top:18px}.move{display:flex;justify-content:space-between;border-top:1px solid #edf1f3;padding:10px 0}.detail>.wide{margin-top:22px}.auth-page{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#eef5f2,#e8eff4);padding:20px}.auth-card{width:min(440px,100%);background:#fff;border:1px solid var(--border);border-radius:13px;padding:32px;box-shadow:0 15px 50px #1a384718}.install-card{width:min(700px,100%)}.brand-large{display:flex;align-items:center;gap:12px;margin-bottom:30px}.brand-large>span{background:var(--nav);width:46px;height:46px}.brand-large b,.brand-large small{display:block}.brand-large b{letter-spacing:2px}.brand-large small{letter-spacing:2px;font-size:10px;color:var(--muted);margin-top:3px}.auth-card h1{font-size:26px;margin:0 0 6px}.auth-card>p{color:var(--muted);margin:0 0 23px}.auth-form{display:flex;flex-direction:column;gap:17px}.auth-form hr{border:0;border-top:1px solid var(--border);width:100%;margin:3px 0}.loading{padding:50px;text-align:center;color:var(--muted)}
@media(max-width:1000px){.metrics{grid-template-columns:repeat(2,1fr)}.two-col{grid-template-columns:1fr}.flow{grid-template-columns:repeat(3,1fr)}.flow button:nth-child(3){border-right:0}.filters{grid-template-columns:1fr 1fr}.filters button{grid-column:1/-1}}
@media(max-width:720px){.sidebar{transform:translateX(-100%);transition:.2s}.menu-open .sidebar{transform:none}.main{margin-left:0}.icon-btn{display:block;border:0;background:none;font-size:21px}.topbar{height:64px;padding:0 15px}.topbar .primary{font-size:12px;padding:0 10px}.content{padding:21px 14px}.page-head{display:block}.head-actions{margin-top:15px}.page-head h1{font-size:25px}.metrics,.metrics.three{grid-template-columns:1fr 1fr;gap:9px}.metric{padding:14px}.metric strong{font-size:23px}.flow{grid-template-columns:1fr 1fr}.flow button,.flow button:nth-child(3){border-right:1px solid var(--border);border-bottom:1px solid var(--border)}.flow button:nth-child(2n){border-right:0}.flow button:last-child{grid-column:1/-1}.grid2{grid-template-columns:1fr}.quick-grid{grid-template-columns:1fr}.modal{padding:21px 17px}.modal-head h2{font-size:21px}th,td{padding:12px 14px}.filters{grid-template-columns:1fr}.filters button{grid-column:auto}.auth-card{padding:25px 20px}.actions{min-width:180px}}
@media print{.sidebar,.topbar,.head-actions,.filters,.actions button,.link{display:none!important}.main{margin:0}.content{padding:0}.panel,.metric{break-inside:avoid}body{background:#fff}.page-head span{display:none}}

