:root{--fm:#005e9e;--fm-dark:#003d68;--cyan:#28b7d8;--ink:#183044;--muted:#657989;--line:#dce6ed;--canvas:#f3f7fa;--success:#168b63;--white:#fff;--shadow:0 10px 28px rgba(16,58,86,.08)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Montserrat,"Segoe UI",Arial,sans-serif;color:var(--ink);background:var(--canvas)}a{color:var(--fm);text-decoration:none}button,input,select{font:inherit}button,a{transition:.18s ease}.app-frame{display:grid;grid-template-columns:250px 1fr;min-height:100vh}.nav-shell{position:sticky;top:0;height:100vh;padding:26px 18px;background:linear-gradient(180deg,var(--fm-dark),#002c4b);color:#fff;display:flex;flex-direction:column}.brand{display:flex;gap:12px;align-items:center;color:#fff;padding:0 8px 28px}.brand-mark{display:grid;place-items:center;width:45px;height:45px;border:2px solid #fff;border-radius:12px;font-weight:900;letter-spacing:-2px}.brand-mark.large{width:66px;height:66px;font-size:1.35rem}.brand span:last-child{display:flex;flex-direction:column}.brand small{opacity:.68;margin-top:3px}.nav-shell nav{display:flex;flex-direction:column;gap:4px}.nav-section{font-size:.65rem;letter-spacing:.17em;opacity:.48;margin:21px 12px 8px}.nav-shell nav a{color:#dcebf5;padding:11px 13px;border-radius:10px;display:flex;gap:12px;align-items:center;font-size:.88rem}.nav-shell nav a:hover,.nav-shell nav a.active{background:rgba(255,255,255,.12);color:#fff;transform:translateX(2px)}.nav-foot{margin-top:auto;border-top:1px solid rgba(255,255,255,.13);padding:17px 10px;display:flex;flex-direction:column;gap:4px}.nav-foot small{opacity:.55}.topbar{height:72px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:20px;padding:0 28px;position:sticky;top:0;z-index:5}.global-search{max-width:720px;flex:1;background:var(--canvas);border:1px solid transparent;border-radius:12px;padding:10px 14px;color:var(--muted)}.global-search:focus-within{border-color:var(--fm)}.global-search input{width:92%;border:0;background:transparent;outline:0;margin-left:8px}.user-badge{margin-left:auto;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#e3f1fa;color:var(--fm);font-weight:800}.mobile-menu{display:none;border:0;background:none;font-size:1.3rem}.content{max-width:1500px;margin:auto;padding:34px}.page-heading{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:24px}.page-heading h1{font-size:1.8rem;margin:5px 0}.page-heading p{color:var(--muted);margin:0}.eyebrow{font:700 .67rem "OCR-B 10 BT",Consolas,monospace;letter-spacing:.15em;color:var(--fm)}.btn-primary-fm,.btn-secondary-fm{border-radius:10px;padding:11px 18px;font-weight:700;cursor:pointer}.btn-primary-fm{border:1px solid var(--fm);background:var(--fm);color:#fff;box-shadow:0 6px 16px rgba(0,94,158,.2)}.btn-primary-fm:hover{background:var(--fm-dark);transform:translateY(-1px)}.btn-secondary-fm{border:1px solid var(--line);background:#fff;color:var(--fm);display:inline-block}.status-ribbon{display:flex;gap:18px;align-items:center;padding:12px 16px;background:#eaf7f2;border:1px solid #c7ebdd;border-radius:12px;color:#276b54;font-size:.83rem;margin-bottom:20px}.pulse{width:9px;height:9px;border-radius:50%;background:var(--success);box-shadow:0 0 0 5px rgba(22,139,99,.12)}.status-ribbon span:last-child{margin-left:auto}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:16px}.metric-card,.panel{background:#fff;border:1px solid var(--line);border-radius:15px;box-shadow:var(--shadow)}.metric-card{padding:20px;display:flex;flex-direction:column;gap:8px;border-top:3px solid var(--fm)}.metric-card span,.metric-card small{color:var(--muted)}.metric-card strong{font-size:1.75rem}.dashboard-grid{display:grid;grid-template-columns:1.55fr 1fr;gap:16px}.panel{padding:22px}.panel-title{display:flex;align-items:flex-start;justify-content:space-between}.panel-title h2{font-size:1.05rem;margin:5px 0}.period-chip,.online-pill{font-size:.73rem;padding:7px 10px;border-radius:999px}.period-chip{background:var(--canvas);color:var(--muted)}.online-pill{background:#e5f6ef;color:var(--success)}.chart-placeholder{height:210px;display:flex;align-items:flex-end;gap:12px;border-bottom:1px solid var(--line);padding:30px 10px 0}.chart-placeholder i{flex:1;min-width:10px;background:linear-gradient(180deg,var(--cyan),var(--fm));border-radius:5px 5px 0 0;opacity:.87}.legend{display:flex;gap:18px;padding-top:13px;font-size:.76rem;color:var(--muted)}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px}.dot.blue{background:var(--fm)}.dot.cyan{background:var(--cyan)}.monitor-card dl{margin:18px 0}.monitor-card dl div{display:flex;justify-content:space-between;padding:11px 0;border-bottom:1px solid var(--line)}dt{color:var(--muted)}dd{margin:0;font-weight:650}.filter-bar{display:grid;grid-template-columns:2fr repeat(3,1fr);gap:10px;margin-bottom:14px}.filter-bar input,.filter-bar select,.login-card input{border:1px solid var(--line);border-radius:10px;padding:12px;background:#fff;color:var(--ink)}.table-panel{padding:0;overflow:auto}table{border-collapse:collapse;width:100%;min-width:900px}th{font-size:.7rem;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);text-align:left;padding:14px;border-bottom:1px solid var(--line)}td{padding:14px}.empty-table{min-height:240px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:9px;color:var(--muted);text-align:center}.empty-table strong{color:var(--ink);font-size:1rem}.device-illustration{font-size:2.6rem;color:var(--fm)}.login-page{min-height:100vh;display:grid;grid-template-columns:1.2fr .8fr;background:#fff}.login-story{background:linear-gradient(145deg,#003d68 0%,#005e9e 58%,#0d789f 100%);color:#fff;padding:9vw;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden}.login-story:after{content:"";position:absolute;width:440px;height:440px;border:1px solid rgba(255,255,255,.2);border-radius:50%;right:-170px;bottom:-160px;box-shadow:0 0 0 80px rgba(255,255,255,.03),0 0 0 160px rgba(255,255,255,.025)}.login-story .eyebrow{color:#8cdded;margin-top:32px}.login-story h1{font-size:clamp(2.1rem,4vw,4.2rem);line-height:1.05;letter-spacing:-.045em;margin:12px 0;max-width:700px}.login-story>p:last-of-type{opacity:.76;max-width:570px}.signal-line{display:flex;align-items:end;gap:7px;height:42px;margin-top:30px}.signal-line i{width:6px;background:#8cdded;border-radius:3px}.signal-line i:nth-child(1){height:8px}.signal-line i:nth-child(2){height:15px}.signal-line i:nth-child(3){height:23px}.signal-line i:nth-child(4){height:31px}.signal-line i:nth-child(5){height:40px}.login-card{max-width:450px;width:78%;margin:auto;display:flex;flex-direction:column;gap:28px}.login-card h2{font-size:2rem;margin:7px 0}.login-card p,.login-card small{color:var(--muted)}.login-card form{display:flex;flex-direction:column;gap:16px}.login-card label{display:flex;flex-direction:column;gap:7px;font-size:.8rem;font-weight:700}.login-card small{text-align:center}.login-card>a{text-align:center;font-size:.83rem}.login-card .btn-primary-fm{margin-top:5px}.blazor-error-boundary,#blazor-error-ui{display:none}
@media(max-width:980px){.app-frame{grid-template-columns:78px 1fr}.brand span:last-child,.nav-shell nav a span,.nav-section,.nav-foot{display:none}.nav-shell{padding:20px 10px}.nav-shell nav a{justify-content:center;font-size:1.1rem}.metric-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.login-page{grid-template-columns:1fr}.login-story{display:none}.login-card{min-height:100vh;justify-content:center}}
@media(max-width:640px){.app-frame{display:block}.nav-shell{display:none}.mobile-menu{display:block}.topbar{padding:0 14px}.content{padding:22px 14px}.page-heading{align-items:flex-start;flex-direction:column}.metric-grid{grid-template-columns:1fr}.status-ribbon span:not(.pulse){display:none}.filter-bar{grid-template-columns:1fr}.login-card{width:88%}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
:focus-visible{outline:3px solid rgba(40,183,216,.55);outline-offset:2px}
.table-subline{display:block;color:var(--muted);margin-top:4px}.status-chip{display:inline-block;padding:6px 9px;border-radius:999px;background:#eef3f6;color:var(--muted);font-size:.72rem;font-weight:700}.status-chip.online{background:#e5f6ef;color:var(--success)}.portal-feedback{padding:12px 15px;border:1px solid #c9dfec;background:#edf7fc;border-radius:10px;color:var(--fm)}
