/* Layout: o coloană îngustă, gândită pentru telefonul de la intrare; administrarea e un instrument cu taburi în aceeași coloană. */
:root{
  --bg:#F1F2EF; --surface:#FFFFFF; --ink:#1C1D1A; --muted:#5F625B; --line:#D9DBD4;
  --accent:#B45309; --accent-ink:#FFFFFF; --accent-soft:#FBEBD3;
  --good:#166534; --good-soft:#DDF2E3; --bad:#B42318; --bad-soft:#FBE2DE; --live:#1D4ED8; --live-soft:#E0E8FB;
  --shadow:0 1px 2px rgba(28,29,26,.06),0 8px 24px rgba(28,29,26,.06);
  --f-display:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --f-body:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --f-mono:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  color-scheme:light;
}
*{box-sizing:border-box}
/* Fără zoom: niciun gest de mărire, nici dublu-tap */
html{touch-action:manipulation;-webkit-text-size-adjust:100%;text-size-adjust:100%}
.t,.chip,.k-clock,.k-ok,.pad button,.k-month b,.cell,td.n,.count{font-variant-numeric:tabular-nums}
html,body{min-height:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 var(--f-body);
  padding:max(0px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) calc(32px + env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));
  -webkit-tap-highlight-color:transparent}
img{max-width:100%}
[hidden]{display:none!important}
button,input,select,textarea{font:inherit;color:inherit}
input,select,textarea{font-size:16px!important;min-width:0;max-width:100%}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.wrap{max-width:720px;margin:0 auto}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-block:14px 10px}
.brand{font:700 18px/1.1 var(--f-display);letter-spacing:-.01em;display:flex;align-items:center;gap:8px}
.brand .dot{width:10px;height:10px;border-radius:50%;background:var(--accent)}
.brand small{font:500 12px var(--f-body);color:var(--muted);letter-spacing:.04em;text-transform:uppercase}
.btn{border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:9px 14px;cursor:pointer;font-weight:500;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:42px}
.btn:hover{border-color:var(--muted)}
.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:600}
.btn.ghost{background:transparent;border-color:transparent;color:var(--muted)}
.btn.danger{color:var(--bad);border-color:var(--bad)}
.btn.small{min-height:34px;padding:5px 10px;font-size:13px}
.btn:disabled{opacity:.5;cursor:default}
.icon-btn{width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:var(--surface);display:grid;place-items:center;cursor:pointer;color:var(--muted)}
/* Câmpuri: același aspect și aceeași înălțime pe Android și pe iPhone (Safari își desenează altfel lunile și datele) */
input:not([type=checkbox]):not([type=radio]):not([type=file]),select{
  -webkit-appearance:none;appearance:none;display:block;width:100%;min-width:0;max-width:100%;height:46px;margin:0;
  background-color:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:10px;padding:0 12px;line-height:44px;text-align:left}
