/* Bevira v8 — frontend stiilid. Lingitud v8/index.php-st (cache ?v=NN). */
/* toast (afterchange-edu / beforesave-blokk) */
#toastwrap{position:fixed;top:14px;left:50%;transform:translateX(-50%);z-index:2000;display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none;}
.toast-msg{pointer-events:auto;min-width:240px;max-width:520px;padding:11px 18px;border-radius:10px;color:#fff;font-size:14px;font-weight:600;box-shadow:0 12px 36px rgba(33,21,63,.28);opacity:0;transform:translateY(-12px);transition:opacity .25s,transform .25s;}
.toast-msg.on{opacity:1;transform:translateY(0);}
.toast-msg.success{background:linear-gradient(135deg,#1c8a4a,#27a35a);}
.toast-msg.danger{background:linear-gradient(135deg,#e64d5a,#c2334a);}
.toast-msg.warning{background:linear-gradient(135deg,#f47b35,#e2620f);}
/* ===== Robot-sheet EDIT-vaade (config-modal) ===== */
.cfg-tabbar{display:flex;gap:4px;padding:8px 16px 0;border-bottom:1px solid var(--bev-line);}
.cfg-tab{border:1px solid transparent;border-bottom:none;background:none;padding:7px 16px;font-size:13px;border-radius:8px 8px 0 0;color:var(--bev-muted);cursor:pointer;}
.cfg-tab.active{background:#fff;border-color:var(--bev-line);color:var(--bev-purple);font-weight:600;margin-bottom:-1px;}
.cfg-pane{padding:8px 4px;}
.cfg-ptools{display:flex;align-items:center;gap:6px;margin-bottom:10px;flex-wrap:wrap;}
.cfg-pcols{display:grid;grid-template-columns:280px 1fr;gap:14px;align-items:start;}
.cfg-plist{border:1px solid var(--bev-line);border-radius:10px;overflow:auto;max-height:56vh;}
.cfg-pitem{display:flex;flex-direction:column;gap:1px;padding:7px 11px;border-bottom:1px solid var(--bev-line);cursor:pointer;}
.cfg-pitem:hover{background:#faf9fd;}
.cfg-pitem.sel{background:rgba(85,65,115,.10);box-shadow:inset 3px 0 0 var(--bev-purple);}
.cfg-pitem.passive{opacity:.55;}
.cfg-pitem.sub{padding-left:24px;border-left:2px solid rgba(85,65,115,.22);background:rgba(85,65,115,.02);}   /* includeelements alamväli → taane pea-elemendi alla */
.cfg-pitem.sub .cfg-pi-name{font-weight:500;font-size:12px;}
.cfg-pi-name{font-weight:600;font-size:12.5px;color:var(--bev-purple);}
.cfg-pi-cap{font-size:11.5px;color:var(--bev-muted);}
.cfg-pi-badge{font-size:10px;text-transform:uppercase;letter-spacing:.4px;color:var(--bev-orange);}
.cfg-peditor{border:1px solid var(--bev-line);border-radius:10px;padding:12px;min-height:56vh;}
.cfg-grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.cfg-fld{display:flex;flex-direction:column;gap:2px;font-size:12px;}
.cfg-lbl{font-weight:600;color:var(--bev-purple);}
.cfg-hint{color:var(--bev-muted);font-size:10.5px;}
.cfg-json{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12px;width:100%;}
.cfg-adv{margin-top:12px;border-top:1px dashed var(--bev-line);padding-top:8px;}
.cfg-adv summary{cursor:pointer;color:var(--bev-muted);}
/* registri-põhine seadete-redaktor */
.cfg-sechead{font-weight:700;color:var(--bev-purple);font-size:12px;text-transform:uppercase;letter-spacing:.5px;margin:14px 0 6px;}
.cfg-setlist{display:grid;grid-template-columns:1fr 1fr;gap:8px 14px;}
.cfg-setrow{display:flex;flex-direction:column;gap:2px;background:#faf9fd;border:1px solid var(--bev-line);border-radius:8px;padding:6px 9px;}
.cfg-sethead{display:flex;align-items:center;justify-content:space-between;gap:6px;}
.cfg-setlbl{font-size:11.5px;font-weight:600;color:var(--bev-purple);}
.cfg-unknown{color:var(--bev-orange);font-weight:400;font-size:10.5px;}
.cfg-setrm{line-height:1;}
.cfg-hookrow{display:grid;grid-template-columns:1fr 1fr;gap:5px;}
@media(max-width:760px){.cfg-setlist{grid-template-columns:1fr;}}
@media(max-width:760px){.cfg-pcols{grid-template-columns:1fr;}.cfg-grid2{grid-template-columns:1fr;}}
/* elementtype:button lahtri-nupp */
.v8-cellbtn{padding:2px 10px;font-size:12px;border:1px solid var(--bev-line);border-radius:7px;white-space:nowrap;}
.v8-cellbtn:hover{background:var(--bev-purple);color:#fff;border-color:transparent;}
.v8-btn-loading{opacity:.7;}
/* nupu olek: seos olemas (badge) / seos kadunud */
.v8-btn-done{display:inline-block;padding:2px 9px;font-size:12px;border-radius:7px;background:rgba(28,138,74,.12);color:#1c8a4a;font-weight:600;white-space:nowrap;}
.v8-btn-lost{display:inline-block;padding:2px 9px;font-size:11.5px;border-radius:7px;background:rgba(230,77,90,.12);color:#c2334a;font-weight:600;white-space:nowrap;}
/* krediidiskoor kliendiveerul: hea = vaikne hall, jälgi = merevaik, kõrge risk = täidetud punane + "!" (vihje ka värvipimedale) */
.v8-cscore{display:inline-block;margin-left:5px;padding:0 6px;border-radius:9px;font-size:11px;line-height:16px;vertical-align:middle;white-space:nowrap;}
.v8-cscore-good{background:#f2f4f5;color:#7d868d;border:1px solid #e0e5e8;font-weight:400;}
.v8-cscore-watch{background:#fcf0d0;color:#8a6d3b;border:1px solid #f0c674;font-weight:600;}
.v8-cscore-bad{background:#d9534f;color:#fff;border:1px solid #c9302c;font-weight:700;}
.v8-cscore-loading{display:inline-block;width:22px;height:14px;margin-left:5px;border-radius:9px;background:#eceff1;opacity:.6;}
/* button-tüüpi includeelement alamväljana (legacy ikoon-nupud) */
.cell-sub-btn{display:inline-flex;align-items:center;margin:2px 3px 0 0;padding:2px 7px;font-size:12px;vertical-align:middle;}
.cell-sub-btn.v8-cellbtn{min-height:24px;}
.cell-sub-label{background:rgba(85,65,115,.10);border-radius:5px;padding:1px 6px;color:var(--bev-purple);font-weight:500;}   /* showtype:label includeelement (lipuke) */
/* peidetud veergude indikaator fn-päises (klõps → taasta) */
.fn-col-h.has-hidden{cursor:pointer;position:relative;}
.fn-col-h.has-hidden::after{content:'\F2EA';font-family:'bootstrap-icons';position:absolute;bottom:2px;right:3px;font-size:10px;color:var(--bev-orange);}
:root{
    --bev-dark:#21153f; --bev-purple:#554173; --bev-red:#e64d5a; --bev-orange:#f47b35;
    --bev-bg:#faf9fc; --bev-muted:#6f6782; --bev-line:#e8e3ef;
    --bev-grad:linear-gradient(135deg, var(--bev-red), var(--bev-purple));
    --bev-ai:#6f4ef2; --bev-ai-2:#16c2a3;   /* abiline — eristub brändi lilla/punase gradiendist, et „AI" oleks pilguga leitav */
    --sidebar-w:248px;
}
*{box-sizing:border-box}
body{font-family:'Inter',system-ui,sans-serif;color:var(--bev-dark);background:var(--bev-bg);margin:0;}
a{text-decoration:none}
.btn-bevira{background:var(--bev-grad);border:0;color:#fff;border-radius:999px;font-weight:700;}
.btn-bevira:hover{color:#fff;filter:brightness(1.05)}
/* aktiivne (btn-bevira) nupp btn-group-is: AINULT taust muutub — kuju/ääred jäävad grupi omaks (muidu läheb pill 999px → ümar+kitsam) */
.btn-group > .btn-bevira{border-radius:0;border:1px solid transparent;}
.btn-group > .btn-bevira:first-child{border-top-left-radius:.375rem;border-bottom-left-radius:.375rem;}
.btn-group > .btn-bevira:last-child{border-top-right-radius:.375rem;border-bottom-right-radius:.375rem;}
.brand{display:flex;align-items:center;gap:10px;font-weight:800;font-size:22px;letter-spacing:-.5px;color:#fff;}
.brand-mark{width:24px;height:32px;border-radius:11px 11px 12px 12px;background:linear-gradient(145deg,var(--bev-orange),var(--bev-red) 45%,var(--bev-purple));position:relative;flex:0 0 auto;}
.brand-mark:before{content:'';position:absolute;width:13px;height:13px;border-radius:50%;background:#fff;left:7px;top:10px;box-shadow:9px 0 0 rgba(255,255,255,.98);}

/* Login */
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;
    background:radial-gradient(circle at 15% 20%,rgba(244,123,53,.14),transparent 35%),
               radial-gradient(circle at 85% 15%,rgba(85,65,115,.18),transparent 32%),var(--bev-bg);}
.login-card{background:#fff;border:1px solid var(--bev-line);border-radius:24px;padding:34px;width:100%;max-width:380px;
    box-shadow:0 30px 80px rgba(33,21,63,.12);}

/* Shell */
.sidebar{position:fixed;top:0;left:0;bottom:0;width:var(--sidebar-w);background:linear-gradient(180deg,var(--bev-dark),var(--bev-purple));
    color:#cfc7e0;overflow-y:auto;z-index:1040;transition:transform .2s;}
.sidebar .brand{padding:18px 18px 12px;}
.nav-group-title{font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:#9b8fc0;padding:14px 18px 6px;font-weight:700;}
.nav-item-link{display:flex;align-items:center;gap:10px;padding:9px 18px;color:#cfc7e0;font-size:14px;cursor:pointer;border-left:3px solid transparent;}
.nav-item-link:hover{background:rgba(255,255,255,.06);color:#fff;}
.nav-item-link.active{background:rgba(255,255,255,.10);color:#fff;border-left-color:var(--bev-orange);font-weight:600;}
.nav-item-link.disabled{opacity:.45;cursor:default;}
.nav-item-link i{width:16px;text-align:center;}

.topbar{height:60px;background:#fff;border-bottom:1px solid var(--bev-line);display:flex;align-items:center;
    padding:0 18px;gap:14px;position:sticky;top:0;z-index:1030;}
.main{margin-left:var(--sidebar-w);min-height:100vh;}
.content{padding:22px;}
.card-soft{background:#fff;border:1px solid var(--bev-line);border-radius:18px;box-shadow:0 14px 40px rgba(33,21,63,.05);}
.page-title{font-size:22px;font-weight:800;letter-spacing:-.5px;margin:0;}
.data-table{width:100%;border-collapse:separate;border-spacing:0;font-size:13px;}   /* separate (mitte collapse) → sticky thead töötab scroll-konteineris (collapse lõhub sticky) */
.data-table thead th{background:#f4f1fa;color:var(--bev-purple);text-align:left;padding:10px 12px;font-weight:700;white-space:nowrap;position:sticky;top:0;z-index:3;}
.data-table thead th.sortable{cursor:pointer;user-select:none;}
.data-table thead th.sortable:hover{background:#ece6f7;}
.data-table thead th.sorted{color:var(--bev-red);}
.data-table thead th .sort-prio{font-size:9px;color:var(--bev-red);font-weight:800;vertical-align:super;margin-left:1px;}
.data-table td{padding:9px 12px;border-bottom:1px solid var(--bev-line);max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.data-table tbody tr:hover{background:#faf8fe;}
.pill{display:inline-block;padding:3px 10px;border-radius:999px;background:var(--bev-bg);color:var(--bev-purple);font-size:11px;font-weight:700;border:1px solid var(--bev-line);}
.muted{color:var(--bev-muted);}
.hamb{display:none;background:none;border:0;font-size:22px;color:var(--bev-purple);}
.scrim{display:none;position:fixed;inset:0;background:rgba(33,21,63,.4);z-index:1035;}

/* kompaktne mitme-elemendi lahter */
.data-table tbody tr{cursor:pointer;}
.cell-primary{font-weight:500;}
.cell-sub{display:block;color:var(--bev-muted);font-size:11px;line-height:1.4;}
.cell-sub b{color:var(--bev-purple);font-weight:600;}
/* inline kiir-muutmine (quickchange/allowchangeinlist): klikitav lahter */
.qc-on{cursor:pointer;border-bottom:1px dashed var(--bev-line);}
.qc-on:hover{background:rgba(85,65,115,.08);border-radius:5px;box-shadow:0 0 0 3px rgba(85,65,115,.08);}
span.label.qc-on:hover{filter:brightness(.94);}
/* sildid (showtype:label / field_class) — BS3-stiil porditud Bevirast (DB annab klassi) */
.label{display:inline-block;padding:.26em .6em;font-size:85%;font-weight:600;border-radius:7px;color:#fff;line-height:1;white-space:nowrap;}
.label-default{background:#8a82a0;} .label-danger{background:var(--bev-red);} .label-success{background:#1c8a4a;}
.label-warning{background:#e8a33d;color:#3a2c10;} .label-info{background:#3aa6c4;} .label-primary{background:var(--bev-purple);}
.label-lightred{background:#ffd2d2;color:#333;} .label-lightgreen{background:#e5fae5;color:#333;}
/* lahtri/rea taustad (FIELD__tdclass / __trclass / field_class — DB annab klassi, vt fw/css/bevirasheets.css) */
.td-bg-green{background-color:#e6ffe6;} .td-bg-yellow{background-color:#FFFFEC;} .td-bg-blue{background-color:#e6f7ff;} .td-bg-red{background-color:#FFE6E6;}
.td-center{text-align:center;} td.nowrap{white-space:nowrap;}
tr.bg-lightred td,tr.bg-lightred{background-color:#FFE6E6;}
tr.linethrough td{text-decoration:line-through;}
tr.rowvoid td{text-decoration:line-through;color:#aba9a9;}
/* failid (uploads element) */
.upl-cellbtn{padding:2px 9px;border-radius:7px;font-size:12px;color:var(--bev-purple);}
.upl-widget{border:1px solid var(--bev-line);border-radius:10px;padding:8px;background:#faf9fd;}
.upl-list{display:flex;flex-direction:column;gap:4px;}
.upl-file{display:flex;align-items:center;gap:8px;padding:5px 8px;border-radius:7px;background:#fff;border:1px solid var(--bev-line);}
.upl-file>.bi{color:var(--bev-purple);}
.upl-name{flex:1;color:var(--bev-dark);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;}
.upl-name:hover{text-decoration:underline;}
.upl-del{cursor:pointer;color:var(--bev-muted);font-size:13px;}
.upl-del:hover{color:var(--bev-red);}
.upl-name{cursor:pointer;}
.upl-size{flex:0 0 auto;white-space:nowrap;}
.upl-main{flex:1;min-width:0;display:flex;flex-direction:column;}
.upl-main>.upl-name{flex:none;white-space:normal;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.3;}
.upl-meta{font-size:11px;color:var(--bev-muted);font-variant-numeric:tabular-nums;line-height:1.3;}
.upl-pub{color:#1c8a4a;font-size:12px;flex:0 0 auto;}
.upl-file.is-public{border-color:rgba(28,138,74,.35);background:rgba(28,138,74,.05);}
.upl-acts{display:inline-flex;align-items:center;gap:10px;margin-left:8px;flex:0 0 auto;}
.upl-act{cursor:pointer;color:var(--bev-muted);font-size:13px;}
.upl-act:hover{color:var(--bev-purple);}
.upl-add{margin-top:8px;}
/* faili eelvaade-modaal (preview) */
.fprev-ov{position:fixed;inset:0;background:rgba(33,21,63,.55);z-index:1095;display:flex;align-items:center;justify-content:center;padding:24px;}
.fprev-box{background:#fff;border-radius:14px;width:min(940px,100%);height:min(86vh,920px);display:flex;flex-direction:column;overflow:hidden;box-shadow:0 30px 90px rgba(33,21,63,.4);}
.fprev-head{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--bev-line);}
.fprev-title{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;}
.fprev-tools{display:flex;align-items:center;gap:5px;flex:none;margin-left:auto;}
.fprev-body{flex:1;overflow:auto;display:flex;align-items:center;justify-content:center;background:#f4f1fa;}
.fprev-img{max-width:100%;max-height:100%;object-fit:contain;}
.fprev-frame{width:100%;height:100%;border:0;background:#fff;}
.fprev-media{max-width:100%;max-height:100%;}
.fprev-text{width:100%;height:100%;margin:0;padding:16px;white-space:pre-wrap;font-size:12px;background:#fff;overflow:auto;align-self:stretch;}
/* funktsioonide-veerg (esimene): Muuda/Salvesta + ajalugu/kommentaarid + "+" uus rida.
   width:1% = "nii kitsas kui sisu lubab". Fikseeritud 62px-iga võttis ta endale KOGU ülejäägi, kui
   sheedi colwidth-protsendid kokku alla 100 jäid (798: 75% → fn-veerg ~400px, Peeter 28.09.2026) —
   ainus protsendita veerg saab auto-layoutis vaba ruumi. Sisu (nowrap ikoonid) hoiab miinimumi. */
.data-table th.fn-col-h{width:1%;background:#f4f1fa;position:sticky;top:0;z-index:4;text-align:center;padding:4px;}
.fn-add{border:0;background:var(--bev-grad);color:#fff;border-radius:7px;width:26px;height:24px;cursor:pointer;font-size:13px;line-height:1;}
.fn-add:hover{opacity:.9;}
.data-table td.fn-col{white-space:nowrap;text-align:left;padding:6px 8px;vertical-align:middle;}
.fn-ic{cursor:pointer;font-size:13px;margin-right:6px;color:var(--bev-muted);vertical-align:middle;}
.fn-ic:last-child{margin-right:0;}
.fn-edit:hover{color:var(--bev-purple);}
.fn-save{color:#1c8a4a;font-size:15px;}
.fn-save:hover{color:#146c39;}
.fn-cancel:hover{color:var(--bev-red);}
.fn-hist{color:var(--bev-orange);} .fn-hist:hover{color:var(--bev-red);}
.fn-cmt{color:var(--bev-purple);} .fn-cmt.unread{color:var(--bev-red);}
/* rea-režiim: kõik lahtrid lahti widgetitena (legacy/Excel) */
.data-table td.cell-rowedit,.em-table td.cell-rowedit{padding:3px 5px;vertical-align:top;}
.data-table td.cell-rowedit .inline-ed,.data-table td.cell-rowedit input:not([type=checkbox]),.data-table td.cell-rowedit select,.data-table td.cell-rowedit textarea,.em-table td.cell-rowedit .inline-ed,.em-table td.cell-rowedit input:not([type=checkbox]),.em-table td.cell-rowedit select,.em-table td.cell-rowedit textarea{font-size:12px;min-width:64px;margin:1px 0;padding:3px 6px;}
.data-table td.cell-rowedit .re-sub,.em-table td.cell-rowedit .re-sub{margin-top:3px;}
.em-card{max-width:760px;}.em-card-new .em-card-save,.em-card-new .em-card-save:hover{color:#fff;font-size:12px;font-weight:600;}.em-card th.em-card-k{width:38%;font-weight:500;white-space:normal;vertical-align:top;padding:4px 8px;background:var(--bs-tertiary-bg,#f6f7f9);}
.data-table td.cell-rowedit .re-chk,.em-table td.cell-rowedit .re-chk{width:20px;height:20px;min-width:0;margin:0;padding:0;cursor:pointer;vertical-align:middle;accent-color:var(--bev-orange);}
.data-table td.cell-rowedit .inline-pick,.em-table td.cell-rowedit .inline-pick{position:relative;}
.data-table tr.row-editing>td{background:rgba(244,123,53,.06);}
.data-table tr.row-editing>td.fn-col{background:rgba(244,123,53,.14);}
.data-table tr.row-error>td{background:rgba(230,77,90,.10)!important;}
.data-table tr.row-error>td.fn-col{background:rgba(230,77,90,.2)!important;}
/* PÜSIV rea-märgis (FIELD__trclass) — nt vaidlustatud ostuarve. `row-error` on hajuv veahetkes
   esiletõst (highlightErrorRows võtab ta 4.5s pärast maha), seega teda taaskasutada ei saa. */
.data-table tr.row-disputed>td{background:rgba(230,77,90,.12);}
.data-table tr.row-disputed>td.fn-col{background:rgba(230,77,90,.22);}
/* ÜKSIK lahter tähelepanu alla (FIELD__tdclass) — nt maksetähtaeg, mis on lühem kui kokku lepitud. */
.data-table td.cell-danger{background:rgba(230,77,90,.16);}
.data-table td.cell-danger .cell-primary{color:var(--bev-red);font-weight:600;}
.fn-err{color:var(--bev-red);cursor:pointer;}
/* nõutava (required) välja esiletõst salvestuse-veal */
.data-table td.cell-required-error,.em-table td.cell-required-error{box-shadow:inset 0 0 0 2px var(--bev-red)!important;background:rgba(230,77,90,.08)!important;}
.fld.fld-required-error label{color:var(--bev-red);font-weight:700;}
.fld.fld-required-error input,.fld.fld-required-error select,.fld.fld-required-error textarea{border-color:var(--bev-red)!important;box-shadow:0 0 0 2px rgba(230,77,90,.15);}
.data-table tbody tr{user-select:none;}
.data-table tbody tr.row-selected>td{background:rgba(85,65,115,.13)!important;}
.data-table tbody tr.row-selected>td.fn-col{box-shadow:inset 3px 0 0 var(--bev-purple);}
/* muudatuste ajalugu */
.row-hist-ic{color:var(--bev-orange);font-size:12px;margin-right:6px;cursor:pointer;vertical-align:baseline;}
.row-hist-ic:hover{color:var(--bev-red);}
.hist-ov{position:fixed;inset:0;background:rgba(33,21,63,.5);z-index:1095;display:flex;align-items:center;justify-content:center;padding:24px;}
.hist-box{background:#fff;border-radius:14px;width:min(720px,100%);max-height:86vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 30px 90px rgba(33,21,63,.4);}
.hist-head{display:flex;align-items:center;justify-content:space-between;padding:13px 18px;border-bottom:1px solid var(--bev-line);font-size:15px;}
.hist-body{overflow:auto;padding:14px 18px;}
.hist-created{font-size:12px;margin-bottom:10px;}
.hist-table{width:100%;border-collapse:collapse;font-size:12.5px;}
.hist-table thead th{text-align:left;padding:7px 10px;background:#f4f1fa;color:var(--bev-purple);font-weight:700;position:sticky;top:0;}
.hist-table td{padding:7px 10px;border-bottom:1px solid var(--bev-line);vertical-align:top;}
.hist-time{font-weight:600;}
.hist-old{color:var(--bev-muted);text-decoration:line-through;}
.hist-new{color:#1c8a4a;font-weight:600;}
/* b_historylog SÜNDMUS (kinnitamine, väljasaatmine) — ei ole väljamuudatus, seega ei ole tal ka
   vana/uut väärtust. Eristub taustaga, et kasutaja näeks kohe, kumba liiki rida ta vaatab. */
.hist-table tr.hist-event td{background:#fbf7ee;}
.hist-table tr.hist-event .hist-new{color:var(--bev-dark);font-weight:500;}
.hist-badge{display:inline-block;padding:1px 7px;border-radius:10px;background:var(--bev-purple);
    color:#fff;font-size:11px;font-weight:600;}

/* Salvestus EI SULGE enam modalit, seega õnnestumine vajab oma märki — varem oli selleks
   akna kadumine. Lühike roheline olek nupul, siis tagasi tavaliseks. */
.btn-saved{background:#1c8a4a!important;border-color:#1c8a4a!important;color:#fff!important;}
/* inline rea-muutmine (editMode) */
.cell-editable{cursor:cell;}
.cell-editable:hover{box-shadow:inset 0 0 0 1px rgba(85,65,115,.3);}
.cell-dirty{background:rgba(244,123,53,.13)!important;box-shadow:inset 0 0 0 1px rgba(244,123,53,.5);}
.data-table td .inline-ed{min-width:70px;width:100%;margin:-3px 0;}
.inline-pick{position:relative;}
.inline-pick .ip-chips{display:flex;flex-wrap:wrap;gap:3px;margin-bottom:3px;}
.ip-chip{display:inline-flex;align-items:center;background:var(--bev-bg);border:1px solid var(--bev-line);border-radius:999px;padding:1px 7px;font-size:11px;color:var(--bev-purple);font-weight:600;}
.inline-pick-menu{position:fixed;z-index:1200;background:#fff;border:1px solid var(--bev-line);border-radius:9px;box-shadow:0 14px 40px rgba(33,21,63,.18);max-height:240px;overflow-y:auto;}
.inline-pick-menu .ac-item{padding:7px 11px;font-size:13px;cursor:pointer;white-space:nowrap;}
.inline-pick-menu .ac-item:hover{background:var(--bev-bg);}
.inline-pick-menu .ac-item.on{background:rgba(85,65,115,.1);font-weight:600;}
/* includeelements mini-vorm (inline) */
.sub-editor{position:fixed;z-index:1210;background:#fff;border:1px solid var(--bev-line);border-radius:12px;box-shadow:0 18px 50px rgba(33,21,63,.22);padding:12px 14px;min-width:240px;max-width:340px;max-height:70vh;overflow:auto;}
.sub-head{font-weight:700;font-size:13px;color:var(--bev-purple);margin-bottom:8px;}
.sub-body .fld{margin-bottom:9px;}
.sub-body .fld label{font-size:11px;margin-bottom:2px;}
.sub-foot{display:flex;gap:8px;justify-content:flex-end;border-top:1px solid var(--bev-line);padding-top:9px;margin-top:4px;position:sticky;bottom:-12px;background:#fff;}
/* onshow: readonly-väli vormis */
.fld-ro{opacity:.6;}
/* kommentaarid */
.row-cmt-ic{color:var(--bev-purple);font-size:12px;margin-right:6px;cursor:pointer;vertical-align:baseline;}
.row-cmt-ic:hover{color:var(--bev-red);}
.row-cmt-ic.unread{color:var(--bev-red);}
.cmt-ov{position:fixed;inset:0;background:rgba(33,21,63,.5);z-index:1096;display:flex;align-items:center;justify-content:center;padding:24px;}
.cmt-box{background:#fff;border-radius:14px;width:min(520px,100%);max-height:82vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 30px 90px rgba(33,21,63,.4);}
.cmt-head{display:flex;align-items:center;justify-content:space-between;padding:13px 18px;border-bottom:1px solid var(--bev-line);font-size:15px;}
.cmt-list{flex:1;overflow:auto;padding:12px 18px;display:flex;flex-direction:column;gap:10px;min-height:120px;}
.cmt-item{background:var(--bev-bg);border:1px solid var(--bev-line);border-radius:10px;padding:8px 11px;}
.cmt-meta{font-size:11px;margin-bottom:3px;}
.cmt-meta b{color:var(--bev-purple);}
.cmt-text{font-size:13px;white-space:pre-wrap;word-break:break-word;}
.cmt-new{display:inline-block;background:var(--bev-red);color:#fff;border-radius:999px;padding:0 7px;font-size:10px;font-weight:700;margin-right:5px;line-height:16px;}
.cmt-item.is-new{border-color:rgba(230,77,90,.45);background:#fff6f7;}
.cmt-more{align-self:center;}
.cmt-foot{display:flex;gap:8px;align-items:flex-end;padding:12px 18px;border-top:1px solid var(--bev-line);}
.cmt-foot textarea{flex:1;resize:none;}
/* sessioon aegus → in-place re-login (leht säilib taga) */
.relogin-ov{position:fixed;inset:0;background:rgba(33,21,63,.5);z-index:2000;display:flex;align-items:center;justify-content:center;padding:20px;}
.relogin-card{background:#fff;border-radius:18px;padding:26px;width:100%;max-width:360px;box-shadow:0 30px 90px rgba(33,21,63,.35);}
.relogin-head{display:flex;align-items:center;gap:9px;font-size:17px;font-weight:800;color:var(--bev-dark);margin-bottom:6px;}
.upl-modal-ov{position:fixed;inset:0;background:rgba(33,21,63,.35);z-index:1090;display:flex;align-items:center;justify-content:center;padding:20px;}
.upl-modal-box{background:#fff;border-radius:14px;width:min(640px,100%);max-height:85vh;overflow:auto;box-shadow:0 30px 80px rgba(33,21,63,.3);}
.upl-modal-head{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--bev-line);font-size:15px;}
.upl-modal-box .upl-widget{border:0;background:#fff;padding:16px 18px;}
.chk{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:7px;font-size:14px;}
.chk.on{background:rgba(28,138,74,.12);color:#1c8a4a;}
.chk.off{background:#f1eef7;color:#c3bcd4;}

/* drawer (rea vorm) */
.drawer-overlay{display:none;position:fixed;inset:0;background:rgba(33,21,63,.4);z-index:1050;}
.drawer-overlay.open{display:block;}
.drawer{position:fixed;top:0;right:0;bottom:0;width:480px;max-width:96vw;background:#fff;z-index:1051;
    transform:translateX(100%);transition:transform .22s;display:flex;flex-direction:column;box-shadow:-20px 0 60px rgba(33,21,63,.18);}
.drawer.open{transform:translateX(0);}
.drawer-head{padding:16px 20px;border-bottom:1px solid var(--bev-line);display:flex;align-items:center;gap:10px;}
.drawer-body{padding:18px 20px;overflow-y:auto;flex:1;}
.drawer-foot{padding:14px 20px;border-top:1px solid var(--bev-line);display:flex;gap:8px;align-items:center;}
/* õiguste-maatriks */
.rights-table{border-collapse:separate;border-spacing:0;font-size:13px;width:100%;}
.rights-table th,.rights-table td{padding:8px 12px;border-bottom:1px solid var(--bev-line);background:#fff;}
.rights-table thead th{position:sticky;top:0;z-index:3;background:#f4f1fa;color:var(--bev-purple);font-weight:700;}
.rt-modcol{position:sticky;left:0;z-index:2;min-width:230px;font-weight:600;box-shadow:1px 0 0 var(--bev-line);}
thead .rt-modcol{z-index:4;}
.rt-grp{text-align:center;min-width:96px;white-space:nowrap;}
.rt-grp-menu{cursor:pointer;opacity:.5;margin-left:5px;}
.rt-grp-menu:hover{opacity:1;color:var(--bev-red);}
.rt-addgrp{cursor:pointer;color:var(--bev-purple);width:40px;min-width:40px;}
.rt-addgrp:hover{background:#ece6f7;}
.rt-section td{background:#faf8fe;font-weight:800;color:var(--bev-purple);text-transform:uppercase;font-size:11px;letter-spacing:.6px;}
.rt-section .rt-modcol,.rt-section td{position:static;}
.rt-cell{text-align:center;}
.right-chip{display:inline-block;min-width:54px;text-align:center;padding:3px 8px;border-radius:999px;font-size:12px;font-weight:700;cursor:pointer;}
.right-chip-ro{cursor:default;opacity:.6;}
.rt-grp-ext{background:rgba(85,65,115,.05);}
.ltr-open{cursor:pointer;opacity:.45;margin-left:6px;font-size:12px;vertical-align:middle;}
.ltr-open:hover{opacity:1;color:var(--bev-purple);}
tr.ltr-expand > td{background:#faf8fe;border-bottom:2px solid var(--bev-line);}
.ltr-expand-td{padding:8px 12px;max-height:360px;overflow:auto;}
.ltr-modal-box{width:min(1100px,94vw);max-height:88vh;display:flex;flex-direction:column;}
.ltr-modal-body{padding:10px 14px;overflow:auto;}
.badge-soft{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;background:#f1eef7;color:#7a6ea0;white-space:nowrap;}
.badge-soft.badge-active{background:rgba(28,138,74,.15);color:#1c8a4a;font-weight:700;}
.data-table tbody tr.row-active{background:rgba(28,138,74,.06);}
.right-dot{display:inline-block;width:11px;height:11px;border-radius:50%;vertical-align:middle;margin-right:3px;}
.r-none{background:#f1eef7;color:#b0a8c8;} .right-dot.r-none{background:#d7cfe6;}
.r-read{background:rgba(85,65,115,.13);color:var(--bev-purple);} .right-dot.r-read{background:var(--bev-purple);}
.r-edit{background:rgba(28,138,74,.15);color:#1c8a4a;} .right-dot.r-edit{background:#1c8a4a;}
.r-admin{background:rgba(230,77,90,.15);color:var(--bev-red);} .right-dot.r-admin{background:var(--bev-red);}
.menu-pop{position:fixed;z-index:1085;background:#fff;border:1px solid var(--bev-line);border-radius:11px;box-shadow:0 18px 50px rgba(33,21,63,.18);padding:5px;min-width:160px;}
.menu-pop-item{display:flex;align-items:center;gap:8px;padding:8px 11px;border-radius:8px;cursor:pointer;font-size:13px;}
.menu-pop-item:hover{background:var(--bev-bg);}
.menu-pop-item.on{font-weight:800;}
.menu-pop-item.danger{color:var(--bev-red);}
.grp-toggle{display:inline-block;margin:2px 4px 2px 0;padding:3px 11px;border-radius:999px;font-size:12px;font-weight:600;cursor:pointer;border:1px solid var(--bev-line);color:var(--bev-muted);background:#fff;}
.grp-toggle.on{background:var(--bev-grad);color:#fff;border-color:transparent;}

/* laadimis-indikaator (top bar) */
#loadbar{position:fixed;top:0;left:0;right:0;height:3px;z-index:3000;overflow:hidden;opacity:0;transition:opacity .25s;pointer-events:none;}
#loadbar.on{opacity:1;}
#loadbar:after{content:'';position:absolute;height:100%;width:35%;left:-35%;border-radius:3px;
    background:linear-gradient(90deg,transparent,var(--bev-orange),var(--bev-red),var(--bev-purple),transparent);
    animation:loadslide 1.05s cubic-bezier(.4,0,.2,1) infinite;}
@keyframes loadslide{from{left:-35%}to{left:100%}}
/* tabeli pehme laadimis-olek */
#tablewrap.loading{position:relative;}
#tablewrap.loading .data-table{opacity:.45;transition:opacity .15s;}
#tablewrap.loading:after{content:'';position:absolute;inset:0;cursor:progress;}
.rowcount-loading{color:var(--bev-orange)!important;}

/* veeru-filter */
.th-wrap{display:inline-flex;align-items:center;gap:6px;}
.th-label{cursor:pointer;}
.th-filter{cursor:pointer;color:#b9b0d0;font-size:11px;}
.th-filter:hover{color:var(--bev-purple);}
.th-filter.on{color:var(--bev-red);}
.colfilter-panel{position:fixed;z-index:1078;background:#fff;border:1px solid var(--bev-line);border-radius:12px;
    box-shadow:0 18px 50px rgba(33,21,63,.18);padding:11px;min-width:220px;max-width:280px;}
.colfilter-options{max-height:240px;overflow-y:auto;}
.ms-chips{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:6px;}
.ms-chip{display:inline-flex;align-items:center;background:var(--bev-bg);border:1px solid var(--bev-line);border-radius:999px;padding:3px 9px;font-size:12px;color:var(--bev-purple);font-weight:600;}
.filter-bar{display:flex;flex-wrap:wrap;gap:7px;align-items:center;margin-bottom:12px;}
.filter-chip{display:inline-flex;align-items:center;background:#fff;border:1px solid var(--bev-line);border-radius:999px;
    padding:5px 12px;font-size:12px;color:var(--bev-dark);box-shadow:0 6px 16px rgba(33,21,63,.05);}
.filter-chip b{color:var(--bev-purple);font-weight:700;}
.filter-chip-neg{background:rgba(214,40,57,.06);border-color:rgba(214,40,57,.35);}   /* välistav filter (≠ / NOT IN) */
.filter-chip-neg b{color:var(--bev-red);}
.colf-negate{color:var(--bev-muted);}
.colf-negate:hover{color:var(--bev-red);}
/* "Ava uues vaates" — peatabeli seose-banner (nähtav, important-stiilis chip'id + eemalda) */
.parentlink-bar{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:8px 12px;border-radius:10px;background:linear-gradient(135deg,rgba(244,123,53,.16),rgba(85,65,115,.10));border:1px solid rgba(244,123,53,.35);}
.parentlink-bar>.bi-link-45deg{color:#c2570f;font-size:16px;}
.parentlink-bar .pl-label{font-weight:700;color:var(--bev-purple);font-size:13px;}
.parentlink-bar .pl-chip{background:#fff;border:1px solid var(--bev-line);border-radius:999px;padding:3px 11px;font-size:12px;box-shadow:0 4px 12px rgba(33,21,63,.06);}
.parentlink-bar .pl-chip .pl-cap{color:var(--bev-muted);}
.parentlink-bar .pl-chip b{color:var(--bev-purple);}
.parentlink-bar .pl-off{margin-left:auto;font-size:12px;}
.filter-clearall{font-size:12px;color:var(--bev-muted);cursor:pointer;}
.filter-clearall:hover{color:var(--bev-red);}

/* vaated */
.views-panel{position:fixed;z-index:1075;background:#fff;border:1px solid var(--bev-line);border-radius:14px;
    box-shadow:0 18px 50px rgba(33,21,63,.18);padding:8px;min-width:240px;max-width:300px;}
.view-row{display:flex;align-items:center;gap:8px;padding:6px 6px;border-radius:8px;}
.view-row:hover{background:var(--bev-bg);}
.view-star{color:#c3bcd4;cursor:pointer;flex:0 0 auto;}
.view-star.on{color:var(--bev-orange);}
.view-name{flex:1;cursor:pointer;font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.view-row.active{background:linear-gradient(135deg,rgba(244,123,53,.12),rgba(85,65,115,.12));}
.view-row.active .view-name{color:var(--bev-purple);font-weight:800;}
.view-row.active .view-name:after{content:' ●';color:var(--bev-orange);font-size:10px;vertical-align:middle;}
.view-del{color:var(--bev-muted);cursor:pointer;flex:0 0 auto;opacity:.5;}
.view-del:hover{color:var(--bev-red);opacity:1;}
.views-save{border-top:1px solid var(--bev-line);margin-top:6px;padding-top:8px;}

/* periood-filter */
.period-panel{position:fixed;z-index:1075;background:#fff;border:1px solid var(--bev-line);border-radius:14px;
    box-shadow:0 18px 50px rgba(33,21,63,.18);padding:10px;min-width:230px;display:flex;flex-direction:column;gap:6px;}
.period-preset{text-align:left;background:var(--bev-bg);border:1px solid var(--bev-line);border-radius:8px;padding:7px 11px;font-size:13px;cursor:pointer;color:var(--bev-dark);}
.period-preset:hover{background:#ece6f7;}
.period-custom{display:flex;align-items:center;gap:5px;margin-top:4px;border-top:1px solid var(--bev-line);padding-top:8px;}
.period-custom input{font-size:12px;}
.period-clear{background:none;border:0;color:var(--bev-muted);font-size:12px;cursor:pointer;text-align:left;padding:4px 2px;}
.period-clear:hover{color:var(--bev-red);}

.sql-overlay{position:fixed;inset:0;background:rgba(33,21,63,.4);z-index:1080;display:flex;align-items:center;justify-content:center;}
.sql-modal{background:#fff;border-radius:18px;padding:18px 20px;width:760px;max-width:94vw;box-shadow:0 30px 80px rgba(33,21,63,.25);}
.fld{margin-bottom:14px;}
.fld label{display:block;font-size:12px;font-weight:700;color:var(--bev-purple);margin-bottom:4px;}
.fld .req{color:var(--bev-red);}
.fld-group{border:1px solid var(--bev-line);border-radius:14px;padding:12px 14px;margin-bottom:14px;background:#fbfafd;}
.fld-group > .fld-group-title{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--bev-muted);font-weight:700;margin-bottom:8px;}
.fld-static{font-size:13px;color:var(--bev-dark);padding:6px 0;}
.fld-hint{font-size:11px;color:var(--bev-muted);}

/* parem-klõps menüü */
.ctx-menu{position:fixed;z-index:1090;min-width:190px;background:#fff;border:1px solid var(--bev-line);   /* >om-ov(1080): "+ Lisa seade/parameeter" menüü ka modali peal */
    border-radius:12px;box-shadow:0 18px 50px rgba(33,21,63,.18);padding:6px;font-size:13px;}
.ctx-item{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:8px;cursor:pointer;color:var(--bev-dark);}
.ctx-item:hover{background:var(--bev-bg);}
.ctx-item.danger{color:var(--bev-red);}
.ctx-item i{width:16px;text-align:center;color:var(--bev-purple);}
.ctx-item.danger i{color:var(--bev-red);}
.ctx-sep{height:1px;background:var(--bev-line);margin:5px 4px;}

/* TELEFON: sama menüü, aga alt tõusva action sheet'ina (iOS-i konventsioon).
   Kursori juurde asetatud väike menüü on sõrmele vale kuju — read peavad olema
   vähemalt 48px kõrged ja ekraani laiused, muidu vajutab kasutaja mööda. */
.ctx-backdrop{position:fixed;inset:0;z-index:1089;background:rgba(33,21,63,.35);}
.ctx-menu.ctx-sheet{left:0;right:0;bottom:0;top:auto;width:100%;min-width:0;
    border-radius:16px 16px 0 0;padding:8px 8px calc(8px + env(safe-area-inset-bottom));
    max-height:78vh;overflow-y:auto;font-size:15px;
    animation:ctxUp .18s ease-out;}
@keyframes ctxUp{from{transform:translateY(100%);}to{transform:translateY(0);}}
.ctx-menu.ctx-sheet .ctx-item{padding:14px 16px;gap:14px;min-height:48px;}
.ctx-menu.ctx-sheet .ctx-item i{width:22px;font-size:17px;}
.ctx-menu.ctx-sheet .ctx-item:active{background:var(--bev-bg);}
.ctx-menu.ctx-sheet .ctx-cancel{margin-top:6px;justify-content:center;font-weight:600;
    background:var(--bev-bg);color:var(--bev-muted);}
.ctx-menu.ctx-sheet .ctx-cancel i{color:var(--bev-muted);}

/* ⋮ rea-menüü nupp: hiirega tagasihoidlik, sõrmega korralik sihtmärk */
.fn-ic.fn-menu{color:var(--bev-purple);}
@media (pointer:coarse){
    .fn-ic{font-size:16px;margin-right:10px;}
    .fn-ic.fn-menu{font-size:20px;padding:4px 2px;}
}

/* searchinput autocomplete */
.ac-menu{position:absolute;left:0;right:0;top:100%;z-index:1070;background:#fff;border:1px solid var(--bev-line);
    border-radius:10px;box-shadow:0 14px 40px rgba(33,21,63,.16);max-height:240px;overflow-y:auto;margin-top:2px;}
/* body külge tõstetud variant: peab olema MODAALIST kõrgemal (om-ov on 1080), muidu jääb ta
   vormi taha — täpselt see, mis kerivas konteineris ka lõikas. */
.ac-menu-pop{z-index:1310;right:auto;margin-top:0;}
.ac-item{padding:8px 12px;font-size:13px;cursor:pointer;}
.ac-item:hover{background:var(--bev-bg);}
/* addnewmode: „Lisa uus…" on TEGEVUS, mitte vaste — eraldusjoon hoiab ta valikutest lahus, et
   kiire Enter ei tabaks teda kogemata. Tühja tulemuse korral (ac-item-new-only) on ta ainus
   valik ja tohib silma paista. */
.ac-item-new{border-top:1px solid var(--bev-line,#e3e6ea);color:var(--bev-primary,#0d6efd);}
.ac-item-new i{margin-right:2px;}
.ac-item-new-only{border-top:0;font-weight:600;}
/* Välisregistri vasted: nad EI OLE veel kirjed (id-d ei ole) → eraldi pealkirja alla, et valik
   „olemasolev klient" vs „too registrist" oleks silmaga eristatav, mitte ainult teksti järgi. */
.ac-sep{padding:6px 12px 3px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;
        color:var(--bev-muted,#6c757d);border-top:1px solid var(--bev-line,#e3e6ea);}
.ac-item-reg i{color:var(--bev-muted,#6c757d);margin-right:2px;}
.ac-item-reg .muted{font-size:11px;}
.ac-clear{cursor:pointer;color:var(--bev-muted);font-size:11px;margin-top:3px;display:inline-block;}
.ac-clear:hover{color:var(--bev-red);}

/* dashboard */
.pipeline{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:16px 18px;margin-bottom:24px;
    background:linear-gradient(135deg, rgba(244,123,53,.07), rgba(85,65,115,.08));}
.pipe-step{display:flex;align-items:center;gap:8px;}
.pipe-num{width:26px;height:26px;border-radius:50%;background:var(--bev-grad);color:#fff;font-weight:800;font-size:12px;
    display:flex;align-items:center;justify-content:center;flex:0 0 auto;}
.pipe-label{font-weight:600;font-size:13px;}
.pipe-arrow{color:var(--bev-purple);opacity:.5;}
.dash-section-title{font-size:13px;text-transform:uppercase;letter-spacing:.6px;color:var(--bev-muted);font-weight:700;margin:18px 0 10px;}
.dash-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;}
.dash-card{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--bev-line);border-radius:16px;
    padding:16px 18px;cursor:pointer;box-shadow:0 10px 30px rgba(33,21,63,.05);transition:transform .12s,box-shadow .12s;}
.dash-card:hover{transform:translateY(-2px);box-shadow:0 18px 44px rgba(33,21,63,.10);}
.dash-card-icon{width:42px;height:42px;border-radius:13px;background:linear-gradient(135deg,rgba(230,77,90,.12),rgba(85,65,115,.14));
    display:flex;align-items:center;justify-content:center;color:var(--bev-purple);font-size:18px;flex:0 0 auto;}
.dash-card-name{font-weight:700;font-size:14px;line-height:1.2;}
.dash-count{font-size:12px;color:var(--bev-muted);}
@media (max-width:900px){
    .sidebar{transform:translateX(-100%);} .sidebar.open{transform:translateX(0);}
    .main{margin-left:0;} .hamb{display:block;} .scrim.show{display:block;}
}

/* ava-modal (canOpen/verB): suurem vorm + tabid */
.om-ov{position:fixed;inset:0;background:rgba(33,21,63,.5);z-index:1080;display:flex;align-items:center;justify-content:center;padding:20px;}
.om-box{background:#fff;border-radius:16px;max-height:92vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 30px 90px rgba(33,21,63,.4);}
.om-head{display:flex;align-items:center;gap:10px;padding:14px 20px;border-bottom:1px solid var(--bev-line);}
.om-scroll{flex:1;overflow-y:auto;}
.om-scroll .drawer-body{padding:18px 20px;}
.om-foot{padding:14px 20px;border-top:1px solid var(--bev-line);display:flex;gap:8px;align-items:center;}
.om-tabbar{display:flex;flex-wrap:wrap;gap:6px;padding:10px 20px 0;border-top:1px solid var(--bev-line);}
.om-tab{border-radius:8px;font-size:13px;}
.om-tab.active{background:var(--bev-grad);border:0;color:#fff;font-weight:700;}
.om-tabbody{padding:12px 20px 18px;min-height:120px;}
.om-tabpane{font-size:13px;}
.om-formpane{padding:16px 20px;}                                   /* intab-sektsiooni tab-paan */
.om-box .om-tabbody .rs-prev{height:70vh;align-items:stretch;}     /* failieelvaade modali tabis: DEFINITE kõrgus (et fprev-frame height:100% resolveeruks) + stretch → fail täidab kogu ala */
.om-box .om-tabbody .rs-prev .fprev-img{margin:auto;}             /* pilt → tsentreeri (contain), aga frame/iframe täidab */
/* vormiväljad grid-is: veergude-arv = --fcols (default 3; modal seab; drawer=1; V8.formcolumns lülitab). Mobiilil 1. */
.fld-grid{display:grid;grid-template-columns:repeat(var(--fcols,3),minmax(0,1fr));gap:0 16px;align-items:start;}
.fld-grid .fld{margin-bottom:11px;min-width:0;}
@media(max-width:760px){.fld-grid{grid-template-columns:1fr!important;}}
/* important_main_parameter chip-riba (mockup B) */
.om-chips{display:flex;flex-wrap:wrap;gap:7px;padding:10px 20px;border-bottom:1px solid var(--bev-line);background:#faf9fd;}
.om-chip{display:inline-flex;align-items:center;gap:5px;padding:3px 11px;border-radius:999px;background:#fff;border:1px solid var(--bev-line);font-size:12px;color:var(--bev-dark);}
.om-chip .om-chip-l{color:var(--bev-muted);}
.om-chip b{color:var(--bev-purple);font-weight:700;}
.om-chip.ok{background:rgba(28,138,74,.12);color:#1c8a4a;border-color:transparent;font-weight:600;}
.om-chip.off{background:#f1eef7;color:var(--bev-muted);border-color:transparent;}
/* saatmise-dialoogi kirja-aken: mall on ETTEPANEK, kasutaja kirjutab siia otse peale */
.send-body{min-height:140px;max-height:38vh;overflow-y:auto;font-size:13px;line-height:1.45;background:#fff;}
.send-body:focus{outline:0;box-shadow:0 0 0 .2rem rgba(85,65,115,.18);}
.send-body img{max-width:100%;}
/* oleku-silt (showtype:"label") — sama silt, mis listi lahtris; ilma pealkirjata, olek räägib ise */
.om-chip-state{padding:0;background:none;border:0;}
.om-chip-state .label{font-size:12px;padding:.34em .8em;}
/* A-split (detailLayout:split) — read | preview kõrvuti */
.om-split{display:flex;gap:14px;align-items:stretch;margin-top:10px;}
.om-split-left{flex:1 1 58%;min-width:0;}
.om-split-right{flex:0 0 40%;max-width:40%;display:flex;flex-direction:column;border:1px solid var(--bev-line);border-radius:12px;overflow:hidden;background:#f4f1fa;min-height:380px;}
@media(max-width:1100px){.om-split{flex-direction:column;}.om-split-right{max-width:100%;}}
/* vormi-sektsioonid (formgroup) — kokkupandavad */
.fsec{border:1px solid var(--bev-line);border-radius:11px;margin:10px 0;overflow:hidden;}
.fsec-head{display:flex;align-items:center;gap:8px;padding:9px 13px;background:#faf9fd;color:var(--bev-purple);font-weight:700;font-size:13px;cursor:pointer;user-select:none;}
.fsec-chev{transition:transform .15s;font-size:12px;}
.fsec.open .fsec-chev{transform:rotate(90deg);}
.fsec-body{display:none;padding:10px 13px;border-top:1px solid var(--bev-line);}
.fsec.open .fsec-body{display:block;}
.fsec.open .fsec-body.fld-grid{display:grid;}   /* sektsiooni grid-keha → 3 veergu (block ei tohi grid'i üle kirjutada) */
/* Etapid ajajoonena (formsections[].view = "timeline") — sammud järjekorras, läbitud = täidetud väli */
.ftl{display:flex;flex-wrap:wrap;gap:4px 0;align-items:flex-start;}
.ftl-step{flex:1 1 110px;min-width:96px;position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;padding:0 4px;}
.ftl-step:before{content:'';position:absolute;top:10px;left:-50%;width:100%;height:2px;background:var(--bev-line);z-index:0;}
.ftl-step:first-child:before{display:none;}
.ftl-step.done:before,.ftl-step.cur:before{background:var(--bev-purple);}
.ftl-dot{width:22px;height:22px;border-radius:50%;border:2px solid var(--bev-line);background:#fff;z-index:1;display:flex;align-items:center;justify-content:center;color:#fff;font-size:14px;}
.ftl-step.done .ftl-dot{background:var(--bev-purple);border-color:var(--bev-purple);}
.ftl-step.cur .ftl-dot{box-shadow:0 0 0 4px rgba(85,65,115,.15);}
.ftl-step.skip .ftl-dot{border-style:dashed;}
.ftl-cap{font-size:12px;font-weight:600;margin-top:4px;color:var(--bev-dark);}
.ftl-step:not(.done) .ftl-cap{color:var(--bev-muted);font-weight:500;}
.ftl-when{font-size:11px;color:var(--bev-muted);min-height:14px;}
.ftl-end{flex-basis:100%;margin-top:6px;color:var(--bev-red);font-size:12px;font-weight:600;}
/* Tüübitud väärtuse redaktor (V8.widget typedvalue) */
.tv-pop{min-width:260px;max-width:360px;}
.tv-list{max-height:260px;overflow:auto;margin-top:4px;}
/* Kohanda vaadet (kasutaja vormi paigutus) */
.fc-ov{z-index:2100;}
.fc-box{border:1px solid var(--bev-line);border-radius:11px;padding:8px 10px;margin:0 0 10px;background:#fff;}
.fc-box.over{border-color:var(--bev-purple);background:#faf9fd;}
.fc-title-fixed{font-weight:700;color:var(--bev-purple);font-size:13px;}
.fc-title{max-width:280px;font-weight:600;}
.fc-body{display:flex;flex-wrap:wrap;gap:6px;min-height:30px;align-items:center;}
.fc-chip{border:1px solid var(--bev-line);background:#f6f4fa;border-radius:999px;padding:3px 10px;font-size:12px;cursor:grab;user-select:none;}
.fc-chip.drag{opacity:.4;}
.fc-hidden .fc-chip{opacity:.65;text-decoration:line-through;}
.fc-why{background:#f3f0ff;border-radius:8px;padding:6px 10px;margin-bottom:8px;color:var(--bev-dark);}
.ftl-edit{display:none;margin-top:8px;}
.ftl-edit.open{display:block;}
/* v8tab::fields — võti-väärtus paneel */
.ftab-grid{display:flex;flex-direction:column;gap:1px;background:var(--bev-line);border:1px solid var(--bev-line);border-radius:10px;overflow:hidden;}
.ftab-row{display:flex;background:#fff;}
.ftab-label{flex:0 0 38%;padding:8px 12px;background:#faf9fd;color:var(--bev-purple);font-weight:600;}
.ftab-val{flex:1;padding:8px 12px;}
/* embed v8-list tabis (linktorobot) */
.em-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;}
.em-full{color:var(--bev-purple);text-decoration:none;font-weight:600;}
.em-full:hover{color:var(--bev-red);}
.em-tablewrap{border:1px solid var(--bev-line);border-radius:12px;overflow:auto;max-height:46vh;}
.om-box .om-tabbody .em-tablewrap{max-height:64vh;}   /* modali ridade-tab → modali kõrgusega kooskõlas (nagu failipaneel) */
.em-table{font-size:12.5px;}
.em-table thead th{position:sticky;top:0;z-index:6;background:#efeaf6;}   /* z-index: rea-elemendid (combo/input) ei jookse scrollides päise peale */
.em-table tbody tr:hover>td{background:rgba(85,65,115,.06);}
.em-table .em-actcell{text-align:center;width:28px;}
.em-rowmenu{cursor:pointer;color:var(--bev-muted);opacity:.4;}
.em-table tbody tr:hover .em-rowmenu{opacity:1;}
.em-rowmenu:hover{color:var(--bev-purple);}
.em-table tbody tr.em-new>td{background:rgba(244,123,53,.07);}
.em-table tbody tr.em-pending>td{background:rgba(244,123,53,.13);}   /* instantchange: salvestamata (puhverdatud) rida */
.em-table tbody tr.em-selected>td{background:rgba(85,65,115,.14);}   /* valitud rida (bulk) */
.em-table tbody tr[data-erow]{cursor:default;}
.em-table td.cell-editable{cursor:cell;}
.em-table td.cell-editable:hover{box-shadow:inset 0 0 0 1px rgba(85,65,115,.3);}
.em-table tbody tr.em-conflict>td{background:rgba(230,77,90,.10);}
.em-table tbody tr.em-conflict:hover>td{background:rgba(230,77,90,.16);}
/* vahegrupid: päis + VAHESUMMA (arvutatud ekraanil, mitte salvestatud rida nagu legacyl) */
.em-table tbody tr.em-ghead>td{background:#eef2f6;padding:4px 8px;cursor:pointer;user-select:none;}
.em-table tbody tr.em-ghead .em-gadd{opacity:.45;}
.em-table tbody tr.em-ghead:hover .em-gadd{opacity:1;}
.em-table tbody tr.em-ghead:hover>td{background:#e3e9f1;}
.em-table tbody tr.em-gcollapsed>td{background:#e8ecf2;}
.em-table tbody tr.em-gsum>td{background:#fafafa;border-top:1px solid var(--bev-line);}
.em-gdlg-back{display:flex;align-items:center;justify-content:center;}
.em-gdlg{background:#fff;border-radius:12px;padding:16px;min-width:280px;max-width:92vw;box-shadow:0 8px 32px rgba(33,21,63,.3);}
/* embed-rea drawer — ava-modali (z 1080) KOHAL */
.drawer-overlay-embed{z-index:1090;}
.drawer-embed{z-index:1091;}

/* parem-paneel (rightsection): rea failide loend + inline-eelvaade */
.rs-split{display:flex;gap:14px;align-items:stretch;position:relative;}
.rs-left{flex:1 1 auto;min-width:0;}
/* kompaktne serva-lüliti (nooleke) — paneeli vasakul serval; peidetud olekus tabeli paremas servas */
.rs-toggle{position:absolute;top:8px;right:6px;z-index:6;width:24px;height:30px;padding:0;display:inline-flex;align-items:center;justify-content:center;
    border:1px solid var(--bev-line);background:#fff;border-radius:8px;box-shadow:0 3px 10px rgba(33,21,63,.10);color:var(--bev-muted);font-size:13px;line-height:1;cursor:pointer;}
.rs-toggle:hover{color:var(--bev-orange);border-color:var(--bev-orange);}
.rs-split:not(.rs-hidden) .rs-toggle{right:calc(40% + 2px);}
.rs-right{flex:0 0 40%;max-width:40%;display:flex;flex-direction:column;background:#fff;border:1px solid var(--bev-line);border-radius:18px;
    box-shadow:0 14px 40px rgba(33,21,63,.05);height:calc(100vh - 175px);overflow:hidden;}
.rs-split.rs-hidden .rs-right{display:none;}
.rs-head{display:flex;align-items:center;justify-content:space-between;padding:11px 14px;border-bottom:1px solid var(--bev-line);color:var(--bev-purple);font-size:14px;}
.rs-close{display:none;}
.rs-files{padding:10px 12px;border-bottom:1px solid var(--bev-line);}
.rs-filebar{display:flex;flex-wrap:wrap;gap:6px;}
/* Valitud faili tegevused (avalik/privaatne, alla, ava, kustuta). Riba ise peab jääma
   kompaktseks — dokumendi-moodulil on seal mall + mitu faili —, seega tegevused käivad
   VALITUD faili kohta, mitte iga nupu sees. */
.rs-fileacts{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:6px;}
.rs-fbtn{border-radius:8px;font-size:12px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.rs-upl{margin-top:8px;}
.rs-prev{flex:1;min-height:200px;overflow:auto;display:flex;align-items:center;justify-content:center;background:#f4f1fa;}
tr.rs-selected>td{background:rgba(244,123,53,.10)!important;}                       /* eelvaadatav rida: hõrk taust (mitte iga veeru püstjoon) */
tr.rs-selected>td:first-child{box-shadow:inset 3px 0 0 var(--bev-orange);}       /* + üks vasak-serva aktsent (mitte igal lahtril) */
@media (max-width:1100px){
    .rs-toggle{display:none;}                                                     /* mobiilis paneel = overlay (avaneb Failid-lahtrist, sulgub X-ist) */
    .rs-right{position:fixed;top:0;right:0;bottom:0;z-index:1060;flex-basis:min(440px,94vw);max-width:94vw;max-height:none;border-radius:0;
        transform:translateX(100%);transition:transform .22s;box-shadow:-20px 0 60px rgba(33,21,63,.22);}
    .rs-right.rs-open{transform:translateX(0);}
    .rs-close{display:inline-block;}
    .rs-left{width:100%;}
}


.cell-bg-red {
    background-color: #FFE6E6;
}
/* ===== Vaate tihedus (Mina → reso): FONT + PADDING (mitte zoom!) — paigutus säilib, listid ulatuvad põhja/scroll'ivad loomulikult ===== */
/* Rakendub <html data-density="..."> järgi. NB: EI kasuta zoom-i (see skaleeriks kõrguse → kompaktsel 3/4 tühi, ruumikal üle-ekraani topelt-scroll). */

/* Kolm taset (Peeter 21.10.2026 nihutas): RUUMIKAS = baas (endine „Tavaline", reegleid pole),
   TAVALINE = endine „Kompaktne", KOMPAKTNE = sellest veel tihedam — head silmad, rohkem ridu ekraanile.
   Tavalise reeglid kehtivad ka kompaktsel; kompaktne kirjutab üle ainult selle, mis läheb veel väiksemaks. */

/* --- TAVALINE (+ kompaktne): väiksem kiri + tihedamad read --- */
html:is([data-density="normal"],[data-density="compact"]) .content{padding:12px;}
html:is([data-density="normal"],[data-density="compact"]) .data-table{font-size:12.5px;}
html:is([data-density="normal"],[data-density="compact"]) .data-table thead th{padding:5px 8px;}
html:is([data-density="normal"],[data-density="compact"]) .data-table td{padding:4px 8px;}
html:is([data-density="normal"],[data-density="compact"]) .data-table td.fn-col{padding:3px 6px;}
html:is([data-density="normal"],[data-density="compact"]) .data-table td.cell-rowedit{padding:2px 4px;}
html:is([data-density="normal"],[data-density="compact"]) .cell-sub{font-size:10px;}
html:is([data-density="normal"],[data-density="compact"]) .label{font-size:78%;}
html:is([data-density="normal"],[data-density="compact"]) .form-control,html:is([data-density="normal"],[data-density="compact"]) .form-select{font-size:12px;padding:.2rem .5rem;min-height:0;}
/* pivot + alamtabelid #content-is */
html:is([data-density="normal"],[data-density="compact"]) .content table.table{font-size:11.5px;}
html:is([data-density="normal"],[data-density="compact"]) .content table.table>*>tr>td,html:is([data-density="normal"],[data-density="compact"]) .content table.table>*>tr>th{padding:.2rem .4rem;}

/* --- KOMPAKTNE: veel väiksem kiri, read peaaegu ilma õhuta, kitsam külgmenüü --- */
html[data-density="compact"] .content{padding:8px;}
html[data-density="compact"] .data-table{font-size:11.5px;}
html[data-density="compact"] .data-table thead th{padding:3px 6px;}
html[data-density="compact"] .data-table td{padding:2px 6px;}
html[data-density="compact"] .data-table td.fn-col{padding:1px 4px;}
html[data-density="compact"] .data-table td.cell-rowedit{padding:1px 3px;}
html[data-density="compact"] .cell-sub{font-size:9.5px;line-height:1.3;}
html[data-density="compact"] .label{font-size:72%;}
html[data-density="compact"] .form-control,html[data-density="compact"] .form-select{font-size:11px;padding:.1rem .4rem;}
html[data-density="compact"] .content table.table{font-size:10.5px;}
html[data-density="compact"] .content table.table>*>tr>td,html[data-density="compact"] .content table.table>*>tr>th{padding:.1rem .3rem;}
html[data-density="compact"] .nav-item-link{padding:6px 16px;font-size:13px;}
html[data-density="compact"] .nav-group-title{padding:10px 16px 4px;}
html[data-density="compact"] .v8-cellbtn,html[data-density="compact"] .cell-sub-btn{padding:1px 7px;font-size:11px;}

/* ===== KÜSI AI-LT (abiline) =====
   Paneel on mitte-modaalne (scrimi ei ole) ja jääb tabelist paremale: abiline on kõige kasulikum
   siis, kui andmed on kõrval näha. z-index jääb rea-drawerist (1050/1051) ALLA — rea vorm on
   modaalne ja peab abilise katma, mitte vastupidi. */
.btn-ai{background:linear-gradient(135deg,var(--bev-ai),var(--bev-ai-2));border:0;color:#fff;font-weight:700;}
.btn-ai:hover,.btn-ai:focus{color:#fff;filter:brightness(1.06);}
.btn-ai.on{box-shadow:0 0 0 3px rgba(111,78,242,.22);}
.btn-ai:disabled{opacity:.6;}

.askpanel{position:fixed;top:0;right:0;bottom:0;width:460px;max-width:100vw;background:#fff;z-index:1040;
    display:flex;flex-direction:column;box-shadow:-20px 0 60px rgba(33,21,63,.16);border-left:1px solid var(--bev-line);}
.ask-head{padding:12px 16px;border-bottom:1px solid var(--bev-line);display:flex;align-items:center;gap:9px;}
.ask-badge{width:28px;height:28px;border-radius:10px;display:flex;align-items:center;justify-content:center;
    color:#fff;background:linear-gradient(135deg,var(--bev-ai),var(--bev-ai-2));font-size:14px;}
.ask-log{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px;background:var(--bev-bg);}
.ask-foot{padding:12px 16px;border-top:1px solid var(--bev-line);display:flex;gap:8px;align-items:flex-end;}
.ask-input{flex:1;border:1px solid var(--bev-line);border-radius:12px;padding:9px 12px;font-size:14px;resize:none;
    font-family:inherit;color:var(--bev-dark);}
.ask-input:focus{outline:0;border-color:var(--bev-ai);box-shadow:0 0 0 3px rgba(111,78,242,.12);}

.ask-intro{font-size:13px;color:var(--bev-muted);}
.ask-introtext{margin-bottom:10px;line-height:1.55;}
.ask-chip{display:block;width:100%;text-align:left;margin-bottom:6px;padding:8px 12px;border-radius:12px;
    border:1px solid var(--bev-line);background:#fff;color:var(--bev-purple);font-size:13px;font-weight:600;cursor:pointer;}
.ask-chip:hover{border-color:var(--bev-ai);color:var(--bev-ai);}
/* Lubadus, mis kasti müüb: AI ei näe ridu. Ta peab paistma rahustusena, mitte joonealuse märkusena. */
.ask-promise{display:inline-block;color:var(--bev-ai);font-weight:600;}
.ask-introgrp{margin:14px 0 6px;font-size:11px;font-weight:700;letter-spacing:.06em;
    text-transform:uppercase;color:var(--bev-muted);}
/* „Oskan ka" — TEKST, mitte nupp: neid näiteid ei saa klõpsata, sest nad vajavad kasutaja enda
   nime või numbrit. Seepärast ei tohi nad ka nupu moodi välja näha. */
.ask-can{display:flex;gap:9px;align-items:flex-start;padding:7px 2px;line-height:1.45;}
.ask-can i{color:var(--bev-ai);font-size:15px;line-height:1.35;flex:0 0 auto;}
.ask-can b{color:var(--bev-text,#222);font-weight:600;}
.ask-caneg{color:var(--bev-muted);font-size:12px;}

/* ETTEVÕTTE KKK — vastus on kliendi enda juhend, mitte abilise ümberjutustus. Kaart on kokku
   pandav, sest juhend võib olla pikk ja mitu vastet korraga muudaks paneeli loetamatuks. */
.faq-card{border:1px solid var(--bev-line);border-radius:12px;margin-bottom:8px;background:#fff;overflow:hidden;}
.faq-head{display:flex;gap:8px;align-items:flex-start;width:100%;text-align:left;padding:10px 12px;
    border:0;background:transparent;cursor:pointer;font-size:13.5px;color:var(--bev-text,#222);}
.faq-head:hover{background:#faf9fd;}
.faq-arrow{color:var(--bev-ai);transition:transform .15s;line-height:1.4;flex:0 0 auto;}
.faq-card.open .faq-arrow{transform:rotate(90deg);}
.faq-tags{font-size:11.5px;color:var(--bev-muted);margin-top:2px;}
.faq-body{display:none;padding:2px 14px 12px;font-size:13.5px;line-height:1.55;}
.faq-card.open .faq-body{display:block;}
.faq-body img{max-width:100%;height:auto;}
.faq-body table{max-width:100%;}
.faq-file{display:inline-flex;align-items:center;gap:6px;margin:8px 6px 0 0;padding:6px 11px;border-radius:10px;
    border:1px solid var(--bev-line);background:#fff;color:var(--bev-purple);font-size:12.5px;font-weight:600;cursor:pointer;}
.faq-file:hover{border-color:var(--bev-ai);color:var(--bev-ai);}
.faq-fsize{color:var(--bev-muted);font-weight:400;}

/* PÖÖRDUMINE — mis Bevirale kaasa läheb, on NÄHTAV, mitte peidetud. Need on kasutaja andmed ja
   otsus nende saatmise üle on tema oma; kokku pandud, et ta ei peaks seda iga kord lugema. */
.ask-ctxbox{margin:8px 0;font-size:12px;color:var(--bev-muted);}
.ask-ctxbox summary{cursor:pointer;color:var(--bev-ai);font-weight:600;}
/* KOKKU-rida: eristub selgelt, aga ei karju. Ta on number, mida usutakse — seega peab olema kohe
   näha, et ta EI OLE tavaline rida. */
.ask-tbl tfoot td{border-top:2px solid var(--bev-line);font-weight:700;background:#faf9fd;}
.ask-ctxpre{margin:6px 0 0;padding:8px 10px;background:#faf9fd;border-radius:8px;
    white-space:pre-wrap;font-family:inherit;font-size:12px;color:var(--bev-muted);}

.ask-q{align-self:flex-end;max-width:92%;background:var(--bev-grad);color:#fff;padding:9px 13px;border-radius:14px 14px 4px 14px;
    font-size:14px;white-space:pre-wrap;}
.ask-a{background:#fff;border:1px solid var(--bev-line);border-radius:14px 14px 14px 4px;padding:13px 15px;font-size:14px;}
.ask-wait{color:var(--bev-muted);font-size:13px;font-style:italic;}
.ask-title{font-weight:700;margin-bottom:4px;}
.ask-text{line-height:1.55;white-space:pre-wrap;}
.ask-desc{font-size:12px;color:var(--bev-muted);margin-top:6px;line-height:1.45;}
.ask-hint{font-size:12px;color:var(--bev-muted);margin-top:8px;}
.ask-warn{font-size:12px;color:var(--bev-orange);margin-top:6px;}
.ask-err{color:var(--bev-red);font-size:13px;}

.ask-tblwrap{overflow-x:auto;margin-top:10px;border:1px solid var(--bev-line);border-radius:10px;}
.ask-tbl{width:100%;border-collapse:collapse;font-size:12.5px;}
.ask-tbl th{background:var(--bev-bg);color:var(--bev-purple);font-weight:700;text-align:left;padding:7px 10px;white-space:nowrap;}
.ask-tbl td{padding:6px 10px;border-top:1px solid var(--bev-line);color:var(--bev-muted);}
.ask-tbl td.num,.ask-tbl th.num{text-align:right;white-space:nowrap;}
/* Leitud kirje on avatav. Kursor ja tagasiside on siin ainus vihje — päises seda öelda ei saa,
   sest sama tabel tuleb ka grupeeritud vastusena, kus rea identiteeti ei ole. */
.ask-tbl tr.ask-rowlink{cursor:pointer;}
.ask-tbl tr.ask-rowlink:hover td{background:var(--bev-bg);color:var(--bev-purple);}
/* „Ava tabelis" / „Ava pivotis" — vastuse jätk, mitte vastuse osa; seepärast eraldi ribana. */
.ask-nav{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:10px;}
.ask-nav .ask-hint{width:100%;margin:0;}

/* „Mina" sakid: neli eri teemat, millest igaüks kasvab. Sakid hoiavad lehe loetavana ka siis,
   kui liidestusi ja eelistusi tuleb juurde — ilma nendeta muutuks ta üheks pikaks veeruks. */
.mina-tabs{display:flex;gap:2px;flex-wrap:wrap;padding:0 12px;border-bottom:1px solid var(--bev-line);background:var(--bev-bg);}
.mina-tab{background:none;border:0;border-bottom:2px solid transparent;padding:8px 12px;font-size:13px;color:var(--bev-muted);cursor:pointer;white-space:nowrap;}
.mina-tab:hover{color:var(--bev-purple);}
.mina-tab.on{color:var(--bev-purple);border-bottom-color:var(--bev-purple);font-weight:600;}

/* Otseteede haldus „Mina" lehel — nimekiri, mitte tabel: neid on vähe ja nad on lühikesed. */
.sc-admin{display:flex;flex-direction:column;gap:4px;margin-bottom:8px;}
.sc-adminrow{display:flex;gap:8px;align-items:center;padding:5px 8px;border:1px solid var(--bev-line);border-radius:8px;}
.sc-adminname{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}

/* Varasemad küsimused: paneel päise all, mitte vestluse sees — ta on navigeerimine, mitte vastus. */
.ask-hist{border-bottom:1px solid var(--bev-line);background:var(--bev-bg);padding:8px 12px;max-height:46vh;display:flex;flex-direction:column;}
.ask-histsearch{width:100%;border:1px solid var(--bev-line);border-radius:8px;padding:5px 9px;font-size:12.5px;margin-bottom:6px;}
.ask-histlist{overflow-y:auto;}
.ask-histitem{display:flex;gap:8px;align-items:baseline;padding:5px 7px;border-radius:7px;cursor:pointer;font-size:12.5px;}
.ask-histitem:hover{background:#fff;color:var(--bev-purple);}
.ask-histq{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.ask-histmeta{color:var(--bev-muted);font-size:11px;white-space:nowrap;}
/* Kärbitud logirida: näidatav, aga mitte korratav — vale küsimuse kordamine oleks halvem kui mitte midagi. */
.ask-histtrim{cursor:not-allowed;opacity:.55;}
.ask-histtrim:hover{background:none;color:inherit;}

.ask-report{margin-top:12px;padding-top:12px;border-top:1px dashed var(--bev-line);}
.ask-repname{width:100%;border:1px solid var(--bev-line);border-radius:10px;padding:7px 11px;font-size:13px;margin:6px 0 8px;}

/* Keskmisel ekraanil sisu ei nihku (ruumi ei ole) → jäta ülariba nähtavale, muidu kaob „Mina"/„Logi
   välja" paneeli alla. Telefonis on paneel terve ekraan — seal on tal oma sulgemisnupp. */
@media (min-width:641px) and (max-width:1199px){ .askpanel{top:60px;} }
@media (max-width:640px){ .askpanel{width:100vw;} }
/* Avatud abiline nihutab sisu, mitte ei kata teda — laial ekraanil tahad tabelit ja vastust KÕRVUTI
   näha. Kitsal ekraanil ruumi ei ole, seal jääb paneel katma. */
@media (min-width:1200px){ body.askopen .main{margin-right:460px;} }
/* Dokumendimalli eelvaade parempaneelis. IFRAME, sest legacy mallid toovad kaasa oma stiilid ja
   tabelilaiused — otse DOM-i pannes valguksid nad üle terve V8 kasutajaliidese. */
.rs-docframe{width:100%;height:calc(100vh - 220px);min-height:420px;border:0;background:#fff;}
/* HTML-dokument = paberileht: A4-laiune, keskel, hallil taustal (Peeter 06.10.2026 — ekraanilaiune mall näeb ebaloomulik välja) */
.rs-docpage{width:100%;box-sizing:border-box;align-self:stretch;overflow:auto;background:#eceaf1;padding:16px 12px;border-radius:8px;}   /* .rs-prev on flex+center — ilma width:100% tõmbus leht 300px-ks */
.rs-docpage .rs-docframe{display:block;width:100%;max-width:700px;margin:0 auto;box-shadow:0 2px 12px rgba(33,21,63,.14);border-radius:2px;}
/* mallivalik dokumendi-nupu kõrval (mitte eelvaate sees — seal jäi ta iframe'iga kõrvuti) */
.rs-blankpick{display:inline-block;width:auto;max-width:260px;margin-left:6px;vertical-align:middle;font-size:12px;}

/* ---------- VORM ERALDI AKNAS (#/…/r/{id}/form) ----------
   Sama rakendus, sama vorm — peidus on ainult karkass. Nii ei ole teist lehte ega teist
   vormi-koodi, ja iga vormi-täiendus jõuab mõlemasse vaatesse ise. */
body.v8-formonly .sidebar,
body.v8-formonly .topbar,
body.v8-formonly .scrim,
body.v8-formonly #content{display:none!important;}
body.v8-formonly .main{margin:0;width:100vw;}
body.v8-formonly .om-ov{padding:0;background:#fff;}
body.v8-formonly .om-box{width:100vw!important;height:100vh!important;max-width:none;max-height:none;
    border-radius:0;box-shadow:none;}
/* Sulgemisrist paneks siin akna tühjaks — eraldi aknas suletakse aken ise. */
body.v8-formonly .om-head .btn-close{display:none;}

/* VÄLJA-LUKK real (basesql row__lockfields): väli on nähtav, aga puutumatu. `pointer-events:none`
   katab ka omatehtud vidinad (combo, searchinput), mida `disabled` ei puuduta. */
/* LUKUS VÄLI PEAB VÄLJA NÄGEMA READONLY (Peeter 13.09.2026).
   Läbipaistvus üksi EI TÖÖTA: kahvatu väli loeb kasutaja jaoks endiselt tavalise väljana, ta klõpsab
   ja ei saa aru, miks midagi ei juhtu. Seepärast anname päris readonly-välja ilme — hall taust,
   summutatud tekst, „keelatud" kursor — ja see läheb KONTROLLILE, mitte kastile (kast hoiab silti). */
.fld-locked{cursor:not-allowed;}
.fld-locked .form-control,.fld-locked .form-select,.fld-locked input,.fld-locked select,.fld-locked textarea{
    background:#eef0f2!important;color:#6b7280!important;border-color:#e0e4e8!important;
    box-shadow:none!important;cursor:not-allowed;}
/* `pointer-events:none` läheb LASTELE, mitte kastile endale — kastil on `title` (luku põhjus) ja
   see ei ilmuks kunagi, kui kast ise hiirele nähtamatu oleks. */
.fld-locked > *:not(label){pointer-events:none;}
.fld-locked label{opacity:1;}
.fld-locked .fld-lockic{margin-left:5px;font-size:11px;color:#8a94a0;}
/* Lukus lahter listis/alamtabelis — sama ilme, et kasutaja tunneks ta ära ka tabelis. */
.cell-locked{background:#eef0f2;color:#6b7280;cursor:not-allowed;}

/* Kuu-ruudustik: pivoti vaaterežiim (7 võrdset veergu, nädalate kaupa).
   Kõrgus tuleb sisust, aga lahtrid on võrdse laiusega — muidu venib kolmapäev
   pikima sündmuse järgi ja võrk lakkab võrk olemast. */
.pivot-month{table-layout:fixed;}
.pivot-month th{width:14.28%;font-weight:600;font-size:11px;}
.pivot-month td{transition:background .12s;}
.pivot-month td:hover{background:#f8fbff;}

/* „AVA SEE KIRJE" otse lahtrilt (viiteväli → tema enda register). Tahtlikult TASANE eristus:
   ikoon iga rea lõpus tegi listi kirjuks, seega märk on hover + kursor, nagu kiirmuutmisel.
   Alljoon on PUNKTIIR (qc-on on kriipsjoon) — kaks eri tegevust ei tohi välja näha ühtemoodi. */
.rec-on{cursor:pointer;border-bottom:1px dotted var(--bev-line);}
.rec-on:hover{background:rgba(85,65,115,.08);border-radius:5px;box-shadow:0 0 0 3px rgba(85,65,115,.08);}
span.label.rec-on:hover{filter:brightness(.94);}

/* Edenemisriba (`linktorobot.progress`) — „3/7" alamregistri loenduri kõrval.
   Riba on KITSAS ja lahtri sees: ta on abiinfo veeru kõrval, mitte oma veerg. */
.pgwrap{display:inline-flex;align-items:center;gap:4px;margin-left:6px;vertical-align:middle;}
.pgbar{display:inline-block;width:44px;height:6px;border-radius:3px;background:#e9ecef;overflow:hidden;}
.pgfill{display:block;height:100%;border-radius:3px;transition:width .2s;}
.pgfill.pg-low{background:#fa5252;}
.pgfill.pg-mid{background:#fd7e14;}
.pgfill.pg-done{background:#40c057;}
.pgtext{font-size:10px;color:#868e96;font-variant-numeric:tabular-nums;}

/* Edenemis-veerg: ankru number on peidetud (riba tekst ütleb juba „3/7"), seega lahter ei tohi
   jääda liiga kitsaks — riba vajab ruumi, et ta oleks loetav, mitte kriips. */
.cell-progress .pgwrap{margin-left:0;}

/* P3e — ÜHINE KLOTS ajateljel (kellaajad ridades). Kirje katab oma slotid ühe pinnana;
   eraldi kast + hall ala all luges sama asja kaks korda ega näidanud kestust. */
.pgblock{border:1px solid #c5d9ef;border-left:3px solid #4c8ed9;border-radius:4px;
         padding:2px 5px;overflow:hidden;cursor:pointer;z-index:2;
         box-shadow:0 1px 2px rgba(16,24,40,.06);transition:box-shadow .12s;}
.pgblock:hover{box-shadow:0 2px 6px rgba(16,24,40,.16);}
.pgblock-conf{border-color:#ff8787;border-left-color:#fa5252;background:#fff5f5 !important;}
/* Aeg on klotsi esimene rida — tema järgi loetakse klotsi, nagu legacyl. */
.pgblock-t{font-size:10px;color:#5a6b7d;font-weight:600;line-height:1.25;white-space:nowrap;}
/* Pikem sisu KÄRBITAKSE — tooltip näitab tervikut (Peeter 20.09: „las pikem tekst jääb kuvamata"). */
.pgblock-b{font-size:11px;color:#1f2d3d;line-height:1.3;overflow:hidden;}

/* Venitamise pide klotsi alumises servas. Nähtav alles hiire all — ta on tööriist, mitte kaunistus,
   ja 30 pidet korraga ekraanil oleks müra. Kõrgus 7px: piisav tabamiseks, ei söö sisu. */
.pgblock-grip{position:absolute;left:0;right:0;bottom:0;height:7px;cursor:ns-resize;opacity:0;
              transition:opacity .12s;border-radius:0 0 4px 4px;}
.pgblock-grip::after{content:"";position:absolute;left:50%;bottom:2px;width:22px;height:2px;
                     margin-left:-11px;border-radius:1px;background:#6b8cae;}
.pgblock:hover .pgblock-grip{opacity:.85;}

/* Vormi-vidin `iconradio` — combo lahti käivitatuna nuppudeks (paramjson V8.form.widget).
   Kolme-nelja valikuga väli on nii üks klõps ja kõik variandid korraga näha. */
.iconradio{display:inline-flex;flex-wrap:wrap;gap:6px;}
.iconradio-b{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;font-size:13px;
             border:1px solid #d5dbe3;border-radius:8px;background:#fff;color:#495057;
             cursor:pointer;transition:border-color .12s,background .12s,box-shadow .12s;}
.iconradio-b i{font-size:15px;line-height:1;}
.iconradio-b:hover{border-color:#adb5bd;background:#f8f9fa;}
.iconradio-b.active{border-color:#4c8ed9;background:#eaf3ff;color:#1c4f8a;font-weight:600;
                    box-shadow:inset 0 0 0 1px #4c8ed9;}
.iconradio.disabled .iconradio-b{cursor:default;opacity:.65;}
.iconradio.disabled .iconradio-b:hover{border-color:#d5dbe3;background:#fff;}
/* Ainult-ikoon variant (`iconsonly`): ruudukujuline nupp, nimi tooltipina. */
.iconradio-b.iconradio-ic{padding:7px 10px;}
.iconradio-b.iconradio-ic i{font-size:17px;}

/* Kasutaja-avatar ülaribal — „Õigused / Mina / Logi välja" kolme nupu asemel üks.
   Ülariba ruum on rakenduse kõige kallim ruum; harva vajutatav kuulub menüü alla. */
.avatar-btn{display:inline-flex;align-items:center;gap:4px;border:1px solid #d5dbe3;
            background:#fff;border-radius:999px;padding:3px 8px 3px 3px;cursor:pointer;
            transition:border-color .12s,box-shadow .12s;}
.avatar-btn:hover{border-color:#adb5bd;box-shadow:0 1px 3px rgba(16,24,40,.1);}
.avatar-ini{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;
            border-radius:50%;background:#4c8ed9;color:#fff;font-size:11px;font-weight:700;
            letter-spacing:.3px;}
.avatar-btn > .bi-person-circle{font-size:22px;color:#6b7b8d;margin-left:3px;}
.avatar-caret{font-size:10px;color:#868e96;}
/* Klotsi kliendirida. `:empty` peidab ta ära — kliendita sündmusel ei tohi jääda tühja rida,
   mis lükkaks teema alla ja teeks klotsist poole kõrgema kui vaja. */
.pgb-cl{display:block;font-size:10px;font-weight:600;color:#1c4f8a;line-height:1.2;
        overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.pgb-cl:empty{display:none;}

/* NIMEKIRJA JALUS: `summarize`-veergude summad. Kleepub alla nagu päis üles — summa, mis kerides
   ära kaob, ei ole kokkuvõte, vaid järjekordne rida. Sisu ja kolm seisu: app.js renderTotals(). */
.data-table tfoot.tot-foot td{position:sticky;bottom:0;z-index:5;background:#f4f1fa;border-top:2px solid var(--bev-line);font-weight:700;padding:7px 12px;white-space:nowrap;}
.data-table tfoot.tot-foot td.tot-val{text-align:right;color:var(--bev-purple);}
.data-table tfoot.tot-foot td.tot-lbl{font-weight:600;font-size:12px;color:var(--bev-purple);}
.data-table tfoot.tot-foot td.tot-sel{color:var(--bev-red);}
.data-table tfoot.tot-foot a.tot-all{margin-left:8px;font-size:12px;font-weight:600;text-decoration:underline dotted;}

/* VEERU JOONDUS — tuleb SKEEMIST (`col.align`), mitte siit ega kliendi arvamusest. Vaikeväärtuse
   otsustab server veeru tüübi järgi: raha ja määr paremale (arve loetakse kohakuti), loendur ja
   kuupäev keskele, tekst vasakule; aruanne saab ta päise JSON-is üle kirjutada.
   Kehtib PÄISELE, LAHTRILE ja SUMMA-REALE korraga — kui nad lahku lähevad, loeb veerg nagu kaks
   eri veergu. Robot-tabelid `align`-i praegu ei saada, seega nende kuva ei muutu. */
.data-table td.col-right, .data-table th.col-right{text-align:right;}
.data-table td.col-center, .data-table th.col-center{text-align:center;}
.data-table thead th.col-right .th-wrap{justify-content:flex-end;}
.data-table thead th.col-center .th-wrap{justify-content:center;}
.data-table tfoot.tot-foot td.tot-val.col-center{text-align:center;}
.data-table tfoot.tot-foot td.tot-val.col-right{text-align:right;}

/* ARUANDE DRILL-DOWN. Rida on klõpsatav ainult siis, kui tal on kuhu edasi minna (`drilldims`);
   klõpsatav rida, mis midagi ei tee, õpetab klõpsamist vältima. Leivapuru elab `#parentlinkbar`
   pesas — seal on ta filter-kiipidest eraldi ja `renderFilterChips` ei kirjuta teda üle. */
.data-table tbody tr.row-drill{cursor:zoom-in;}
.data-table tbody tr.row-drill:hover{background:#f3f0fb;}
.drill-bar{font-size:13px;padding:4px 8px;background:#f3f0fb;border:1px solid #e3dcf6;border-radius:8px;}
.drill-bar a.drill-crumb{color:var(--bev-purple);text-decoration:none;font-weight:600;}
.drill-bar a.drill-crumb:hover{text-decoration:underline;}
.drill-bar .drill-cur{font-weight:700;}

/* PESASTATUD DRILL: alamread elavad samas tabelis, et mõõdikud jääksid oma veergudesse ja numbrid
   loeksid kohakuti. Taane näitab sügavust, vasak serv seob nad emareaga. */
.data-table tbody tr.drill-sub > td{background:#fbfaff;}
.data-table tbody tr.drill-sub > td:first-child{border-left:3px solid var(--bev-purple);}
.data-table tbody tr.drill-open > td{font-weight:600;}
.data-table tbody tr.drill-loading > td:first-child{opacity:.5;}
.drill-sub-label{display:inline-flex;align-items:center;white-space:nowrap;}

/* PIKK TEKST LAHTRIS: kokku pandud ühel real, avatuna murrab. `▾` on ainus märk, et teksti on
   rohkem — ilma temata ei tea kasutaja, kas lause lõppes või lahter lõppes. */
.data-table td .cell-lt{display:inline-block;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;vertical-align:bottom;}
.data-table td .cell-lt.open{white-space:pre-wrap;overflow:visible;}
.cell-lt-tgl{cursor:pointer;color:var(--bev-purple);font-weight:700;margin-left:4px;user-select:none;}
.cell-lt-tgl:hover{color:var(--bev-red);}
/* KANBANI KLOTS: pikk tekst kolmele reale, klõps avab (sama mõte, teine pind). */
/* ⚠ `.pg-clamp` on klotsi SEES olev span, mitte klots ise — esimene versioon kirjutas
   `.pgblock-b.pg-clamp` (sama element) ja reegel ei tabanud kunagi midagi. */
.pgblock-b .pg-clamp{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;cursor:pointer;}
.pgblock-b .pg-clamp.pg-open{display:block;overflow:visible;white-space:pre-wrap;-webkit-line-clamp:none;}

/* ─── RISTTABEL (aruanne, F6) ───────────────────────────────────────────────────────────────
   KAKS sticky päiserida: ülemine = lõike väärtused (kuu/linn), alumine = mõõdikud. Mõlemad
   `top:0` paneks nad teineteise peale, seega alumine saab nihke. Rea kõrgus sõltub tiheduse-
   seadest (`html[data-density]`), seega ta tuleb MUUTUJAST — kõvakodeeritud number oleks ühe
   tiheduse peal alati vale ja päis hüppaks scrollides. */
.data-table{--cross-h:39px;}
html[data-density="normal"] .data-table{--cross-h:29px;}
html[data-density="compact"] .data-table{--cross-h:24px;}
.data-table thead tr.cross-head th{top:0;z-index:4;background:#ece6f7;padding:6px 12px;}
.data-table thead tr.cross-head + tr th{top:var(--cross-h);}
.data-table thead th.cross-grp{text-align:center;border-left:2px solid #cfc2e8;}

/* ─── LÕIKED KINNI: kleepuv lahter peab olema LÄBIPAISTMATU ─────────────────────────────────
   `position:sticky` ei tee lahtrit katvaks — ilma taustata jookseb kerimisel alt läbi minev
   sisu tema pealt läbi ja tulemus näeb välja nagu „z-index on vale". Tausta pärimine `tr`-ilt
   hoiab hover/valitud/alamrea värvid alles (need on samuti `tr` või `td` peal).
   Kihid on tahtlikult MADALAD (2–7): menüüd ja filtripaneelid on `fixed` ja 1078+, seega nad
   jäävad nagunii ette — kleepuv veerg ei tohi nendega võistlema hakata. */
.data-table.frz tbody tr{background:#fff;}
.data-table.frz tbody td{background-color:inherit;}
.data-table.frz tbody tr.drill-sub{background:#fbfaff;}

/* Risttabeli rühma-silt jääb kerides nähtavale: ta kleepub OMA lahtri sees, alates külmutatud
   ploki servast (`--frz-w`, seatakse `applyFreeze`-is). Ilma selleta on rühm ekraanil, aga tema
   nimi kerinud vaateväljast välja — päis näitab numbreid, mille kuuluvust enam ei näe. */
.data-table thead th.cross-grp{text-align:center;border-left:2px solid #cfc2e8;}
.data-table thead th.cross-grp .cross-grp-lbl{position:sticky;left:var(--frz-w,0px);display:inline-block;max-width:100%;}

/* ─── GRAAFIKU PANEEL (aruanne) ─────────────────────────────────────────────────────────────
   Paneel elab tabeli KOHAL, mitte eraldi vaates: trendi ja numbrit vaadatakse koos — näed, et
   juuni kukkus, ja leiad kohe alt rea, kelle pärast. */
.chart-panel{margin-bottom:10px;overflow:hidden;}
.chart-panel .chart-toolbar{border-bottom:1px solid var(--bev-line);background:#faf8fe;}
.chart-panel .chart-foot{border-top:1px dashed var(--bev-line);padding-top:6px;line-height:1.5;}

/* Vaate-valija loend: 31 salvestatud vaadet ei mahu ekraanile, aga paneel ei tohi ka kogu
   akent täita — loend kerib, otsingukast ja salvestus-plokk jäävad paigale. */
.views-panel .views-list{max-height:46vh;overflow-y:auto;}

/* Graafiku mõõdiku-nupul on ÜHIK nähtaval (€ / % / tk) — telgi mahub kaks ja just ühik otsustab,
   mis kuhu läheb. Ilma selleta on „miks see number pildile ei tulnud" nähtamatu reegel. */
.chart-toolbar .chart-unit{opacity:.6;font-size:11px;margin-left:2px;}

/* ─── ARUANDE RIBA: AINULT IKOONID ──────────────────────────────────────────────────────────
   Viis lülitit tekstiga sõid poole ribast ja surusid vaated/perioodi/otsingu teisele reale.
   Ikoon ütleb tegevuse, `title` ütleb täpsemalt — ja aktiivne seis on VÄRVIGA näha, mitte
   sõnaga. Nupud on ruudukujulised, et nad moodustaksid ühtlase rea. */
.btn-ico{width:32px;height:31px;padding:0;display:inline-flex;align-items:center;justify-content:center;position:relative;}
.btn-ico i{font-size:15px;line-height:1;}
html[data-density="normal"] .btn-ico{width:28px;height:27px;}
html[data-density="normal"] .btn-ico i{font-size:14px;}
html[data-density="compact"] .btn-ico{width:24px;height:23px;}
html[data-density="compact"] .btn-ico i{font-size:13px;}
/* Risttabeli nupul väike arv = mitu mõõdikut teljele laiali aetud. Ilma selleta ei näeks
   ikoonilt, KUI PALJU ta parajasti teeb. */
.btn-ico-badge{position:absolute;top:-3px;right:-3px;min-width:14px;height:14px;padding:0 3px;
  border-radius:7px;background:var(--bev-orange);color:#fff;font-size:9px;font-weight:800;
  line-height:14px;text-align:center;}

/* ─── VÕRDLUS EELMISE AASTAGA (F7) ──────────────────────────────────────────────────────────
   Muutus-protsendil on värv, sest just tema pärast vaadatakse. „uus" ja „—" on halli kirjaga:
   nad EI OLE nullid, vaid puuduv võrdlus — värviline null valetaks kasvu või languse kohta. */
.data-table td.cmp-up{color:#1c8a4a;font-weight:700;}
.data-table td.cmp-down{color:#b0453f;font-weight:700;}
.data-table td.cmp-new{color:var(--bev-muted,#8a8397);font-style:italic;}
/* Eelmise perioodi arv on KÕRVALINFO — ta ei tohi käesolevaga sama kaalu näida. */
.data-table thead th[data-cmp="prev"],.data-table td.cmp-prev{color:#6b6478;}

/* ─── SAMA AKEN IGAL AASTAL ─────────────────────────────────────────────────────────────────
   Kaks seisu, kaks värvi: SOOVITUS (kollane, midagi ei ole veel muudetud) ja RAKENDATUD
   (lilla, numbrid ON kärbitud). Rakendatud seis peab olema nähtav ka siis, kui keegi teine
   vaate avab — kärbitud aken täisperioodina loetuna on vaikne vale vastus. */
.yw-bar{display:flex;align-items:center;flex-wrap:wrap;gap:2px;font-size:12.5px;
  padding:7px 12px;border-radius:10px;margin-bottom:8px;}
.yw-bar a{font-weight:700;text-decoration:none;}
.yw-hint{background:#fff8e6;color:#7a5b00;border:1px solid #f0e0b6;}
.yw-hint a{color:#8a6400;}
.yw-on{background:rgba(85,65,115,.09);color:var(--bev-purple);border:1px solid #ddd2ee;}
.yw-on a{color:var(--bev-purple);opacity:.75;font-weight:600;}

/* ─── PROJEKTSIOON ──────────────────────────────────────────────────────────────────────────
   Projekteeritud arv EI TOHI KUNAGI näida mõõdetuna. Kaldkiri + tärn + oma värv on kolm
   sõltumatut märki; ükski neist üksi ei pruugi märgata saada (värvipimedus, print, kiire pilk). */
.data-table td.proj-val{font-style:italic;color:#2f6fb0;}
.proj-bar{background:rgba(47,111,176,.08);color:#2f6fb0;border:1px solid #cfe0f0;margin-top:8px;margin-bottom:0;}

/* ─── DOKUMENDIVAADE (`V8.document`, arendusrida 151) — päis + lahtised read ühes aknas ────────────
   Read on alati muudetavad; summa-riba ütleb kohe, kas kanne on tasakaalus. Vigane rida (server
   ütles, mis real) värvub punaseks. */
.doc-sec{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:#554173;margin:14px 0 6px;border-bottom:1px solid #e8e3ef;padding-bottom:4px;}
.doc-grid th{font-size:12px;white-space:nowrap;}
.doc-grid td{vertical-align:middle;padding:2px 4px;}
.doc-grid td .form-control,.doc-grid td .form-select{min-width:70px;}
.doc-grid tr.doc-err td{background:rgba(230,77,90,.10);}
.doc-totals{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:4px;font-size:13px;padding:6px 4px;border-top:1px solid #e8e3ef;}
/* read ja summa-riba ei tohi modali serva kleepuda — sama taane mis vormi väljadel */
.om-scroll > .doc-sec,.om-scroll > .doc-lines,.om-scroll > .doc-totals{margin-left:20px;margin-right:20px;}
/* dokumendivaate read on sakkide vahel ümber tõstetav plokk — taane käib ploki enda küljes, mitte vanema järgi */
.doc-lines,.doc-sec{margin-left:20px;margin-right:20px;}
.doc-lines .em-table td{vertical-align:middle;}
/* `below`-sakk (Raider #3721): read Põhiandmete all — vormi sees, vormi enda taane */
.om-below .doc-sec{margin-left:0;margin-right:0;margin-top:18px;}
/* XML loetavalt (rida 67) — e-arve arvena, muu XML puuna; paremal paneelil konteerimise kõrval */
.xv{display:flex;flex-direction:column;height:100%;min-height:0;}
.xv-bar{display:flex;gap:4px;align-items:center;padding:6px 8px;border-bottom:1px solid #e9e5f0;}
.xv-bar .btn.active{background:#554173;color:#fff;}
.xv-body{flex:1;overflow:auto;padding:10px 12px;font-size:.85rem;background:#fff;}
.xv-inv{max-width:760px;margin:0 auto;}
.xv-head{border-bottom:2px solid #554173;padding-bottom:6px;margin-bottom:8px;}
.xv-title{font-size:1.15rem;font-weight:600;color:#21153f;}
.xv-meta{color:#6c757d;font-size:.8rem;}
.xv-parties{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:10px;}
.xv-party{flex:1;min-width:180px;}
.xv-lbl{color:#8a7ca3;font-size:.72rem;text-transform:uppercase;letter-spacing:.03em;}
.xv-strong{font-weight:600;}
.xv-rows{width:100%;border-collapse:collapse;}
.xv-rows th{font-size:.72rem;color:#8a7ca3;text-transform:uppercase;border-bottom:1px solid #d9d2e6;padding:4px;}
.xv-rows td{border-bottom:1px solid #f0edf5;padding:4px;vertical-align:top;}
.xv-rows tr.xv-grp td{background:#f6f3fa;padding-top:6px;}
.xv-sum{text-align:right;margin-top:8px;}
.xv-node{margin-left:12px;} .xv-node > summary{cursor:pointer;color:#554173;font-weight:600;}
.xv-leaf{margin-left:14px;padding:1px 0;}
/* dokument + seadistus kiht (V8.docsplit, rida 67) — parem pool = rea failid täiskõrguses */
#docsplit .files-tab{display:flex;flex-direction:column;height:100%;min-height:0;}
#docsplit .rs-prev{flex:1;min-height:0;height:auto !important;}
#docsplit .fprev-frame{width:100%;height:100%;border:0;}
/* KELLUKE (07.10.2026) — legacy teated + meeldetuletused */
#nav-bell .bell-badge{position:absolute;top:-4px;right:-6px;min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:#e64d5a;color:#fff;font-size:10px;font-weight:700;line-height:17px;text-align:center;}
.bell-panel{position:fixed;z-index:2100;width:380px;max-width:calc(100vw - 16px);max-height:70vh;display:flex;flex-direction:column;background:#fff;border:1px solid #e3deec;border-radius:10px;box-shadow:0 10px 30px rgba(33,21,63,.18);}
.bell-head{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid #eee8f4;}
.bell-list{overflow:auto;flex:1;}
.bell-item{display:flex;gap:10px;padding:9px 12px;border-bottom:1px solid #f4f1f8;cursor:pointer;}
.bell-item:hover{background:#faf8fc;}
.bell-item.unread{background:#f6f2fb;}
.bell-item.unread .bell-title{font-weight:700;}
.bell-item.high .bell-ico{color:#e64d5a;}
.bell-ico{color:#8a7ca3;margin-top:2px;}
.bell-body{flex:1;min-width:0;}
.bell-title{font-size:.86rem;color:#21153f;}
.bell-text{font-size:.78rem;color:#555;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.bell-meta{font-size:.72rem;color:#8a8a99;margin-top:2px;}
.bell-foot{padding:8px 12px;border-top:1px solid #eee8f4;font-size:.78rem;text-align:center;}

/* Failide lohistamine (drag-drop) — `enableFileDrop` app.js */
.file-drop-over { outline: 2px dashed var(--bs-primary, #0d6efd); outline-offset: -2px; background: rgba(13,110,253,.06) !important; }
tr.file-drop-over > td { background: rgba(13,110,253,.10) !important; }
.file-drop-busy { opacity: .55; pointer-events: none; cursor: progress; }
.file-drop-hint { margin-top: 4px; }

/* Universaalne AI-sisend (arendusrida 135): lohistus AI nupule / paneeli, kaart vestluses */
.askpanel.aiin-drop{outline:3px dashed var(--bev-ai);outline-offset:-10px;}
#nav-ai.aiin-drop{box-shadow:0 0 0 3px rgba(111,78,242,.45);}
.aiin-card{border:1px solid var(--bev-line);border-radius:12px;padding:10px 12px;margin:10px 0;background:#faf9ff;font-size:13px;}
.aiin-head{color:#5c5670;margin-bottom:6px;word-break:break-word;}
.aiin-conf{font-size:12px;color:var(--bev-ai);margin-left:8px;}
.aiin-ok{color:#137333;font-size:12px;}
.aiin-sum{margin-top:4px;line-height:1.45;}
.aiin-acts{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-top:8px;}
.aiin-alt{width:auto;max-width:220px;}
.aiin-offer{margin:0 16px 8px;padding:8px 10px;border-radius:10px;background:#f3f0fe;font-size:13px;display:flex;gap:6px;flex-wrap:wrap;align-items:center;}
/* AI vastuse tagasiside (r161 faas A) — väike, ei tohi vastust varjutada */
.ask-fbbar{display:flex;gap:4px;justify-content:flex-end;margin-top:4px;}
.ask-fb{border:0;background:transparent;color:#9a93ad;font-size:13px;padding:2px 6px;border-radius:8px;cursor:pointer;}
.ask-fb:hover:not(:disabled){color:var(--bev-ai);background:#f3f0fe;}
.ask-fb.on{color:var(--bev-ai);}
.ask-fb:disabled:not(.on){opacity:.4;cursor:default;}
/* Laoseisu märgid ostuarve seoseveergudes (robot\stock\InvoiceLink::row*State / head*State): ⚠ vahe · → teha · kulu */
.stk-st{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;white-space:nowrap;cursor:help;}
.stk-ok{background:rgba(28,138,74,.13);color:#1c8a4a;}
.stk-warn{background:rgba(214,137,16,.17);color:#9a5a06;}
.stk-info{background:rgba(52,110,200,.12);color:#2c5fa8;}
.stk-muted{background:#f1eef7;color:#7a6ea0;font-weight:500;}

/* KÜLGRIBA KITSAS (Peeter 26.10.2026): logo kõrval lüliti → ainult grupi ikoonid; klõps ikoonil avab riba ja selle grupi.
   Grupi ikoon ka laias režiimis (`.nav-grp-ico`), puuduva asemel neutraalne. */
.nav-group-title .nav-grp-ico{font-size:14px;margin-right:8px;opacity:.85;width:16px;text-align:center;text-transform:none;}
.sidebar .brand{justify-content:space-between;}
.brand-b-wrap{display:none;line-height:0;}
.brand-b-wrap .brand-b{width:26px;height:34px;display:block;}
.nav-narrow-btn{background:none;border:0;color:#cfc7e0;opacity:.7;font-size:16px;padding:2px 4px;cursor:pointer;}
.nav-narrow-btn:hover{opacity:1;color:#fff;}
@media (min-width:992px){
    html.nav-narrow{--sidebar-w:64px;}   /* ka ajutisel avamisel: sisu ei nihku, riba tuleb peale */
    html.nav-narrow.nav-peek .sidebar{width:248px;box-shadow:8px 0 24px rgba(33,21,63,.25);}
    html.nav-narrow:not(.nav-peek) .sidebar .brand{padding:16px 0 10px;justify-content:center;}
    html.nav-narrow:not(.nav-peek) .sidebar .brand img{display:none!important;}
    html.nav-narrow:not(.nav-peek) .sidebar .brand{flex-direction:column;gap:8px;}
    html.nav-narrow:not(.nav-peek) .sidebar .brand .brand-b-wrap{display:block;}
    html.nav-narrow:not(.nav-peek) #navtree .nav-item-link,
    html.nav-narrow:not(.nav-peek) #navtree input[type=search],
    html.nav-narrow:not(.nav-peek) #navtree .nav-group-title > span,
    html.nav-narrow:not(.nav-peek) #navtree .nav-group-title > .bi-chevron-right,
    html.nav-narrow:not(.nav-peek) #navtree .nav-group-title > .bi-chevron-down{display:none!important;}
    html.nav-narrow:not(.nav-peek) #navtree .nav-group-title{justify-content:center;padding:12px 0;}
    html.nav-narrow:not(.nav-peek) #navtree .nav-group-title .nav-grp-ico{margin:0;font-size:18px;}
}
