:root{--navy:#1f3864;--ink:#0b0b0b;--ink2:#52514e;--line:#e2e1dc;--bg:#f7f7f5;--card:#fff;--blue:#2a78d6}*{box-sizing:border-box}body{margin:0;font:14px/1.5 -apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--ink)}.wrap{max-width:1040px;margin:0 auto;padding:0 18px 40px}header{display:flex;justify-content:space-between;align-items:center;padding:16px 0 10px;flex-wrap:wrap;gap:8px}.brand{font-weight:800;letter-spacing:2px;color:var(--navy);font-size:13px}.hdr-title{font-weight:700;font-size:17px;margin-left:8px}.hdr-right{display:flex;align-items:center;gap:10px;font-size:12.5px;color:var(--ink2);flex-wrap:wrap}.por-badge{background:#eef2f8;border:1px solid #c8d4e8;color:#1f3864;border-radius:8px;padding:7px 12px;font-size:11.5px;margin-bottom:10px}nav{display:flex;gap:4px;border-bottom:2px solid var(--line);margin-bottom:16px;flex-wrap:wrap}nav button{background:none;padding:9px 13px;font-size:13.5px;cursor:pointer;color:var(--ink2);border:none;border-bottom:2.5px solid transparent;margin-bottom:-2px}nav button.on{color:var(--navy);font-weight:700;border-bottom-color:var(--navy)}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));grid-gap:12px;gap:12px;margin-bottom:16px}.tile{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:12px 14px}.tile-label{font-size:11.5px;color:var(--ink2);text-transform:uppercase;letter-spacing:.4px}.tile-value{font-size:26px;font-weight:800;color:var(--navy);margin:2px 0}.tile-delta{font-size:12px;color:var(--ink2)}.tile-delta.up{color:#0a7a43}.tile-delta.down{color:#c0392b}.charts{display:grid;grid-template-columns:repeat(auto-fit,minmax(420px,1fr));grid-gap:14px;gap:14px;margin-bottom:16px}.chart{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:10px 12px 4px}.chart-title{font-size:12.5px;font-weight:700;color:var(--navy);margin-bottom:2px}.chart svg{width:100%;height:auto}.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));grid-gap:14px;gap:14px}.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:16px 18px;margin-bottom:14px}.card h3{margin:0 0 6px;color:var(--navy);font-size:15px}.fine{font-size:11.5px}.fine,.unit{color:var(--ink2)}.unit{font-size:11px}table{width:100%;border-collapse:collapse;margin:10px 0;font-size:12.5px}th{text-align:left;color:var(--navy);border-bottom:1.5px solid var(--navy);padding:6px 8px 4px;font-size:11.5px}td{border-bottom:1px solid var(--line);padding:6px 8px;vertical-align:top}tr.dim td{color:#a2a19a}tr.won td{background:#f0f8f2}input,select{border:1px solid #c9c8c2;border-radius:6px;padding:6px 8px;font-size:13px;background:#fff}input[inputMode=decimal]{width:90px}button{background:var(--navy);color:#fff;border:none;border-radius:7px;padding:8px 16px;font-size:13.5px;cursor:pointer}button:disabled{opacity:.5}button.mini{padding:3px 9px;font-size:11.5px;margin-right:4px}button.mini.gray{background:#8a897f}button.linkish{background:none;color:var(--ink2);text-decoration:underline;padding:0}.row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:6px}.err{background:#fdecea;color:#b3261e;padding:8px 12px;border-radius:8px;margin-bottom:10px;font-size:13px}footer{margin-top:22px;font-size:10.5px;border-top:1px solid var(--line);padding-top:10px}.loading,footer{color:var(--ink2)}.loading{padding:60px;text-align:center}.stagebar{display:flex;height:30px;border-radius:7px;overflow:hidden;background:#f0efeb;border:1px solid var(--line)}.stagebar .seg{height:100%;border-right:2px solid #fff}.stagebar .seg.empty{width:100%;align-items:center;justify-content:center}.legend,.stagebar .seg.empty{display:flex;font-size:11.5px;color:var(--ink2)}.legend{gap:16px;margin-top:6px;flex-wrap:wrap}.legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:4px;vertical-align:-1px}.meter{height:14px;border-radius:7px;background:#f0efeb;border:1px solid var(--line);overflow:hidden;margin:6px 0 4px}.meter-fill{height:100%;border-radius:7px}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(160deg,#1f3864,#2a4a80)}.login-card{background:#fff;border-radius:14px;padding:34px 36px;width:340px;display:flex;flex-direction:column;gap:8px}.login-card h1{font-size:19px;margin:0 0 8px;color:var(--navy)}.login-card label{font-size:12px;color:var(--ink2);margin-top:6px}.login-card button{margin-top:12px}