:root{--navy:#112849;--navy2:#17365d;--royal:#315c9a;--pale:#edf4fb;--bg:#f4f7fb;--ink:#23334d;--muted:#72829a;--border:#e2eaf2;--green:#16856e;--amber:#b47617;--red:#b94753;--shadow:0 12px 38px rgba(15,40,75,.055);--r:16px}
*{box-sizing:border-box}body{margin:0;font:14px/1.9 Tahoma,"Segoe UI",Arial,sans-serif;color:var(--ink);background:var(--bg)}button,input,select,textarea{font:inherit}button{cursor:pointer}a{text-decoration:none;color:inherit}
.layout{display:grid;grid-template-columns:265px minmax(0,1fr);min-height:100vh}aside{background:linear-gradient(165deg,#0d223f,#182e51 82%);color:white;padding:30px 17px;position:sticky;top:0;height:100vh;overflow:auto}main{min-width:0;padding:27px clamp(18px,3vw,42px) 55px;max-width:1690px;width:100%;margin:auto}.brand{display:flex;align-items:center;gap:12px;padding:4px 10px 28px;border-bottom:1px solid #ffffff23}.emblem{display:grid;place-items:center;width:58px;height:58px;border:1px solid #93b7de8a;background:#f6fbff13;border-radius:18px;font-size:25px;overflow:hidden;padding:6px}.emblem img{max-width:100%;max-height:100%;object-fit:contain;display:block}.brand strong{font-size:15px;display:block}.brand span{font-size:10px;color:#bed0e4}.aside-title{color:#839bb8;font-size:11px;margin:26px 12px 12px;letter-spacing:.2px}.nav-btn{display:flex;align-items:center;gap:12px;width:100%;border:0;color:#c9d8e9;background:transparent;padding:12px 13px;border-radius:12px;text-align:right;margin:5px 0;font-size:13px}.nav-btn svg{width:18px;height:18px;flex-shrink:0}.nav-btn.active,.nav-btn:hover{background:#ffffff19;color:white}.nav-btn.active{border-right:3px solid #8bbcff}.side-foot{border-top:1px solid #ffffff20;margin-top:36px;padding:18px 12px;font-size:11px;color:#a4b8d0}.side-foot b{color:#edf6ff}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:30px}.tiny-title{font-size:12px;color:var(--muted)}h1{font-size:25px;margin:2px 0 0;letter-spacing:-.8px;color:var(--navy)}h2{font-size:17px;letter-spacing:-.3px;color:var(--navy);margin:0}h3{font-size:14px;color:var(--navy);margin:0 0 12px}.top-right{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.role-badge{display:flex;align-items:center;gap:11px;background:white;border:1px solid var(--border);padding:8px 11px;border-radius:12px;box-shadow:var(--shadow)}.role-badge.profile-has-photo{padding-inline-start:8px}.role-badge select{border:0;background:transparent;font-size:12px;color:var(--navy);max-width:230px;cursor:pointer}.avatar{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#dbe9f9;color:#16406b;font-size:13px;font-weight:bold;overflow:hidden;flex:0 0 34px}.avatar img{width:100%;height:100%;object-fit:cover;display:block}.login-person{font-weight:800;color:#19385d}.bell{background:#fff;color:#597397;border:1px solid var(--border);padding:10px;border-radius:12px}.card{border:1px solid var(--border);background:#fff;border-radius:var(--r);padding:22px;box-shadow:var(--shadow);min-width:0}.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px;margin-bottom:20px}.kpi{padding:20px}.kpi .key{font-size:12px;color:var(--muted)}.kpi .number{font-size:27px;font-weight:800;color:var(--navy);line-height:1.6;overflow-wrap:anywhere}.kpi .sub{font-size:11px;color:#8ca0b9}.kpi .ic{float:left;background:#edf3fb;border-radius:12px;padding:10px;font-size:19px}.analytics-block{margin-top:18px}.analytics-compare{display:grid;gap:16px}.analytics-contract-card{border:1px solid #dce7f1;border-radius:16px;padding:18px;background:#fbfdff}.analytics-contract-card h3{margin-bottom:6px}.analytics-bars{display:grid;gap:12px;margin-top:14px}.analytics-bar-row{display:grid;grid-template-columns:120px 1fr;gap:12px;align-items:center}.analytics-bar-row .analytics-label{font-size:12px;color:#39587d;font-weight:700}.analytics-pair{display:grid;gap:7px}.analytics-track{position:relative;height:14px;border-radius:999px;background:#edf3f9;overflow:hidden}.analytics-track span{position:absolute;top:0;bottom:0;right:0;border-radius:999px}.analytics-track .daily{background:linear-gradient(90deg,#4ea1ff,#245db5)}.analytics-track .bill{background:linear-gradient(90deg,#63c9a1,#18835f)}.analytics-values{display:flex;gap:16px;flex-wrap:wrap;font-size:11px;color:#5a6f89}.analytics-empty{font-size:12px;color:#7f8ea2;background:#f7fafc;border:1px dashed #d7e3f0;padding:12px;border-radius:12px}.analytics-legend{display:flex;gap:14px;flex-wrap:wrap;font-size:11px;color:#536b88;margin-top:10px}.analytics-legend span::before{content:'';display:inline-block;width:12px;height:12px;border-radius:999px;margin-inline-end:5px;vertical-align:-2px}.analytics-legend .l1::before{background:#2f74db}.analytics-legend .l2::before{background:#28a373}@media (max-width:760px){.analytics-bar-row{grid-template-columns:1fr}.analytics-bar-row .analytics-label{margin-bottom:4px}}
.stack{display:grid;gap:18px}.columns{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(260px,.7fr);gap:18px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:15px;flex-wrap:wrap}.section-head p{margin:2px 0 0;color:var(--muted);font-size:12px}.pill{display:inline-block;border-radius:30px;background:#edf2f8;padding:3px 10px;color:#4d6886;font-size:11px;font-weight:600;white-space:nowrap}.pill.green{background:#dcf4ec;color:#0b7b62}.pill.amber{background:#fff1d9;color:#a76a17}.pill.red{background:#fff0f1;color:#b74a5a}.pill.blue{background:#e6effd;color:#2b62ad}.notice{border-radius:12px;border:1px solid #d4e4f3;background:#eff6fe;padding:12px 15px;font-size:12px;color:#315b81}.notice.warn{background:#fff8ea;color:#956318;border-color:#f7e3b8}.notice.danger{background:#fff2f1;color:#9c4551;border-color:#f6d6d3}.notice.ok{background:#f0fcf6;color:#197358;border-color:#c5ecd8}.warn-stack{display:grid;gap:8px}.muted{color:var(--muted)}.sm{font-size:12px}.xs{font-size:11px}.text-money{font-variant-numeric:tabular-nums;direction:ltr;unicode-bidi:isolate;display:inline-block;font-weight:700;color:var(--navy)}.toolbar{display:flex;align-items:end;gap:11px;flex-wrap:wrap;margin:0 0 18px}.field{display:flex;flex-direction:column;gap:6px;min-width:0;flex:1}.field label{font-size:11px;font-weight:bold;color:#58718c}.field input,.field select,.field textarea,.input{width:100%;border:1px solid #d9e3ee;background:#fff;color:var(--ink);border-radius:10px;min-height:40px;padding:8px 11px;outline:none;transition:.15s;border-box:inherit}.field textarea{min-height:74px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus,.input:focus{border-color:#6093ce;box-shadow:0 0 0 3px #6093ce1f}.field input:disabled,.field select:disabled{background:#f3f6f9;color:#8b98a7}.w-120{max-width:120px}.w-160{max-width:160px}.w-230{max-width:230px}.form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.span-all{grid-column:1/-1}.btn{background:#fff;border:1px solid #d9e4ef;color:#305172;padding:9px 16px;border-radius:10px;font-weight:700;font-size:12px;display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:40px}.btn:hover{filter:brightness(.97)}.btn.primary{background:var(--navy);border-color:var(--navy);color:white}.btn.royal{background:#315f9e;border-color:#315f9e;color:#fff}.btn.success{background:var(--green);color:white;border-color:var(--green)}.btn.danger{color:#ba4c54;border-color:#f4d4db}.btn.light{background:#f3f7fc}.btn:disabled{cursor:not-allowed;opacity:.5}.btn-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.table-wrap{width:100%;overflow:auto;border:1px solid var(--border);border-radius:12px}.table{border-collapse:collapse;width:100%;font-size:12px;min-width:680px}.table th{background:#f5f8fc;color:#5e728a;text-align:right;padding:12px;font-weight:700;white-space:nowrap;border-bottom:1px solid #e6edf4}.table td{padding:11px 12px;border-bottom:1px solid #edf1f6;vertical-align:top}.table tr:last-child td{border-bottom:0}.table tr:hover td{background:#fcfdff}.table .sumrow td{background:#eff5fb;font-weight:800}.table .netrow td{background:#162d4e;color:white;font-weight:800}.table .netrow .text-money{color:white}.table input,.table select{padding:7px 8px;min-height:35px;width:100%;border:1px solid #dce7ef;border-radius:8px;min-width:90px;background:#fff}.table .description{min-width:240px}.table .short{width:110px}.table .actions{white-space:nowrap}.table .actions .btn{padding:5px 10px;min-height:30px}.empty{text-align:center;color:#8496a9;padding:37px 14px}.split-line{border:0;border-top:1px solid var(--border);margin:22px 0}.metric-block{display:flex;justify-content:space-between;align-items:center;gap:10px;border-bottom:1px solid #ecf1f7;padding:12px 0}.metric-block:last-child{border-bottom:0}.metric-block b{color:var(--navy)}.progress{height:8px;border-radius:100px;background:#e5edf5;overflow:hidden;margin:9px 0}.progress > i{display:block;height:100%;background:#4d89c6;border-radius:10px}.timeline{display:flex;gap:3px;margin:15px 0 20px;overflow-x:auto}.step{flex:1;min-width:105px;border-top:3px solid #d9e4f0;padding:10px 8px 5px;font-size:11px;color:#8795a6}.step.done{border-top-color:#16856e;color:#126c55}.step.current{border-top-color:#3c6fa8;background:#f4f8fe;color:#204c86}.log{padding:10px 0;border-bottom:1px solid #edf2f8}.log:last-child{border-bottom:0}.log b{font-size:12px}.log small{color:#8192a4;margin-right:5px}.tagbox{display:flex;gap:7px;flex-wrap:wrap}.tag{padding:4px 9px;border-radius:9px;background:#f1f6fc;color:#486e98;font-size:11px}.right{text-align:left}.float-toast{position:fixed;bottom:24px;left:24px;z-index:40;color:white;background:#133352;box-shadow:0 16px 38px #15395855;padding:13px 22px;border-radius:12px;max-width:min(440px,90vw);display:none}.float-toast.show{display:block}.report-title{display:none}.hide{display:none!important}
@media(max-width:1180px){.kpi-grid{grid-template-columns:repeat(2,1fr)}.columns{grid-template-columns:1fr}.form-grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:800px){.layout{grid-template-columns:1fr}aside{position:relative;height:auto;padding:14px}.brand{padding:0 0 12px}.aside-title,.side-foot{display:none}.nav-container{display:flex;overflow:auto;gap:7px;margin-top:8px}.nav-btn{white-space:nowrap;width:auto;font-size:11px;padding:9px}main{padding:17px}.topbar{align-items:start;flex-direction:column;gap:12px}h1{font-size:20px}.form-grid,.form-grid.two{grid-template-columns:1fr}.card{padding:15px}}@media(max-width:520px){.kpi-grid{grid-template-columns:1fr}.form-grid.four{grid-template-columns:1fr}.toolbar .field{min-width:130px}.top-right,.role-badge{width:100%}.role-badge select{max-width:none;width:100%}}
@page{size:A4 landscape;margin:12mm}@media print{body{background:white;color:#111;font-size:10px}aside,.topbar,.no-print,.float-toast,.btn,.toolbar,.notice:not(.print-notice){display:none!important}.layout{display:block}main{padding:0;max-width:none}.card{border:0;box-shadow:none;padding:0;break-inside:avoid}.report-title{display:block;margin-bottom:12px}.table{font-size:9px;min-width:0}.table th,.table td{padding:5px 7px}.table-wrap{overflow:visible;border-radius:0}.print-only{display:block!important}.stack{gap:8px}#page-root>.card:not(.print-content){display:none!important}#page-root .no-print{display:none!important}}
