:root{--apl-red: #e73838;--apl-red-dark: #c72a2a;--apl-red-soft: #fdecec;--apl-blue: #001e49;--apl-blue-mid: #12446c;--apl-blue-soft: #4c668b;--apl-blue-light: #baccdd;--apl-grey: #585858;--apl-grey-light: #ececec;--apl-white: #f5f7fa;--apl-green: #afca05;--ok: #0d8a5f;--ok-soft: #e6f4ee;--warn: #b8860b;--warn-soft: #fdf6e3;--ink: #101828;--ink-muted: #667085;--border: #d8dee7;--card: #ffffff;--radius: 8px;--shadow: 0 1px 2px rgba(16, 24, 40, .06), 0 1px 3px rgba(16, 24, 40, .1);--sidebar-w: 246px;--font: "Radikal", "Inter", "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font);background:var(--apl-white);color:var(--ink);font-size:14px;-webkit-font-smoothing:antialiased}a{color:var(--apl-blue-mid);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{margin:0;font-weight:700;letter-spacing:-.01em}h1{font-size:22px}h2{font-size:17px}h3{font-size:14px}.app{display:flex;min-height:100%}.sidebar{width:var(--sidebar-w);flex:0 0 var(--sidebar-w);background:var(--apl-blue);color:#fff;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.sidebar-brand{padding:20px 20px 16px;border-bottom:1px solid rgba(255,255,255,.12)}.sidebar-brand svg{width:118px;display:block}.sidebar-brand .sub{color:var(--apl-blue-light);font-size:11px;letter-spacing:.09em;text-transform:uppercase;margin-top:7px}.sidebar nav{padding:12px 10px;flex:1;overflow-y:auto}.sidebar nav .group{color:#baccddbf;font-size:10.5px;letter-spacing:.09em;text-transform:uppercase;padding:14px 10px 6px}.sidebar nav a{display:flex;align-items:center;gap:10px;padding:9px 11px;border-radius:6px;color:#dfe7f0;font-size:13.5px;margin-bottom:2px;border-left:3px solid transparent}.sidebar nav a:hover{background:#ffffff14;text-decoration:none}.sidebar nav a.active{background:#e7383829;color:#fff;border-left-color:var(--apl-red);font-weight:600}.sidebar nav a .ico{width:17px;text-align:center;opacity:.9}.sidebar-foot{padding:12px 16px;border-top:1px solid rgba(255,255,255,.12);font-size:12px;color:var(--apl-blue-light)}.sidebar-foot .who{color:#fff;font-weight:600;font-size:13px}.sidebar-foot button{margin-top:8px;background:transparent;border:1px solid rgba(255,255,255,.28);color:#fff;padding:5px 10px;border-radius:5px;cursor:pointer;font-size:12px;font-family:inherit}.sidebar-foot button:hover{background:#ffffff1f}.main{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{background:#fff;border-bottom:1px solid var(--border);padding:14px 26px;display:flex;align-items:center;justify-content:space-between;gap:16px;position:sticky;top:0;z-index:5}.topbar .crumb{color:var(--ink-muted);font-size:12px;margin-bottom:2px}.content{padding:22px 26px 60px}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.card-head{padding:13px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:12px}.card-body{padding:16px}.grid{display:grid;gap:16px}.grid.k4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid.k3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.k2{grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:1180px){.grid.k4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:900px){.grid.k3,.grid.k2{grid-template-columns:1fr}}.stat{padding:15px 16px}.stat .label{color:var(--ink-muted);font-size:12px;text-transform:uppercase;letter-spacing:.05em}.stat .value{font-size:27px;font-weight:700;margin-top:5px;line-height:1.1}.stat .hint{font-size:12px;color:var(--ink-muted);margin-top:4px}.stat.accent{border-left:3px solid var(--apl-red)}.stat.warn-accent{border-left:3px solid var(--warn)}.stat.ok-accent{border-left:3px solid var(--ok)}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:13.5px}thead th{text-align:left;padding:9px 12px;background:#f6f8fa;border-bottom:1px solid var(--border);color:var(--apl-grey);font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}tbody td{padding:10px 12px;border-bottom:1px solid #eef1f5;vertical-align:middle}tbody tr:hover{background:#fafbfd}tbody tr.clickable{cursor:pointer}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}.mono{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:12.5px}.plate{display:inline-block;border:1.5px solid var(--apl-blue);border-radius:4px;padding:1px 7px;font-weight:700;letter-spacing:.04em;background:#fff;white-space:nowrap}.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11.5px;font-weight:600;white-space:nowrap;border:1px solid transparent}.badge.blue{background:#e8eef6;color:var(--apl-blue);border-color:#cfdcea}.badge.red{background:var(--apl-red-soft);color:var(--apl-red-dark);border-color:#f6c9c9}.badge.green{background:var(--ok-soft);color:var(--ok);border-color:#bfe3d3}.badge.warn{background:var(--warn-soft);color:var(--warn);border-color:#ecdca8}.badge.grey{background:#eef1f5;color:var(--apl-grey);border-color:#dfe4ea}.btn{display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border-radius:6px;border:1px solid var(--border);background:#fff;color:var(--ink);cursor:pointer;font-size:13.5px;font-family:inherit;font-weight:500;text-decoration:none}.btn:hover{background:#f6f8fa;text-decoration:none}.btn.primary{background:var(--apl-red);border-color:var(--apl-red);color:#fff}.btn.primary:hover{background:var(--apl-red-dark);border-color:var(--apl-red-dark)}.btn.dark{background:var(--apl-blue);border-color:var(--apl-blue);color:#fff}.btn.dark:hover{background:#002a63}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.sm{padding:5px 10px;font-size:12.5px}input,select,textarea{font-family:inherit;font-size:13.5px;padding:8px 11px;border:1px solid var(--border);border-radius:6px;background:#fff;color:var(--ink);width:100%}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--apl-blue-mid);box-shadow:0 0 0 3px #12446c1f}label{display:block;font-size:12px;color:var(--ink-muted);margin-bottom:4px;font-weight:500}.field{margin-bottom:12px}.toolbar{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}.toolbar .field{margin-bottom:0}.toolbar .grow{flex:1;min-width:180px}.login-page{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr;background:var(--apl-white)}.login-visual{background:linear-gradient(160deg,var(--apl-blue) 0%,#002f6f 55%,var(--apl-blue-mid) 100%);color:#fff;padding:56px 60px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.login-visual:after{content:"";position:absolute;right:-140px;bottom:-160px;width:460px;height:460px;border-radius:50%;background:#e7383829}.login-visual svg{width:190px}.login-visual h2{font-size:30px;line-height:1.25;margin-top:26px;max-width:15ch}.login-visual p{color:var(--apl-blue-light);max-width:44ch;line-height:1.6}.login-visual ul{list-style:none;padding:0;margin:22px 0 0}.login-visual li{padding:7px 0 7px 24px;position:relative;color:#e6edf5;font-size:14px}.login-visual li:before{content:"";position:absolute;left:0;top:14px;width:11px;height:2px;background:var(--apl-red)}.login-form-wrap{display:flex;align-items:center;justify-content:center;padding:40px}.login-form{width:100%;max-width:372px}.login-form h1{margin-bottom:6px}.login-form .lead{color:var(--ink-muted);margin:0 0 24px}@media(max-width:940px){.login-page{grid-template-columns:1fr}.login-visual{display:none}}.alert{padding:10px 13px;border-radius:6px;font-size:13px;margin-bottom:14px}.alert.error{background:var(--apl-red-soft);color:var(--apl-red-dark);border:1px solid #f6c9c9}.alert.info{background:#eef4fb;color:var(--apl-blue-mid);border:1px solid #d3e2f2}.alert.ok{background:var(--ok-soft);color:var(--ok);border:1px solid #bfe3d3}.muted{color:var(--ink-muted)}.small{font-size:12px}.right{text-align:right}.spacer{flex:1}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.stack{display:flex;flex-direction:column;gap:3px}.kv{display:grid;grid-template-columns:42% 1fr;font-size:13.5px}.kv>div{padding:7px 12px;border-bottom:1px solid #eef1f5}.kv>div:nth-child(odd){background:#f9fafc;color:var(--ink-muted);font-weight:500}.empty{padding:44px 20px;text-align:center;color:var(--ink-muted)}.empty .big{font-size:34px;opacity:.35;margin-bottom:8px}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(158px,1fr));gap:11px}.photo-grid figure{margin:0}.photo-grid img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:6px;border:1px solid var(--border);display:block;background:#eef1f5}.photo-grid figcaption{font-size:11.5px;color:var(--ink-muted);margin-top:4px}.schematic{position:relative;display:inline-block;max-width:100%}.schematic img{max-width:100%;max-height:300px;width:auto;display:block}.schematic .mk{position:absolute;width:22px;height:22px;margin:-11px 0 0 -11px;border-radius:50%;background:var(--apl-red);color:#fff;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;border:2px solid #fff;box-shadow:0 1px 4px #0000004d}.schematic .mk.pre{background:var(--apl-grey)}.bars{display:flex;align-items:flex-end;gap:3px;height:92px}.bars .bar{flex:1;background:var(--apl-blue-light);border-radius:2px 2px 0 0;min-height:2px;position:relative}.bars .bar.hot{background:var(--apl-red)}.chip-list{display:flex;flex-wrap:wrap;gap:6px}.progress{height:7px;background:var(--apl-grey-light);border-radius:4px;overflow:hidden}.progress>span{display:block;height:100%;background:var(--apl-red)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#10182880;display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;overflow-y:auto;z-index:100}.modal{background:#fff;border-radius:10px;width:100%;max-width:680px;box-shadow:0 20px 48px #1018283d;overflow:hidden}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border);background:var(--apl-blue)}.modal-head h2{color:#fff;font-size:16px}.modal-x{background:transparent;border:none;color:#fff;font-size:26px;line-height:1;cursor:pointer;padding:0 4px}.modal-body{padding:20px}.modal-foot{padding:14px 20px;border-top:1px solid var(--border);background:#f6f8fa;display:flex;gap:10px;justify-content:flex-end;align-items:center}.form-grid{display:grid;gap:14px}@media(max-width:760px){.form-grid{grid-template-columns:1fr!important}}.form-section{grid-column:1 / -1;font-size:11.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--apl-grey);font-weight:700;border-bottom:1px solid var(--border);padding-bottom:5px;margin-top:6px}
