:root{--bg:#f4f7fb;--card:#ffffff;--ink:#102035;--muted:#5f7189;--line:#d8e3f3;--primary:#1f6feb;--primary-ink:#ffffff;--accent:#0da5a5;--danger:#b42318;--hero:linear-gradient(140deg,#1e4dbf,#0da5a5)}*{box-sizing:border-box}body,html{margin:0;padding:0;background:radial-gradient(circle at top right,#d7e9ff 0,var(--bg) 55%);color:var(--ink);font-family:Avenir Next,Segoe UI,-apple-system,sans-serif}.app-shell{max-width:1180px;margin:0 auto;padding:28px 18px 64px}.topbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;padding:16px;border-radius:18px;background:#f9fbff;border:1px solid var(--line)}.title{margin:0;font-size:clamp(1.6rem,2.4vw,2.2rem);letter-spacing:.02em}.subtitle{margin:4px 0 0;color:var(--muted);font-size:.95rem}.grid{display:grid;grid-template-columns:1.3fr 1fr;grid-gap:14px;gap:14px}.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:16px;box-shadow:0 24px 45px -38px #1f4b8e}.card h2{margin:0 0 10px;font-size:1.08rem}.controls{display:flex;gap:10px;flex-wrap:wrap;align-items:center}label{font-size:.85rem;color:var(--muted)}button,input,select{border-radius:10px;border:1px solid var(--line);font-size:.95rem}input,select{padding:10px 11px}button,input,select{background:#fff;min-height:42px}button{padding:0 14px;font-weight:600;cursor:pointer;color:var(--ink)}button.primary{background:linear-gradient(135deg,var(--primary),#3e8dff);color:var(--primary-ink);border-color:#1a60ca}button.ghost{background:#fff}button.danger{background:#fff2f0;color:var(--danger);border-color:#f8c9c3}button:disabled{opacity:.55;cursor:not-allowed}.kpi{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:8px;gap:8px}.pill{border:1px solid var(--line);border-radius:12px;padding:10px;background:#f8fbff}.pill b{display:block;font-size:1rem}.hint{margin-top:4px;font-size:.78rem;color:var(--muted);line-height:1.35}.auth-top-links,.footer-links,.quick-links{display:flex;gap:10px;flex-wrap:wrap}.auth-top-links a,.footer-links a,.quick-links a{text-decoration:none;color:#214f94;font-size:.84rem;font-weight:600;background:#edf4ff;border:1px solid #d3e1fa;border-radius:999px;padding:5px 10px}.hint-wrap{position:relative}.hint-icon,.hint-wrap{display:inline-flex;align-items:center}.hint-icon{width:20px;height:20px;border-radius:999px;border:1px solid #b9c9e2;background:#f2f7ff;color:#31598d;font-size:.76rem;font-weight:700;justify-content:center;cursor:help;-webkit-user-select:none;-moz-user-select:none;user-select:none}.hint-modal{position:absolute;z-index:30;top:26px;left:0;width:min(320px,80vw);background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px;font-size:.82rem;color:var(--ink);box-shadow:0 20px 45px -35px #2e67bc;opacity:0;pointer-events:none;transform:translateY(-4px);transition:opacity .15s ease,transform .15s ease}.hint-wrap:hover .hint-modal{opacity:1;pointer-events:auto;transform:translateY(0)}.progress{height:10px;border-radius:999px;background:#e7eef9;overflow:hidden}.progress>div{height:100%;background:linear-gradient(90deg,#1f6feb,#0da5a5)}table{width:100%;border-collapse:collapse;font-size:.92rem}.table-controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:8px 0 10px}.checkbox{width:16px;height:16px}td,th{border-bottom:1px solid #edf2fa;text-align:left;padding:8px 6px}.timeline{margin:0;padding-left:18px;max-height:280px;overflow:auto}.section-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px}.error{color:var(--danger);background:#fff3f2;border:1px solid #f3cdca;border-radius:10px}.error,.success{padding:9px 11px}.success{color:#05603a;background:#edfff5;border:1px solid #b4ebcf;border-radius:10px}.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:16px}.auth-layout{width:min(1100px,100%);display:grid;grid-template-columns:minmax(320px,520px) minmax(280px,1fr);grid-gap:16px;gap:16px}.overlay{position:fixed;inset:0;background:rgba(6,23,45,.48);display:grid;place-items:center;padding:18px;z-index:50}.modal-card{width:min(980px,100%);max-height:min(88vh,940px);overflow:auto;background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px;box-shadow:0 40px 80px -50px #17375f}.auth-card{width:min(100%,480px);background:linear-gradient(170deg,#ffffff,#f4f9ff);border:1px solid #cfe0fb;border-radius:20px;padding:24px;box-shadow:0 45px 60px -48px #1e58aa;display:grid;grid-gap:12px;gap:12px}.auth-info{align-self:stretch}.chip{display:inline-flex;align-items:center;width:-moz-fit-content;width:fit-content;padding:5px 10px;border-radius:999px;font-size:.76rem;font-weight:700;letter-spacing:.03em;color:#fff;background:var(--hero)}.auth-card h1{margin:0}.stack{display:grid;grid-gap:8px;gap:8px}.link-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:none;color:var(--primary);font:inherit;padding:0;min-height:auto;cursor:pointer;text-decoration:underline}.app-footer{margin-top:16px;border:1px solid var(--line);border-radius:16px;background:#fbfdff;padding:14px 16px;display:grid;grid-gap:10px;gap:10px}.app-footer p{margin:0;color:var(--muted);font-size:.9rem}.info-grid{margin-top:8px}@media (max-width:900px){.auth-layout,.grid,.kpi{grid-template-columns:1fr}.auth-card{width:100%}}