/* =====================================================================
   IDM-IPOMS — interface styles
   Palette drawn from the national flag and coat of arms.
   ===================================================================== */
@font-face{font-family:Manrope;src:url(../fonts/manrope-latin-400-normal.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:Manrope;src:url(../fonts/manrope-latin-500-normal.woff2) format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:Manrope;src:url(../fonts/manrope-latin-600-normal.woff2) format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:Manrope;src:url(../fonts/manrope-latin-700-normal.woff2) format("woff2");font-weight:700;font-display:swap}
@font-face{font-family:Manrope;src:url(../fonts/manrope-latin-800-normal.woff2) format("woff2");font-weight:800;font-display:swap}
@font-face{font-family:"Barlow Condensed";src:url(../fonts/barlow-condensed-latin-500-normal.woff2) format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Barlow Condensed";src:url(../fonts/barlow-condensed-latin-600-normal.woff2) format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:"Barlow Condensed";src:url(../fonts/barlow-condensed-latin-700-normal.woff2) format("woff2");font-weight:700;font-display:swap}

:root{
  --green-950:#062E1F; --green-900:#0B4F35; --green-800:#0F5F40; --green-700:#13704B; --green-500:#2E9467; --green-100:#D7EBE0; --green-50:#ECF5F0;
  --gold:#D4A017; --gold-700:#9A7408; --gold-100:#F8EBC2; --gold-50:#FCF6E3;
  --red:#C1272D; --red-700:#9B1C21; --red-100:#F6D6D7; --red-50:#FCEFEF;
  --blue:#2C5D8F; --blue-100:#DCE7F2;
  --ink:#16201B; --ink-2:#46534C; --ink-3:#6E7B74; --line:#DCE3DF; --line-2:#C9D3CE;
  --bg:#F2F5F3; --surface:#FFFFFF; --surface-2:#F8FAF9;
  --r-lg:12px; --r:8px; --r-sm:6px;
  --font:Manrope, "Segoe UI", system-ui, -apple-system, sans-serif;
  --display:"Barlow Condensed", "Arial Narrow", Manrope, sans-serif;
  --side:256px; --top:60px;
  --focus:0 0 0 3px rgba(212,160,23,.55);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font:15px/1.55 var(--font);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased}
a{color:var(--green-700);text-decoration:none}
a:hover{text-decoration:underline}
img{max-width:100%}
h1,h2,h3{font-family:var(--display);font-weight:600;letter-spacing:.005em;line-height:1.15;margin:0}
h1{font-size:2rem}
h2{font-size:1.3rem}
h3{font-size:1.1rem}
p{margin:.4em 0}
small{font-size:.82em}
:focus-visible{outline:none;box-shadow:var(--focus);border-radius:4px}
.skip{position:absolute;left:-999px;top:8px;background:var(--gold);color:var(--ink);padding:8px 14px;z-index:99;border-radius:6px}
.skip:focus{left:8px}
.muted{color:var(--ink-3)}
.pad{padding:14px 18px}
.mono, .ref{font-family:var(--display);font-weight:600;letter-spacing:.02em}
.right{text-align:right}
.nowrap{white-space:nowrap}
.only-mobile{display:none!important}

/* ---------------- Sidebar ---------------- */
.sidebar{position:fixed;inset:0 auto 0 0;width:var(--side);background:var(--green-950);color:#D5E4DB;display:flex;flex-direction:column;z-index:40;
  background-image:linear-gradient(180deg,var(--green-900) 0,var(--green-950) 320px)}
.brand{display:flex;align-items:center;gap:10px;padding:16px 16px 14px;border-bottom:1px solid rgba(255,255,255,.08)}
.brand img{flex:none;filter:drop-shadow(0 1px 1px rgba(0,0,0,.3))}
.brand strong{display:block;font-family:var(--display);font-size:1.35rem;color:#fff;letter-spacing:.04em;line-height:1}
.brand span{display:block;font-size:.72rem;color:#A8C3B4;line-height:1.25;margin-top:3px}
.sidebar nav{flex:1;overflow-y:auto;padding:8px 10px 20px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.15) transparent}
.nav-group{margin:16px 10px 6px;font-size:.72rem;color:#8FB09E;font-weight:600}
.sidebar nav a{display:flex;align-items:center;gap:11px;padding:8px 10px;border-radius:var(--r-sm);color:#D5E4DB;font-weight:500;font-size:.92rem;position:relative}
.sidebar nav a:hover{background:rgba(255,255,255,.06);text-decoration:none;color:#fff}
.sidebar nav a.active{background:rgba(212,160,23,.14);color:#fff}
.sidebar nav a.active::before{content:"";position:absolute;left:-10px;top:6px;bottom:6px;width:3px;border-radius:0 3px 3px 0;background:var(--gold)}
.sidebar nav a.active .ico{color:var(--gold)}
.ico{width:19px;height:19px;flex:none}
.sidebar-foot{display:flex;justify-content:space-between;padding:10px 16px;font-size:.72rem;color:#7FA08E;border-top:1px solid rgba(255,255,255,.08)}
.scrim{display:none}

/* ---------------- Shell / topbar ---------------- */
.shell{margin-left:var(--side);min-height:100vh;display:flex;flex-direction:column}
.topbar{position:sticky;top:0;z-index:30;height:var(--top);display:flex;align-items:center;gap:14px;padding:0 24px;background:rgba(255,255,255,.94);backdrop-filter:saturate(1.4) blur(6px)}
.flagband{display:grid;grid-template-columns:5fr 2fr 1fr 1fr;height:4px;position:sticky;top:var(--top);z-index:30}
.flagband i:nth-child(1){background:var(--green-700)}.flagband i:nth-child(2){background:var(--gold)}.flagband i:nth-child(3){background:var(--red)}.flagband i:nth-child(4){background:#000}
.search{flex:1;max-width:520px;display:flex;align-items:center;gap:8px;background:var(--surface-2);border:1px solid var(--line);border-radius:999px;padding:0 14px;height:38px}
.search .ico{color:var(--ink-3);width:17px;height:17px}
.search input{border:0;background:transparent;flex:1;height:100%;font:inherit;outline:none;min-width:0}
.search:focus-within{border-color:var(--green-500);box-shadow:0 0 0 3px var(--green-50)}
.topbar-right{margin-left:auto;display:flex;align-items:center;gap:8px}
.icon-btn{display:inline-grid;place-items:center;width:40px;height:40px;border:0;background:transparent;border-radius:10px;color:var(--ink-2);cursor:pointer;position:relative}
.icon-btn:hover{background:var(--green-50);color:var(--green-800)}
.bell b{position:absolute;top:4px;right:3px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--red);color:#fff;font-size:.68rem;line-height:18px;font-weight:700;border:2px solid #fff}
.usermenu{position:relative}
.usermenu summary{list-style:none;display:flex;align-items:center;gap:10px;cursor:pointer;padding:4px 6px;border-radius:10px}
.usermenu summary::-webkit-details-marker{display:none}
.usermenu summary:hover{background:var(--green-50)}
.usermenu summary strong{display:block;font-size:.88rem;line-height:1.2}
.usermenu summary small{display:block;color:var(--ink-3);font-size:.75rem;line-height:1.2}
.usermenu-pop{position:absolute;right:0;top:calc(100% + 6px);background:#fff;border:1px solid var(--line);border-radius:var(--r);min-width:220px;padding:6px;box-shadow:0 14px 34px rgba(6,46,31,.14)}
.usermenu-pop a,.usermenu-pop button{display:flex;gap:10px;align-items:center;width:100%;padding:9px 10px;border-radius:6px;color:var(--ink);font:inherit;background:none;border:0;cursor:pointer;text-align:left}
.usermenu-pop a:hover,.usermenu-pop button:hover{background:var(--green-50);text-decoration:none}
.avatar{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;flex:none;background:hsl(var(--h) 38% 88%);color:hsl(var(--h) 45% 26%);font-weight:700;font-size:.8rem}

main{flex:1;padding:24px 28px 40px;width:100%;max-width:1480px;outline:none}
.pagehead{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:20px;flex-wrap:wrap}
.pagehead h1{color:var(--green-950)}
.subtitle{color:var(--ink-2);margin:4px 0 0}
.crumbs{font-size:.82rem;color:var(--ink-3);margin-bottom:4px;display:flex;gap:6px;flex-wrap:wrap}
.crumbs a{color:var(--ink-3)}
.pageactions{display:flex;gap:8px;flex-wrap:wrap}
.foot{display:flex;justify-content:space-between;gap:12px;padding:14px 28px;font-size:.76rem;color:var(--ink-3);border-top:1px solid var(--line);flex-wrap:wrap}

/* ---------------- Buttons ---------------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:38px;padding:0 16px;border-radius:var(--r-sm);border:1px solid var(--line-2);background:#fff;color:var(--ink);font:600 .9rem var(--font);cursor:pointer;white-space:nowrap;text-decoration:none!important;transition:background .15s,border-color .15s}
.btn:hover{background:var(--surface-2);border-color:var(--ink-3)}
.btn .ico{width:17px;height:17px}
.btn-primary{background:var(--green-800);border-color:var(--green-800);color:#fff}
.btn-primary:hover{background:var(--green-900);border-color:var(--green-900)}
.btn-gold{background:var(--gold);border-color:var(--gold);color:var(--green-950)}
.btn-gold:hover{background:#C29213;border-color:#C29213}
.btn-danger{color:var(--red-700);border-color:var(--red-100);background:var(--red-50)}
.btn-danger:hover{background:var(--red-100);border-color:var(--red)}
.btn-ghost{border-color:transparent;background:transparent}
.btn-sm{height:32px;padding:0 12px;font-size:.84rem}
.btn-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}

/* ---------------- Chips, lights, meters ---------------- */
.chip{display:inline-flex;align-items:center;gap:5px;padding:2px 10px;border-radius:999px;font-size:.76rem;font-weight:600;white-space:nowrap;line-height:1.6}
.chip::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.85}
.chip-green{background:var(--green-50);color:var(--green-800)}
.chip-amber{background:var(--gold-50);color:var(--gold-700)}
.chip-red{background:var(--red-50);color:var(--red-700)}
.chip-blue{background:var(--blue-100);color:var(--blue)}
.chip-grey{background:#EEF1EF;color:var(--ink-2)}
.light{display:inline-block;width:14px;height:14px;border-radius:50%;vertical-align:middle;box-shadow:inset 0 -2px 0 rgba(0,0,0,.15)}
.light-green{background:#2E9467}.light-amber{background:var(--gold)}.light-red{background:var(--red)}.light-none{background:#fff;border:2px dashed var(--line-2);box-shadow:none}
.meter{display:inline-block;width:100%;min-width:60px;height:7px;background:#E6ECE9;border-radius:9px;overflow:hidden;vertical-align:middle}
.meter span{display:block;height:100%;border-radius:9px}
.meter-green span{background:var(--green-500)}.meter-amber span{background:var(--gold)}.meter-red span{background:var(--red)}

/* ---------------- KPI tiles ---------------- */
.kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin-bottom:20px}
.kpi{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:14px 16px 13px;color:var(--ink);position:relative;overflow:hidden;text-decoration:none!important}
a.kpi:hover{border-color:var(--green-500)}
.kpi-label{font-size:.8rem;color:var(--ink-2);font-weight:600}
.kpi-value{font-family:var(--display);font-size:2.3rem;font-weight:600;line-height:1.05;margin-top:6px;color:var(--green-950);font-variant-numeric:tabular-nums}
.kpi-sub{font-size:.76rem;color:var(--ink-3);margin-top:2px}
.kpi-red .kpi-value{color:var(--red-700)}
.kpi-amber .kpi-value{color:var(--gold-700)}
.kpi-green .kpi-value{color:var(--green-700)}
.kpi-red{border-left:3px solid var(--red)}
.kpi-amber{border-left:3px solid var(--gold)}

/* The headline strip on the dashboard: the one bold element */
.hero{display:grid;grid-template-columns:1.25fr 2fr;gap:0;background:var(--green-900);color:#fff;border-radius:var(--r-lg);overflow:hidden;margin-bottom:20px;position:relative}
.hero::after{content:"";position:absolute;right:-60px;top:-60px;width:280px;height:280px;background:url(../img/logo-sm.png) no-repeat center/contain;opacity:.06;pointer-events:none}
.hero-main{padding:22px 24px;border-right:1px solid rgba(255,255,255,.12)}
.hero-main small{color:#A8C3B4;font-weight:600}
.hero-score{font-family:var(--display);font-size:4.2rem;font-weight:600;line-height:1;margin:6px 0 2px;color:#fff;font-variant-numeric:tabular-nums}
.hero-score sup{font-size:1.6rem;color:var(--gold);margin-left:2px}
.hero-main p{color:#CFE0D6;margin:0;font-size:.9rem}
.hero-units{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
.hero-unit{padding:20px 22px;border-right:1px solid rgba(255,255,255,.1);display:flex;flex-direction:column;gap:4px}
.hero-unit:last-child{border-right:0}
.hero-unit span{color:#A8C3B4;font-size:.8rem;font-weight:600}
.hero-unit strong{font-family:var(--display);font-size:2rem;font-weight:600;font-variant-numeric:tabular-nums}
.hero-unit em{font-style:normal;font-size:.78rem;color:#CFE0D6}
.hero .meter{background:rgba(255,255,255,.14);margin-top:6px}

/* ---------------- Panels & grids ---------------- */
.grid{display:grid;gap:16px}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.g-main{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}
.span-all{grid-column:1/-1}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;margin-bottom:16px}
.grid > .panel{margin-bottom:0}
.panel-head{display:flex;align-items:center;gap:10px;padding:13px 18px;border-bottom:1px solid var(--line)}
.panel-head h2{font-size:1.15rem;color:var(--green-950)}
.panel-head .count{font-family:var(--display);font-weight:600;color:var(--ink-3);font-size:1rem}
.panel-head .btn-row,.panel-head > a{margin-left:auto}
.panel-body{padding:16px 18px}
.chart-box{position:relative;height:260px;padding:12px 16px}

/* ---------------- Tables ---------------- */
.table-wrap{overflow-x:auto}
table.t{width:100%;border-collapse:collapse;font-size:.9rem}
.t th{text-align:left;font-weight:600;font-size:.78rem;color:var(--ink-2);background:var(--surface-2);padding:9px 12px;border-bottom:1px solid var(--line);white-space:nowrap}
.t td{padding:10px 12px;border-bottom:1px solid #EAEFEC;vertical-align:top}
.t tr:last-child td{border-bottom:0}
.t tbody tr:hover td{background:#FAFCFB}
.t td.num,.t th.num{text-align:right;font-variant-numeric:tabular-nums}
.t .ref a{color:var(--green-800)}
.t .title-cell{font-weight:600}
.t .title-cell small{display:block;font-weight:400;color:var(--ink-3)}
.t tfoot td{font-weight:700;background:var(--surface-2);border-top:1px solid var(--line)}
.row-overdue td:first-child{box-shadow:inset 3px 0 0 var(--red)}

/* Filters */
.filters{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:12px 18px;border-bottom:1px solid var(--line);background:var(--surface-2)}
.filters select,.filters input{height:34px;border:1px solid var(--line-2);border-radius:var(--r-sm);padding:0 10px;font:inherit;font-size:.86rem;background:#fff;max-width:220px}
.tabs{display:flex;gap:4px;padding:0 14px;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none}
.tabs a{padding:11px 10px;color:var(--ink-2);font-weight:600;font-size:.88rem;border-bottom:2px solid transparent;white-space:nowrap}
.tabs a.on{color:var(--green-800);border-color:var(--gold)}
.tabs a .n{font-family:var(--display);color:var(--ink-3);margin-left:4px}

/* ---------------- Forms ---------------- */
.form{padding:18px}
.fgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 18px}
.fgrid.g3f{grid-template-columns:repeat(3,minmax(0,1fr))}
.field{display:flex;flex-direction:column;gap:5px;min-width:0}
.field.span-2{grid-column:1/-1}
.field-label{font-size:.82rem;font-weight:600;color:var(--ink-2)}
.field-hint{color:var(--ink-3);font-size:.76rem}
input[type=text],input[type=email],input[type=password],input[type=number],input[type=date],input[type=datetime-local],input[type=search],input[type=url],input[type=tel],select,textarea{
  width:100%;height:40px;border:1px solid var(--line-2);border-radius:var(--r-sm);padding:0 12px;font:inherit;color:var(--ink);background:#fff;transition:border-color .15s,box-shadow .15s}
textarea{height:auto;padding:9px 12px;resize:vertical;line-height:1.5}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--green-500);box-shadow:0 0 0 3px var(--green-50)}
input[readonly]{background:var(--surface-2);color:var(--ink-2)}
input[type=file]{font:inherit;font-size:.85rem;max-width:100%}
.form-actions{display:flex;gap:10px;justify-content:flex-end;padding-top:16px;margin-top:6px;border-top:1px solid var(--line);flex-wrap:wrap}
fieldset{border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;margin:0 0 16px}
legend{font-family:var(--display);font-weight:600;font-size:1.05rem;padding:0 6px;color:var(--green-900)}

/* Inline editable workplan grid */
.wp-table input,.wp-table select,.wp-table textarea{height:34px;font-size:.86rem;padding:0 8px}
.wp-table textarea{height:auto;padding:6px 8px}
.wp-table td{padding:6px}
.weight-bar{display:flex;align-items:center;gap:12px;padding:12px 18px;background:var(--surface-2);border-top:1px solid var(--line);font-weight:600}
.weight-bar .total{font-family:var(--display);font-size:1.5rem}
.weight-bar.ok .total{color:var(--green-700)}
.weight-bar.bad .total{color:var(--red-700)}

/* ---------------- Detail lists, timeline, evidence ---------------- */
.dl{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:0;margin:0}
.dl div{padding:11px 18px;border-bottom:1px solid #EEF2F0}
.dl dt{font-size:.76rem;color:var(--ink-3);font-weight:600}
.dl dd{margin:2px 0 0;font-weight:500}
.prose{padding:14px 18px;white-space:pre-wrap}
.timeline{list-style:none;margin:0;padding:12px 18px 14px 34px;position:relative}
.timeline::before{content:"";position:absolute;left:20px;top:18px;bottom:18px;width:2px;background:var(--line)}
.timeline li{position:relative;padding:6px 0 10px}
.timeline li::before{content:"";position:absolute;left:-19px;top:11px;width:10px;height:10px;border-radius:50%;background:#fff;border:2px solid var(--green-500)}
.timeline li:first-child::before{background:var(--gold);border-color:var(--gold)}
.timeline p{margin:2px 0;color:var(--ink-2);font-size:.88rem}
.timeline small{color:var(--ink-3);display:block}
.evlist{list-style:none;margin:0;padding:6px 0}
.evlist li{display:flex;gap:12px;align-items:center;padding:8px 18px}
.evlist small{display:block;color:var(--ink-3)}
.evicon{flex:none;width:40px;height:40px;border-radius:8px;background:var(--gold-50);color:var(--gold-700);display:grid;place-items:center;font:600 .72rem var(--display);letter-spacing:.04em}
.evform{display:grid;grid-template-columns:1.2fr 1fr 1fr auto;gap:8px;padding:12px 18px;border-top:1px solid var(--line);background:var(--surface-2);align-items:center}
.evform input{height:34px;font-size:.85rem}
.signbox{border:1px dashed var(--gold);background:var(--gold-50);border-radius:var(--r);padding:12px 14px;margin:10px 0}
.signbox-title{font-weight:700;margin:0 0 8px;color:var(--gold-700)}
.signbox-row{display:grid;grid-template-columns:1fr 1fr auto;gap:8px}
.signbox input{height:38px}
.sigs{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;padding:14px 18px}
.sig{border:1px solid var(--line);border-radius:var(--r);padding:10px 12px;background:var(--surface-2)}
.sig.done{border-color:var(--green-100);background:var(--green-50)}
.sig span{display:block;font-size:.75rem;color:var(--ink-3);font-weight:600}
.sig strong{display:block;margin-top:2px}
.sig small{color:var(--ink-3);display:block;word-break:break-all}

/* Flash & empty */
.flash{display:flex;align-items:flex-start;gap:12px;padding:11px 14px;border-radius:var(--r);margin-bottom:14px;font-weight:500;border:1px solid}
.flash-success{background:var(--green-50);border-color:var(--green-100);color:var(--green-900)}
.flash-error{background:var(--red-50);border-color:var(--red-100);color:var(--red-700)}
.flash-info,.flash-warning{background:var(--gold-50);border-color:var(--gold-100);color:#6B5106}
.flash-x{margin-left:auto;border:0;background:none;font-size:1.3rem;line-height:1;cursor:pointer;color:inherit;opacity:.6}
.empty{text-align:center;padding:36px 20px;color:var(--ink-3)}
.empty svg{width:52px;height:52px;color:var(--line-2)}
.empty p{margin:8px 0 14px}
.pager{display:flex;gap:4px;align-items:center;padding:12px 18px;border-top:1px solid var(--line);flex-wrap:wrap}
.pager a,.pager span[aria-current]{min-width:32px;height:32px;display:grid;place-items:center;border-radius:6px;font-weight:600}
.pager span[aria-current]{background:var(--green-800);color:#fff}
.pager .muted{margin-left:auto;font-size:.82rem}

/* Lists */
.list{list-style:none;margin:0;padding:0}
.list li{display:flex;gap:12px;align-items:center;padding:10px 18px;border-bottom:1px solid #EEF2F0}
.list li:last-child{border-bottom:0}
.list .grow{flex:1;min-width:0}
.list .grow strong{display:block;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.list .grow small{color:var(--ink-3)}
.notif.unread{background:var(--gold-50)}
.lvl{width:8px;height:8px;border-radius:50%;flex:none;background:var(--line-2)}
.lvl-critical{background:var(--red)}.lvl-warning{background:var(--gold)}.lvl-action{background:var(--green-500)}

/* Site status board */
.board{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;padding:14px 18px}
.tile{border:1px solid var(--line);border-radius:var(--r);padding:10px 12px;background:#fff;display:flex;flex-direction:column;gap:3px;color:var(--ink);text-decoration:none!important;border-top:3px solid var(--line-2)}
.tile:hover{border-color:var(--green-500)}
.tile.s-operational{border-top-color:var(--green-500)}
.tile.s-degraded{border-top-color:var(--gold)}
.tile.s-offline{border-top-color:var(--red);background:var(--red-50)}
.tile.s-maintenance{border-top-color:var(--blue)}
.tile strong{font-size:.92rem}
.tile small{color:var(--ink-3)}
.dcgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;padding:14px 18px}
.dcitem{border:1px solid var(--line);border-radius:var(--r);padding:12px;text-align:left}
.dcitem span{font-size:.78rem;color:var(--ink-3);font-weight:600;display:block}
.dcitem strong{font-family:var(--display);font-size:1.6rem;font-weight:600;display:block}
.dcitem.ok{border-left:3px solid var(--green-500)}.dcitem.warning{border-left:3px solid var(--gold)}.dcitem.fault{border-left:3px solid var(--red);background:var(--red-50)}

/* Rating key / matrix */
.ratingkey{display:grid;grid-template-columns:repeat(6,1fr);gap:0;border-top:1px solid var(--line)}
.ratingkey div{padding:10px 12px;border-right:1px solid var(--line);font-size:.8rem}
.ratingkey div:last-child{border-right:0}
.ratingkey b{display:block;font-family:var(--display);font-size:1.4rem;color:var(--green-800)}
.matrix td,.matrix th{text-align:center}
.matrix td:first-child,.matrix th:first-child{text-align:left}
.matrix input[type=radio]{width:20px;height:20px;accent-color:var(--green-700);cursor:pointer}
.score-big{font-family:var(--display);font-size:3rem;font-weight:600;color:var(--green-900);line-height:1}

/* Steps (workflow progress) */
.steps{display:flex;gap:0;padding:14px 18px;overflow-x:auto;list-style:none;margin:0}
.steps li{flex:1;min-width:120px;position:relative;padding-top:22px;font-size:.8rem;color:var(--ink-3);font-weight:600}
.steps li::before{content:"";position:absolute;top:6px;left:0;right:0;height:3px;background:var(--line)}
.steps li::after{content:"";position:absolute;top:0;left:0;width:15px;height:15px;border-radius:50%;background:#fff;border:3px solid var(--line-2)}
.steps li.done{color:var(--green-800)}
.steps li.done::before{background:var(--green-500)}
.steps li.done::after{background:var(--green-500);border-color:var(--green-500)}
.steps li.current{color:var(--ink)}
.steps li.current::after{border-color:var(--gold);background:var(--gold)}

/* ---------------- Login ---------------- */
.login-body{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr;background:#fff}
.login-art{background:var(--green-900);color:#fff;padding:48px 56px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}
.login-art::before{content:"";position:absolute;inset:auto -120px -160px auto;width:520px;height:520px;background:url(../img/logo.png) no-repeat center/contain;opacity:.07}
.login-art .flagband{position:absolute;left:0;right:0;top:0;height:6px}
.login-art header{display:flex;gap:16px;align-items:center}
.login-art header img{width:84px}
.login-art header span{display:block;font-size:.85rem;color:#A8C3B4}
.login-art header strong{display:block;font-size:1rem;line-height:1.35}
.login-art h1{font-size:3.6rem;line-height:.95;color:#fff;max-width:11ch;margin:40px 0 18px}
.login-art p{color:#CFE0D6;max-width:46ch;font-size:1rem}
.login-units{display:flex;gap:28px;flex-wrap:wrap;color:#A8C3B4;font-size:.85rem;border-top:1px solid rgba(255,255,255,.14);padding-top:18px}
.login-units b{display:block;color:#fff;font-family:var(--display);font-size:1.25rem;font-weight:600}
.login-form{display:flex;align-items:center;justify-content:center;padding:40px 24px}
.login-form form{width:100%;max-width:380px;display:flex;flex-direction:column;gap:16px}
.login-form h2{font-size:2rem;color:var(--green-950)}
.login-form .btn{height:46px;font-size:1rem}
.login-mobile-brand{display:none}

/* ---------------- Responsive ---------------- */
@media (max-width:1180px){
  .g3{grid-template-columns:repeat(2,minmax(0,1fr))}
  .g-main{grid-template-columns:1fr}
  .hero{grid-template-columns:1fr}
  .hero-main{border-right:0;border-bottom:1px solid rgba(255,255,255,.12)}
}
@media (max-width:900px){
  :root{--top:56px}
  .only-mobile{display:inline-flex!important}
  .only-desktop{display:none!important}
  .sidebar{transform:translateX(-100%);transition:transform .25s ease;width:min(300px,86vw);box-shadow:none}
  body.nav-open .sidebar{transform:none;box-shadow:12px 0 40px rgba(0,0,0,.25)}
  body.nav-open .scrim{display:block;position:fixed;inset:0;background:rgba(6,46,31,.45);z-index:35}
  .shell{margin-left:0}
  .topbar{padding:0 10px;gap:6px}
  .topbar-brand{align-items:center;gap:8px;color:var(--ink);font-family:var(--display);font-size:1.2rem;letter-spacing:.04em}
  .topbar-brand:hover{text-decoration:none}
  .search{display:none}
  body.search-open .search{display:flex;position:absolute;left:10px;right:10px;top:9px;max-width:none;background:#fff}
  main{padding:16px 14px calc(84px + env(safe-area-inset-bottom))}
  h1{font-size:1.65rem}
  .pagehead{margin-bottom:14px;align-items:flex-start}
  .pageactions{width:100%}
  .pageactions .btn{flex:1}
  .g2,.g3{grid-template-columns:1fr}
  .fgrid,.fgrid.g3f{grid-template-columns:1fr}
  .kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .kpi{padding:12px 13px}
  .kpi-value{font-size:1.9rem}
  .hero-score{font-size:3.4rem}
  .hero-units{grid-template-columns:repeat(2,1fr)}
  .hero-unit{border-bottom:1px solid rgba(255,255,255,.1);padding:14px 16px}
  .foot{display:none}
  .evform{grid-template-columns:1fr}
  .signbox-row{grid-template-columns:1fr}
  .ratingkey{grid-template-columns:repeat(3,1fr)}
  .ratingkey div{border-bottom:1px solid var(--line)}
  .filters{padding:10px 14px}
  .filters select,.filters input{flex:1 1 140px;max-width:none}
  .panel-head{padding:12px 14px}
  .dl div{padding:10px 14px}
  .form{padding:14px}
  input,select,textarea{font-size:16px!important}  /* stop iOS zoom */

  /* Tables reflow into cards */
  table.t.cards thead{display:none}
  table.t.cards, table.t.cards tbody, table.t.cards tr, table.t.cards td{display:block;width:100%}
  table.t.cards tr{padding:10px 14px;border-bottom:1px solid var(--line)}
  table.t.cards td{border:0;padding:3px 0;display:flex;justify-content:space-between;gap:12px;text-align:right}
  table.t.cards td::before{content:attr(data-label);color:var(--ink-3);font-size:.78rem;font-weight:600;text-align:left;flex:none}
  table.t.cards td.title-cell{display:block;text-align:left;font-size:1rem;padding-bottom:4px}
  table.t.cards td.title-cell::before{display:none}
  table.t.cards td.num{text-align:right}
  table.t.cards tfoot{display:block}
  table.t.cards tbody tr:hover td{background:none}

  .tabbar{position:fixed;left:0;right:0;bottom:0;z-index:30;display:grid!important;grid-template-columns:repeat(5,1fr);background:#fff;border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);box-shadow:0 -6px 20px rgba(6,46,31,.06)}
  .tabbar a,.tabbar button{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 0 7px;font:600 .68rem var(--font);color:var(--ink-3);border:0;background:none;text-decoration:none!important}
  .tabbar .ico{width:22px;height:22px}
  .tabbar .on{color:var(--green-800)}
  .tabbar .on .ico{color:var(--green-700)}
  .login-body{grid-template-columns:1fr}
  .login-art{display:none}
  .login-mobile-brand{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;margin-bottom:8px}
  .login-mobile-brand img{width:96px}
  .login-mobile-brand span{color:var(--ink-2);font-size:.85rem}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
