/* Manual de bune practici în iluminat — aceeași grilă de culori și tipografie ca Vocabularul de iluminat */
:root{
  color-scheme:light;
  --bg:#EDF0F3; --surface:#FFFFFF; --ink:#17212B; --muted:#5A6777; --line:#CBD3DC;
  --accent:#2447D6; --accent-ink:#FFFFFF; --accent-soft:#E3E9FB;
  --soon:#8A5700; --soon-bg:#FFEFC9; --late:#B8322A; --ok:#1F7A4D; --ok-bg:#DDF3E7;
  --plate:#FFFFFF;
  --body:"Barlow","Segoe UI",system-ui,-apple-system,sans-serif;
  --cond:"Barlow Condensed","Roboto Condensed","Arial Narrow",system-ui,sans-serif;
  --math:"Cambria Math","STIX Two Math","Times New Roman",Times,serif;
  --fs:1.06rem;
  --img-filter:none;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    color-scheme:dark;
    --bg:#10161D; --surface:#1A222C; --ink:#E8EDF2; --muted:#9AA7B5; --line:#2E3A47;
    --accent:#8FA6FF; --accent-ink:#0B1220; --accent-soft:#222E4E;
    --soon:#F0B94A; --soon-bg:#3A2E12; --late:#FF8A80; --ok:#6FD3A0; --ok-bg:#16332A;
  }
}
:root[data-theme="dark"]{
  color-scheme:dark;
  --bg:#10161D; --surface:#1A222C; --ink:#E8EDF2; --muted:#9AA7B5; --line:#2E3A47;
  --accent:#8FA6FF; --accent-ink:#0B1220; --accent-soft:#222E4E;
  --soon:#F0B94A; --soon-bg:#3A2E12; --late:#FF8A80; --ok:#6FD3A0; --ok-bg:#16332A;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-padding-top:1rem}
body{margin:0;background:var(--bg);color:var(--ink);font:400 1rem/1.5 var(--body)}
a{color:var(--accent)}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}
h1,h2,h3{text-wrap:balance}
sub,sup{font-size:.68em;line-height:0}
kbd,.kbd{font:600 .78rem/1 var(--cond);border:1px solid var(--line);border-bottom-width:2px;border-radius:4px;padding:.12rem .38rem;color:var(--muted);background:var(--surface)}

.wrap{max-width:84rem;margin:0 auto;padding-block:.9rem 2.5rem;
  padding-left:max(16px, env(safe-area-inset-left, 0px));padding-right:max(16px, env(safe-area-inset-right, 0px))}

.btn{display:inline-flex;align-items:center;gap:.4rem;font:500 .95rem/1 var(--body);padding:.6rem .9rem;border-radius:6px;
  border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;text-decoration:none}
.btn:hover{border-color:var(--muted)}
.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.btn.small{padding:.45rem .7rem;font-size:.88rem}
.btn.icon{padding:.38rem .5rem}
.btn.icon svg{width:1.1rem;height:1.1rem}
.btn[aria-pressed="true"]{background:var(--accent-soft);border-color:var(--accent);color:var(--ink)}
.btn:disabled{opacity:.5;cursor:default}
.lbl{display:block;font:600 .74rem/1.2 var(--cond);letter-spacing:.07em;text-transform:uppercase;color:var(--muted);margin-bottom:.3rem}

/* antet */
.top{display:flex;flex-direction:column;gap:.7rem;padding-block:.9rem .9rem}
.top-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem 1rem;
  border:1px solid var(--line);border-radius:8px;padding:.5rem .5rem .5rem .85rem;font-size:.9rem}
.acts{display:flex;align-items:center;gap:.45rem}
.who{color:var(--muted)}
.who b{color:var(--ink);font-weight:600}
.brand-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.8rem 1.5rem}
.brand{display:flex;flex-wrap:wrap;align-items:baseline;gap:.2rem .8rem;min-width:0;text-decoration:none}
.brand .mark{margin:0;font:600 2.3rem/1 var(--cond);letter-spacing:.01em;color:var(--ink)}
.mark span{color:var(--accent)}
.brand p{margin:0;color:var(--muted);font-size:.95rem}
.src{display:flex;flex-direction:column;align-items:flex-start;gap:.3rem;min-width:0;max-width:100%}
.src-lbl{font:600 .7rem/1 var(--cond);letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.plate{display:block;max-width:100%;background:var(--plate);border:1px solid var(--line);border-radius:6px;padding:.4rem .6rem}
.plate img{display:block;height:2.5rem;width:auto;max-width:100%}

.tabs{display:flex;gap:.25rem;overflow-x:auto;border-bottom:1px solid var(--line);scrollbar-width:none}
.tabs a{font:600 1rem/1 var(--cond);letter-spacing:.03em;color:var(--muted);text-decoration:none;padding:.65rem .85rem;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap}
.tabs a:hover{color:var(--ink)}
.tabs a[aria-current="page"]{color:var(--accent);border-bottom-color:var(--accent)}
.tabs a .badge{display:inline-block;min-width:1.2rem;margin-left:.3rem;padding:.12rem .3rem;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-size:.75rem;text-align:center}

/* căutare */
.tools{display:flex;flex-wrap:wrap;gap:.75rem;align-items:flex-end;margin:.2rem 0 .9rem}
.f-search{flex:1 1 22rem;min-width:0}
.f-cap{flex:1 1 16rem;min-width:0;max-width:30rem}
.searchbox{position:relative}
.searchbox svg{position:absolute;left:.8rem;top:50%;transform:translateY(-50%);width:1.1rem;height:1.1rem;color:var(--muted);pointer-events:none}
.searchbox .kbd{position:absolute;right:.7rem;top:50%;transform:translateY(-50%);pointer-events:none}
input,select{font:400 1.02rem/1.3 var(--body);color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:.66rem .8rem;width:100%}
input[type=search]{padding-left:2.4rem;padding-right:2.4rem}
input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:-1px;border-color:var(--accent)}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--surface)}
.seg button{font:500 .95rem/1 var(--body);border:0;background:transparent;color:var(--muted);padding:.74rem .85rem;cursor:pointer}
.seg button+button{border-left:1px solid var(--line)}
.seg button[aria-pressed="true"]{background:var(--accent-soft);color:var(--ink)}
.seg-sm button{padding:.42rem .6rem;font-size:.86rem}

