:root{--font-body:system-ui, sans-serif;--font-display:Georgia, serif;--ink:#18352f;--ink-soft:#264b43;--gold:#b88a3b;--cream:#f7f3ea;--paper:#fffdfa;--muted:#6d7773;--line:#e4dccd;--green-soft:#e9f0ed;--gold-soft:#f4ead8;--danger:#9d2e2e;--warning:#9b641d}*{box-sizing:border-box}html{min-width:320px}body{color:var(--ink);background:var(--cream);font-family:var(--font-body);margin:0}button,input,select{font:inherit}button{background:var(--ink);color:#fff;cursor:pointer;border:0;border-radius:10px;padding:14px 18px;font-weight:700}a{color:inherit}.login-shell,.loading{text-align:center;align-content:center;place-items:center;gap:14px;min-height:100vh;padding:24px;display:grid}.login-card{background:var(--paper);border:1px solid var(--line);text-align:left;border-radius:24px;width:min(460px,100%);padding:42px;box-shadow:0 20px 60px #17352f14}.brand-mark{border:1px solid var(--gold);width:58px;height:58px;color:var(--gold);font-family:var(--font-display);border-radius:18px;place-items:center;font-size:24px;display:grid}.eyebrow{text-transform:uppercase;letter-spacing:.16em;color:var(--gold);margin:0;font-size:12px;font-weight:700}.muted,.pilot{color:var(--muted)}.login-form{gap:10px;margin-top:28px;display:grid}.login-form input{border:1px solid #ced5d1;border-radius:10px;padding:14px;font-size:16px}.login-form button{margin-top:6px}.error{color:var(--danger)}.password-recovery{border-top:1px solid var(--line);margin-top:18px;padding-top:16px}.password-recovery-toggle{color:var(--ink-soft);text-underline-offset:3px;background:0 0;padding:0;text-decoration:underline}.password-recovery-form{border:1px solid var(--line);background:#fbf8f1;border-radius:14px;gap:10px;margin-top:16px;padding:18px;display:grid}.password-recovery-form h2,.password-recovery-form p{margin:0}.password-recovery-form h2{font:22px/1.15 var(--font-display)}.password-recovery-form p{color:var(--muted);font-size:14px;line-height:1.45}.password-recovery-form label{color:var(--ink);font-size:14px;font-weight:700}.password-recovery-form input{background:#fff;border:1px solid #ced5d1;border-radius:10px;padding:12px 14px;font-size:16px}.password-recovery-form button{margin-top:4px}.password-recovery-success{font-weight:700;color:#22634f!important}.pilot{margin-top:24px;font-size:12px}.dashboard-shell{width:min(1240px,100%);margin:auto;padding:32px 24px 56px}.secondary{color:var(--ink);background:0 0;border:1px solid #b9c5c0}.hero{background:var(--ink);color:#fff;border-radius:22px;justify-content:space-between;align-items:center;gap:28px;padding:36px;display:flex}.hero h2{font:32px var(--font-display);margin:8px 0}.hero p:last-child{color:#d8e3df;margin-bottom:0}.panel>p{color:var(--muted);line-height:1.55}.chip{background:var(--gold-soft);color:#6f4c18;white-space:nowrap;border:1px solid #d8c8a9;border-radius:999px;align-items:center;width:fit-content;padding:8px 11px;font-size:12px;font-weight:700;display:inline-flex}.panel{background:var(--paper);border:1px solid var(--line);border-radius:18px;min-width:0;padding:24px;box-shadow:0 10px 30px #17352f08}.panel h2{font:23px var(--font-display);margin:0}.panel h3{margin:0}.donut{aspect-ratio:1;border-radius:50%;place-items:center;width:150px;margin-inline:auto;display:grid}.donut>div{aspect-ratio:1;background:var(--paper);text-align:center;border-radius:50%;place-content:center;gap:3px;width:94px;padding:8px;display:grid}.donut strong{font:17px var(--font-display)}.donut span{color:var(--muted);font-size:10px}.gap{width:fit-content;color:var(--muted);background:#ecefed;border-radius:999px;padding:4px 7px;font-size:11px;font-weight:700}.gap.under{color:#8b4d26;background:#f8e9df}.gap.ok{background:var(--green-soft);color:var(--ink-soft)}.spinner{border:4px solid #d8dfdc;border-top-color:var(--gold);border-radius:50%;width:44px;height:44px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.data-freshness{color:#41665b;background:#e6f0ec;border-radius:999px;align-items:center;gap:5px;width:fit-content;margin-top:7px;padding:4px 7px;font-size:9px;font-style:normal;font-weight:700;line-height:1.3;display:inline-flex}.data-freshness.stale{color:#8a5727;background:#f8ead7}.data-freshness.unknown{color:var(--muted);background:#efede8}@media (max-width:800px){.hero{flex-direction:column;align-items:flex-start}}@media (max-width:620px){.dashboard-shell{padding:24px 16px 44px}.hero{padding:26px 22px}.hero h2{font-size:27px}.panel{padding:20px}.login-card{padding:28px}}@media (max-width:420px){.secondary{padding:10px}}.portal-app-shell{background:radial-gradient(circle at 9% 3%, #dccaa62e, transparent 26rem), var(--cream);min-height:100vh;font-family:var(--font-body)}.portal-app-shell a:focus-visible,.portal-app-shell button:focus-visible,.portal-app-shell summary:focus-visible{outline-offset:3px;outline:3px solid #b88a3b73}.dashboard-shell{padding-top:34px}.home-print-button{color:var(--ink);background:#ffffff8c;border:1px solid #18352f3d;border-radius:10px;justify-content:center;align-items:center;gap:10px;padding:12px 17px;font-size:12px;font-weight:700;text-decoration:none;transition:transform .16s,border-color .16s,background .16s;display:inline-flex}.home-print-button:hover{border-color:var(--gold);background:#fff;transform:translateY(-2px)}.home-print-button svg{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:17px}@media (max-width:620px){.dashboard-shell{padding:27px 16px 48px}.home-print-button{width:100%}}@media print{.home-print-button,.pilot{display:none!important}.portal-app-shell,body{background:#fff}.dashboard-shell{width:100%;padding:20px}}