input::-webkit-date-and-time-value{text-align:left;margin:0}
input::-webkit-datetime-edit{padding:0}
select{padding-right:36px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%235F625B' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 13px center}
label.f{display:grid;grid-template-columns:minmax(0,1fr);align-content:end;gap:4px;font-size:13px;color:var(--muted);min-width:0}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:end}
.row>*{flex:1 1 140px}
.row>.btn,.row>.seg{flex:0 1 auto;max-width:100%}
.btn{max-width:100%;text-align:center;line-height:1.25}
.spacer{flex:1 1 0!important}
.muted{color:var(--muted)}
.note{font-size:13px;color:var(--muted)}
h2{font:700 21px/1.2 var(--f-display);letter-spacing:-.01em;margin:0;text-wrap:balance}
h3{font:600 13px var(--f-body);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:22px 0 8px}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:16px;display:grid;gap:12px}
.panel p{margin:0}
.list{background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.li{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:12px 14px;border-top:1px solid var(--line);min-width:0}
.li:first-child{border-top:0}
.li .main{flex:1 1 170px;min-width:0}
.li .name{font-weight:600;overflow-wrap:anywhere}
.li .sub{font-size:13px;color:var(--muted)}
.li.tap{cursor:pointer}
.li.tap:hover{background:var(--bg)}
.t{font-family:var(--f-mono);font-variant-numeric:tabular-nums}
.chip{display:inline-flex;align-items:center;gap:4px;font:600 12px var(--f-mono);padding:3px 8px;border-radius:999px;white-space:nowrap;background:var(--bg);color:var(--muted)}
.chip.good{background:var(--good-soft);color:var(--good)}
.chip.bad{background:var(--bad-soft);color:var(--bad)}
.chip.live{background:var(--live-soft);color:var(--live)}
.chip.acc{background:var(--accent-soft);color:var(--accent)}
.empty{padding:28px 16px;text-align:center;color:var(--muted)}
.banner{background:var(--accent-soft);border-radius:12px;padding:12px 14px;font-size:14px;display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
.banner .btn{margin-left:auto}
.err{color:var(--bad);font-size:14px;min-height:1.2em}
.ok{color:var(--good)}
.tabs{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px;margin-bottom:14px;scrollbar-width:none}
.tabs::-webkit-scrollbar{display:none}
.tabs button{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:7px 14px;cursor:pointer;white-space:nowrap;font-weight:500}
.tabs button[aria-selected="true"]{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--surface)}
.seg button{border:0;background:none;padding:9px 14px;cursor:pointer}
.seg button[aria-pressed="true"]{background:var(--accent-soft);color:var(--accent);font-weight:600}
.tblwrap{overflow-x:auto;background:var(--surface);border:1px solid var(--line);border-radius:14px}
table{border-collapse:collapse;width:100%;font-size:14px}
th,td{padding:10px 12px;text-align:left;border-top:1px solid var(--line);white-space:nowrap}
th{border-top:0;font:600 12px var(--f-body);text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
td:first-child{white-space:normal;min-width:130px}
td.n,th.n{text-align:right;font-family:var(--f-mono);font-variant-numeric:tabular-nums}
tr.over td:first-child{box-shadow:inset 3px 0 var(--good)}
tr.under td:first-child{box-shadow:inset 3px 0 var(--bad)}

/* ecranul de pontaj */
.kiosk{max-width:400px;margin:0 auto;display:grid;gap:18px;text-align:center;padding-top:4px}
.k-loc{font:600 12px var(--f-body);letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}
.k-clock{font:600 60px/1 var(--f-mono);font-variant-numeric:tabular-nums;letter-spacing:-.03em}
.k-date{color:var(--muted);margin-top:6px}
.k-prompt{font:600 17px var(--f-body)}
.dots{display:flex;justify-content:center;gap:14px;height:18px}
.dots i{width:16px;height:16px;border-radius:50%;border:2px solid var(--muted)}
.dots i.on{background:var(--ink);border-color:var(--ink)}
.dots.shake{animation:shake .35s}
@keyframes shake{25%{transform:translateX(-8px)}50%{transform:translateX(8px)}75%{transform:translateX(-4px)}}
.pad{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.pad button{height:68px;border-radius:16px;border:1px solid var(--line);background:var(--surface);font:600 26px var(--f-mono);cursor:pointer;box-shadow:var(--shadow);touch-action:manipulation}
.pad button:active{background:var(--accent-soft)}
.pad button.fn{font:500 15px var(--f-body);color:var(--muted);box-shadow:none;background:transparent}
.k-card{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:20px 16px;display:grid;gap:12px;box-shadow:var(--shadow)}
.k-hello{font:700 24px/1.15 var(--f-display);letter-spacing:-.01em;text-wrap:balance}
.k-kind{justify-self:center;font:600 13px var(--f-body);letter-spacing:.1em;text-transform:uppercase;padding:6px 14px;border-radius:999px}
.k-kind.in{background:var(--good-soft);color:var(--good)}
.k-kind.out{background:var(--live-soft);color:var(--live)}
.k-big{height:62px;font-size:18px;border-radius:14px}
.k-ok{font:700 52px/1 var(--f-mono)}
.k-mark{width:64px;height:64px;border-radius:50%;margin:0 auto;display:grid;place-items:center;background:var(--good-soft);color:var(--good)}
.cam{position:relative;width:100%;max-width:300px;margin:0 auto;aspect-ratio:3/4;border-radius:18px;overflow:hidden;background:#000}
.cam video{width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}
.cam .oval{position:absolute;inset:12% 18%;border:3px dashed rgba(255,255,255,.75);border-radius:50%;transition:border-color .15s,box-shadow .15s}
.cam .oval.ok{border:4px solid #22C55E;box-shadow:0 0 0 4px rgba(34,197,94,.25)}
.k-face{min-height:1.4em;font-weight:600;color:var(--bad)}
.cam .count{position:absolute;left:0;right:0;bottom:12px;font:800 56px/1 var(--f-mono);color:#fff;text-shadow:0 2px 10px rgba(0,0,0,.5)}
.cam .flash{position:absolute;inset:0;background:#fff;opacity:0;pointer-events:none;transition:opacity .25s}
.cam .flash.on{opacity:.9;transition:none}
.k-month{display:grid;grid-template-columns:1fr 1fr;gap:8px;text-align:center}
.k-month div{background:var(--bg);border-radius:12px;padding:10px 6px;display:grid;gap:2px}
.k-month b{font:600 20px var(--f-mono);font-variant-numeric:tabular-nums}
.k-month span{font-size:12px;color:var(--muted)}
.mine-list{text-align:left;display:grid;gap:0;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.mine-list h4{margin:0;padding:8px 12px;font:600 12px var(--f-body);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);background:var(--bg)}
.mine-list div{display:flex;justify-content:space-between;gap:10px;padding:8px 12px;border-top:1px solid var(--line);font-size:14px}
.mine-list div span:last-child{font-family:var(--f-mono);font-variant-numeric:tabular-nums;white-space:nowrap}
.k-modes{display:flex;gap:6px;justify-content:center;flex-wrap:wrap}
.ltypes{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.ltypes button{border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:10px 6px;font-weight:500;cursor:pointer;min-height:44px}
.ltypes button[aria-checked="true"]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);font-weight:600}
.k-late{color:var(--bad);font-weight:600}
/* planificator */
.plan td,.plan th{padding:6px;text-align:center;white-space:nowrap}
.plan th:first-child,.plan td:first-child{text-align:left;position:sticky;left:0;background:var(--surface);z-index:1;min-width:120px;max-width:150px;white-space:normal}
.plan th.today{color:var(--accent)}
.cell{border:1px dashed var(--line);border-radius:8px;min-width:62px;min-height:40px;padding:4px;font:600 12px/1.25 var(--f-mono);background:transparent;cursor:pointer;color:var(--muted);width:100%}
.cell.on{border:1px solid transparent;background:var(--accent-soft);color:var(--accent)}
.feat{display:flex;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--line);cursor:pointer}
.feat:first-child{border-top:0;padding-top:0}
.feat .main{flex:1;min-width:0}
.feat .name{font-weight:600}
.feat .sub{font-size:13px;color:var(--muted)}
.switch{position:relative;flex:none;width:50px;height:30px}
.switch input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer;width:100%!important;height:100%!important}
.switch span{position:absolute;inset:0;border-radius:999px;background:var(--line);transition:background .15s}
.switch span::after{content:"";position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:transform .15s}
.switch input:checked+span{background:var(--accent)}
.switch input:checked+span::after{transform:translateX(20px)}
.switch input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}
.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}
.pcard{background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden;cursor:pointer;display:flex;flex-direction:column;text-align:left;padding:0;font:inherit;color:inherit}
.pcard.flag{border:2px solid var(--bad)}
.pcard .pimg{aspect-ratio:3/4;background:var(--bg);display:grid;place-items:center;overflow:hidden;font-size:12px;color:var(--muted)}
.pcard .pimg img{width:100%;height:100%;object-fit:cover}
.pcard .pinfo{padding:8px 10px;display:grid;gap:2px;min-width:0}
.pcard .pname{font-weight:600;font-size:14px;overflow-wrap:anywhere;line-height:1.25}
.pcard .pmeta{font-size:12px;color:var(--muted)}
.pcard .pflag{font-size:12px;font-weight:600;color:var(--bad)}
.bigphoto{width:100%;max-width:420px;margin:0 auto;aspect-ratio:3/4;border-radius:14px;overflow:hidden;background:var(--bg)}
.bigphoto img{width:100%;height:100%;object-fit:cover}
.linkbtn{background:none;border:0;color:var(--muted);text-decoration:underline;cursor:pointer;font-size:13px;padding:6px}
.k-gear{position:fixed;right:max(12px,env(safe-area-inset-right));bottom:calc(12px + env(safe-area-inset-bottom));opacity:.6}
.k-net{font-size:13px;color:var(--bad)}

/* fereastră de jos */
.modal{position:fixed;inset:0;background:rgba(10,10,9,.45);display:grid;align-items:end;justify-items:center;z-index:20}
.sheet{background:var(--surface);width:100%;max-width:560px;border-radius:18px 18px 0 0;padding:18px max(16px,env(safe-area-inset-left)) calc(20px + env(safe-area-inset-bottom));display:grid;gap:12px;max-height:92vh;overflow-y:auto}
@media (min-width:640px){.modal{align-items:center}.sheet{border-radius:18px}}
.photos{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.photos figure{margin:0;display:grid;gap:4px;font-size:12px;color:var(--muted)}
.photos .ph{aspect-ratio:3/4;border-radius:12px;background:var(--bg);display:grid;place-items:center;overflow:hidden;font-size:13px}
.photos img{width:100%;height:100%;object-fit:cover}
.busy{position:fixed;inset:0;background:rgba(10,10,9,.35);display:grid;place-items:center;z-index:30}
.busy div{background:var(--surface);padding:18px 24px;border-radius:14px;font-weight:600}
.spin{width:22px;height:22px;border:3px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:sp 1s linear infinite;display:inline-block;vertical-align:middle;margin-right:8px}
@keyframes sp{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.dots.shake,.spin{animation:none}}
.docs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.docs-t{grid-column:1/-1;font-size:14px;color:var(--muted)}
.doc{display:flex;gap:8px;align-items:center;border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:var(--surface);min-height:46px;line-height:1.25}
.doc input{width:20px;height:20px;flex:none;accent-color:var(--accent)}
.lv-side{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex:none}
.code{font-size:12px;font-weight:500;color:var(--muted);background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:1px 6px;margin-left:4px;white-space:nowrap;vertical-align:1px}
.docs-edit summary{cursor:pointer;list-style:none;padding:2px 0}
.docs-edit summary::-webkit-details-marker{display:none}
.docs-edit summary::before{content:"▸ ";color:var(--accent)}
.docs-edit[open] summary::before{content:"▾ "}
.dlist{display:grid;gap:6px}
.drow{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:6px;align-items:center;border:1px solid var(--line);border-radius:10px;padding:8px 10px;background:var(--surface)}
.drow .dl{min-width:0;overflow-wrap:anywhere;line-height:1.3}
.drow input{min-width:0}
.warn-list{display:grid;gap:8px;margin-bottom:12px}
.banner.warn{background:#FBE2DE;margin:0;align-items:flex-start}
.banner.warn>div:first-child{flex:1 1 220px;min-width:0;line-height:1.4}
.warn-btns{display:flex;gap:6px;flex-wrap:wrap;margin-left:auto}
.banner.warn .btn{margin-left:0}
.msums{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin-bottom:12px}
.msum{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:10px 12px;display:grid;gap:2px;min-width:0}
.msum.tot{background:var(--accent-soft);border-color:transparent}
.msum-n{font-size:13px;color:var(--muted);overflow-wrap:anywhere}
.msum-v{font-size:20px;font-weight:700}
.msum-p{font-size:15px;font-weight:600}
.msum-s{font-size:12px;color:var(--muted)}
#offBar{position:sticky;top:0;z-index:15;background:#B42318;color:#fff;font-size:14px;font-weight:600;text-align:center;padding:8px 12px;border-radius:10px;margin-bottom:10px}
.banner.plan{background:var(--accent-soft)}
.banner.plan.warn{background:#FDF0D5}
.banner.plan.bad{background:#FBE2DE}
.kv{display:flex;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px solid var(--line)}
.kv span{color:var(--muted)}
.ofirm{display:grid;gap:8px}
.olink{background:none;border:0;padding:0;color:var(--accent);font:inherit;text-decoration:underline;cursor:pointer}
#suAgree,#suTerms{width:20px;height:20px;flex:none;accent-color:var(--accent)}

/* Foaia de pontaj pentru ITM: apare doar la printare (Salvează ca PDF) */
@media print{
  @page{size:A4 landscape;margin:7mm}
  body{background:#fff !important;color:#000 !important;font:7pt/1.2 Arial,Helvetica,sans-serif !important}
  body > *:not(#printArea){display:none !important}
  #printArea{display:block !important}
  .fp{page-break-after:always;break-after:page}
  .fp:last-child{page-break-after:auto;break-after:auto}
  .fp-h{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:3mm;font-size:8pt}
  .fp-t{font-size:12pt;font-weight:bold;letter-spacing:.3px}
  .fp-r{text-align:right}
  .fp table{width:100%;border-collapse:collapse;table-layout:fixed}
  .fp th,.fp td{border:.5pt solid #777;padding:.4mm .2mm;text-align:center;vertical-align:middle;overflow:hidden;font:7pt/1.2 Arial,Helvetica,sans-serif;letter-spacing:0;text-transform:none;color:#000;height:auto}
  .fp thead th{background:#e6e6e6;font-size:6.5pt;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .fp th span{font-weight:normal}
  .fp .nr{width:5mm}
  .fp .nm{width:34mm;text-align:left;padding-left:1mm}
  .fp .po{width:16mm;text-align:left;padding-left:1mm;font-size:6pt}
  .fp .t{width:8.5mm;font-size:6.5pt}
  .fp thead th.t{font-size:5.8pt}
  .fp td.t b{font-size:7pt}
  .fp th.t:nth-last-child(5),.fp td.t:nth-last-child(5){width:11mm}
  .fp .we{background:#f0f0f0;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .fp td.c{font-size:5.6pt;line-height:1.15;padding:.3mm 0}
  .fp td.c span,.fp td.c b,.fp td.c i{display:block}
  .fp td.c b{font-size:6.4pt}
  .fp td.c i{font-style:normal;font-weight:bold;font-size:5.4pt}
  .fp td.lv b{font-size:6.4pt}
  .fp tbody tr{page-break-inside:avoid;break-inside:avoid}
  .fp .ft{text-align:right;padding-right:2mm;font-weight:bold}
  .fp .empty{padding:4mm}
  .fp-l{margin-top:2mm;font-size:6.5pt;color:#333}
  .fp-s{display:flex;justify-content:space-between;margin-top:5mm;font-size:7.5pt;line-height:1.9}
  .fp-g{margin-top:3mm;font-size:6pt;color:#555}
}

/* Prețuri și cereri de plată */
.ptable{width:100%;border-collapse:collapse;font-size:14px}
.ptable th,.ptable td{padding:7px 6px;border-bottom:1px solid var(--line);text-align:left}
.ptable td.n,.ptable th.n{text-align:right;white-space:nowrap}
.ptable tr.rec td{background:var(--accent-soft);font-weight:600}
.oreq{display:grid;gap:6px;border-left:4px solid var(--accent)}
.oreq pre{margin:0;white-space:pre-wrap;font-family:inherit;font-size:13px;line-height:1.45;background:var(--bg);padding:8px;border-radius:8px}

/* parola cu „Arată / Ascunde” */
.pw{position:relative;display:block}
.pw input{width:100%;padding-right:78px}
.pw .eye{position:absolute;right:6px;top:50%;transform:translateY(-50%);background:none;border:0;color:var(--accent);font:inherit;font-size:14px;font-weight:600;padding:6px 8px;cursor:pointer}

/* linkuri în texte (termeni, model de informare) */
#v-signup a,#v-login a,.note a{color:var(--accent)}

/* alegere cu buline (ex. cât se păstrează pozele) */
.opt{display:flex;gap:10px;align-items:flex-start;padding:6px 0}
.opt input{width:20px;height:20px;flex:none;margin-top:2px;accent-color:var(--accent)}

/* „Instalează aplicația” */
.install{max-width:420px;margin:12px auto 0;display:flex;gap:12px;align-items:center}
.install img{border-radius:10px;flex:none}
.isteps{margin:4px 0;padding-left:22px;display:grid;gap:8px}
