:root{--brand:#1f5fbf;--brand-dark:#1746a0;--bg:#f4f6fb;--surface:#ffffff;--border:#e2e6ef;--text:#1a2233;--muted:#6b7488;--ok:#1a7f4b;--ok-bg:#e4f5ec;--warn:#b25e00;--warn-bg:#fbeedd}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,Noto Sans,sans-serif;font-size:15px;line-height:1.45}a{color:var(--brand)}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.login-card{width:100%;max-width:380px;background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:32px 28px;box-shadow:0 10px 40px rgba(31,95,191,.08)}.brand-badge{width:56px;height:56px;border-radius:14px;background:linear-gradient(160deg,#2a6fd4,#1746a0);display:flex;align-items:center;justify-content:center;margin:0 auto 16px;font-size:26px}.login-card h1{font-size:22px;text-align:center;margin:0 0 4px}.login-card .sub{text-align:center;color:var(--muted);margin:0 0 24px;font-size:14px}label{display:block;font-size:13px;font-weight:600;margin:14px 0 6px}input,select{width:100%;padding:12px 14px;border:1px solid var(--border);border-radius:10px;font-size:15px;background:#fbfcfe;outline:none}input:focus{border-color:var(--brand);background:#fff}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:none;cursor:pointer;background:var(--brand);color:#fff;padding:12px 18px;border-radius:11px;font-size:15px;font-weight:600;transition:background .15s}.btn:hover:not(:disabled){background:var(--brand-dark)}.btn:disabled{opacity:.55;cursor:default}.btn-full{width:100%;margin-top:22px}.btn-sm{padding:7px 12px;font-size:13px;border-radius:9px}.btn-ghost{background:transparent;color:var(--brand);border:1px solid var(--border)}.btn-ghost:hover:not(:disabled){background:#eef2fb}.hint{font-size:12.5px;color:var(--muted);margin-top:14px;text-align:center}.error{background:#fdecec;color:#b3261e;padding:10px 12px;border-radius:9px;font-size:13.5px;margin-top:16px}.topbar{background:var(--surface);border-bottom:1px solid var(--border);padding:14px 24px;gap:12px;position:-webkit-sticky;position:sticky;top:0;z-index:10}.topbar,.topbar .logo{display:flex;align-items:center}.topbar .logo{width:34px;height:34px;border-radius:9px;background:linear-gradient(160deg,#2a6fd4,#1746a0);justify-content:center;font-size:17px}.topbar .title{font-weight:700;font-size:16px}.topbar .company{color:var(--muted);font-size:13px}.topbar .spacer{flex:1 1}.container{max-width:940px;margin:0 auto;padding:24px}.summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-gap:14px;gap:14px;margin-bottom:24px}.stat{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:16px 18px}.stat .k{color:var(--muted);font-size:13px}.stat .v{font-size:22px;font-weight:700;margin-top:4px}.section-title{font-size:15px;font-weight:700;margin:4px 0 12px}.card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:16px 18px;margin-bottom:14px}.card-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.tracking{font-weight:700;font-size:15px;letter-spacing:.2px}.badge{font-size:12px;font-weight:600;padding:3px 10px;border-radius:20px;background:#eef2fb;color:var(--brand)}.badge.ok{background:var(--ok-bg);color:var(--ok)}.badge.warn{background:var(--warn-bg);color:var(--warn)}.grow{flex:1 1}.rows{margin:12px 0;display:grid;grid-template-columns:1fr 1fr;grid-gap:6px 18px;gap:6px 18px}.rows .r{font-size:13.5px}.rows .r span{color:var(--muted)}.actions{gap:8px;flex-wrap:wrap;border-top:1px solid var(--border);padding-top:12px;margin-top:4px}.actions,.weight-inline{display:flex;align-items:center}.weight-inline{gap:6px}.weight-inline input{width:92px;padding:7px 10px}.empty{padding:40px}.empty,.loading{text-align:center;color:var(--muted)}.loading{padding:60px}@media (max-width:560px){.rows{grid-template-columns:1fr}}