/* C-Data Shield · stil comun pe toate paginile (adaugat automat inainte de </head>).
   Fonturi: Roboto + Roboto Mono, gazduite pe serverul Shield (static/fonts/roboto), fara servicii externe.
   Carduri, tabele, paginare si export PDF in limbajul vizual al scenelor Electric / Gaz / Apa. */

/* ---------- fonturi ---------- */
@font-face{font-family:'Roboto';font-style:normal;font-weight:400;font-display:swap;src:url(/static/fonts/roboto/roboto-latin-400-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Roboto';font-style:normal;font-weight:400;font-display:swap;src:url(/static/fonts/roboto/roboto-latin-ext-400-normal.woff2) format('woff2');unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Roboto';font-style:normal;font-weight:500;font-display:swap;src:url(/static/fonts/roboto/roboto-latin-500-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Roboto';font-style:normal;font-weight:500;font-display:swap;src:url(/static/fonts/roboto/roboto-latin-ext-500-normal.woff2) format('woff2');unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Roboto';font-style:normal;font-weight:600 700;font-display:swap;src:url(/static/fonts/roboto/roboto-latin-700-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Roboto';font-style:normal;font-weight:600 700;font-display:swap;src:url(/static/fonts/roboto/roboto-latin-ext-700-normal.woff2) format('woff2');unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Roboto Mono';font-style:normal;font-weight:400;font-display:swap;src:url(/static/fonts/roboto/roboto-mono-latin-400-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Roboto Mono';font-style:normal;font-weight:400;font-display:swap;src:url(/static/fonts/roboto/roboto-mono-latin-ext-400-normal.woff2) format('woff2');unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Roboto Mono';font-style:normal;font-weight:500 700;font-display:swap;src:url(/static/fonts/roboto/roboto-mono-latin-500-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Roboto Mono';font-style:normal;font-weight:500 700;font-display:swap;src:url(/static/fonts/roboto/roboto-mono-latin-ext-500-normal.woff2) format('woff2');unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}

:root{
  --f-display:'Roboto',system-ui,sans-serif; --f-ui:'Roboto',system-ui,sans-serif; --f-mono:'Roboto Mono',ui-monospace,monospace;
  --u-electric:#06B6D4; --u-gaz:#F59E0B; --u-apa:#1B3A5C;
  --st-ok:#3CB54A; --st-warn:#E8731C; --st-danger:#C8442E; --st-blue:#5B9BD5;
  --ui-card-border:#E6EEE8; --ui-card-shadow:0 5px 14px rgba(139,126,110,.16); --ui-card-r:12px;
  --ui-ink:#1A2421; --ui-muted:#5C6A60;
}
/* Roboto peste tot (inclusiv paginile vechi si textele SVG); textele tehnice raman pe Roboto Mono */
html body, html body *:not(.ti):not([class^="ti-"]):not([class*=" ti-"]){font-family:'Roboto',system-ui,sans-serif !important}
html body code, html body kbd, html body pre, html body samp, html body .mono, html body [class*="-mono"], html body [class*="mono "], html body .codepill,
html body .rcode, html body .nc-cod, html body .ui-mono, html body .m{font-family:'Roboto Mono',ui-monospace,monospace !important}

/* ---------- carduri (stilul cardurilor din scene) ---------- */
.shield-app .card, .shield-app .cs-card, .shield-app .dq-card, .shield-app .fx-card, .shield-app .st-card, .shield-app .kpi-card, .shield-app .ui-card{
  background:#fff; border:1px solid var(--ui-card-border); border-radius:var(--ui-card-r); box-shadow:var(--ui-card-shadow);
}
.shield-app .card-label, .shield-app .cs-kpi > div > span:first-child, .shield-app .ui-lbl{
  display:flex; align-items:center; gap:8px; font-size:10.5px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--ui-muted);
}
.shield-app .card-label::before, .shield-app .cs-kpi > div > span:first-child::before, .shield-app .ui-lbl::before{
  content:""; width:10px; height:10px; border-radius:50%; background:var(--dot,var(--st-ok)); flex-shrink:0;
}
.shield-app .card-value, .shield-app .cs-kpi b, .shield-app .ui-val{font-size:30px; font-weight:600; line-height:1.15; color:var(--ui-ink); font-variant-numeric:tabular-nums; letter-spacing:-.01em}
.shield-app .card-unit, .shield-app .ui-val small{font-family:'Roboto Mono',monospace !important; font-size:12px; font-weight:400; color:var(--ui-muted); margin-left:6px}
.shield-app .card-trend, .shield-app .cs-kpi small, .shield-app .ui-sub{font-family:'Roboto Mono',monospace !important; font-size:11px; font-weight:400; color:var(--ui-muted)}
.shield-app .cs-kpi > div{background:#fff; border:1px solid var(--ui-card-border); border-radius:var(--ui-card-r); box-shadow:var(--ui-card-shadow); padding:16px 18px}
.shield-app .cs-kpi b{font-size:26px; margin-top:8px}
.shield-app .card-trend.up{color:var(--st-danger)} .shield-app .card-trend.down{color:var(--accent-dark,#247a32)}
.u-electric{--dot:var(--u-electric)} .u-gaz{--dot:var(--u-gaz)} .u-apa{--dot:var(--u-apa)}
.st-ok{--dot:var(--st-ok)} .st-warn{--dot:var(--st-warn)} .st-danger{--dot:var(--st-danger)} .st-blue{--dot:var(--st-blue)}

/* card compus: grila de carduri mici in interiorul unui card (folosit de Cost Intelligence si scenele pe utilitati) */
.ui-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:16px}
.ui-card{padding:16px 18px; position:relative}
.ui-card .ui-val{margin-top:10px}
.ui-card .ui-sub{display:block; margin-top:6px; line-height:1.5}
.ui-card.ui-gol .ui-val{color:var(--text-dim,#8a9683)}
.ui-card.ui-acc{border-color:var(--dot,var(--ui-card-border)); box-shadow:inset 0 3px 0 var(--dot,transparent), var(--ui-card-shadow)}

/* ---------- tabele ---------- */
.shield-app .canvas table{border-collapse:separate; border-spacing:0}
.shield-app .canvas table th{font-size:10.5px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--ui-muted); background:#fff}
.shield-app .canvas table td{font-size:13px}
.shield-app .canvas table tbody tr:hover > td{background:#F7F9F5}
.shield-app .canvas table td.n, .shield-app .canvas table th.n{font-variant-numeric:tabular-nums}
.ui-scroll{max-height:62vh; overflow:auto; border:1px solid var(--ui-card-border); border-radius:10px; background:#fff}
.ui-scroll > table{width:100%}
.ui-scroll > table thead th{position:sticky; top:0; z-index:2; box-shadow:inset 0 -1px 0 var(--border,#d9e2d3)}
.ui-scroll::-webkit-scrollbar{width:8px; height:8px} .ui-scroll::-webkit-scrollbar-thumb{background:#D9E2D3; border-radius:4px}

/* ---------- paginare ---------- */
.ui-pager{display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; margin:10px 0 4px; font-size:12px; color:var(--ui-muted)}
.ui-pager .ui-pg{display:flex; align-items:center; gap:6px}
.ui-pager button, .ui-btn{font-size:13px; font-weight:500; height:36px; min-width:36px; padding:0 12px; border-radius:8px; border:1px solid var(--border,#d9e2d3); background:#fff; color:var(--ui-ink); cursor:pointer}
.ui-pager button:hover:not(:disabled), .ui-btn:hover{border-color:var(--accent,#3cb54a)}
.ui-pager button:disabled{opacity:.4; cursor:default}
.ui-pager button.on{background:var(--accent,#3cb54a); border-color:var(--accent,#3cb54a); color:#fff}
.ui-pager select{height:36px}
.ui-btn{display:inline-flex; align-items:center; gap:8px; white-space:nowrap}
.ui-btn svg{width:16px; height:16px}
.ui-btn.ui-pdf{border-color:var(--accent-dark,#247a32); color:var(--accent-dark,#247a32)}

/* ---------- export PDF (tiparire) ---------- */
.ui-print-head{display:none}
@page{size:A4 landscape; margin:12mm 10mm}
@media print{
  html, body{background:#fff !important}
  .shield-app{display:block !important}
  .dock, .ui-pager, .ui-pdf, .module-btn, .amnesty-bar, .ui-no-print{display:none !important}
  .canvas{padding:0 !important; max-width:none !important}
  .module-content{opacity:1 !important; animation:none !important; transform:none !important}
  .ui-scroll{max-height:none !important; overflow:visible !important; border:0}
  .ui-scroll > table thead th{position:static}
  .card, .cs-card, .dq-card, .fx-card, .st-card, .ui-card, .cs-kpi > div{box-shadow:none !important}
  .card:not(:has(table)), .cs-kpi > div, .ui-card:not(:has(table)), .section-heading{break-inside:avoid}
  .section-heading{break-after:avoid}
  tr{break-inside:avoid}
  thead{display:table-header-group}
  .ui-print-head{display:flex; justify-content:space-between; align-items:flex-end; gap:16px; border-bottom:2px solid var(--accent,#3cb54a); padding-bottom:8px; margin-bottom:14px}
  .ui-print-head b{font-size:18px; color:var(--ui-ink)}
  .ui-print-head span{display:block; font-size:11px; color:var(--ui-muted)}
  .ui-print-head .ui-ph-r{text-align:right}
  *{-webkit-print-color-adjust:exact; print-color-adjust:exact}
}

/* ui-select-padding: textul din toate dropdown-urile nu sta lipit de margine; loc pentru sageata in dreapta; inaltimea ramane cea din campuri.css */
html body select{padding-left:12px !important;padding-right:34px !important;text-indent:0 !important}

/* ui-pliere: blocuri explicative pliabile */
.ui-pl .ui-pl-t{cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:12px;user-select:none}
.ui-pl .ui-pl-t::after{content:"\203A";font-size:18px;line-height:1;color:var(--ui-muted,#5C6A60);transform:rotate(90deg);transition:transform .15s}
.ui-pl.ui-pl-inchis .ui-pl-t::after{transform:none}
.ui-pl.ui-pl-inchis > :not(.ui-pl-t){display:none}
@media print{.ui-pl.ui-pl-inchis > :not(.ui-pl-t){display:revert}.ui-pl .ui-pl-t::after{display:none}}