/* panouri */
.main{display:grid;gap:1rem;grid-template-columns:minmax(0,1fr);align-items:start}
.main.wide{grid-template-columns:minmax(0,1fr)!important}
.main.wide .list-col{display:none}
.count{margin:0 0 .5rem;color:var(--muted);font-size:.9rem;font-variant-numeric:tabular-nums}
.list{background:var(--surface);border:1px solid var(--line);border-radius:10px;overflow:hidden}
.list ul{list-style:none;margin:0;padding:0;position:relative}
.list li+li>.row{border-top:1px solid var(--line)}
.grp{display:flex;align-items:center;gap:.5rem;padding:.55rem .9rem .45rem;background:var(--bg);border-top:1px solid var(--line);font:600 .76rem/1.3 var(--cond);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);cursor:pointer;user-select:none}
.grp:hover{color:var(--ink)}
.grp .chev{width:.7rem;height:.7rem;flex:none;transition:transform .15s}
.grp[aria-expanded="false"] .chev{transform:rotate(-90deg)}
.grp .gt{flex:1;min-width:0}
.grp .pc{font-variant-numeric:tabular-nums;letter-spacing:.02em}
.list li:first-child.grp{border-top:0}
.row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;column-gap:.8rem;padding:.55rem .9rem;color:inherit;text-decoration:none}
.row:hover{background:var(--bg)}
.row[aria-current="true"]{background:var(--accent-soft)}
.row .nr{font:600 .95rem/1.4 var(--cond);font-variant-numeric:tabular-nums;color:var(--muted);white-space:nowrap;min-width:2.2rem}
.row[aria-current="true"] .nr{color:var(--accent)}
.row .ro{font-weight:600;line-height:1.35;min-width:0}

.row .en{grid-column:2;color:var(--muted);font-size:.86rem;min-width:0}
.row .en mark{background:var(--soon-bg);color:var(--ink);border-radius:2px;padding:0 .1em}
.row .st{align-self:center;width:1.05rem;height:1.05rem;border-radius:50%;border:1.5px solid var(--line);display:grid;place-items:center}
.row .st.done{background:var(--ok);border-color:var(--ok)}
.row .st.done::after{content:"";width:.45rem;height:.25rem;border:2px solid var(--surface);border-top:0;border-right:0;transform:translateY(-1px) rotate(-45deg)}
.row .st.part{border-color:var(--accent);background:conic-gradient(var(--accent) var(--p,0%),transparent 0)}
.list-foot{margin:0;padding:.65rem .9rem;border-top:1px solid var(--line);color:var(--muted);font-size:.86rem;background:var(--bg)}
.empty{padding:1.1rem .95rem;color:var(--muted)}
.empty b{color:var(--ink)}

