
:root{--td-navy:#06192c;--td-navy-2:#082b4b;--td-blue:#1288ef;--td-cyan:#18d3e6;--td-ink:#102a46;--td-muted:#71869a;--td-line:#d9e5ef;--td-soft:#f2f7fb;--td-green:#17a66a;--td-red:#ed4b63;--td-orange:#f3a13b}
body{background:var(--td-soft);font-size:14px}
.top{height:58px;background:#08243e;border:0;padding:0 28px 0 18px;color:#d8e6f1}
.brand{width:218px;display:flex;align-items:center}
.brand img{width:168px;max-height:42px}
.top-actions{gap:10px}.top a,.top button{color:#d5e5f1;font-size:11px}
.top-actions select,.top-actions button{border:1px solid #31516c;background:#f8fbfd;color:#27445e;border-radius:6px;padding:8px 10px}
.shell{grid-template-columns:218px minmax(0,1fr);min-height:calc(100vh - 58px)}
.shell>aside{background:linear-gradient(180deg,#061a2d,#082a48);padding:20px 12px 24px;box-shadow:6px 0 22px rgba(8,35,59,.08)}
.shell>aside .eyebrow{margin:2px 12px 7px;color:#20d7e9;font-size:8px;letter-spacing:.16em}
.shell>aside h2{margin:0 12px 20px;font-size:16px;color:#fff}
.shell>aside nav{gap:3px}
.shell>aside nav button{position:relative;padding:11px 12px 11px 38px;border-radius:6px;color:#c2d2df;font-size:11px}
.shell>aside nav button:before{position:absolute;left:14px;width:14px;color:#77bdec;text-align:center}
.shell>aside nav button:nth-child(1):before{content:"⌂"}.shell>aside nav button:nth-child(2):before{content:"▥"}.shell>aside nav button:nth-child(3):before{content:"◇"}.shell>aside nav button:nth-child(4):before{content:"▦"}.shell>aside nav button:nth-child(5):before{content:"▤"}.shell>aside nav button:nth-child(6):before{content:"♙"}.shell>aside nav button:nth-child(7):before{content:"⇩"}.shell>aside nav button:nth-child(8):before{content:"⚙"}
.shell>aside nav button.active{background:linear-gradient(90deg,#0c5c91,#0d4778);border-left:2px solid var(--td-cyan);color:#fff}
.privacy{color:var(--td-cyan);border-color:#2a4d68;padding:18px 12px 0;font-size:9px}
.privacy span{font-size:8px;color:#90a8ba}
.content{padding:0;min-width:0}

#portal>.hero{min-height:150px;border:0;border-radius:0;padding:27px 44px;color:#fff;background:linear-gradient(90deg,rgba(4,28,51,.97),rgba(3,48,84,.69) 52%,rgba(5,23,41,.2)),url('/assets/budapest-parliament-night.jpg') center 52%/cover no-repeat;box-shadow:none}
#portal>.hero .eyebrow{color:#bfe5f4;font-size:8px;margin:0 0 8px}
#portal>.hero h1{color:#fff;font-size:34px;line-height:1.05;margin:0 0 9px;letter-spacing:-.025em}
#portal>.hero #welcome{color:#d6e4ee;font-size:11px;margin:0}
#portal>.hero .mode{align-self:flex-start;background:rgba(3,25,45,.7);border:1px solid rgba(255,255,255,.28);color:#dff8fb;border-radius:4px;padding:8px 11px;font-size:8px;letter-spacing:.13em}
#view{padding:16px 28px 26px}
.portal-meta{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin:0 0 12px;color:#688096;font-size:9px}
.portal-meta b{display:block;color:#0b4677;margin-top:3px}.portal-meta .today{text-align:right}.portal-meta .today strong{display:block;color:#123a5e;font-size:13px}.portal-meta .today span{color:#db435d}
.portal-filters{display:flex;gap:12px;align-items:flex-end;margin-bottom:13px}
.portal-filters label{display:grid;gap:5px;color:#6b8196;font-size:8px;font-weight:800}
.portal-filters select{min-width:170px;padding:8px 30px 8px 10px;border:1px solid #d5e1eb;border-radius:6px;background:#fff;color:#23415f;font-size:10px}
.portal-refresh{margin-left:auto;border:0;background:transparent;color:#1774cd;font-size:10px;cursor:pointer}
.executive-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:13px}
.executive-kpis article{background:#fff;border:1px solid var(--td-line);border-radius:7px;padding:14px 16px;box-shadow:0 4px 14px rgba(28,54,80,.04)}
.executive-kpis header{display:flex;justify-content:space-between;align-items:center}.executive-kpis header span{font-size:8px;font-weight:850;letter-spacing:.04em;color:#286da9}
.executive-kpis header i{width:25px;height:25px;border-radius:5px;display:grid;place-items:center;background:#e9f4ff;color:#1a7fd7;font-style:normal}
.executive-kpis article:nth-child(2) header i{background:#f0eaff;color:#7956df}.executive-kpis article:nth-child(3) header i{background:#ffedf0;color:#eb4b64}.executive-kpis article:nth-child(4) header i{background:#e7f8f5;color:#1aa58f}
.executive-kpis strong{display:block;font-size:27px;color:#0b2440;margin:6px 0 3px}.executive-kpis p{margin:0;color:#71879a;font-size:9px}.executive-kpis p b{color:var(--td-green)}

.executive-grid{display:grid;grid-template-columns:1.8fr .88fr;gap:13px;margin-bottom:13px}
.panel{border:1px solid var(--td-line);border-radius:7px;box-shadow:0 4px 14px rgba(28,54,80,.04);background:#fff;margin-bottom:13px}
.executive-panel{margin:0;min-width:0}.executive-panel .panel-title{display:flex;justify-content:space-between;align-items:flex-start;padding:13px 16px 8px}
.panel-title small{display:block;font-size:8px;letter-spacing:.05em;color:#72889c;font-weight:800}.panel-title h2{font-size:14px;margin:3px 0 0;color:#12324e}.panel-title a{font-size:9px;color:#1675ce;text-decoration:none}
.service-bars{display:grid;gap:11px;padding:10px 17px 18px}.service-row{display:grid;grid-template-columns:minmax(125px,1.1fr) 3fr 45px;gap:10px;align-items:center;font-size:10px}.service-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.service-row em{height:5px;background:#e8eef3;border-radius:10px;overflow:hidden}.service-row em i{display:block;height:100%;background:#1688ee;border-radius:10px}.service-row b{text-align:right;color:#173957}
.risk-ring-wrap{display:grid;grid-template-columns:124px 1fr;gap:16px;align-items:center;padding:12px 18px 22px}.risk-ring{width:120px;height:120px;border-radius:50%;display:grid;place-items:center;position:relative}.risk-ring:before{content:"";position:absolute;width:74px;height:74px;background:#fff;border-radius:50%}.risk-ring div{z-index:1;text-align:center}.risk-ring strong,.risk-ring span{display:block}.risk-ring strong{font-size:22px}.risk-ring span{font-size:8px;color:#75899d}
.risk-list{list-style:none;padding:0;margin:0;display:grid;gap:9px}.risk-list li{display:grid;grid-template-columns:8px 1fr auto;gap:7px;align-items:center;color:#627a90;font-size:9px}.risk-list i{width:8px;height:8px;border-radius:50%}.risk-list .critical{background:var(--td-red)}.risk-list .high{background:var(--td-orange)}.risk-list .medium{background:var(--td-blue)}.risk-list .low{background:#bdcad7}
.insight-card{display:grid;grid-template-columns:58px 1fr auto;align-items:center;min-height:82px;border:1px solid #b8d9f4;border-radius:7px;background:linear-gradient(90deg,#0a4d82 0 58px,#f8fbfe 58px);margin-bottom:13px;overflow:hidden}.insight-card .spark{color:var(--td-cyan);font-size:24px;text-align:center}.insight-card>div:nth-child(2){padding:12px 17px}.insight-card small{font-size:8px;color:#1d6db4;font-weight:850;letter-spacing:.08em}.insight-card h3{font-size:14px;margin:4px 0;color:#153753}.insight-card p{font-size:9px;color:#71879a;margin:0}.insight-card button{margin-right:16px}
.panel>h2{font-size:14px;padding:14px 16px 0;margin:0;color:#12324e}.panel>p{padding:0 16px;color:#647c91}
.cards,.live-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:13px}.cards article,.live-kpis article{border-radius:7px;border:1px solid var(--td-line);box-shadow:0 4px 14px rgba(28,54,80,.04);padding:14px 16px}
.cards strong,.live-kpis strong{font-size:24px;color:#0b2440}.cards span,.live-kpis span{font-size:8px;color:#2670ad;letter-spacing:.04em;font-weight:800}
.live-head{background:#fff;border:1px solid var(--td-line);border-radius:7px;padding:16px 18px;margin-bottom:13px}.live-head h2{font-size:20px;color:#12324e}.live-head p{color:#6d8296}
.live-grid{gap:13px}.table{padding:10px 14px 14px}.table table{font-size:10px}.table th{background:#eef4f8;color:#627b92;font-size:8px;padding:8px 10px}.table td{padding:10px;border-bottom:1px solid #edf2f6;color:#405e78}
.auth-card{margin:70px auto;background:#fff;border:1px solid var(--td-line);border-radius:9px;box-shadow:0 18px 44px rgba(18,48,75,.1)}
button.primary,a.primary{background:#0b78da;border-radius:6px}button.secondary,a.secondary{border-radius:6px}
[data-encoding-warning]{display:none!important}

@media(max-width:1100px){.shell{grid-template-columns:190px 1fr}.brand{width:190px}.executive-kpis,.cards,.live-kpis{grid-template-columns:repeat(2,1fr)}.executive-grid{grid-template-columns:1fr}.portal-filters{flex-wrap:wrap}}
@media(max-width:760px){.top{padding:0 12px}.top-actions a{display:none}.shell{display:block}.shell>aside{padding:10px;position:static}.shell>aside h2,.shell>aside .eyebrow,.privacy{display:none}.shell>aside nav{display:flex;overflow-x:auto}.shell>aside nav button{white-space:nowrap;padding:10px 12px 10px 32px}.content{min-width:0}#portal>.hero{padding:24px 20px;min-height:165px}#portal>.hero h1{font-size:28px}#view{padding:13px}.portal-meta{display:block}.portal-meta .today{text-align:left;margin-top:8px}.portal-filters label{flex:1 1 140px}.portal-filters select{min-width:0;width:100%}.portal-refresh{margin-left:0}.insight-card{grid-template-columns:50px 1fr}.insight-card button{display:none}.risk-ring-wrap{grid-template-columns:1fr}.risk-ring{margin:auto}}
@media(max-width:520px){.brand img{width:135px}.top-actions{gap:5px}.top-actions select,.top-actions button{padding:7px}.executive-kpis,.cards,.live-kpis{grid-template-columns:1fr}.service-row{grid-template-columns:105px 1fr 38px}.portal-filters{display:grid;grid-template-columns:1fr 1fr}.portal-refresh{grid-column:1/-1}.executive-grid{display:block}.executive-panel{margin-bottom:13px}}

.analytics-grid{display:grid;grid-template-columns:1.8fr .88fr;gap:13px;margin-bottom:13px}
.analytics-grid>.panel{margin:0;min-width:0}.trend-title{align-items:flex-start}.trend-legend{display:flex;gap:13px;color:#71879a;font-size:8px}.trend-legend span{display:flex;align-items:center;gap:5px}.trend-legend i{width:7px;height:7px;border-radius:50%}.legend-total{background:#1688ee}.legend-risk{background:#ed4b63}
.live-trend-chart{height:220px;padding:0 14px 12px}.live-trend-chart svg{width:100%;height:100%;overflow:visible}.trend-gridline{stroke:#dfe8ef;stroke-width:1}.trend-axis{fill:#7a90a4;font:9px Arial,sans-serif}.trend-area{fill:url(#liveTrendFill)}.trend-total-line{stroke:#1688ee;stroke-width:2.4;fill:none;stroke-linejoin:round}.trend-risk-line{stroke:#ed4b63;stroke-width:1.8;fill:none;stroke-dasharray:5 4;stroke-linejoin:round}.trend-point{fill:#1688ee}
.lower-grid{display:grid;grid-template-columns:1.38fr .78fr;gap:13px;margin-bottom:13px}.lower-grid>.panel,.lower-grid>.insight-card{margin:0;min-width:0}
.service-bars{gap:9px;padding-top:4px}.service-row{grid-template-columns:28px minmax(100px,1fr) 3fr 40px;gap:9px}.service-row .service-icon{width:25px;height:25px;display:grid;place-items:center;border-radius:5px;background:#e9f4ff;color:#1778cf;font-size:8px}.service-row strong{text-align:right;color:#173957}.service-row em i.warning{background:#f3a13b}.empty-tools{padding:16px 18px 24px}
.lower-grid .insight-card{display:grid;grid-template-columns:58px 1fr;align-items:center;min-height:132px;border-color:#0b4c82;background:linear-gradient(115deg,#073b68,#0b5b9c);color:#fff}.lower-grid .insight-card .spark{border:1px solid rgba(41,211,232,.55);border-radius:6px;width:34px;height:34px;display:grid;place-items:center;margin:auto}.lower-grid .insight-card small{color:#50d6e6}.lower-grid .insight-card h3{color:#fff;font-size:14px;line-height:1.25}.lower-grid .insight-card p{color:#c2d9e9;line-height:1.45}.lower-grid .insight-card a{display:inline-block;margin-top:10px;color:#fff;font-size:9px;font-weight:800;text-decoration:none}
.endpoint-panel{margin-bottom:8px}.endpoint-panel .panel-title p{margin:4px 0 0;color:#71879a;font-size:9px}
.portal-data-foot{padding:4px 2px 0;color:#71879a;font-size:8px;text-align:right}
@media(max-width:1100px){.analytics-grid,.lower-grid{grid-template-columns:1fr}.risk-ring-wrap{grid-template-columns:124px 1fr}}
@media(max-width:760px){.trend-legend{flex-direction:column;gap:4px}.live-trend-chart{height:190px}.lower-grid .insight-card{grid-template-columns:50px 1fr}.risk-ring-wrap{grid-template-columns:1fr}}
@media(max-width:520px){.service-row{grid-template-columns:25px 92px 1fr 34px;gap:6px}.live-trend-chart{height:165px;padding-left:4px;padding-right:8px}}

.monitored-events{overflow:hidden}.events-title{display:flex;justify-content:space-between;align-items:flex-start;padding:18px 18px 13px;border-bottom:1px solid #e5edf4}.events-title small{display:block;color:#5f7890;font-size:8px;font-weight:850;letter-spacing:.08em}.events-title h2{margin:4px 0;font-size:18px;color:#102f4d}.events-title p{margin:0;color:#71879a;font-size:9px}.csv-export{border:1px solid #b9d5ef;border-radius:5px;background:#fff;color:#1474cf;padding:9px 13px;font-size:9px;cursor:pointer}
.event-controls{display:flex;justify-content:space-between;gap:14px;padding:12px 18px}.event-chips{display:flex;flex-wrap:wrap;gap:7px}.event-chips button{border:1px solid #d5e2ec;border-radius:16px;background:#fff;color:#58728a;padding:6px 10px;font-size:9px;cursor:pointer}.event-chips button.active{border-color:#87bff0;background:#edf7ff;color:#1474cf}.event-search{display:flex;align-items:center;min-width:260px;border:1px solid #d5e2ec;border-radius:5px;color:#6d8296;padding:0 9px}.event-search input{width:100%;border:0;outline:0;padding:7px;background:transparent;color:#25435d;font-size:9px}
.event-table{padding:0 18px 6px;overflow:auto}.event-table table{min-width:980px}.event-table th{font-size:8px}.event-table td{vertical-align:top}.event-table td:nth-child(2){min-width:300px}.event-name{display:block;color:#123958;margin-bottom:3px}.event-name+small{display:block;color:#8294a5;line-height:1.35}.risk-pill,.state-pill{display:inline-block;border-radius:5px;padding:5px 8px;font-size:8px;font-weight:800;white-space:nowrap}.risk-pill.critical{background:#ffe7eb;color:#d92d4c}.risk-pill.high{background:#fff0df;color:#b86c17}.risk-pill.medium{background:#fff4d9;color:#a97509}.risk-pill.low{background:#e8f7f0;color:#23815e}.state-pill.blocked{background:#eaf1f7;color:#173c5c}.state-pill.review{background:#eef0ff;color:#4f55be}.state-pill.warning{background:#fff0df;color:#b86c17}.state-pill.resolved{background:#e5f7ee;color:#16805a}.state-pill.observed{background:#edf3f7;color:#557086}.unassigned{color:#8194a6;font-style:italic}.event-detail-link{border:0;background:transparent;color:#0876cf;font-size:9px;font-weight:800;cursor:pointer;white-space:nowrap;padding:3px}.events-footer{display:flex;justify-content:space-between;padding:10px 18px 14px;color:#71879a;font-size:8px}
.event-modal[hidden]{display:none}.event-modal{position:fixed;inset:0;z-index:5000;display:grid;place-items:center;padding:24px}.event-modal-backdrop{position:absolute;inset:0;background:rgba(3,20,36,.72);backdrop-filter:blur(3px)}body.event-modal-open{overflow:hidden}.event-dialog{position:relative;width:min(980px,calc(100vw - 32px));max-height:calc(100vh - 42px);display:flex;flex-direction:column;background:#f7fafc;border:1px solid #b8d0e3;border-radius:10px;box-shadow:0 30px 90px rgba(0,18,35,.42);overflow:hidden}.event-dialog>header{display:flex;justify-content:space-between;gap:20px;padding:18px 22px;background:linear-gradient(115deg,#062844,#0b548e);color:#fff}.event-dialog>header small{font-size:8px;letter-spacing:.1em;color:#5fe0ef;font-weight:850}.event-dialog>header h2{margin:4px 0;font-size:21px;color:#fff}.event-dialog>header p{margin:0;color:#bdd2e2;font-size:9px}.event-close{border:1px solid rgba(255,255,255,.35);background:rgba(255,255,255,.08);color:#fff;width:34px;height:34px;border-radius:6px;font-size:23px;cursor:pointer}
.event-detail-status{display:flex;align-items:center;gap:9px;padding:11px 22px;border-bottom:1px solid #d8e4ed;background:#fff}.event-detail-status>b{color:#415e76;font-size:10px}.event-detail-scroll{overflow:auto;padding:15px 22px 18px}.event-detail-scroll section{margin-bottom:14px;border:1px solid #dbe6ee;border-radius:7px;background:#fff;padding:13px 14px}.event-detail-scroll h3{margin:0 0 10px;color:#123958;font-size:12px}.event-detail-note{margin:-4px 0 12px;color:#71879a;font-size:9px;line-height:1.45}.event-detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.event-detail-item{min-width:0;border-left:2px solid #b7d8f3;padding:5px 8px}.event-detail-item.wide{grid-column:span 2}.event-detail-item span,.event-detail-item strong{display:block}.event-detail-item span{color:#71879a;font-size:8px;margin-bottom:4px}.event-detail-item strong{color:#173b5b;font-size:10px;overflow-wrap:anywhere}.privacy-evidence{border-color:#bde5db!important;background:#f7fdfa!important}.privacy-evidence .event-detail-item{border-color:#28ae87}.event-detail-scroll details{border:1px solid #d7e2ea;background:#fff;border-radius:7px;padding:11px 13px}.event-detail-scroll summary{cursor:pointer;color:#176daf;font-size:10px;font-weight:800}.event-detail-scroll pre{white-space:pre-wrap;overflow-wrap:anywhere;color:#3e5d76;font-size:9px;line-height:1.55}.event-dialog>footer{display:flex;justify-content:space-between;align-items:center;padding:11px 22px;background:#fff;border-top:1px solid #d8e4ed;color:#71879a;font-size:8px}
@media(max-width:760px){.event-controls{display:block}.event-search{margin-top:10px;min-width:0}.events-title{gap:8px}.event-detail-grid{grid-template-columns:1fr 1fr}.event-detail-item.wide{grid-column:1/-1}.event-modal{padding:8px}.event-dialog{width:100%;max-height:calc(100vh - 16px)}.event-dialog>header,.event-detail-status,.event-detail-scroll,.event-dialog>footer{padding-left:14px;padding-right:14px}}
@media(max-width:520px){.events-title{display:block}.csv-export{margin-top:10px}.event-detail-grid{grid-template-columns:1fr}.event-detail-item.wide{grid-column:auto}.event-detail-status{align-items:flex-start;flex-wrap:wrap}.event-dialog>footer span{display:none}}
