:root{--vitis-ui-css:1}
*{margin:0;padding:0;box-sizing:border-box}
html,body{height:100%;overflow:hidden}
body{font-family:'Segoe UI',Tahoma,sans-serif;background:#f2f2f2;color:#1a1a1a;font-size:19px;display:flex;flex-direction:column;height:100vh;max-height:100vh}
#nav{display:flex;align-items:stretch;background:#fff;border-bottom:3px solid #4E6432;flex-shrink:0;height:64px;box-shadow:0 2px 6px rgba(0,0,0,.08);overflow-x:auto;overflow-y:hidden}
/* Poistka pri plnom workspace na 1366px: nav sa dá potiahnuť (swipe), nič sa neoreže mimo viewport. Scrollbar skrytý (dotykový kiosk). */
#nav::-webkit-scrollbar{height:0;width:0;display:none}
#nav-logo{display:flex;align-items:center;padding:0 14px;border-right:1px solid #e8e8e8}
#nav-logo img{max-height:42px;width:auto}
.nav-btn{height:64px;padding:0 16px;background:transparent;border:none;color:#666;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s;border-bottom:3px solid transparent;margin-bottom:-3px;white-space:nowrap}
.nav-btn:hover{background:#f8f8f8;color:#1a1a1a}
.nav-btn.active{background:#fff;color:#4E6432;border-bottom-color:#4E6432;font-weight:700}
.nav-tools{display:flex;align-items:center;gap:6px;margin-left:auto;padding:0 12px}
.nav-tools button{height:36px;padding:0 12px;background:transparent;border:1px solid #d0d0d0;color:#666;font-size:13px;border-radius:6px;cursor:pointer;white-space:nowrap}
.nav-tools button:hover{border-color:#4E6432;color:#4E6432}
.section{display:none;flex:1;overflow:hidden;min-height:0}
.section.active{display:flex}

/* PREDAJ - fixed 1920x990 layout */
#section-predaj{flex-direction:row;height:100%}
#products-panel{flex:6;display:flex;flex-direction:column;overflow:hidden;min-width:0}
#category-tabs{display:flex;background:#f8f8f8;padding:10px 14px 0;gap:6px;border-bottom:1px solid #e0e0e0;flex-shrink:0;flex-wrap:wrap}
.cat-tab{height:48px;padding:0 20px;border:none;border-radius:8px 8px 0 0;font-size:16px;font-weight:700;cursor:pointer;opacity:.5;transition:opacity .2s;white-space:nowrap}
.cat-tab:hover{opacity:.8}.cat-tab.active{opacity:1}
#products-grid{flex:1;overflow-y:auto;padding:14px;display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px;align-content:start;background:#f2f2f2}
.product-btn{min-width:130px;min-height:100px;padding:12px 10px;background:#fff;border:2px solid #e0e0e0;border-radius:10px;color:#1a1a1a;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;transition:all .15s;text-align:center;box-shadow:0 1px 4px rgba(0,0,0,.06)}
.product-btn:hover:not(:disabled){border-color:#4E6432;background:#f6f9f4;transform:translateY(-2px);box-shadow:0 4px 14px rgba(78,100,50,.15)}
.product-btn:disabled{opacity:.3;cursor:not-allowed}
.p-name{font-size:14px;line-height:1.2;font-weight:600;word-break:break-word}
.p-vat{font-size:19px;font-weight:900;color:#4E6432}
.p-novat{font-size:12px;color:#999}

/* CART - 3 fixed zones */
#cart-panel{flex:4;display:flex;flex-direction:column;background:#fff;border-left:2px solid #e0e0e0;box-shadow:-2px 0 8px rgba(0,0,0,.05);max-width:480px;min-width:360px}
#cart-header{display:flex;align-items:center;padding:0 16px;height:48px;background:#f8f8f8;border-bottom:1px solid #e0e0e0;font-size:20px;font-weight:700;flex-shrink:0;gap:10px}
#cart-count{background:#4E6432;color:#fff;border-radius:20px;padding:2px 10px;font-size:15px;font-weight:700;min-width:28px;text-align:center}

/* Zone A: scrollable items - min-height:0 so it can shrink to keep footer in view */
#cart-items{flex:1;overflow-y:auto;padding:8px 10px;min-height:0}
.cart-item{background:#f9f9f9;border:1px solid #e8e8e8;border-radius:8px;padding:8px 10px;margin-bottom:6px;display:flex;align-items:center;gap:6px}
.cart-item.custom-price{background:#fff8f0;border-color:#e8c880}
.cart-item-info{flex:1;min-width:0}
.cart-item-name{font-size:14px;line-height:1.2;font-weight:600}
.cart-item-subp{font-size:12px;color:#aaa}
.cart-item-subp .custom-tag{color:#d4880f;font-weight:700}
.cart-qty{display:flex;align-items:center;gap:2px;flex-shrink:0}
.qty-btn{width:32px;height:32px;background:#e8e8e8;border:none;color:#1a1a1a;font-size:20px;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s;line-height:1}
.qty-btn:hover{background:#c8c8c8}
.qty-num{width:28px;text-align:center;font-size:17px;font-weight:700}
.cart-item-prices{text-align:right;flex-shrink:0}
.cip-vat{font-size:15px;font-weight:700;color:#4E6432}
.cip-vat.custom{color:#d4880f}
.cip-nov{font-size:12px;color:#bbb}
.cart-edit-price{width:28px;height:28px;background:transparent;border:none;color:#4E6432;font-size:16px;cursor:pointer;border-radius:6px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.cart-edit-price:hover{background:#f0f5ed}
.cart-del{width:28px;height:28px;background:transparent;border:none;color:#c0392b;font-size:20px;cursor:pointer;border-radius:6px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.cart-del:hover{background:#fdf0f0}
.cart-fixed-row{flex-shrink:0}
.cart-input.has-customer{background:#e8f5e9;border-color:#4E6432}

/* Zone B: customer + discount + payment - fixed */
#cart-zone-b{background:#f8f8f8;padding:10px 12px;border-top:2px solid #e0e0e0;flex-shrink:0}
.cart-cust-wrap{margin-bottom:6px;position:relative}
.cust-clear-btn{display:none;position:absolute;right:8px;top:50%;transform:translateY(-50%);background:#fdf0f0;border:1px solid #f0c0bb;color:#c0392b;font-size:13px;font-weight:700;cursor:pointer;padding:4px 8px;line-height:1;border-radius:6px;z-index:5}
.cust-clear-btn:hover{background:#fde4e4;border-color:#c0392b}
.cart-cust-wrap:has(.has-customer) .cust-clear-btn{display:block}
.cart-input{width:100%;padding:10px 12px;background:#fff;border:2px solid #d0d0d0;border-radius:8px;color:#1a1a1a;font-size:16px;transition:border-color .2s}
.cart-input:focus{outline:none;border-color:#4E6432}
#customer-suggestions{position:fixed;left:auto;right:auto;width:100%;max-width:340px;background:#fff;border:1px solid #d0d0d0;border-radius:8px;z-index:1200;max-height:200px;overflow-y:auto;display:none;box-shadow:0 4px 20px rgba(0,0,0,.2)}
.cust-sugg{padding:9px 12px;cursor:pointer;border-bottom:1px solid #f0f0f0;font-size:15px}
.cust-sugg:hover{background:#f5f5f5}
.disc-toggle{display:flex;gap:6px;margin-bottom:6px}
.disc-btn{flex:1;height:48px;background:#f0f0f0;border:2px solid #d0d0d0;color:#555;font-size:16px;font-weight:700;border-radius:8px;cursor:pointer;transition:all .2s}
.disc-btn:hover{border-color:#4E6432;color:#4E6432}
.disc-btn.active{background:#4E6432;border-color:#4E6432;color:#fff}
.disc-info{display:none;align-items:center;justify-content:space-between;margin-bottom:6px;padding:6px 10px;background:#f0f5ed;border:1px solid #c5d6b8;border-radius:8px}
.disc-info.show{display:flex}
.disc-info-text{font-size:14px;font-weight:600;color:#4E6432}
.disc-remove-btn{height:30px;padding:0 10px;background:transparent;border:1px solid #c0392b;color:#c0392b;font-size:13px;font-weight:600;border-radius:6px;cursor:pointer}
.disc-remove-btn:hover{background:#fdf0f0}
.payment-toggle{display:flex;gap:6px}
/* J1: trvalé pay tlačidlá zanikli — platba sa vyberá VŽDY vedome v modali "Spôsob platby". */
.paym-btn{height:64px;background:#f8f8f8;border:2px solid #d0d0d0;color:#333;font-size:17px;font-weight:800;border-radius:10px;cursor:pointer;transition:all .15s}
.paym-btn:hover{border-color:#4E6432;color:#4E6432;background:#f2f6ee}
.paym-btn.active{background:#4E6432;border-color:#4E6432;color:#fff}

/* Zone C: totals + buttons - always visible */
#cart-zone-c{background:#fff;padding:10px 12px;border-top:2px solid #e0e0e0;flex-shrink:0}
#cart-total-box{margin-bottom:8px}
.t-row{display:flex;justify-content:space-between;align-items:center;padding:2px 0;font-size:15px}
.t-row.main{font-size:22px;font-weight:900;border-top:2px solid #e0e0e0;margin-top:4px;padding-top:6px}
.t-lbl{color:#888}.t-lbl.dark{color:#1a1a1a}
.t-val{font-weight:700}.t-val.wine{color:#4E6432}
#t-orig-row{display:none;font-size:14px}
#t-orig-row .t-lbl{color:#bbb}#t-orig-row .t-val{color:#bbb;text-decoration:line-through}
#btn-predaj,#stoly-vyuctovat{width:100%;height:56px;background:linear-gradient(135deg,#4E6432,#6b8a47);border:none;color:#fff;font-size:20px;font-weight:900;border-radius:10px;cursor:pointer;letter-spacing:3px;transition:all .2s;margin-bottom:4px;box-shadow:0 2px 8px rgba(78,100,50,.3)}
#btn-predaj:hover:not(:disabled),#stoly-vyuctovat:hover:not(:disabled){background:linear-gradient(135deg,#3d5028,#5a7a3a);box-shadow:0 4px 18px rgba(78,100,50,.4)}
#btn-predaj:disabled,#stoly-vyuctovat:disabled{background:#e0e0e0;cursor:not-allowed;color:#aaa;box-shadow:none}
#btn-clear,.btn-clear-account,#stoly-save-check{width:100%;height:36px;background:transparent;border:1px solid #d0d0d0;color:#999;font-size:13px;font-weight:700;letter-spacing:1px;border-radius:8px;cursor:pointer;transition:all .15s;margin-bottom:4px}
#btn-clear:hover,.btn-clear-account:hover{border-color:#c0392b;color:#c0392b;background:#fdf0f0}
#stoly-save-check:hover{border-color:#4E6432;color:#4E6432;background:#f2f6ee}

/* SPOLOČNÉ */
.panel-header{display:flex;align-items:center;justify-content:space-between;padding:0 18px;height:56px;background:#f8f8f8;border-bottom:1px solid #e0e0e0;font-size:18px;font-weight:700;flex-shrink:0}
.search-bar{padding:10px 14px;background:#fff;border-bottom:1px solid #ebebeb;flex-shrink:0}
.search-bar input{width:100%;padding:10px 14px;background:#f8f8f8;border:2px solid #e0e0e0;border-radius:8px;color:#1a1a1a;font-size:16px}
.search-bar input:focus{outline:none;border-color:#4E6432;background:#fff}
.scrollable{flex:1;overflow-y:auto}
/* ═══ DIZAJNOVÉ ŠTANDARDY — JEDINÝ ZDROJ PRAVDY PRE TLAČIDLÁ A INPUTY ═══
   Nové tlačidlá/inputy VŽDY používajú tieto triedy. Žiadne ad-hoc inline rozmery
   (width/height/font-size) na tlačidlách a inputoch. Detaily v CLAUDE.md.
   .btn-primary-lg 56px/17px  — hlavné akcie (VYÚČTOVAŤ, Generovať PDF, Uložiť formulára)
   .btn-primary    48px/16px  — bežné akcie (+ Nový, Export XLSX, Archivovať)
   .btn-secondary  48px/16px  — Zrušiť a sekundárne akcie
   .btn-sm         40px/14px  — akcie v riadkoch zoznamov (Upraviť, Zmazať, PDF)
   .btn-danger / .btn-danger-sm — rozmery ako primary / sm, červené
   .input-std      44px/16px  — všetky inputy, selecty, search bary
   .label-std      14px       — popisky nad inputmi                                */
.btn-primary-lg,.btn-primary,.btn-secondary,.btn-danger,.btn-danger-sm,.btn-sm{border-radius:8px;cursor:pointer;white-space:nowrap;transition:all .2s;font-family:inherit}
.btn-primary-lg{height:56px;padding:0 22px;background:#4E6432;border:none;color:#fff;font-size:17px;font-weight:700}
.btn-primary-lg:hover:not(:disabled){background:#3d5028}
.btn-primary{height:48px;padding:0 20px;background:#4E6432;border:none;color:#fff;font-size:16px;font-weight:700}
.btn-primary:hover:not(:disabled){background:#3d5028}
.btn-secondary{height:48px;padding:0 20px;background:#fff;border:2px solid #d0d0d0;color:#444;font-size:16px;font-weight:600}
.btn-secondary:hover:not(:disabled){border-color:#888;color:#1a1a1a}
.btn-danger{height:48px;padding:0 20px;background:#c0392b;border:none;color:#fff;font-size:16px;font-weight:700}
.btn-danger:hover:not(:disabled){background:#a93226}
/* .btn-sm — akcie v riadkoch zoznamov. Platí aj ako modifikátor `.btn-primary.sm` (staršie volania). */
.btn-sm,.btn-primary.sm,.btn-secondary.sm,.btn-danger.sm,.btn-danger-sm{height:40px;padding:0 14px;font-size:14px}
.btn-sm{background:#4E6432;border:none;color:#fff;font-weight:700}
.btn-sm:hover:not(:disabled){background:#3d5028}
.btn-danger-sm{background:#c0392b;border:none;color:#fff;font-weight:700}
.btn-danger-sm:hover:not(:disabled){background:#a93226}
.btn-primary-lg:disabled,.btn-primary:disabled,.btn-secondary:disabled,.btn-danger:disabled,.btn-sm:disabled,.btn-danger-sm:disabled{opacity:.45;cursor:not-allowed}
/* .input-std — všetky inputy, selecty, textarey a search bary */
.input-std{height:44px;padding:10px 14px;font-size:16px;background:#fff;border:2px solid #e0e0e0;border-radius:8px;color:#1a1a1a;font-family:inherit;transition:border-color .2s}
.input-std:focus{outline:none;border-color:#4E6432}
textarea.input-std{height:auto;min-height:64px;resize:vertical}
/* ═══ VITIS CHECKBOX — jednotný zelený custom checkbox (nahrádza surový browser default) ═══
   Zelený filled s bielou fajkou, zaoblené rohy, 22px box. Touch klik: obal do .vitis-check-lbl (44px). */
.vitis-check{appearance:none;-webkit-appearance:none;width:22px;height:22px;min-width:22px;border:2px solid #b8b8b8;border-radius:6px;background:#fff;cursor:pointer;position:relative;flex-shrink:0;vertical-align:middle;transition:background .12s,border-color .12s;margin:0;box-sizing:border-box;padding:0}
.vitis-check:hover{border-color:#4E6432}
.vitis-check:checked{background:#4E6432;border-color:#4E6432}
.vitis-check:checked::after{content:"";position:absolute;left:6px;top:2px;width:5px;height:10px;border:solid #fff;border-width:0 2.5px 2.5px 0;transform:rotate(45deg)}
.vitis-check:indeterminate{background:#4E6432;border-color:#4E6432}
.vitis-check:indeterminate::after{content:"";position:absolute;left:4px;top:8px;width:10px;height:2.5px;background:#fff;border-radius:1px}
.vitis-check:focus-visible{outline:2px solid #a9c48a;outline-offset:1px}
.vitis-check:disabled{opacity:.45;cursor:not-allowed}
.vitis-check-lbl{display:inline-flex;align-items:center;gap:8px;min-height:44px;cursor:pointer;font-size:14px;color:#444}
/* .label-std — popisky nad inputmi */
.label-std{display:block;font-size:14px;color:#666;text-transform:uppercase;letter-spacing:.5px;margin-bottom:5px}
.btn-ghost{height:38px;padding:0 12px;background:transparent;border:1px solid #d0d0d0;color:#666;font-size:14px;border-radius:6px;cursor:pointer;transition:all .15s;white-space:nowrap}
.btn-ghost:hover{border-color:#4E6432;color:#4E6432}
/* Jednotná ceruzka v kartách profilu (partner aj zákazník): 32×32px klik, ikona 16px. */
.card-edit-pencil{width:32px;height:32px;min-height:32px;flex-shrink:0;padding:0;display:inline-flex;align-items:center;justify-content:center;font-size:16px;line-height:1;background:transparent;border:1px solid transparent;border-radius:6px;color:#4E6432;cursor:pointer;transition:all .15s}
.card-edit-pencil:hover{background:#f0f5ed;border-color:#dbe6d0}
.btn-ghost.del{border-color:#f0c0bb;color:#c0392b}
.btn-ghost.del:hover{background:#fdf0f0;border-color:#c0392b}
.form-panel{padding:18px;overflow-y:auto;flex:1}
.form-group{margin-bottom:14px}
/* .form-group label/input dedia metriky .label-std / .input-std (jediný zdroj pravdy). */
.form-group label{display:block;font-size:14px;color:#666;margin-bottom:5px;text-transform:uppercase;letter-spacing:.5px}
.form-group input,.form-group select,.form-group textarea{width:100%;height:44px;padding:10px 14px;background:#fff;border:2px solid #e0e0e0;border-radius:8px;color:#1a1a1a;font-size:16px;transition:border-color .2s;font-family:inherit}
.form-group textarea{resize:vertical;height:auto;min-height:64px}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#4E6432}
.form-actions{display:flex;gap:8px;flex-wrap:wrap}
.empty-state{padding:40px 18px;text-align:center;color:#bbb;font-size:17px}
.vat-hint{padding:4px 0 2px;font-size:14px;color:#666}
.vat-hint strong{color:#4E6432;font-size:16px}
.form-row{display:flex;gap:8px}
.form-row .form-group{flex:1}
.section-lbl{font-size:13px;font-weight:700;color:#999;text-transform:uppercase;letter-spacing:1px;margin:12px 0 8px}
/* Inline B2B partner formulár — 2-stĺpcový grid vo využitom priestore detail panelu (žiadny modal). */
.cf-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 28px;align-items:start}
.cf-grid .section-lbl:first-child{margin-top:0}
@media(max-width:1200px){.cf-grid{grid-template-columns:1fr}}
/* Pod 1200px: profil partnera (zoznam + detail) sa poskladá pod seba — zoznam hore (kompaktný),
   detail dole. Cieľový hardvér (1366px+) ostáva 2-stĺpcový; toto je poistka proti orezaniu. */
@media(max-width:1200px){
    #crm-2col{flex-direction:column}
    .crm-list-col{width:100%;max-width:none;min-width:0;border-right:none;border-bottom:2px solid #e0e0e0;max-height:34vh}
    .crm-detail-col{min-width:0}
}
#crm-form-footer{display:none;flex-shrink:0;gap:10px;align-items:center;padding:12px 24px;background:#fff;border-top:2px solid #e0e0e0;box-shadow:0 -2px 10px rgba(0,0,0,.05)}
#crm-form-footer.show{display:flex}
/* CRM redesign — 340px list + flex detail */
#section-crm{flex-direction:column}
.crm-list-col{width:340px;min-width:320px;max-width:360px;border-right:2px solid #e0e0e0;background:#fafafa;display:flex;flex-direction:column;overflow:hidden;flex-shrink:0}
.crm-detail-col{flex:1;min-width:800px;background:#f6f6f6;display:flex;flex-direction:column;overflow:hidden}
.crm-list-item{padding:10px 12px;border-bottom:1px solid #f0f0f0;cursor:pointer;transition:background .12s;border-left:4px solid transparent;background:#fff}
.crm-list-item:hover{background:#f5f8f3}
.crm-list-item.sel{border-left-color:#4E6432;background:#f5f8f3}
.crm-list-firma{font-size:14px;font-weight:700;color:#1a1a1a;line-height:1.25}
.crm-list-trasa{font-size:11px;color:#888;margin-top:2px}
.crm-list-meta{display:flex;align-items:center;justify-content:space-between;margin-top:4px;gap:8px}
.crm-list-badges{display:flex;gap:4px;align-items:center;min-width:0;flex-wrap:wrap}
.crm-list-fubadge{background:#D3642B;color:#fff;font-size:10px;font-weight:700;padding:1px 6px;border-radius:3px}
/* Rezervácie — decentnejšie než follow-upy (outline, nie plná farba). */
.crm-list-rezbadge{background:#f5f8f3;color:#4E6432;border:1px solid #c8d6b8;font-size:10px;font-weight:700;padding:0 5px;border-radius:3px}
.crm-list-ltv{font-size:13px;font-weight:700;color:#4E6432}
.crm-empty-detail{display:flex;align-items:center;justify-content:center;height:100%;color:#bbb;font-size:18px;padding:20px;text-align:center}
.crm-detail-header{background:#fff;border-bottom:2px solid #e0e0e0;padding:14px 24px;display:flex;align-items:center;gap:12px;flex-shrink:0;flex-wrap:wrap}
.crm-detail-h1{font-size:24px;font-weight:800;color:#1a1a1a;line-height:1.2;margin:0}
.crm-detail-h1-sub{font-size:13px;color:#888;margin-top:2px}
.crm-detail-actions{display:flex;gap:6px;margin-left:auto;flex-wrap:wrap}
.crm-tabs{background:#fff;border-bottom:1px solid #e0e0e0;display:flex;gap:4px;padding:0 24px;flex-shrink:0}
.crm-tab{height:42px;padding:0 18px;background:transparent;border:none;color:#888;font-size:14px;font-weight:600;cursor:pointer;transition:all .15s;border-bottom:3px solid transparent;margin-bottom:-1px;border-radius:0}
.crm-tab:hover{color:#1a1a1a}
.crm-tab.active{color:#4E6432;border-bottom-color:#4E6432;font-weight:700}
.crm-tab-content{padding:24px}
.crm-cards-grid{display:grid;grid-template-columns:1fr;gap:16px}
@media(min-width:1200px){.crm-cards-grid{grid-template-columns:1fr 1fr}}
.crm-card{background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:20px;box-shadow:0 1px 4px rgba(0,0,0,.06)}
.crm-card-title{font-size:11px;font-weight:700;color:#999;text-transform:uppercase;letter-spacing:.8px;margin-bottom:12px;display:flex;align-items:center;justify-content:space-between}
.crm-card-row{display:flex;gap:10px;padding:5px 0;font-size:16px;align-items:center;line-height:1.35;min-height:34px}
.crm-card-lbl{color:#888;width:140px;min-width:140px;font-size:13px;flex-shrink:0}
.crm-card-val{color:#1a1a1a;flex:1;word-break:break-word;font-size:16px}
.crm-card-val.big{font-size:18px;font-weight:800}
.crm-chip{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:4px 14px;border:1px solid #d0d8c8;background:#f5f8f3;color:#4E6432;border-radius:18px;font-size:14px;font-weight:600;cursor:pointer;transition:background .15s}
.crm-chip:hover{background:#eaf0e2}
.crm-chip.plain{cursor:default;border-color:#e0e0e0;background:#f6f6f6;color:#555}
.crm-inline-input{height:40px;padding:0 10px;border:2px solid #e0e0e0;border-radius:6px;font-size:15px}
.crm-inline-input:focus{border-color:#4E6432;outline:none}
.crm-fup-highlight{animation:crmFupPulse 2.2s ease-out}
@keyframes crmFupPulse{0%{background:#fff7cc}30%{background:#fff7cc}100%{background:transparent}}
#notif-bell.pulse svg{animation:notifPulse 1.4s ease-in-out infinite;transform-origin:top center}
@keyframes notifPulse{0%{transform:rotate(0)}15%{transform:rotate(12deg)}30%{transform:rotate(-10deg)}45%{transform:rotate(8deg)}60%{transform:rotate(-6deg)}75%{transform:rotate(0)}100%{transform:rotate(0)}}
.notif-item{display:flex;gap:10px;padding:10px 8px;border-radius:8px;cursor:pointer;align-items:flex-start;transition:background .12s}
.notif-item:hover{background:#f5f8f3}
.notif-group-title{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.6px;margin:12px 6px 4px}
.notif-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0;margin-top:5px}
.notif-snooze{font-size:11px;color:#888;border:1px solid #d0d0d0;background:#fff;border-radius:6px;padding:3px 8px;min-height:32px;cursor:pointer;white-space:nowrap}
.notif-snooze:hover{border-color:#4E6432;color:#4E6432}
.info-tip{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:#c8d2bb;color:#3d5028;font-size:12px;font-weight:700;font-style:normal;cursor:help;vertical-align:middle;margin-left:5px;line-height:1;flex-shrink:0}
#global-tooltip{position:fixed;z-index:5000;background:#333;color:#fff;font-size:13px;font-weight:400;line-height:1.4;padding:8px 12px;border-radius:6px;max-width:300px;white-space:normal;text-align:left;box-shadow:0 4px 14px rgba(0,0,0,.3);pointer-events:none;display:none}
.crm-seg{flex:0 0 auto;min-width:130px;height:48px;padding:0 22px;border:2px solid #e0e0e0;background:#fff;color:#555;font-size:15px;font-weight:700;border-radius:8px;cursor:pointer;transition:all .15s}
.crm-seg:hover{border-color:#c8d2bb}
.crm-seg.active{background:#4E6432;border-color:#4E6432;color:#fff}
.crm-save-ind{font-size:11px;color:#4E6432;font-weight:700;margin-left:8px;opacity:0;transition:opacity .25s}
.crm-save-ind.show{opacity:1}
.crm-fup-row{background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:10px 12px;margin-bottom:8px;display:flex;align-items:flex-start;gap:10px;box-shadow:0 1px 3px rgba(0,0,0,.04)}
.crm-fup-row.done{opacity:.5;text-decoration:line-through}
.crm-fup-row.done .crm-fup-note{text-decoration:line-through}
.crm-fup-date{font-size:12px;color:#888;min-width:90px;font-weight:600}
.crm-fup-cat{font-size:16px}
.crm-fup-note{flex:1;font-size:14px;color:#1a1a1a}
.crm-fup-note-input{width:100%;padding:6px 8px;border:1px solid transparent;border-radius:4px;font-size:14px;font-family:inherit;background:transparent}
.crm-fup-note-input:hover{border-color:#e0e0e0;background:#fafafa}
.crm-fup-note-input:focus{border-color:#4E6432;background:#fff;outline:none}
/* Reťaz follow-upov — SVG ikona (žiadne emoji). Klik = história reťazca. */
.fup-chain-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;min-height:32px;padding:0;border:1px solid #c8d6b8;background:#f5f8f3;color:#4E6432;border-radius:6px;cursor:pointer;flex-shrink:0;transition:all .15s}
.fup-chain-btn:hover{background:#eaf0e2;border-color:#4E6432}
.fup-chain-btn svg{width:15px;height:15px;display:block}
.fup-quote{border-left:3px solid #c8d6b8;background:#f5f8f3;padding:8px 12px;margin-bottom:10px;border-radius:0 6px 6px 0}
.fup-quote-lbl{font-size:11px;font-weight:700;color:#4E6432;text-transform:uppercase;letter-spacing:.5px;margin-bottom:3px}
.fup-quote-txt{font-size:13px;color:#555;font-style:italic;line-height:1.4}
.fup-chain-step{display:flex;gap:12px;padding:10px 0;border-bottom:1px solid #f0f0f0}
.fup-chain-step:last-child{border-bottom:none}
.fup-chain-dot{width:10px;height:10px;border-radius:50%;background:#4E6432;flex-shrink:0;margin-top:5px}
.fup-chain-dot.done{background:#c8d6b8}
.fup-chain-dot.cur{box-shadow:0 0 0 3px rgba(78,100,50,.22)}
.crm-order-card{background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:0;margin-bottom:8px;box-shadow:0 1px 3px rgba(0,0,0,.04);overflow:hidden}
.crm-filter-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:0 0 16px}
.crm-filter-bar select,.crm-filter-bar input[type=text]:not(.ac-input){height:36px;padding:0 10px;border:2px solid #e0e0e0;border-radius:6px;font-size:13px}
.crm-filter-bar label{display:flex;align-items:center;gap:6px;font-size:13px;color:#666;cursor:pointer}
/* ═══ ZDIEĽANÝ AUTOCOMPLETE (partner / zákazník / produkt) ═══
   Search-as-you-type + suggestions dropdown + klávesová navigácia + chip s ✕.
   Rovnaká logika ako POS customer search (ktorý sa NEMENÍ). */
.ac-wrap{position:relative;display:inline-block}
/* Input aj chip = JEDNOTNÁ výška 44px, border-box → filter bar sa po výbere nepohne ani o pixel. */
.ac-input{height:44px;padding:0 30px 0 12px;border:2px solid #e0e0e0;border-radius:6px;font-size:15px;background:#fff;color:#1a1a1a;font-family:inherit;width:180px;box-sizing:border-box}
.ac-input:focus{outline:none;border-color:#4E6432}
.ac-input.ac-lg{font-size:16px}
.ac-clear{position:absolute;right:6px;top:50%;transform:translateY(-50%);background:none;border:none;font-size:16px;line-height:1;cursor:pointer;color:#aaa;padding:2px 4px}
.ac-clear:hover{color:#c0392b}
/* Vybraná hodnota = zelený chip (✓ meno + kompaktné ✕). VÝŠKA aj ŠÍRKA PRESNE ako input, ktorý
   nahrádza (44px, fixná šírka wrapu, border-box) → filter bar sa po výbere nepohne ani o pixel.
   Meno sa oreže ellipsis. Full variant (Cenníky) = 100%. */
.ac-chip{display:flex;align-items:center;gap:8px;height:44px;width:100%;max-width:100%;padding:0 8px 0 12px;background:#e8f5e9;border:2px solid #4E6432;border-radius:6px;box-sizing:border-box}
.ac-chip.ac-chip-full{width:100%;max-width:none}
.ac-chip-check{color:#4E6432;font-weight:900;flex-shrink:0}
.ac-chip-name{flex:1;min-width:0;font-weight:700;color:#1a1a1a;font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* Odstraňovacie tlačidlo v chipe = kompaktné ako POS disc-remove-btn (výnimka zo štandardných 48px). */
.ac-chip-clear{height:30px;padding:0 10px;background:transparent;border:1px solid #c0392b;color:#c0392b;font-size:13px;font-weight:600;border-radius:6px;cursor:pointer;flex-shrink:0;white-space:nowrap}
.ac-chip-clear:hover{background:#fdf0f0}
/* Jednotný suggestions dropdown (referencia POS účet): 2-riadkový, badge, min 44px, max 8+scroll. */
.ac-sugg-box{position:fixed;background:#fff;border:1px solid #d0d0d0;border-radius:8px;z-index:4000;max-height:360px;overflow-y:auto;display:none;box-shadow:0 6px 24px rgba(0,0,0,.2)}
.ac-sugg{min-height:44px;padding:10px 14px;cursor:pointer;border-bottom:1px solid #f0f0f0;text-align:left}
.ac-sugg:last-child{border-bottom:none}
.ac-sugg:hover,.ac-sugg.active{background:#f5f8f3}
.ac-sugg-row1{display:flex;align-items:center;gap:8px}
.ac-sugg-name{flex:1;min-width:0;font-size:15px;font-weight:600;color:#1a1a1a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ac-sugg-badge{font-size:10px;font-weight:700;padding:1px 6px;border-radius:3px;color:#fff;flex-shrink:0}
.ac-sugg-badge.b2b{background:#4E6432}
.ac-sugg-badge.b2c{background:#888}
.ac-sugg-line2{font-size:12.5px;color:#888;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ac-sugg-empty{min-height:44px;padding:10px 14px;color:#aaa;font-size:13px;font-style:italic;text-align:left}
/* Product picker (search-as-you-type) */
.pp-wrap{position:relative}
.pp-input{width:100%;padding:8px 10px;border:2px solid #e0e0e0;border-radius:6px;font-size:14px;background:#fff;color:#1a1a1a;font-family:inherit}
.pp-input:focus{outline:none;border-color:#4E6432}
.pp-input.has-selection{background:#f5f8f3;border-color:#4E6432}
/* Singleton overlay appendnutý na document.body → nikdy sa neoreže kontajnerom (position:fixed). */
.pp-sugg-box{position:fixed;background:#fff;border:1px solid #d0d0d0;border-radius:8px;z-index:4000;max-height:280px;overflow-y:auto;display:none;box-shadow:0 6px 24px rgba(0,0,0,.2)}
.pp-sugg{padding:8px 10px;cursor:pointer;border-bottom:1px solid #f0f0f0;font-size:14px}
.pp-sugg:last-child{border-bottom:none}
.pp-sugg:hover,.pp-sugg.active{background:#f5f8f3}
.pp-sugg-empty{padding:8px 10px;color:#aaa;font-size:13px;font-style:italic}
.coll-block{margin-bottom:10px;border:1px solid #e0e0e0;border-radius:8px;overflow:hidden;background:#fff}
.coll-header{display:flex;align-items:center;gap:8px;padding:10px 12px;background:#f8f8f8;cursor:pointer;user-select:none;transition:background .12s}
.coll-header:hover{background:#f0f4ec}
.coll-title{font-size:13px;font-weight:700;color:#4E6432;text-transform:uppercase;letter-spacing:.8px}
.coll-count{font-size:13px;color:#888;font-weight:400;flex:1}
.coll-chev{font-size:11px;color:#888}
.coll-body{padding:10px 12px;background:#fff;border-top:1px solid #f0f0f0}

/* ZÁKAZNÍCI */
#section-zakaznici{flex-direction:column}
.cust-list-col{width:380px;min-width:280px;display:flex;flex-direction:column;border-right:2px solid #e0e0e0;background:#fff}
.cust-detail-col{flex:1;display:flex;flex-direction:column;overflow:hidden;background:#f8f8f8}
.cust-list-item{padding:12px 18px;border-bottom:1px solid #f0f0f0;cursor:pointer;transition:background .15s}
.cust-list-item:hover{background:#f8f8f8}
.cust-list-item.sel{background:#f5f8f3;border-left:4px solid #4E6432;padding-left:14px}
.cust-list-item .cl-name{font-size:17px;font-weight:600}
.cust-list-item .cl-sub{font-size:14px;color:#999;margin-top:2px}
.info-box{background:#fff;border:1px solid #e8e8e8;border-radius:10px;padding:14px;margin-bottom:14px}
.info-row{display:flex;gap:12px;margin-bottom:8px;font-size:17px;align-items:center}
.info-row:last-child{margin-bottom:0}
.info-lbl{color:#999;min-width:70px;font-size:14px}

/* PREHĽAD */
#section-prehlad{flex-direction:column}
#ov-filter-bar{display:flex;align-items:center;gap:8px;padding:8px 14px;background:#fff;border-bottom:1px solid #e8e8e8;flex-shrink:0;flex-wrap:wrap}
/* UNIFIED FILTER STYLES */
.filter-bar{display:flex;align-items:center;gap:8px;padding:8px 14px;background:#fff;border-bottom:1px solid #e8e8e8;flex-shrink:0;flex-wrap:wrap}
.filter-lbl,.ov-filter-lbl{font-size:14px;color:#888;font-weight:600;white-space:nowrap}
.filter-btn,.ov-filter-btn{height:36px;padding:0 14px;background:#fff;border:1px solid #d0d0d0;color:#555;font-size:14px;font-weight:600;border-radius:6px;cursor:pointer;transition:all .15s;white-space:nowrap}
.filter-btn:hover,.ov-filter-btn:hover{background:#f0f4ec;border-color:#4E6432;color:#4E6432}
.filter-btn.active,.ov-filter-btn.active{background:#4E6432;border:1px solid #4E6432;color:#fff}
/* .ac-input je VÝNIMKA — autocomplete input má vždy 44px (rovnako ako .ac-chip), inak by sa
   filter bar po výbere (input 36px → chip 44px) posunul. Preto :not(.ac-input). */
.filter-input,.filter-bar input[type=text]:not(.ac-input),.filter-bar input[type=date],.filter-bar select{height:36px;padding:0 12px;background:#fff;border:1px solid #d0d0d0;border-radius:6px;color:#1a1a1a;font-size:14px;transition:border-color .15s}
.filter-input:focus,.filter-bar input:focus,.filter-bar select:focus{outline:none;border-color:#4E6432;box-shadow:0 0 0 2px rgba(78,100,50,.1)}
.filter-clear{height:36px;padding:0 12px;background:transparent;border:1px solid #d0d0d0;color:#888;font-size:14px;border-radius:6px;cursor:pointer}
.filter-clear:hover{border-color:#888;color:#555}
#ov-custom-wrap{display:none;align-items:center;gap:6px;flex-wrap:wrap}
#ov-custom-wrap.show{display:flex}
#ov-custom-wrap input[type=date]{height:38px;padding:0 10px;background:#fff;border:2px solid #e0e0e0;border-radius:8px;color:#1a1a1a;font-size:14px}
.ov-apply-btn{height:38px;padding:0 14px;background:#4E6432;border:none;color:#fff;font-size:14px;font-weight:700;border-radius:8px;cursor:pointer}
.ov-apply-btn:hover{background:#3d5028}
#ov-tab-bar{display:flex;background:#f8f8f8;padding:8px 18px 0;gap:4px;border-bottom:2px solid #e0e0e0;flex-shrink:0}
.ov-tab{height:42px;padding:0 20px;background:transparent;border:none;border-radius:8px 8px 0 0;color:#888;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s;border-bottom:3px solid transparent;margin-bottom:-2px}
.ov-tab:hover{color:#1a1a1a;background:#f0f0f0}
.ov-tab.active{color:#4E6432;border-bottom-color:#4E6432;background:#fff;font-weight:700}
#prehlad-scroll{flex:1;overflow-y:auto;background:#f2f2f2}
.overview-wrap{padding:20px;max-width:1400px;width:100%}
.ov-period-title{font-size:16px;font-weight:700;color:#333;margin-bottom:10px}
.ov-stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px;margin-bottom:14px}
.ov-stat-card{background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:10px 14px}
.ov-sc-lbl{font-size:11px;color:#888;text-transform:uppercase;letter-spacing:.8px;font-weight:700}
.ov-sc-val{font-size:22px;font-weight:900;margin-top:2px;line-height:1.15}
.ov-sc-val.wine{color:#4E6432}
.ov-sc-sub{font-size:11px;color:#aaa;margin-top:2px}
.ov-sec-title{font-size:12px;font-weight:700;color:#888;text-transform:uppercase;letter-spacing:.8px;margin-bottom:8px;padding-bottom:4px;border-bottom:2px solid #e0e0e0}
.ov-table{width:100%;border-collapse:collapse;background:#fff;border-radius:8px;overflow:hidden;border:1px solid #e0e0e0}
.ov-table th{background:#f0f0f0;padding:7px 12px;font-size:11px;font-weight:700;text-align:left;color:#666;text-transform:uppercase;border-bottom:2px solid #e0e0e0}
.ov-table th.r{text-align:right}
.ov-table td{padding:6px 12px;border-bottom:1px solid #f0f0f0;font-size:13px}
.ov-table td.r{text-align:right}
.ov-table tr:last-child td{border-bottom:none}
.ov-table tbody tr:nth-child(odd) td{background:#fff}
.ov-table tbody tr:nth-child(even) td{background:#f8f8f8}
.ov-table tr:hover td{background:#f5f8f3 !important}
.ov-table .bold{font-weight:700}.ov-table .wine{color:#4E6432;font-weight:700}
.ov-table .rank{width:32px;text-align:center;font-weight:900;color:#4E6432;font-size:17px}
.pay-cards{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.pay-card{background:#fff;border:1px solid #e0e0e0;border-radius:10px;padding:16px 18px}
.pay-card-lbl{font-size:13px;color:#888;text-transform:uppercase;letter-spacing:1px;font-weight:700;margin-bottom:6px}
.pay-card-count{font-size:14px;color:#666;margin-bottom:3px}
.pay-card-nov{font-size:16px;color:#555}
.pay-card-vat{font-size:22px;font-weight:900;color:#4E6432;margin-top:3px}

/* ═══ KARTA ZÁZNAMU — ZDIEĽANÁ SADA TRIED ═══
   Jedna sada pre B2C Históriu (renderSaleEntry) aj B2B Objednávky (_crmRenderAllOrders).
   Rozdiel medzi views je LEN v dátach (SF/KROS doklad, badge POS/NEOFIC./VZORKY),
   nikdy nie v štruktúre, fontoch ani paddingoch. Nové stĺpce pridávaj sem, nie inline. */
.sale-entry{background:#fff;border:1px solid #e8e8e8;border-radius:8px;margin-bottom:6px;overflow:hidden}
/* Hlavička riadku = CSS GRID s PEVNÝMI stĺpcami → údaje sú na rovnakých x-pozíciách vo
   všetkých riadkoch bez ohľadu na dĺžku obsahu a počet tlačidiel. Sada stĺpcov podľa modifikátora:
   .rec-hist  (B2C História)   Číslo | Dátum+čas | Zákazník | Badges | Suma | Akcie
   .rec-order (B2B Objednávky) Číslo | Dátum | Partner | Badges(stav·dodanie·SF, horizontálne) | Doklad | Suma | Akcie
   PRAVIDLÁ:
   - Každá bunka sa renderuje VŽDY; prázdna hodnota = sivé "—" (.se-dash), nikdy vynechaný element.
   - Stĺpec Akcie má PEVNÚ šírku a pevné sloty — POS riadok (bez Upraviť) vykreslí prázdny
     placeholder, takže Vytlačiť aj Zmazať sú na rovnakej x-pozícii ako v manuálnych riadkoch.
     Bez toho `auto` šírka kolísala podľa počtu tlačidiel a posúvala aj sumy. */
.se-header{display:grid;align-items:center;gap:10px;padding:10px 14px;cursor:pointer;transition:background .1s}
.sale-entry.rec-hist .se-header{grid-template-columns:140px 150px minmax(0,1.4fr) minmax(0,1fr) 150px 200px}
.sale-entry.rec-order .se-header{grid-template-columns:140px 110px minmax(0,1.2fr) minmax(0,1fr) 130px 150px 240px}
/* .rec-fup (centrálny prehľad follow-upov): checkbox | dátum | partner | kategória | poznámka | badges | reťaz */
.sale-entry.rec-fup .se-header{grid-template-columns:24px 110px minmax(0,1fr) 110px minmax(0,1.6fr) 130px 40px}
.se-note{font-size:14px;color:#555;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* Akcie v objednávkach: 3 pevné sloty (Vytlačiť | Upraviť-alebo-placeholder | Zmazať). */
.sale-entry.rec-order .se-btns{display:grid;grid-template-columns:76px 76px 76px;gap:4px;justify-content:end}
.sale-entry.rec-order .se-btns .btn-ghost{padding:0 8px;width:100%}
/* SF-mikrofix-2: stĺpec Doklad (SF FA/DL, historicky KROS) ostáva viditeľný vo VŠETKÝCH
   šírkach — grid má 7 stĺpcov aj pod 1366px, zúžia sa len fr stĺpce Partner a Badges.
   Badges cell má flex-wrap → na úzkom (1280px) sa štítky smú zalomiť na 2 riadky, číslo
   dokladu musí ostať vidno. Nad 1366px riadok NESMIE zalamovať. (Stará media query, ktorá
   pod 1366px skrývala .se-ref, platila pre KROS stĺpce a bola odstránená.) */
/* .rec-stock (Sklad — doklady): Číslo | Dátum | Typ | Dôvod+poznámka | Množstvo | Akcie (1 pevný slot). */
.sale-entry.rec-stock .se-header{grid-template-columns:150px 110px 120px minmax(0,1fr) 150px 90px}
.sale-entry.rec-stock .se-btns{display:grid;grid-template-columns:80px;gap:4px;justify-content:end}
.sale-entry.rec-stock .se-btns .btn-ghost{padding:0 8px;width:100%}
/* .rec-fuel (Vozidlá — tankovanie): Dátum | Vozidlo | Litre | Suma bez DPH | Poznámka | Akcie (2 sloty). */
.sale-entry.rec-fuel .se-header{grid-template-columns:110px minmax(0,1.3fr) 90px 130px minmax(0,1fr) 160px}
.sale-entry.rec-fuel .se-btns{display:grid;grid-template-columns:76px 76px;gap:4px;justify-content:end}
/* .rec-vstk (Vozidlá — STK): Vozidlo | STK dátum | Stav | Akcie. */
.sale-entry.rec-vstk .se-header{grid-template-columns:minmax(0,1.6fr) 140px 130px 140px}
/* Nerozkliknuteľné karty (tankovanie, STK) — bez kurzora a hoveru. */
.sale-entry.rec-static .se-header{cursor:default}
.sale-entry.rec-static .se-header:hover{background:transparent}
/* Záporná zásoba — VŽDY červeno (zoznam, karta, expand). */
.stock-neg{color:#c0392b;font-weight:700}
.se-header:hover{background:#f8f8f8}
.se-num,.se-time,.se-cust,.se-ref{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.se-num{font-size:14px;color:#4E6432;font-weight:700}
.se-time{font-size:14px;color:#999}
.se-cust{font-size:15px;font-weight:500}
.se-pay{font-size:13px;color:#fff;border-radius:4px;padding:2px 8px;font-weight:700;white-space:nowrap}
.se-pay.cash{background:#2e7d32}.se-pay.card{background:#1565c0}.se-pay.transfer{background:#00695c}.se-pay.unknown{background:#888}
/* Badges majú premenlivý počet → vlastná bunka gridu, wrapujú vnútri nej. */
.se-badges{display:flex;align-items:center;gap:6px;flex-wrap:wrap;min-width:0}
/* Sumy stackované vpravo v jednej bunke (s DPH nad, bez DPH pod). */
.se-sum{display:flex;flex-direction:column;align-items:flex-end;line-height:1.25;min-width:0}
.se-amt{font-size:17px;font-weight:800;color:#4E6432;white-space:nowrap}
.se-nov{font-size:13px;color:#bbb;white-space:nowrap}
.se-btns{display:flex;gap:4px;justify-content:flex-end}
/* Sivá pomlčka pre prázdnu hodnotu — drží stĺpec. */
.se-dash{color:#bbb}
.se-detail{display:none;padding:0 14px 10px;border-top:1px solid #f0f0f0;background:#fafafa}
.se-detail.open{display:block}
.se-detail-table{width:100%;border-collapse:collapse;margin:8px 0}
.se-detail-table th{background:#f0f0f0;padding:6px 10px;font-size:12px;font-weight:700;text-align:left;color:#666;text-transform:uppercase}
.se-detail-table th.r{text-align:right}
.se-detail-table td{padding:5px 10px;border-bottom:1px solid #f0f0f0;font-size:14px}
.se-detail-table td.r{text-align:right}
.se-detail-totals{font-size:14px;color:#666;margin-top:10px;max-width:380px;margin-left:0}
.se-detail-totals .total-line{font-weight:700;color:#4E6432;font-size:15px}
.se-detail-totals .sum-row{display:flex;justify-content:space-between;gap:16px;padding:2px 0}
.se-detail-totals .sum-note{font-size:11px;color:#999;text-align:left;margin-top:-1px}
/* Meta riadky pod sumárom (hmotnosť, splatnosť, KROS ref.) — vľavo, pod blokom. */
.se-detail-meta{font-size:13px;color:#666;margin-top:8px;max-width:380px}
.se-detail-meta .sum-row{display:flex;justify-content:space-between;gap:16px;padding:2px 0}
/* .se-ref — referenčné čísla v hlavičke riadku (č. obj./faktúry KROS v B2B Objednávkach). */
.se-ref{font-size:13px;color:#888}
/* .se-summary — sumárny riadok nad zoznamom (počet + Σ sumy). */
.se-summary{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.se-summary-sums{display:flex;gap:14px;align-items:baseline;flex-wrap:wrap}
.se-detail-actions{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
/* Obsah oboch views ide na CELÚ ŠÍRKU obrazovky — žiadny max-width. */
.records-wrap{padding:16px 24px;width:100%}

/* PRODUKTY */
#section-produkty{flex-direction:row}
.prod-list-col{flex:1;display:flex;flex-direction:column;border-right:2px solid #e0e0e0;overflow:hidden}
.prod-form-col{width:420px;display:flex;flex-direction:column;background:#f8f8f8}
table.prod-table{width:100%;border-collapse:collapse}
table.prod-table thead th{background:#f0f0f0;padding:10px 10px;font-size:12px;font-weight:700;text-align:left;color:#666;text-transform:uppercase;position:sticky;top:0;z-index:1;border-bottom:2px solid #e0e0e0;white-space:nowrap}
table.prod-table tbody td{padding:10px 10px;border-bottom:1px solid #f0f0f0;font-size:14px}
table.prod-table tbody tr:nth-child(odd) td{background:#fff}
table.prod-table tbody tr:nth-child(even) td{background:#f8f8f8}
table.prod-table tbody tr{cursor:pointer;transition:background .1s}
table.prod-table tbody tr:hover td{background:#f5f8f3 !important}
.cat-badge{display:inline-block;padding:3px 10px;border-radius:20px;font-size:12px;font-weight:700;color:#fff}
.dph-badge{display:inline-block;padding:2px 8px;border-radius:20px;font-size:12px;font-weight:700;background:#e8f0fe;color:#1565c0}
.stock-low{color:#c0392b;font-weight:700}
.toggle-wrap{display:flex;align-items:center;gap:10px;padding:4px 0}
.toggle-label{font-size:14px;color:#555}
.toggle{position:relative;width:52px;height:30px;flex-shrink:0;cursor:pointer}
.toggle input{opacity:0;width:0;height:0}
.toggle-slider{position:absolute;inset:0;background:#ccc;border-radius:30px;transition:all .25s}
.toggle-slider::before{content:'';position:absolute;width:24px;height:24px;left:3px;top:3px;background:#fff;border-radius:50%;transition:transform .25s;box-shadow:0 1px 3px rgba(0,0,0,.2)}
.toggle input:checked+.toggle-slider{background:#4E6432}
.toggle input:checked+.toggle-slider::before{transform:translateX(22px)}

/* DEG + CENNIKY + KASA shared */
#section-degustace,#section-cenniky{flex-direction:row}
.deg-list-col{width:380px;min-width:280px;display:flex;flex-direction:column;border-right:2px solid #e0e0e0;background:#fff}
.deg-form-col{flex:1;display:flex;flex-direction:column;overflow:hidden;background:#f8f8f8}
.deg-item{padding:12px 18px;border-bottom:1px solid #f0f0f0}
.deg-item-name{font-size:15px;font-weight:600}
.deg-item-sub{font-size:13px;color:#999;margin-top:2px}
.deg-btns{display:flex;gap:4px;margin-top:6px}
.deg-sample{display:flex;align-items:center;gap:6px;padding:8px 10px;background:#fff;border:1px solid #e8e8e8;border-radius:8px;margin-bottom:4px}
.deg-sample-num{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:13px;flex-shrink:0}
.deg-sample-info{flex:1;min-width:0}
.deg-sample-name{font-size:14px;font-weight:600}
.deg-sample-meta{font-size:12px;color:#999}
.deg-sample-btns{display:flex;gap:3px;flex-shrink:0}
.deg-sample-btns button{width:28px;height:28px;background:#f0f0f0;border:none;border-radius:6px;cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center}
.deg-sample-btns button:hover{background:#e0e0e0}
.deg-picker{max-height:180px;overflow-y:auto;border:1px solid #e0e0e0;border-radius:8px;background:#fff}
.deg-pick-item{padding:8px 12px;cursor:pointer;border-bottom:1px solid #f0f0f0;font-size:14px;display:flex;justify-content:space-between}
.deg-pick-item:hover{background:#f5f8f3}
.deg-pick-item:last-child{border-bottom:none}

/* HISTÓRIA */
#section-historia{flex-direction:column}
#hist-filter-bar{display:flex;align-items:center;gap:8px;padding:8px 14px;background:#fff;border-bottom:1px solid #e8e8e8;flex-shrink:0;flex-wrap:wrap}
#hist-filter-bar input[type=date],#hist-filter-bar input[type=text]:not(.ac-input){height:36px;padding:0 12px;background:#fff;border:1px solid #d0d0d0;border-radius:6px;color:#1a1a1a;font-size:14px}
#hist-filter-bar input[type=text]:not(.ac-input){width:160px}
#hist-filter-bar input:focus{outline:none;border-color:#4E6432;box-shadow:0 0 0 2px rgba(78,100,50,.1)}
#hist-filter-bar select{height:36px;padding:0 12px;background:#fff;border:1px solid #d0d0d0;border-radius:6px;color:#1a1a1a;font-size:14px}
#hist-filter-bar select:focus{outline:none;border-color:#4E6432}
.hist-clear-btn{height:36px;padding:0 12px;background:transparent;border:1px solid #d0d0d0;color:#888;font-size:14px;border-radius:6px;cursor:pointer}
.hist-clear-btn:hover{border-color:#888;color:#555}
#hist-scroll{flex:1;overflow-y:auto;background:#f2f2f2}

/* KASA */
#section-kasa{flex-direction:column;overflow-y:auto}
.kasa-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;margin-bottom:16px}
.kasa-card{background:#fff;border:1px solid #e0e0e0;border-radius:10px;padding:12px 14px}
.kasa-card-lbl{font-size:12px;color:#888;text-transform:uppercase;letter-spacing:.5px;font-weight:700}
.kasa-card-val{font-size:22px;font-weight:900;margin-top:4px}
.kasa-card-val.green{color:#4E6432}
.kasa-card-val.blue{color:#1565c0}
.kasa-card-sub{font-size:12px;color:#aaa;margin-top:2px}
/* H2: Očakávané v kase — hlavné kontrolné číslo, vizuálne výrazná zelená karta. */
.kasa-card.expect{background:#4E6432;border-color:#4E6432}
.kasa-card.expect .kasa-card-lbl{color:#dce8c8}
.kasa-card.expect .kasa-card-val{color:#fff;font-size:26px}
.kasa-card.expect .kasa-card-sub{color:#b8cc96}
.kasa-actions{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}
.kasa-btn{height:48px;padding:0 18px;border:none;color:#fff;font-size:15px;font-weight:700;border-radius:8px;cursor:pointer;transition:background .2s}
.kasa-btn.výber{background:#c0392b}.kasa-btn.výber:hover{background:#a93226}
.kasa-btn.vklad{background:#4E6432}.kasa-btn.vklad:hover{background:#3d5028}
.kasa-btn.kontrola{background:#1565c0}.kasa-btn.kontrola:hover{background:#0d47a1}
.kasa-btn.print{background:#555}.kasa-btn.print:hover{background:#333}
.kasa-hist-item{background:#fff;border:1px solid #e8e8e8;border-radius:8px;padding:10px 14px;margin-bottom:4px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.kasa-hist-type{font-size:12px;font-weight:700;padding:2px 8px;border-radius:4px;color:#fff;white-space:nowrap}
.kht-vyber{background:#c0392b}.kht-vklad{background:#4E6432}.kht-kontrola{background:#1565c0}.kht-trzba{background:#888}.kht-predaj{background:#4E6432}
/* História — krátky highlight po naskočení z odkazu (cashback / kasa predaj). */
@keyframes histFlash{0%{background:#fff6d6}60%{background:#fff6d6}100%{background:transparent}}
.hist-flash{animation:histFlash 1.6s ease-out}
.kasa-hist-date{font-size:13px;color:#999;min-width:110px}
.kasa-hist-amt{font-size:15px;font-weight:700;min-width:90px}
.kasa-hist-bal{font-size:13px;color:#888}
.kasa-hist-note{font-size:13px;color:#aaa;flex:1}
.kasa-diff-pos{color:#4E6432;font-weight:700}
.kasa-diff-neg{color:#c0392b;font-weight:700}
.kasa-diff-zero{color:#1565c0;font-weight:700}

/* SCROLLBAR */
::-webkit-scrollbar{width:6px;height:6px}
::-webkit-scrollbar-track{background:transparent;margin:2px 0}
::-webkit-scrollbar-thumb{background:#4E6432;border-radius:3px;opacity:.6}
::-webkit-scrollbar-thumb:hover{background:#3d5028}
*{scrollbar-width:thin;scrollbar-color:#4E6432 transparent}

/* TOAST */
#toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%) translateY(80px);background:#1a1a1a;color:#fff;padding:12px 22px;border-radius:10px;font-size:16px;font-weight:600;z-index:9999;transition:transform .3s cubic-bezier(.34,1.56,.64,1);pointer-events:none;white-space:nowrap;box-shadow:0 4px 20px rgba(0,0,0,.25)}
#toast.show{transform:translateX(-50%) translateY(0)}
#toast.success{background:#27ae60}
#toast.error{background:#c0392b}

/* MODAL */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.45);z-index:990}
.modal-box{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:#fff;border-radius:14px;padding:24px 28px;max-width:420px;width:90%;box-shadow:0 8px 40px rgba(0,0,0,.25);text-align:center;z-index:991}
/* U (bug z klikacieho testu): numpad je input-helper a musí byť NAD dialógmi dávok R/S
   (z-index 995/996) — inak sa „Uvoľniť ks" v dialógu sľúbeného tovaru nedá na dotyku zadať. */
#numpad-modal .modal-overlay{z-index:1150}
#numpad-modal .modal-box{z-index:1151}
/* Form inputs a dropdowny: vždy ľavé zarovnanie, žiadne dedenie center z modal-boxu. */
input[type=text],input[type=number],input[type=date],input[type=email],input[type=tel],input[type=search],select,textarea{text-align:left}
.pp-sugg,.pp-sugg-empty,.cust-sugg{text-align:left}
.modal-box input,.modal-box select,.modal-box textarea,.modal-box .pp-sugg,.modal-box .cust-sugg{text-align:left}
/* Modal s ľavou orientáciou (form modaly): nadradí .modal-box text-align:center */
.modal-box.modal-left{text-align:left}
.modal-title{font-size:20px;font-weight:800;color:#1a1a1a;margin-bottom:8px}
.modal-info{font-size:15px;color:#666;margin-bottom:4px}
.modal-amt{font-size:24px;font-weight:900;color:#4E6432;margin-bottom:18px}
.modal-btns{display:flex;gap:10px}
.modal-btns button{flex:1;height:50px;font-size:16px;font-weight:700;border-radius:8px;cursor:pointer;transition:all .2s}
.modal-btns .mbtn-print{background:#4E6432;border:none;color:#fff}
.modal-btns .mbtn-print:hover{background:#3d5028}
.modal-btns .mbtn-close{background:#f0f0f0;border:2px solid #d0d0d0;color:#555}
.modal-btns .mbtn-close:hover{border-color:#888;color:#1a1a1a}
.numpad-display{background:#f8f8f8;border:2px solid #e0e0e0;border-radius:10px;padding:12px 16px;font-size:28px;font-weight:900;color:#1a1a1a;text-align:right;margin-bottom:12px;min-height:52px;display:flex;align-items:center;justify-content:flex-end}
.numpad-unit{font-size:18px;color:#888;margin-left:6px;font-weight:600}
.numpad-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:12px}
.numpad-key{height:52px;background:#fff;border:2px solid #e0e0e0;border-radius:10px;font-size:22px;font-weight:700;color:#1a1a1a;cursor:pointer;transition:all .1s;display:flex;align-items:center;justify-content:center}
.numpad-key:hover{background:#f0f0f0;border-color:#bbb}
.numpad-key:active{background:#e0e0e0}

/* TOUCH KEYBOARD */
/* TOUCH KEYBOARD - compact popup */
.kb-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.3);z-index:1100}
.kb-overlay.show{display:block}
#touch-kb{display:none;position:fixed;left:50%;transform:translateX(-50%);bottom:20px;z-index:1101;max-width:600px;width:96%;background:#fff;border-radius:14px;padding:0;box-shadow:0 8px 40px rgba(0,0,0,.3);overflow:hidden}
#touch-kb.show{display:block}
.kb-header{background:#333;color:#fff;padding:10px 16px;display:flex;justify-content:space-between;align-items:center}
.kb-header-label{font-size:13px;color:#aaa;font-weight:600}
.kb-header-value{font-size:18px;font-weight:700;flex:1;text-align:right;margin-left:12px;min-height:24px;word-break:break-all}
.kb-body{padding:8px;background:#e8e8e8}
.kb-row{display:flex;gap:4px;justify-content:center;margin-bottom:4px}
.kb-key{min-width:44px;height:52px;background:#fff;border:none;border-radius:8px;font-size:19px;font-weight:600;color:#1a1a1a;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .08s;padding:0;flex:1;max-width:56px;box-shadow:0 1px 2px rgba(0,0,0,.1)}
.kb-key:hover{background:#f0f0f0}
.kb-key:active{background:#d0d0d0;transform:scale(.95)}
.kb-key.shift{background:#d0d0d0;font-size:16px;max-width:64px}
.kb-key.shift.active{background:#4E6432;color:#fff}
.kb-key.wide{max-width:80px;font-size:14px;font-weight:700}
.kb-key.xwide{max-width:none;flex:3}
.kb-key.accent{background:#4E6432;color:#fff;max-width:72px}
.kb-key.accent:hover{background:#3d5028}
.kb-key.danger{background:#c0392b;color:#fff;max-width:72px}
.kb-key.danger:hover{background:#a93226}
.kb-key.bksp{background:#f0f0f0;max-width:64px;font-size:18px}

/* OTVORENÉ STOLY */
.stoly-tile{min-height:120px;padding:14px;background:#fff;border:2px solid #e0e0e0;border-radius:10px;cursor:pointer;display:flex;flex-direction:column;justify-content:space-between;transition:all .15s;text-align:left;font:inherit;color:#1a1a1a;position:relative}
.stoly-tile:hover{border-color:#4E6432;background:#f6f9f4;transform:translateY(-2px);box-shadow:0 4px 14px rgba(78,100,50,.15)}
.stoly-tile.occupied{border-color:#D3642B;background:#fff7ee}
.stoly-tile.occupied:hover{border-color:#D3642B;background:#ffeed7;box-shadow:0 4px 14px rgba(211,100,43,.18)}
.stoly-tile-name{font-size:20px;font-weight:800;color:#1a1a1a;word-break:break-word}
.stoly-tile-status{font-size:13px;color:#888;margin-top:4px}
.stoly-tile-status.occupied{color:#D3642B;font-weight:700}
.stoly-tile-total{font-size:20px;font-weight:900;color:#4E6432;margin-top:6px}
.stoly-tile-edit{position:absolute;top:8px;right:8px;display:flex;gap:4px}
.stoly-tile-edit button{width:30px;height:30px;border:1px solid #d0d0d0;background:#fff;border-radius:6px;cursor:pointer;font-size:13px;display:flex;align-items:center;justify-content:center}
.stoly-tile-edit button:hover{border-color:#4E6432}
.stoly-tile-edit button.del{color:#c0392b;border-color:#f0c0bb}
.stoly-tile-edit button.del:hover{background:#fdf0f0;border-color:#c0392b}

/* PRESETS EDITOR MODAL */
.preset-editor-tabs{display:flex;gap:6px;margin-bottom:14px;border-bottom:2px solid #e8e8e8}
.preset-editor-tab{flex:1;padding:10px 14px;background:transparent;border:none;border-bottom:3px solid transparent;margin-bottom:-2px;cursor:pointer;font-size:14px;font-weight:700;color:#888}
.preset-editor-tab.active{color:#4E6432;border-bottom-color:#4E6432}
.preset-editor-section{text-align:left;font-size:15px;max-height:55vh;overflow-y:auto}
.preset-warn{background:#fff8ee;border:1px solid #f0d090;border-radius:8px;padding:8px 12px;font-size:13px;color:#8a6d3b;margin-bottom:12px;text-align:left;line-height:1.4}