.detail{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:1.2rem 1.6rem 1.6rem;min-width:0}
@media (min-width:58rem){
  .main{grid-template-columns:minmax(17rem,21rem) minmax(0,1fr)}
  .list ul{max-height:calc(100dvh - 10rem);min-height:18rem;overflow-y:auto;overscroll-behavior:contain}
  .list-col{position:sticky;top:1rem}
}
.back{display:none;margin-bottom:.9rem}
.crumb{margin:0;font:600 .78rem/1.3 var(--cond);letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.crumb a{color:inherit;text-decoration:none}
.crumb a:hover{color:var(--accent)}
.headline{display:flex;flex-wrap:wrap;align-items:baseline;gap:.2rem .9rem;margin-top:.55rem}
.dnr{font:600 1.15rem/1 var(--cond);color:var(--accent);font-variant-numeric:tabular-nums}
.term{margin:0;font:600 2.15rem/1.08 var(--cond)}
.authors{margin:.45rem 0 0;color:var(--muted)}
.authors .tag{margin-right:.5rem}
.tag{display:inline-block;font:600 .7rem/1 var(--cond);font-style:normal;letter-spacing:.08em;padding:.22rem .35rem;border:1px solid var(--line);border-radius:4px;color:var(--muted);vertical-align:.14em}
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(8.5rem,1fr));gap:.6rem 1.25rem;margin:1rem 0 1rem;padding:.85rem 0;border-block:1px solid var(--line)}
.facts div{min-width:0}
.facts dt{font:600 .74rem/1.2 var(--cond);letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.facts dd{margin:.2rem 0 0;font-size:1.05rem;font-variant-numeric:tabular-nums}
.pagebar{display:flex;flex-wrap:wrap;gap:.45rem;align-items:center;margin-bottom:1rem}
.pagebar .sp{flex:1}
.sec{margin:1.15rem 0 .45rem;font:600 .78rem/1.2 var(--cond);letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.rel{display:flex;flex-wrap:wrap;gap:.45rem}
.chip{display:inline-flex;align-items:baseline;gap:.45rem;padding:.38rem .7rem;border:1px solid var(--line);border-radius:999px;color:var(--ink);text-decoration:none;font-size:.92rem;max-width:100%;background:var(--surface);cursor:pointer;font-family:var(--body)}
.chip:hover{border-color:var(--accent)}
.chip .n{font:600 .86rem/1 var(--cond);font-variant-numeric:tabular-nums;color:var(--accent)}
.chip[aria-pressed="true"]{background:var(--accent-soft);border-color:var(--accent)}
.otp{margin:0 0 1.2rem}
.otp details summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:.4rem}
.otp details summary::-webkit-details-marker{display:none}
.otp details summary::before{content:"";width:.45rem;height:.45rem;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(-45deg);transition:transform .15s;margin-right:.2rem}
.otp details[open] summary::before{transform:rotate(45deg)}
.otp .rel{margin-top:.6rem;max-height:14rem;overflow-y:auto;padding:2px}

/* ——— conținutul manualului ——— */
.doc{font-size:var(--fs);line-height:1.62;max-width:52rem}
.doc>h1,.doc>h2{display:none}
.doc h3,.doc h4,.doc h5,.doc h6{font-family:var(--cond);font-weight:600;line-height:1.15;position:relative;scroll-margin-top:1rem}
.doc h3{font-size:1.55em;margin:2.1rem 0 .7rem;padding-top:1.1rem;border-top:1px solid var(--line)}
.doc h4{font-size:1.25em;margin:1.6rem 0 .5rem}
.doc h5{font-size:1.08em;margin:1.3rem 0 .4rem;color:var(--muted);letter-spacing:.02em}
.doc h6{font-size:1em;margin:1.2rem 0 .3rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.doc h3 .hnum,.doc h4 .hnum,.doc h5 .hnum{color:var(--accent);font-variant-numeric:tabular-nums}
.doc .hact{position:absolute;right:0;top:auto;display:inline-flex;gap:.25rem;opacity:0;transition:opacity .15s}
.doc h3 .hact{top:1.1rem}
.doc h3:hover .hact,.doc h4:hover .hact,.doc .hact:focus-within,.doc .hact.on{opacity:1}
.hbtn{border:1px solid var(--line);background:var(--surface);color:var(--muted);border-radius:6px;width:1.9rem;height:1.9rem;display:grid;place-items:center;cursor:pointer;padding:0}
.hbtn:hover{color:var(--accent);border-color:var(--accent)}
.hbtn svg{width:1rem;height:1rem}
.hbtn.on{color:var(--soon);border-color:var(--soon);background:var(--soon-bg)}
.doc h3.flash,.doc h4.flash,.doc h5.flash{animation:flash 1.6s ease-out}
@keyframes flash{0%{background:var(--soon-bg);box-shadow:0 0 0 .4rem var(--soon-bg)}100%{background:transparent;box-shadow:0 0 0 .4rem transparent}}
.doc p{margin:.65rem 0;text-align:justify;hyphens:auto;-webkit-hyphens:auto}
.doc ul,.doc ol{padding-left:1.4rem;margin:.6rem 0}
.doc li{margin:.25rem 0}
.doc li::marker{color:var(--accent)}
.doc li>p{margin:.2rem 0}
.doc strong{font-weight:600}
.doc blockquote{margin:1rem 0;padding:.7rem 1rem;border-left:3px solid var(--accent);background:var(--accent-soft);border-radius:0 8px 8px 0}
.doc blockquote p{margin:.3rem 0}
.doc mark.hit{background:var(--soon-bg);color:inherit;border-radius:2px;box-shadow:0 0 0 1px var(--soon)}
.doc a{text-underline-offset:2px;overflow-wrap:anywhere}

/* formule */
.eq-display{display:block;position:relative;margin:.9rem 0;padding:.55rem 2.6rem .55rem .9rem;background:var(--bg);border-radius:8px;overflow-x:auto;overflow-y:hidden;border:1px solid transparent;transition:border-color .15s}
.eq-display:hover{border-color:var(--line)}
.eq-display .katex-display{margin:0;text-align:left}
.eq-display .katex{font-size:1.15em}
/* toate formulele arată la fel: chenarul \\boxed din document nu se desenează */
.katex .fbox,.katex .fcolorbox{border-color:transparent!important}
.eq-inline .katex{font-size:1.05em}
.eq-tools{position:absolute;right:.35rem;top:50%;transform:translateY(-50%);display:flex;gap:.2rem;opacity:0;transition:opacity .15s}
.eq-display:hover .eq-tools,.eq-display:focus-within .eq-tools{opacity:1}
.eq-tools .hbtn{width:1.7rem;height:1.7rem}
.katex{color:var(--ink)}

/* figuri */
.fig{margin:1.4rem auto;max-width:min(100%, var(--dispw, 100%));text-align:center}
.fig-btn{display:block;width:100%;padding:0;border:1px solid var(--line);border-radius:10px;background:var(--plate);cursor:zoom-in;overflow:hidden;position:relative}
.fig-btn img{display:block;width:100%;height:auto;filter:var(--img-filter)}
.fig-btn::after{content:"";position:absolute;right:.5rem;top:.5rem;width:2rem;height:2rem;border-radius:6px;background:rgba(23,33,43,.72) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='white' stroke-width='1.8'%3E%3Ccircle cx='8.5' cy='8.5' r='5.5'/%3E%3Cpath d='M12.6 12.6 17 17M6 8.5h5M8.5 6v5' stroke-linecap='round'/%3E%3C/svg%3E") center/1.1rem no-repeat;opacity:0;transition:opacity .15s}
.fig-btn:hover::after,.fig-btn:focus-visible::after{opacity:1}
.fig-btn img[data-loading]{min-height:6rem;background:linear-gradient(90deg,var(--bg),var(--surface),var(--bg));background-size:200% 100%;animation:shimmer 1.2s infinite}
@keyframes shimmer{to{background-position:-200% 0}}
.fig figcaption{margin:.55rem auto 0;color:var(--muted);font-size:.92em;line-height:1.4;max-width:46rem;text-align:center}
.fig figcaption strong{color:var(--ink);font-family:var(--cond);font-size:1.05em;letter-spacing:.02em}

/* tabele */
.tbl{margin:1.1rem 0;border:1px solid var(--line);border-radius:10px;overflow:auto;max-height:80vh;background:var(--surface)}
.tbl table{border-collapse:separate;border-spacing:0;width:100%;font-size:.92em;line-height:1.42}
.tbl th,.tbl td{padding:.5rem .7rem;text-align:left;vertical-align:top;border-bottom:1px solid var(--line)}
.tbl td+td,.tbl th+th{border-left:1px solid var(--line)}
.tbl thead th{position:sticky;top:0;z-index:1;background:var(--accent-soft);font:600 .9em/1.25 var(--body);color:var(--ink)}
.tbl tbody tr:nth-child(even) td{background:color-mix(in srgb,var(--bg) 55%,var(--surface))}
.tbl tbody tr:hover td{background:var(--accent-soft)}
.tbl tr:last-child td{border-bottom:0}
.tbl td p,.tbl th p{margin:0;text-align:left}
.tbl-cap{text-align:center!important;color:var(--muted);font-size:.92em;margin-top:-.4rem!important}
.tbl-cap strong{color:var(--ink);font-family:var(--cond);font-size:1.05em}

/* navigare pagini */
.pnav{display:grid;grid-template-columns:1fr 1fr;gap:.8rem;margin-top:2rem;padding-top:1.2rem;border-top:1px solid var(--line)}
.pnav a{display:block;padding:.8rem 1rem;border:1px solid var(--line);border-radius:8px;text-decoration:none;color:var(--ink);min-width:0}
.pnav a:hover{border-color:var(--accent);background:var(--accent-soft)}
.pnav .d{display:block;font:600 .74rem/1.2 var(--cond);letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.pnav .t{display:block;margin-top:.25rem;font-weight:600}
.pnav .t .n{color:var(--accent);font-family:var(--cond)}
.pnav .next{text-align:right;grid-column:2}
.done-box{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.6rem;margin-top:1.6rem;padding:.8rem 1rem;border-radius:8px;background:var(--bg)}
.done-box.is-done{background:var(--ok-bg)}
.done-box p{margin:0}

/* note */
.note-box{margin-top:1.2rem;border:1px solid var(--line);border-radius:8px;padding:.8rem 1rem;background:var(--bg)}
.note-box textarea{width:100%;min-height:6rem;font:400 1rem/1.5 var(--body);color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:.6rem .7rem;resize:vertical}
.note-box .meta{margin:.4rem 0 0;color:var(--muted);font-size:.85rem}

/* acasă */
.hero{display:grid;gap:1.4rem;grid-template-columns:minmax(0,1fr)}
@media (min-width:52rem){.hero{grid-template-columns:minmax(14rem,19rem) minmax(0,1fr)}}
.cover{align-self:start;border-radius:10px;overflow:hidden;border:1px solid var(--line);cursor:zoom-in;padding:0;background:var(--plate);display:block}
.cover img{display:block;width:100%;height:auto}
.hero h2{margin:.3rem 0 .4rem;font:600 2.4rem/1.05 var(--cond)}
.hero h2 span{color:var(--accent)}
.hero .lead{font-size:1.12rem;color:var(--muted);margin:.2rem 0 1rem}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(7rem,1fr));gap:.6rem;margin:1rem 0}
.stat{border:1px solid var(--line);border-radius:8px;padding:.7rem .8rem;background:var(--bg)}
.stat b{display:block;font:600 1.7rem/1 var(--cond);color:var(--accent);font-variant-numeric:tabular-nums}
.stat span{font:600 .72rem/1.2 var(--cond);letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.resume{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;margin:.6rem 0 0}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(16rem,1fr));gap:.8rem;margin-top:1rem}
.card{display:flex;flex-direction:column;gap:.35rem;border:1px solid var(--line);border-radius:10px;padding:.9rem 1rem;text-decoration:none;color:var(--ink);background:var(--surface);transition:border-color .12s,transform .12s}
.card:hover{border-color:var(--accent);transform:translateY(-1px)}
.card .cn{font:600 2rem/1 var(--cond);color:var(--accent)}
.card .ct{font:600 1.15rem/1.2 var(--cond)}
.card .ca{color:var(--muted);font-size:.86rem}
.card .bar{height:4px;border-radius:2px;background:var(--bg);overflow:hidden;margin-top:auto}
.card .bar i{display:block;height:100%;background:var(--ok);width:var(--w,0%)}
.card .cm{display:flex;justify-content:space-between;color:var(--muted);font-size:.82rem;font-variant-numeric:tabular-nums}
.front{margin-top:1.4rem;padding-top:1rem;border-top:1px solid var(--line)}
.front .fig{display:none}

/* calculatoare */
.calc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(19rem,1fr));gap:1rem;margin-top:1rem}
.calc{border:1px solid var(--line);border-radius:10px;padding:1rem 1.1rem;background:var(--surface);display:flex;flex-direction:column;gap:.7rem;min-width:0}
.calc.span2{grid-column:1/-1}
.calc h3{margin:0;font:600 1.3rem/1.15 var(--cond)}
.calc .ref{font:600 .78rem/1.2 var(--cond);letter-spacing:.05em;text-transform:uppercase;color:var(--muted);text-decoration:none}
.calc .ref:hover{color:var(--accent)}
.calc .f{background:var(--bg);border-radius:8px;padding:.45rem .8rem;overflow-x:auto}
.calc .f .katex-display{margin:0}
.calc .inputs{display:grid;grid-template-columns:repeat(auto-fit,minmax(8rem,1fr));gap:.6rem}
.calc label{font:600 .74rem/1.2 var(--cond);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);display:block;margin-bottom:.25rem}
.calc input[type=number]{padding:.5rem .6rem;font-variant-numeric:tabular-nums}
.calc input[type=range]{width:100%;padding:0;border:0;background:none;accent-color:var(--accent)}
.calc .out{display:flex;align-items:baseline;gap:.5rem;flex-wrap:wrap;padding:.6rem .8rem;border-radius:8px;background:var(--accent-soft)}
.calc .out b{font:600 1.9rem/1 var(--cond);color:var(--accent);font-variant-numeric:tabular-nums}
.calc .out span{color:var(--muted)}
.calc .note{margin:0;color:var(--muted);font-size:.86rem}
.calc canvas{width:100%;height:auto;border-radius:8px;background:var(--bg);display:block}
.calc .row2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1rem}
@media (max-width:40rem){.calc .row2{grid-template-columns:1fr}}
.cct-sw{height:5.5rem;border-radius:8px;border:1px solid var(--line);display:flex;align-items:flex-end;padding:.5rem .7rem;font:600 1.2rem/1 var(--cond);color:#17212B;transition:background .1s}
.legend{display:flex;flex-wrap:wrap;gap:.3rem 1rem;color:var(--muted);font-size:.85rem}
.legend i{display:inline-block;width:.8rem;height:.8rem;border-radius:2px;vertical-align:-.1rem;margin-right:.3rem}

/* listă formule / figuri / semne */
.flist{display:grid;gap:.5rem;margin-top:1rem}
.fitem{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.6rem;align-items:center;border:1px solid var(--line);border-radius:8px;padding:.4rem .5rem .4rem .8rem;background:var(--surface)}
.fitem .eq-display{margin:0;background:transparent;padding:.2rem 0}
.fitem a{font:600 .85rem/1.2 var(--cond);color:var(--muted);text-decoration:none;white-space:nowrap;text-align:right}
.fitem a:hover{color:var(--accent)}
.gal{display:grid;grid-template-columns:repeat(auto-fill,minmax(12rem,1fr));gap:.8rem;margin-top:1rem}
.gal figure{margin:0;display:flex;flex-direction:column;gap:.4rem}
.gal .fig-btn{aspect-ratio:4/3;display:grid;place-items:center}
.gal .fig-btn img{width:100%;height:100%;object-fit:contain;padding:.4rem}
.gal figcaption{font-size:.84rem;color:var(--muted);line-height:1.3}
.gal figcaption a{color:var(--muted);text-decoration:none}
.gal figcaption a:hover{color:var(--accent)}
.mlist{list-style:none;margin:.5rem 0 0;padding:0;display:grid;gap:.5rem}
.mlist li{display:flex;gap:.7rem;align-items:flex-start;border:1px solid var(--line);border-radius:8px;padding:.6rem .8rem;background:var(--surface)}
.mlist li .x{margin-left:auto}
.mlist .mt{display:block;font-weight:600;color:var(--ink);text-decoration:none}
.mlist .mt:hover{color:var(--accent)}
.mlist .ms{display:block;color:var(--muted);font-size:.88rem;white-space:pre-wrap}
.toolbar{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-top:.8rem}
.toolbar input{max-width:22rem}

/* lightbox */
.lb{position:fixed;inset:0;z-index:50;background:rgba(10,14,19,.94);display:grid;grid-template-rows:auto 1fr auto;color:#E8EDF2}
.lb[hidden]{display:none}
.lb-bar{display:flex;justify-content:space-between;align-items:center;gap:.6rem;padding:.6rem .8rem}
.lb-acts{display:flex;gap:.35rem}
.lb .btn{background:#1A222C;border-color:#2E3A47;color:#E8EDF2}
.lb-count{font:600 .9rem/1 var(--cond);letter-spacing:.06em;color:#9AA7B5}
.lb-stage{overflow:hidden;position:relative;cursor:grab;touch-action:none;display:grid;place-items:center}
.lb-stage.drag{cursor:grabbing}
.lb-stage img{max-width:94vw;max-height:calc(100dvh - 9rem);background:#fff;border-radius:6px;transform-origin:center;user-select:none;-webkit-user-drag:none;transition:transform .08s}
.lb-nav{position:absolute;top:50%;transform:translateY(-50%);width:3rem;height:3rem;border-radius:50%;border:1px solid #2E3A47;background:#1A222C;color:#E8EDF2;font-size:1.8rem;line-height:1;cursor:pointer}
.lb-nav.prev{left:.8rem}.lb-nav.next{right:.8rem}
.lb-cap{margin:0;padding:.6rem 1rem 1rem;text-align:center;color:#C9D2DC;max-width:60rem;justify-self:center}
.lb-cap strong{color:#fff}

.toast{position:fixed;left:50%;bottom:1.2rem;transform:translate(-50%,150%);opacity:0;visibility:hidden;background:var(--ink);color:var(--surface);padding:.6rem 1rem;border-radius:8px;font-weight:500;z-index:60;transition:transform .2s;pointer-events:none}
.toast.on{transform:translate(-50%,0);opacity:1;visibility:visible}

.progress{position:fixed;left:0;top:0;right:0;height:3px;z-index:40;pointer-events:none}
.progress span{display:block;height:100%;width:0;background:var(--accent);transition:width .1s}

.sources{margin-top:2rem;padding-top:1.1rem;border-top:1px solid var(--line);color:var(--muted);font-size:.92rem}
.sources h2{margin:0 0 .5rem;font:600 .78rem/1.2 var(--cond);letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.sources p{margin:.5rem 0 0;max-width:80ch}

@media (max-width:57.99rem){
  .main:not(.show-detail) .detail{display:none}
  .main.show-detail .list-col{display:none}
  .main.show-detail .back{display:inline-flex}
  .main.wide .detail{display:block}
  .term{font-size:1.8rem}
  .brand .mark{font-size:1.8rem}
  .detail{padding:1rem 1rem 1.15rem}
  .doc .hact{position:static;opacity:1;margin-left:.4rem;vertical-align:middle}
  .searchbox .kbd{display:none}
}

/* autentificare */
body.auth .page{display:none}
.login{display:none;min-height:100dvh;place-items:center;padding:1rem}
body.auth .login{display:grid}
.login-in{width:100%;max-width:24rem;display:grid;gap:.8rem}
.login-card{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:1.5rem;display:grid;gap:.9rem}
.login-card h1{margin:0;font:600 1.9rem/1.1 var(--cond)}
.login-card h1 span{color:var(--accent)}
.login-card .sub{margin:-.5rem 0 0;color:var(--muted);font-size:.92rem}
.field label{display:block;font:600 .74rem/1.2 var(--cond);letter-spacing:.07em;text-transform:uppercase;color:var(--muted);margin-bottom:.3rem}
.login-card .btn{width:100%;justify-content:center;padding:.75rem}
.login-msg{margin:0;padding:.6rem .75rem;border-radius:6px;background:var(--soon-bg);color:var(--soon);font-weight:500}
.login-err{margin:0;padding:.6rem .75rem;border-radius:6px;background:#FDE8E6;color:var(--late);font-weight:500}
.login-note{margin:0;text-align:center;color:var(--muted);font-size:.88rem}

@media (prefers-reduced-motion:no-preference){.row,.chip,.btn{transition:background-color .12s,border-color .12s}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

@media print{
  .top,.tools,.list-col,.sources,.pagebar,.pnav,.done-box,.note-box,.otp,.hact,.eq-tools,.progress,.facts{display:none!important}
  body{background:#fff}
  .detail{border:0;padding:0}
  .main{display:block}
  .fig-btn::after{display:none}
  .tbl{max-height:none;overflow:visible}
}

/* figuri redesenate (vectorial, în culorile temei) */
.fig-svgbox{border:1px solid var(--line);border-radius:10px;background:var(--surface);padding:1rem .6rem}
.fig-svg{display:block;width:100%;height:auto;max-width:34rem;margin:0 auto;font-family:var(--cond)}
.fig-svg .sv-node{fill:var(--bg);stroke:var(--line);stroke-width:1.2}
.fig-svg .sv-node.q{fill:var(--accent-soft);stroke:var(--accent)}
.fig-svg .sv-bar{fill:var(--accent)}
.fig-svg .sv-t{fill:var(--ink);font-weight:600;font-size:15.5px;letter-spacing:.04em}
.fig-svg .sv-ref{fill:var(--accent);font-weight:600;font-size:11.5px;opacity:0;transition:opacity .15s}
.fig-svg .sv-lab{fill:var(--muted);font:italic 13px var(--body)}
.fig-svg .sv-arr{stroke:var(--muted);stroke-width:1.6;fill:none}
.fig-svg .sv-head{fill:var(--muted)}
.fig-svg .sv-link{cursor:pointer}
.fig-svg .sv-link:hover .sv-node,.fig-svg .sv-link:focus .sv-node{fill:var(--accent);}
.fig-svg .sv-link:hover .sv-t,.fig-svg .sv-link:focus .sv-t{fill:var(--accent-ink)}
.fig-svg .sv-link:hover .sv-bar{fill:var(--accent-ink)}
.fig-svg .sv-link:hover .sv-ref,.fig-svg .sv-link:focus .sv-ref{opacity:1;fill:var(--accent-ink)}
.fig-redrawn{max-width:min(100%,36rem)!important}
.fig-toggle{margin:.5rem auto 0;display:block;border:0;background:none;color:var(--accent);font:500 .85rem var(--body);cursor:pointer;text-decoration:underline;text-underline-offset:2px}
.fig-redrawn.orig .fig-svgbox{display:none}
.fig-redrawn.orig .fig-btn{display:block!important}
.fig-btn[hidden]{display:none}
.toolbar input[type=search]{padding-left:.8rem;padding-right:.8rem}
@media (max-width:40rem){.doc p,.doc li{text-align:left;hyphens:manual}}

/* scheme redesenate din forma text */
.fig-ascii{max-width:min(100%,40rem)!important}
.fig-svg.dg{max-width:100%}
.fig-svg .sv-t2{fill:var(--ink);font:500 14px var(--body)}
.fig-svg .sv-lab2{fill:var(--muted);font:500 12.5px var(--body)}
.fig-svg .sv-node.ok{fill:var(--ok-bg);stroke:var(--ok)}
.fig-svg .sv-node.warn{fill:var(--soon-bg);stroke:var(--soon)}
.fig-svg .sv-node.data{fill:var(--surface);stroke:var(--accent);stroke-dasharray:5 4}
.fig-svg .sv-arr-loop{stroke:var(--accent);stroke-width:1.6;fill:none;stroke-dasharray:6 4}
.fig-svg .sv-grid{stroke:var(--line);stroke-width:1;fill:none}
.fig-svg .sv-gridline{stroke:var(--muted);stroke-width:1.2;opacity:.6}
.fig-svg .sv-axis{stroke:var(--ink);stroke-width:1.6;fill:none}
.fig-svg .sv-lobe{fill:var(--accent);fill-opacity:.18;stroke:var(--accent);stroke-width:2.2}
.fig-svg .sv-road{fill:#3B4552;stroke:none}
:root[data-theme="dark"] .fig-svg .sv-road{fill:#2A333F}
.fig-svg .sv-lane{stroke:#F2F4F7;stroke-width:2;stroke-dasharray:14 10;fill:none;opacity:.85}
.fig-svg .sv-road + .sv-lane + .sv-lab,.fig-svg .sv-lab.on-road{fill:#F2F4F7}
.fig-svg .sv-edge{stroke:#F2F4F7;stroke-width:2}
.fig-svg .sv-edge2{stroke:#F2F4F7;stroke-width:4;stroke-dasharray:0}
.fig-svg .sv-zone{fill:#FFC24B;fill-opacity:.55}
.fig-svg .sv-pole{stroke:var(--muted);stroke-width:4;stroke-linecap:round;stroke-linejoin:round;fill:none}
.fig-svg .sv-lamp{fill:#FFC24B;stroke:#8A5700;stroke-width:1.2}
.fig-svg .sv-light{fill:#FFC24B;fill-opacity:.28}
.fig-svg .sv-light-strong{fill:#FFC24B;fill-opacity:.35}
.fig-svg .sv-ray{stroke:#C98A00;stroke-width:1.6;fill:none}
.fig-svg .sv-ray-thin{stroke:#C98A00;stroke-width:1.2;fill:none;stroke-dasharray:4 4}
.fig-svg .sv-ray-warn{stroke:var(--late);stroke-width:2;fill:none;stroke-dasharray:6 4}
.fig-svg .sv-head-warn{fill:var(--late)}
.fig-svg .sv-dot{fill:#FFC24B;stroke:#17212B;stroke-width:1}
.fig-svg .sv-x2{stroke:#FFC24B;stroke-width:2.4;fill:none}
.fig-svg .sv-x-t{fill:var(--late);font:700 26px var(--body)}
.fig-svg .sv-bg{fill:var(--surface)}
.fig-svg .sv-tag{fill:var(--surface);stroke:var(--line)}
.fig-svg .sv-cell{fill:#FFC24B;stroke:#C98A00}
.fig-svg .sv-heat{fill:#FFC24B;stroke:#C98A00}
.fig-svg .sv-iso1{fill:#FFC24B;fill-opacity:.25;stroke:#C98A00;stroke-width:1.5}
.fig-svg .sv-iso2{fill:#FFC24B;fill-opacity:.35;stroke:#C98A00;stroke-width:1.5}
.fig-svg .sv-iso3{fill:#FFC24B;fill-opacity:.55;stroke:#C98A00;stroke-width:1.5}
.fig-svg .sv-plane{fill:var(--muted)}
.fig-svg .sv-vplane{stroke:var(--accent);stroke-width:3;stroke-dasharray:5 4}
.fig-svg .sv-person{fill:var(--ink)}
.fig-svg .sv-person-l{stroke:var(--ink);stroke-width:3;fill:none;stroke-linecap:round}
.fig-svg .sv-sphere{fill:var(--bg);stroke:var(--muted);stroke-width:3}
.fig-svg .sv-sphere-in{fill:var(--surface);stroke:var(--line);stroke-width:1}
.fig-svg .sv-spd{stroke:var(--accent);stroke-width:2.4;fill:none}
.fig-svg .sv-spd-fill{fill:var(--accent);fill-opacity:.12}
.fig-svg .sv-num{fill:var(--accent)}
.fig-svg .sv-num-t{fill:var(--accent-ink);font:600 12px var(--cond)}
.ascii-orig{margin:.5rem auto 0;text-align:center}
.ascii-orig summary{display:inline-block;cursor:pointer;color:var(--accent);font:500 .85rem var(--body);text-decoration:underline;text-underline-offset:2px}
.ascii-src{margin-top:.6rem;text-align:left;font:13px/1.35 ui-monospace,Consolas,monospace;background:var(--bg);border-radius:8px;padding:.6rem .9rem;overflow-x:auto;white-space:pre}
.ascii-src p,.ascii-src blockquote{margin:0;padding:0;border:0;background:none;text-align:left;font:inherit}
.fig-svg .sv-lab.on-road{fill:#F2F4F7}

/* calculator stradal */
.disc{margin:1rem 0;padding:.85rem 1rem;border-radius:8px;background:var(--soon-bg);border-left:4px solid var(--soon)}
.disc b{display:block;font:600 .8rem/1.2 var(--cond);letter-spacing:.07em;text-transform:uppercase;color:var(--soon);margin-bottom:.3rem}
.disc p{margin:0;line-height:1.5}
.disc.small{font-size:.9rem;margin-top:1.4rem}
.st-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:1rem;margin-top:1rem}
.st-grid2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1.2rem}
@media (max-width:62rem){.st-grid,.st-grid2{grid-template-columns:1fr}}
.st-in{grid-template-columns:repeat(auto-fit,minmax(11rem,1fr))}
.calc select{padding:.5rem .6rem}
.st-hyp{margin-top:.2rem}
.st-hyp summary{cursor:pointer;font:600 .8rem/1.2 var(--cond);letter-spacing:.06em;text-transform:uppercase;color:var(--accent)}
.st-hyp .inputs{margin-top:.6rem}
.st-sect .fig-svg{max-width:100%;border:1px solid var(--line);border-radius:8px;margin-top:.4rem}
.fig-svg .sv-sky{fill:var(--bg)}
.fig-svg .sv-dim{stroke:var(--muted);stroke-width:1.2;fill:none}
.st-big{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}
.st-big .out{flex-direction:column;align-items:flex-start;gap:.3rem}
.st-big .out span{font:600 .74rem/1.2 var(--cond);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.st-big .out b{font-size:2.3rem}
.st-big .out b small{font-size:.5em;color:var(--muted)}
.st-big .out.ok{background:var(--ok-bg)}
.st-big .out.ok b{color:var(--ok)}
.st-facts{grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));margin:.4rem 0}
.st-facts dd{font-size:.98rem}
.st-warn{list-style:none;margin:0;padding:0;display:grid;gap:.45rem}
.st-warn li{padding:.55rem .75rem;border-radius:6px;font-size:.92rem;line-height:1.4;border-left:3px solid}
.st-warn li.late{background:#FDE8E6;color:#8C2620;border-color:var(--late)}
:root[data-theme="dark"] .st-warn li.late{background:#3A1F1C;color:#FFB4AB}
.st-warn li.soon{background:var(--soon-bg);color:var(--soon);border-color:var(--soon)}
.st-warn li.ok{background:var(--ok-bg);color:var(--ok);border-color:var(--ok)}
.st-eco,.st-req{margin-top:1rem}
.st-old{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center}
.st-old .chip{font-size:.82rem;padding:.25rem .55rem}
.st-bars{display:grid;gap:.45rem;margin:.8rem 0}
.bar-row{display:grid;grid-template-columns:6.5rem 1fr auto;gap:.6rem;align-items:center;font-size:.9rem}
.bar-row i{display:block;height:1.1rem;border-radius:4px;min-width:2px;transition:width .2s}
.bar-row i.old{background:var(--muted)}
.bar-row i.new{background:var(--ok)}
.bar-row b{font-variant-numeric:tabular-nums;font-weight:600}
.st-req textarea{width:100%;font:400 1rem/1.5 var(--body);color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:.6rem .7rem;resize:vertical}
.st-chk{display:flex!important;gap:.5rem;align-items:flex-start;margin:.7rem 0!important;text-transform:none!important;letter-spacing:0!important;font:400 .92rem/1.4 var(--body)!important;color:var(--ink)!important}
.st-chk input{width:auto;margin-top:.2rem;accent-color:var(--accent)}
.st-okmsg{background:var(--ok-bg)!important;color:var(--ok)!important}
@media print{.st-req .toolbar,.st-form{display:none}.disc{border:1px solid #8A5700}}

/* aliniere câmpuri în calculatoare: etichetele lungi nu mai împing câmpurile */
.calc .inputs{align-items:end}
.calc .inputs>div{display:flex;flex-direction:column;justify-content:flex-end;min-width:0}
.calc .inputs>div>label{display:block;line-height:1.25}
.calc input:not([type=range]):not([type=checkbox]),.calc select{height:2.6rem;padding-top:0;padding-bottom:0;font-size:1rem}
.calc input[type=range]{height:1.6rem;border:0!important;outline:none!important;box-shadow:none;background:transparent;padding:0;margin:.15rem 0 0}
.calc input[type=range]:focus-visible{outline:2px solid var(--accent)!important;outline-offset:3px;border-radius:4px}
.calc .inputs .out{align-self:stretch}
