:root{--blue:#0b2fb3;--blue-dark:#081f7a;--blue-tint:#eef2ff;--yellow:#ffd21f;--navy:#0a1440;--ground:#f3f5fc;--card:#fff;--line:#dce2f5;--line-strong:#c9d1ec;--muted:#4a5578;--good-fg:#075e4d;--good-bg:#dff5ee;--warn-fg:#5c4400;--warn-bg:#fff3bf;--bad-fg:#8a1c1c;--bad-bg:#fde7e7;--display:"Poppins", system-ui, sans-serif;--body:"DM Sans", system-ui, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--ground);color:var(--navy);font:400 15px/1.45 var(--body);margin:0}h1,h2{font-family:var(--display);text-wrap:balance;margin:0;font-weight:700}h1{font-size:1.75rem}h2{font-size:1.125rem}a{color:var(--blue)}a:hover{color:var(--blue-dark)}:focus-visible{outline:3px solid var(--yellow);outline-offset:2px}.shell{flex-wrap:wrap;min-height:100%;display:flex}.side{background:var(--navy);flex-direction:column;flex:230px;gap:1.25rem;padding:1.25rem 1rem;display:flex}.brand{font:800 1.375rem var(--display);color:#fff;align-items:center;gap:.5rem;padding:0 .5rem;display:flex}.brand b{color:var(--yellow);font-weight:800}.brand span{font:700 .6875rem var(--body);color:var(--navy);background:var(--yellow);border-radius:8px;padding:.1875rem .5rem}.nav{flex-direction:column;gap:.125rem;display:flex}.nav a{color:#dce4ff;border-radius:12px;align-items:center;min-height:44px;padding:0 .875rem;font-weight:500;text-decoration:none;display:flex}.nav a:hover{color:#fff;background:#ffffff14}.nav a.active{background:var(--blue);color:#fff;font-weight:700}.who{color:#dce4ff;flex-direction:column;align-items:flex-start;gap:.5rem;margin-top:auto;padding:0 .5rem;font-size:.8125rem;display:flex}.main{flex-direction:column;flex:999 560px;gap:1.25rem;min-width:0;padding:1.5rem;display:flex}.head{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.head>:first-child{flex:999 240px}.sub{color:var(--muted);margin:.125rem 0 0;font-size:.875rem}.card{background:var(--card);border-radius:18px;flex-direction:column;gap:.875rem;padding:1.25rem;display:flex}.grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;display:grid}.row{flex-wrap:wrap;align-items:flex-end;gap:.75rem;display:flex}.split{flex-wrap:wrap;align-items:flex-start;gap:1rem;display:flex}.split>.wide{flex:2 420px;min-width:0}.split>.narrow{flex:300px;min-width:0}.tile{background:var(--card);border-radius:18px;flex-direction:column;gap:.25rem;padding:1.125rem;display:flex}.tile .label{color:var(--muted);font-size:.8125rem;font-weight:500}.tile .figure{font:700 1.75rem var(--display);font-variant-numeric:tabular-nums}.tile.attention{border:2px solid var(--yellow)}.btn{border:1.5px solid var(--line-strong);min-height:44px;color:var(--navy);font:700 .875rem var(--body);cursor:pointer;background:#fff;border-radius:12px;justify-content:center;align-items:center;gap:.5rem;padding:0 1rem;text-decoration:none;display:inline-flex}.btn:hover{border-color:var(--navy);color:var(--navy)}.btn.primary{background:var(--yellow);border-color:var(--yellow)}.btn.blue{background:var(--blue);border-color:var(--blue);color:#fff}.btn.blue:hover{background:var(--blue-dark);color:#fff}.btn.danger{color:var(--bad-fg)}.btn.ghost{color:#fff;background:0 0;border-color:#fff6}.btn:disabled{opacity:.55;cursor:not-allowed}label.field,legend.field{flex-direction:column;gap:.375rem;min-width:0;font-size:.8125rem;font-weight:700;display:flex}.row>label.field{flex:180px}input,select,textarea{border:1.5px solid var(--line-strong);min-height:44px;font:400 .9375rem var(--body);color:var(--navy);background:#fff;border-radius:12px;width:100%;padding:0 .75rem}textarea{resize:vertical;min-height:96px;padding:.625rem .75rem}input[type=checkbox],input[type=radio]{width:20px;height:20px;min-height:0;accent-color:var(--blue);padding:0}.check{align-items:center;gap:.5rem;min-height:44px;font-weight:500;display:flex}.hint{color:var(--muted);font-size:.8125rem;font-weight:400}.table-wrap{overflow-x:auto}table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:.875rem}th{text-align:left;color:var(--muted);border-bottom:1px solid var(--line);white-space:nowrap;padding:.5rem;font-weight:500}td{vertical-align:middle;border-bottom:1px solid #eef1fa;padding:.5rem}tr:last-child td{border-bottom:none}td input,td select{min-width:110px}.pill{white-space:nowrap;background:var(--blue-tint);color:var(--blue);border-radius:9px;padding:.25rem .625rem;font-size:.75rem;font-weight:700;display:inline-block}.pill.good{background:var(--good-bg);color:var(--good-fg)}.pill.warn{background:var(--warn-bg);color:var(--warn-fg)}.pill.bad{background:var(--bad-bg);color:var(--bad-fg)}.pill.off{color:var(--muted);background:#eceef5}.tabs{flex-wrap:wrap;gap:.5rem;display:flex}.tabs button{border:1.5px solid var(--line-strong);min-height:44px;font:500 .875rem var(--body);color:var(--navy);cursor:pointer;background:#fff;border-radius:12px;padding:0 .875rem}.tabs button[aria-pressed=true]{background:var(--blue);border-color:var(--blue);color:#fff;font-weight:700}.alert{background:var(--bad-bg);color:var(--bad-fg);border-radius:12px;padding:.75rem .875rem;font-weight:500}.alert.ok{background:var(--good-bg);color:var(--good-fg)}.empty{color:var(--muted);padding:1rem 0}.timeline{flex-direction:column;gap:.625rem;margin:0;padding:0;list-style:none;display:flex}.timeline li{flex-wrap:wrap;align-items:baseline;gap:.625rem;display:flex}.kv{grid-template-columns:auto 1fr;gap:.25rem 1rem;margin:0;display:grid}.kv dt{color:var(--muted)}.kv dd{text-align:right;font-variant-numeric:tabular-nums;margin:0}.login{background:var(--blue);flex-direction:column;justify-content:center;align-items:center;gap:1.25rem;min-height:100%;padding:1rem;display:flex}.made-by{color:#c9d4ff;margin:0;font-size:.8125rem}.made-by a{color:#fff;font-weight:700}.side .made-by{padding:.75rem 1rem 1rem}.login form{background:#fff;border-radius:24px;flex-direction:column;gap:1rem;width:100%;max-width:380px;padding:2rem;display:flex}.login .brand{color:var(--blue);align-items:flex-end;padding:0;font-size:1.75rem}.brand img{object-fit:contain;flex:none}.brand-full{width:auto;height:64px}@media (prefers-reduced-motion:no-preference){.btn,.nav a,.tabs button{transition:background-color .15s,border-color .15s,color .15s}}
