:root{--navy: #0e1c36;--navy-2: #15284a;--navy-3: #1d355f;--blue: #2563eb;--blue-soft: #e8f0fe;--ink: #16202f;--ink-2: #4a5568;--ink-3: #718096;--line: #e2e8f0;--line-2: #cbd5e1;--bg: #f5f7fb;--card: #ffffff;--green: #15803d;--green-soft: #e7f6ec;--amber: #c2610c;--amber-soft: #fff4e5;--red: #c62828;--red-soft: #fdecec;--purple-soft: #f1ecfb;--radius: 10px;--shadow: 0 1px 2px rgba(16, 24, 40, .06), 0 1px 3px rgba(16, 24, 40, .08);font-family:Segoe UI,system-ui,-apple-system,Roboto,Helvetica Neue,Arial,sans-serif;color:var(--ink);background:var(--bg);font-size:14px;line-height:1.45}*{box-sizing:border-box}body{margin:0;background:var(--bg)}h1,h2,h3{margin:0;font-weight:650;letter-spacing:-.01em}h1{font-size:22px}h2{font-size:17px}h3{font-size:14px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-2)}p{margin:.4em 0}a{color:var(--blue)}button,input,select,textarea{font:inherit;color:inherit}.app{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.side{background:var(--navy);color:#c9d4e8;padding:16px 12px;position:sticky;top:0;height:100vh;overflow-y:auto}.brand{color:#fff;font-weight:700;font-size:15px;line-height:1.25;padding:4px 8px 14px}.brand small{display:block;color:#8ea2c6;font-weight:500;font-size:11.5px;margin-top:2px}.nav-group{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#7287ad;margin:14px 8px 6px}.nav-btn{display:flex;align-items:center;gap:8px;width:100%;text-align:left;background:none;border:0;color:inherit;padding:7px 10px;border-radius:7px;cursor:pointer}.nav-btn:hover:not(:disabled){background:var(--navy-2);color:#fff}.nav-btn.active{background:var(--blue);color:#fff}.nav-btn:disabled{opacity:.45;cursor:default}.nav-btn .num{width:20px;height:20px;border-radius:50%;background:var(--navy-3);color:#fff;font-size:11px;display:inline-flex;align-items:center;justify-content:center;flex:none}.nav-btn.active .num{background:#ffffff40}.nav-btn .tag{margin-left:auto;font-size:10px;background:var(--navy-3);padding:1px 6px;border-radius:8px}.side-foot{margin-top:18px;padding:10px 8px;font-size:11.5px;color:#8ea2c6;border-top:1px solid var(--navy-3)}.main{min-width:0}.topbar{display:flex;align-items:center;gap:12px;padding:10px 24px;background:var(--card);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5;flex-wrap:wrap}.topbar .grow{flex:1}.content{padding:22px 24px 60px;max-width:1400px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:16px;flex-wrap:wrap}.page-head p{color:var(--ink-2);max-width:820px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px 18px;margin-bottom:16px}.card>h2{margin-bottom:10px}.card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px;flex-wrap:wrap}.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px}.grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:12px}.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.muted{color:var(--ink-3)}.small{font-size:12.5px}.mono{font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:12.5px}.btn{border:1px solid var(--line-2);background:#fff;padding:7px 14px;border-radius:8px;cursor:pointer;font-weight:550;white-space:nowrap}.btn:hover:not(:disabled){border-color:var(--blue);color:var(--blue)}.btn.primary{background:var(--blue);border-color:var(--blue);color:#fff}.btn.primary:hover:not(:disabled){background:#1d4fd7;color:#fff}.btn.danger{color:var(--red);border-color:#f1b5b5}.btn.danger:hover:not(:disabled){background:var(--red-soft);color:var(--red);border-color:var(--red)}.btn.small{padding:3px 9px;font-size:12.5px}.btn:disabled{opacity:.5;cursor:default}.link-btn{background:none;border:0;color:var(--blue);cursor:pointer;padding:0;text-decoration:underline}.field{display:flex;flex-direction:column;gap:4px}.field label,.lbl{font-size:12.5px;font-weight:600;color:var(--ink-2)}.field .help{font-size:12px;color:var(--ink-3)}input[type=text],input[type=number],input[type=search],select,textarea{border:1px solid var(--line-2);border-radius:7px;padding:6px 9px;background:#fff;min-width:0}input:focus,select:focus,textarea:focus{outline:2px solid #bfd3fb;border-color:var(--blue)}select{padding-right:24px}textarea{width:100%;resize:vertical}.badge{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:650;padding:2px 8px;border-radius:999px;background:var(--line);color:var(--ink-2);white-space:nowrap}.badge.critical,.badge.red{background:var(--red-soft);color:var(--red)}.badge.warning,.badge.amber{background:var(--amber-soft);color:var(--amber)}.badge.info{background:var(--blue-soft);color:var(--blue)}.badge.ok,.badge.green{background:var(--green-soft);color:var(--green)}.badge.draft{background:#fff1f0;color:#b42318;border:1px solid #f5c2bd;letter-spacing:.03em}.badge.sample{background:#fdf6dd;color:#8a6100;border:1px solid #f0dc95}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:8px;max-width:100%}.table-wrap.tall{max-height:560px}table.t{border-collapse:collapse;width:100%;font-size:13px}table.t th{position:sticky;top:0;background:#f1f4f9;text-align:left;font-weight:650;color:var(--ink-2);font-size:12px;padding:7px 9px;border-bottom:1px solid var(--line-2);white-space:nowrap;z-index:1}table.t td{padding:6px 9px;border-bottom:1px solid var(--line);vertical-align:top}table.t tr:hover td{background:#fafbfd}table.t td.num,table.t th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}table.t td.nowrap{white-space:nowrap}td.bad{background:var(--red-soft)!important;color:var(--red);font-weight:600}td.warn{background:var(--amber-soft)!important}tr.sel td{background:var(--blue-soft)!important}.stat{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px}.stat .k{font-size:12px;color:var(--ink-3);font-weight:600;text-transform:uppercase;letter-spacing:.04em}.stat .v{font-size:24px;font-weight:700;margin-top:2px;font-variant-numeric:tabular-nums}.stat.bad .v{color:var(--red)}.stat.warn .v{color:var(--amber)}.stat.good .v{color:var(--green)}.notice{border-radius:8px;padding:10px 12px;margin:8px 0;border:1px solid;font-size:13px}.notice.info{background:var(--blue-soft);border-color:#c7d8fb}.notice.warn{background:var(--amber-soft);border-color:#f5d2a8}.notice.bad{background:var(--red-soft);border-color:#f1b5b5}.notice.good{background:var(--green-soft);border-color:#b6e2c3}.drop{border:2px dashed var(--line-2);border-radius:12px;padding:34px 20px;text-align:center;background:#fbfcfe;cursor:pointer;transition:.15s}.drop:hover,.drop.over{border-color:var(--blue);background:var(--blue-soft)}.drop strong{font-size:15px}.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}.step{border:1px solid var(--line);border-radius:10px;padding:12px;background:#fff}.step .n{display:inline-flex;width:22px;height:22px;border-radius:50%;background:var(--navy);color:#fff;font-size:12px;align-items:center;justify-content:center;margin-right:6px}.date-input{display:inline-flex;align-items:center;gap:4px;position:relative}.date-input input[type=text]{width:118px}.date-input input[type=date]{position:absolute;opacity:0;pointer-events:none;width:0;height:0;right:0;bottom:0}.date-input.err input[type=text]{border-color:var(--red)}details>summary{cursor:pointer}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{background:var(--blue-soft);color:#1e40af;border-radius:999px;padding:2px 4px 2px 10px;font-size:12.5px;display:inline-flex;align-items:center;gap:4px}.chip button{border:0;background:none;cursor:pointer;color:#1e40af;padding:0 4px;font-size:14px;line-height:1}@media(max-width:860px){.app{grid-template-columns:1fr}.side{position:static;height:auto}.content{padding:16px}.topbar{padding:10px 16px}}.modal-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#0e1c3673;display:flex;align-items:flex-start;justify-content:center;padding:12vh 16px 16px;z-index:50}.modal{width:100%;max-width:460px;margin:0}.modal input[type=text]{width:100%}.filterbar{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:flex-end;margin:0 0 14px;padding:10px 12px;background:#fff;border:1px solid var(--line);border-radius:10px}.filterbar .fsel{display:flex;flex-direction:column;gap:2px;font-size:11.5px;font-weight:600;color:var(--ink-3)}.filterbar.dark{background:#ffffff0d;border-color:#ffffff1a}.filterbar.dark .fsel,.filterbar.dark .lbl{color:#9fb2d4}.filterbar.dark select{background:#14274a;color:#e6edf9;border-color:#2b4474}.exec{background:#0b1730;color:#e6edf9;margin:-22px -24px -60px;padding:22px 24px 60px;min-height:100vh}.exec h1{color:#fff;font-size:26px}.exec h3{color:#9fb2d4;margin:0 0 8px}.exec-head{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;align-items:flex-start}.exec-sub{color:#9fb2d4;margin-top:2px}.exec-status{display:inline-flex;gap:10px;align-items:center;padding:6px 12px;border-radius:8px;font-weight:700;font-size:12.5px;letter-spacing:.03em}.exec-status.ok{background:#22c55e29;color:#4ade80}.exec-status.draft{background:#ef444429;color:#fca5a5}.exec-strip{display:flex;flex-wrap:wrap;gap:8px 22px;margin:14px 0;padding:10px 14px;background:#ffffff0d;border-radius:10px;font-weight:600}.exec-strip i{display:block;font-style:normal;font-size:10.5px;text-transform:uppercase;letter-spacing:.07em;color:#8ea2c6;font-weight:600}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:12px}.kpi{background:#13244a;border:1px solid #22386a;border-radius:12px;padding:14px 16px;border-top:3px solid #3b82f6;min-width:0}.kpi i{display:block;font-style:normal;font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:#8ea2c6;font-weight:600}.kpi b{display:block;font-size:30px;margin-top:4px;font-variant-numeric:tabular-nums;color:#fff}.kpi small{display:block;color:#9fb2d4;font-size:12px;margin-top:2px;overflow-wrap:anywhere}.kpi.green{border-top-color:#22c55e}.kpi.green b{color:#4ade80}.kpi.amber{border-top-color:#f59e0b}.kpi.amber b{color:#fbbf24}.kpi.red{border-top-color:#ef4444}.kpi.red b{color:#f87171}.kpis.small .kpi{padding:10px 14px}.kpis.small .kpi b{font-size:22px}.exec-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:14px;margin-top:14px}.panel{background:#13244a;border:1px solid #22386a;border-radius:12px;padding:14px 16px;min-width:0}.panel.wide{grid-column:1 / -1}.note{color:#9fb2d4;font-size:12.5px;margin:8px 0 0}.exec .table-wrap{border-color:#22386a}.exec table.t th{background:#1a2f5c;color:#b8c6e3;border-bottom-color:#2b4474}.exec table.t td{border-bottom-color:#22386a;color:#e6edf9}.exec table.t tr:hover td{background:#182c57}.heat td,.heat th{text-align:center;padding:8px 10px;border:1px solid var(--line);font-variant-numeric:tabular-nums}.heat th{background:#f1f4f9;font-size:12px}.heat td.dot{color:var(--ink-3);background:#fafbfd}.report{background:#fff;color:#111827;max-width:794px;margin:0 auto;padding:22px 26px;border:1px solid var(--line);box-shadow:var(--shadow);font-size:11px;line-height:1.35}.report h1{font-size:19px;margin:0;color:#0e1c36}.report h2{font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:#334155;margin:10px 0 4px;border-bottom:1px solid #cbd5e1;padding-bottom:2px}.rp-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.rp-sub{color:#475569}.rp-status{font-weight:700;font-size:10px;padding:4px 8px;border-radius:4px;letter-spacing:.03em}.rp-status.ok{background:#e7f6ec;color:#166534}.rp-status.draft{background:#fdecec;color:#b42318;border:1px solid #f1b5b5}.rp-strip{display:flex;flex-wrap:wrap;gap:4px 16px;margin:8px 0;padding:6px 8px;background:#f1f5fb;border-radius:4px;font-weight:600}.rp-strip i,.rp-kpis i{display:block;font-style:normal;font-size:8px;text-transform:uppercase;letter-spacing:.06em;color:#64748b;font-weight:600}.rp-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.rp-kpis>div{border:1px solid #d7deea;border-radius:4px;padding:5px 8px;min-width:0}.rp-kpis b{display:block;font-size:15px;font-variant-numeric:tabular-nums}.rp-kpis small{display:block;color:#475569;font-size:8.5px}.rp-kpis .h-red b{color:#b91c1c}.rp-kpis .h-amber b{color:#b45309}.rp-kpis .h-green b{color:#166534}.rp-reasons{margin:6px 0 0}.rp-cols{display:grid;grid-template-columns:1.15fr 1fr;gap:14px}.rp-cols>section{min-width:0}.rp-t{width:100%;border-collapse:collapse;font-size:9.5px}.rp-t th{text-align:left;background:#eef2f8;padding:2px 4px;border-bottom:1px solid #cbd5e1;font-size:8.5px}.rp-t td{padding:2px 4px;border-bottom:1px solid #e5eaf2}.rp-t .n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.rp-t tr.sel td{background:#f1f5fb}.rp-t tr.ind td{color:#64748b;font-style:italic}.rp-t td.neg1{background:#fdeccb}.rp-t td.neg2{background:#f6b5b5}.rp-comments textarea{width:100%;font-size:11px}.rp-comment-text{min-height:34px;border:1px solid #cbd5e1;border-radius:4px;padding:4px 6px;white-space:pre-wrap}.rp-foot{margin-top:8px;color:#64748b;font-size:8.5px}.print-only{display:none}@media print{@page{size:A4 portrait;margin:9mm}html,body{background:#fff!important}.side,.topbar,.no-print,.notice{display:none!important}.app{display:block!important}.content{padding:0!important;max-width:none!important}.report{border:0;box-shadow:none;max-width:none;padding:0;font-size:9.5px;break-inside:avoid;page-break-inside:avoid}.print-only{display:block!important}.rp-t{font-size:8.8px}*{-webkit-print-color-adjust:exact;print-color-adjust:exact}}@media screen and (max-width:860px){.rp-kpis{grid-template-columns:repeat(2,1fr)}.rp-cols{grid-template-columns:1fr}}.rp-t.dates td:nth-child(2),.rp-t.dates td:nth-child(3){white-space:nowrap}
