/* ================================================================
   KAPPABEL ADMIN — style.css
   ================================================================ */
:root{
  --bg:#f1f5f9;
  --card:#ffffff;
  --border:#e2e8f0;
  --text:#0f172a;
  --muted:#64748b;
  --primary:#2563eb;
  --primary-dark:#1d4ed8;
  --primary-soft:#eff6ff;
  --accent:#f59e0b;
  --success:#16a34a;
  --success-soft:#f0fdf4;
  --danger:#dc2626;
  --danger-soft:#fef2f2;
  --warning:#d97706;
  --warning-soft:#fffbeb;
  --info:#0891b2;
  --info-soft:#ecfeff;
  --violet:#7c3aed;
  --violet-soft:#f5f3ff;
  --sidebar-bg:#0f172a;
  --sidebar-hover:#1e293b;
  --sidebar-text:#94a3b8;
  --sidebar-active:#ffffff;
  --radius:12px;
  --radius-sm:8px;
  --shadow:0 1px 3px rgba(15,23,42,.08),0 1px 2px rgba(15,23,42,.04);
  --shadow-lg:0 10px 30px rgba(15,23,42,.18);
  --font:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{font-family:var(--font);background:var(--bg);color:var(--text);font-size:14px;line-height:1.5}
.hidden{display:none !important}
button{font-family:inherit;cursor:pointer}
input,select,textarea{font-family:inherit;font-size:14px}
a{color:var(--primary);text-decoration:none}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:6px;border:2px solid transparent;background-clip:content-box}
::-webkit-scrollbar-track{background:transparent}

/* ============ LOGIN ============ */
.login-screen{
  min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;
  background:radial-gradient(1200px 800px at 10% -10%,#1e3a8a 0%,transparent 50%),
             radial-gradient(1000px 700px at 110% 110%,#0e7490 0%,transparent 50%),
             #0f172a;
}
.login-card{
  width:100%;max-width:420px;background:var(--card);border-radius:16px;
  box-shadow:0 25px 60px rgba(0,0,0,.45);padding:36px 34px 26px;
  animation:loginIn .45s cubic-bezier(.2,.9,.3,1.2);
}
@keyframes loginIn{from{opacity:0;transform:translateY(18px) scale(.97)}to{opacity:1;transform:none}}
.login-brand{display:flex;align-items:center;gap:14px;margin-bottom:26px}
.login-logo{
  width:52px;height:52px;border-radius:14px;flex:none;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,var(--primary),#0ea5e9);color:#fff;
}
.login-logo svg{width:28px;height:28px}
.login-brand-text h1{font-size:19px;font-weight:800;letter-spacing:-.2px}
.login-brand-text p{color:var(--muted);font-size:13px}
.login-card .field{margin-bottom:16px}
.pass-wrap{position:relative}
.pass-wrap input{width:100%;padding-right:44px}
.pass-toggle{
  position:absolute;right:6px;top:50%;transform:translateY(-50%);background:none;border:none;
  color:var(--muted);padding:6px;border-radius:6px;display:flex;
}
.pass-toggle:hover{color:var(--text);background:var(--bg)}
.pass-toggle svg{width:18px;height:18px}
.remember-check{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:13px;margin:-4px 0 16px;cursor:pointer;user-select:none}
.remember-check input{width:15px;height:15px;accent-color:var(--primary)}
.login-error{
  background:var(--danger-soft);border:1px solid #fecaca;color:#b91c1c;border-radius:var(--radius-sm);
  padding:10px 12px;font-size:13px;margin-bottom:14px;display:flex;gap:8px;align-items:flex-start;
}
.login-foot{
  margin-top:20px;text-align:center;color:var(--muted);font-size:11.5px;
  display:flex;align-items:center;justify-content:center;gap:6px;
}
.login-foot svg{width:13px;height:13px}
.btn-block{width:100%;justify-content:center}

/* ============ APP SHELL ============ */
.app{display:flex;min-height:100vh}
.sidebar{
  width:248px;flex:none;background:var(--sidebar-bg);color:var(--sidebar-text);
  display:flex;flex-direction:column;position:fixed;top:0;bottom:0;left:0;z-index:60;
  transition:transform .25s ease;
}
.side-brand{display:flex;align-items:center;gap:12px;padding:20px 18px 18px;border-bottom:1px solid rgba(148,163,184,.14)}
.side-logo{
  width:40px;height:40px;border-radius:11px;flex:none;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,var(--primary),#0ea5e9);color:#fff;
}
.side-logo svg{width:22px;height:22px}
.side-brand-text strong{display:block;color:#fff;font-size:15.5px;letter-spacing:-.2px}
.side-brand-text span{font-size:11px;text-transform:uppercase;letter-spacing:1.4px;color:#64748b}
.side-nav{flex:1;overflow-y:auto;padding:14px 10px;display:flex;flex-direction:column;gap:3px}
.nav-item{
  display:flex;align-items:center;gap:12px;padding:11px 13px;border-radius:10px;border:none;
  background:none;color:var(--sidebar-text);font-size:14px;font-weight:500;width:100%;text-align:left;
  transition:background .15s,color .15s;
}
.nav-item svg{width:19px;height:19px;flex:none;opacity:.85}
.nav-item:hover{background:var(--sidebar-hover);color:#e2e8f0}
.nav-item.active{
  background:linear-gradient(90deg,rgba(37,99,235,.32),rgba(37,99,235,.12));
  color:var(--sidebar-active);box-shadow:inset 3px 0 0 var(--primary);
}
.nav-item.active svg{opacity:1;color:#60a5fa}
.nav-count{
  margin-left:auto;background:rgba(148,163,184,.18);color:#cbd5e1;font-size:11px;font-weight:700;
  border-radius:99px;padding:1px 8px;min-width:24px;text-align:center;
}
.side-user{display:flex;align-items:center;gap:10px;padding:14px;border-top:1px solid rgba(148,163,184,.14)}
.side-avatar{
  width:38px;height:38px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,#f59e0b,#ef4444);color:#fff;font-weight:800;font-size:16px;
}
.side-user-info{flex:1;min-width:0}
.side-user-info strong{display:block;color:#e2e8f0;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.side-user-info span{font-size:11px;color:#64748b}
#logout-btn{color:var(--sidebar-text)}
#logout-btn:hover{color:#fca5a5;background:rgba(239,68,68,.12)}
.sidebar-backdrop{display:none;position:fixed;inset:0;background:rgba(2,6,23,.55);z-index:55}

.main{flex:1;margin-left:248px;display:flex;flex-direction:column;min-width:0}
.topbar{
  height:60px;flex:none;background:var(--card);border-bottom:1px solid var(--border);
  display:flex;align-items:center;gap:14px;padding:0 22px;position:sticky;top:0;z-index:40;
}
.topbar h2{font-size:17px;font-weight:750;letter-spacing:-.2px}
.topbar-right{margin-left:auto;display:flex;align-items:center;gap:12px}
.today-date{color:var(--muted);font-size:13px}
.icon-btn.menu-btn{display:none}
.icon-btn{
  background:none;border:none;color:var(--muted);padding:8px;border-radius:8px;display:flex;align-items:center;justify-content:center;
}
.icon-btn:hover{background:var(--bg);color:var(--text)}
.icon-btn svg{width:19px;height:19px}
.page-container{padding:22px;flex:1;min-width:0}

/* ============ GENERIC UI ============ */
.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}
.card-pad{padding:18px 20px}
.page-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:18px}
.page-head .spacer{flex:1}
.page-desc{color:var(--muted);font-size:13px;margin:-10px 0 18px}

.btn{
  display:inline-flex;align-items:center;gap:7px;border:1px solid transparent;border-radius:var(--radius-sm);
  padding:9px 15px;font-size:13.5px;font-weight:600;transition:all .15s;white-space:nowrap;background:none;
}
.btn svg{width:16px;height:16px}
.btn-primary{background:var(--primary);color:#fff}
.btn-primary:hover{background:var(--primary-dark)}
.btn-success{background:var(--success);color:#fff}
.btn-success:hover{background:#15803d}
.btn-danger{background:var(--danger);color:#fff}
.btn-danger:hover{background:#b91c1c}
.btn-outline{border-color:var(--border);background:var(--card);color:var(--text)}
.btn-outline:hover{border-color:#cbd5e1;background:var(--bg)}
.btn-ghost{color:var(--muted)}
.btn-ghost:hover{background:var(--bg);color:var(--text)}
.btn-sm{padding:6px 11px;font-size:12.5px}
.btn-sm svg{width:14px;height:14px}
.btn:disabled{opacity:.5;cursor:not-allowed}
.btn-icon{padding:7px;border-radius:8px;border:none;background:none;color:var(--muted);display:inline-flex;align-items:center;justify-content:center}
.btn-icon:hover{background:var(--bg);color:var(--text)}
.btn-icon svg{width:17px;height:17px}
.btn-icon.danger:hover{background:var(--danger-soft);color:var(--danger)}
.btn-icon.success:hover{background:var(--success-soft);color:var(--success)}

.field{display:flex;flex-direction:column;gap:5px}
.field label{font-size:12.5px;font-weight:650;color:#334155}
.field label .req{color:var(--danger)}
.field .hint{font-size:11.5px;color:var(--muted)}
.field .err-msg{font-size:11.5px;color:var(--danger);display:none}
.field.invalid input,.field.invalid select,.field.invalid textarea{border-color:var(--danger);background:#fff5f5}
.field.invalid .err-msg{display:block}
input[type=text],input[type=password],input[type=number],input[type=email],input[type=tel],input[type=date],input[type=datetime-local],input[type=month],input[type=search],select,textarea{
  width:100%;padding:9px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;color:var(--text);
  transition:border-color .15s,box-shadow .15s;
}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(37,99,235,.14)}
input[readonly]{background:var(--bg);color:var(--muted)}
textarea{resize:vertical;min-height:70px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 16px}
.form-grid .span-2{grid-column:span 2}
@media(max-width:640px){.form-grid{grid-template-columns:1fr}.form-grid .span-2{grid-column:span 1}}

.check{display:flex;align-items:center;gap:8px;cursor:pointer;user-select:none;font-size:13.5px}
.check input{width:16px;height:16px;accent-color:var(--primary);flex:none}

/* chips (checkbox/radio tiles) */
.chip-group{display:flex;flex-wrap:wrap;gap:8px}
.chip{position:relative;display:inline-flex;align-items:center;gap:7px;padding:7px 13px;border:1.5px solid var(--border);border-radius:99px;cursor:pointer;font-size:12.5px;font-weight:600;color:#475569;background:#fff;transition:all .13s;user-select:none}
.chip input{position:absolute;opacity:0;pointer-events:none}
.chip .tick{width:15px;height:15px;border-radius:4px;border:1.5px solid #cbd5e1;display:inline-flex;align-items:center;justify-content:center;flex:none;background:#fff;transition:all .13s}
.chip.radio .tick{border-radius:50%}
.chip .tick svg{width:10px;height:10px;color:#fff;opacity:0}
.chip:has(input:checked){border-color:var(--primary);background:var(--primary-soft);color:var(--primary-dark)}
.chip:has(input:checked) .tick{background:var(--primary);border-color:var(--primary)}
.chip:has(input:checked) .tick svg{opacity:1}
.chip:hover{border-color:#93c5fd}
.chip-sub{display:none;align-items:center;gap:4px;margin-left:2px;font-weight:700;color:var(--primary)}
.chip:has(input:checked) .chip-sub-visible{display:inline-flex}

/* badges */
.badge{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:700;padding:3px 10px;border-radius:99px;white-space:nowrap}
.badge .dot{width:6px;height:6px;border-radius:50%;background:currentColor}
.badge-blue{background:var(--primary-soft);color:var(--primary-dark)}
.badge-green{background:var(--success-soft);color:#15803d}
.badge-gray{background:#f1f5f9;color:#475569}
.badge-amber{background:var(--warning-soft);color:var(--warning)}
.badge-red{background:var(--danger-soft);color:var(--danger)}
.badge-violet{background:var(--violet-soft);color:var(--violet)}
.badge-cyan{background:var(--info-soft);color:#0e7490}

/* tables */
.table-wrap{overflow-x:auto}
table.tbl{width:100%;border-collapse:collapse;font-size:13.5px}
.tbl th{
  text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.7px;color:var(--muted);
  font-weight:700;padding:11px 14px;border-bottom:1px solid var(--border);white-space:nowrap;background:#f8fafc;
}
.tbl td{padding:11px 14px;border-bottom:1px solid #f1f5f9;vertical-align:middle}
.tbl tr:last-child td{border-bottom:none}
.tbl tbody tr{transition:background .12s}
.tbl tbody tr:hover{background:#f8fafc}
.tbl .num{text-align:right;font-variant-numeric:tabular-nums}
.tbl .actions{display:flex;gap:2px;justify-content:flex-end}
.link-like{background:none;border:none;color:var(--primary);font-weight:650;font-size:13.5px;padding:0;cursor:pointer;text-align:left}
.link-like:hover{text-decoration:underline}
.empty-state{padding:46px 20px;text-align:center;color:var(--muted)}
.empty-state svg{width:44px;height:44px;stroke-width:1.4;color:#cbd5e1;margin-bottom:12px}
.empty-state h3{color:var(--text);font-size:15.5px;margin-bottom:5px}
.empty-state p{font-size:13px;max-width:380px;margin:0 auto}

/* toolbar */
.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:14px 16px;border-bottom:1px solid var(--border)}
.toolbar .spacer{flex:1}
.search-box{position:relative;min-width:220px;flex:1;max-width:340px}
.search-box svg{position:absolute;left:10px;top:50%;transform:translateY(-50%);width:15px;height:15px;color:var(--muted)}
.search-box input{padding-left:32px}
.filter-select{width:auto;min-width:140px;padding:8px 10px}

/* tabs */
.tabs{display:inline-flex;background:#e8edf4;border-radius:10px;padding:3px;gap:2px}
.tabs button{
  border:none;background:none;padding:7px 15px;border-radius:8px;font-size:13px;font-weight:650;color:var(--muted);
  display:inline-flex;align-items:center;gap:7px;transition:all .15s;
}
.tabs button svg{width:15px;height:15px}
.tabs button.active{background:#fff;color:var(--text);box-shadow:var(--shadow)}

/* ============ MODALS ============ */
.modal-overlay{
  position:fixed;inset:0;background:rgba(2,6,23,.55);backdrop-filter:blur(3px);z-index:100;
  display:flex;align-items:flex-start;justify-content:center;padding:4vh 16px;overflow-y:auto;
  animation:fadeIn .18s ease;
}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.modal{
  background:var(--card);border-radius:16px;box-shadow:var(--shadow-lg);width:100%;max-width:560px;
  animation:modalIn .25s cubic-bezier(.2,.9,.3,1.1);margin-bottom:4vh;
}
@keyframes modalIn{from{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:none}}
.modal.lg{max-width:760px}
.modal.xl{max-width:980px}
.modal-head{display:flex;align-items:center;gap:12px;padding:18px 22px 14px;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--card);border-radius:16px 16px 0 0;z-index:5}
.modal-head h3{font-size:16.5px;font-weight:750;flex:1}
.modal-body{padding:20px 22px;max-height:calc(92vh - 150px);overflow-y:auto}
.modal-foot{display:flex;gap:10px;justify-content:flex-end;padding:14px 22px;border-top:1px solid var(--border);position:sticky;bottom:0;background:var(--card);border-radius:0 0 16px 16px}
.modal-foot .left{margin-right:auto;display:flex;gap:10px}

/* wizard */
.wiz-steps{display:flex;gap:0;padding:16px 22px 0;align-items:center}
.wiz-step{display:flex;align-items:center;gap:9px;flex:none}
.wiz-step .ws-num{
  width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:#e2e8f0;color:var(--muted);font-weight:800;font-size:13px;flex:none;transition:all .2s;
}
.wiz-step .ws-label{font-size:12.5px;font-weight:650;color:var(--muted);white-space:nowrap}
.wiz-step.active .ws-num{background:var(--primary);color:#fff;box-shadow:0 0 0 4px rgba(37,99,235,.18)}
.wiz-step.active .ws-label{color:var(--text)}
.wiz-step.done .ws-num{background:var(--success);color:#fff}
.wiz-step.done .ws-label{color:#334155}
.wiz-line{flex:1;height:2px;background:#e2e8f0;margin:0 12px;min-width:18px}
.wiz-line.done{background:var(--success)}
@media(max-width:700px){.wiz-step .ws-label{display:none}.wiz-steps{justify-content:center}}

/* step 1 type cards */
.type-cards{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:10px 0 4px}
@media(max-width:640px){.type-cards{grid-template-columns:1fr}}
.type-card{
  border:2px solid var(--border);border-radius:14px;padding:26px 20px;text-align:center;cursor:pointer;
  background:#fff;transition:all .16s;position:relative;
}
.type-card:hover{border-color:#93c5fd;transform:translateY(-2px);box-shadow:var(--shadow-lg)}
.type-card.selected{border-color:var(--primary);background:var(--primary-soft)}
.type-card.selected::after{
  content:"✓";position:absolute;top:10px;right:12px;width:22px;height:22px;border-radius:50%;
  background:var(--primary);color:#fff;font-size:13px;font-weight:800;display:flex;align-items:center;justify-content:center;
}
.type-card .tc-icon{width:56px;height:56px;margin:0 auto 12px;border-radius:16px;display:flex;align-items:center;justify-content:center}
.type-card .tc-icon svg{width:28px;height:28px}
.type-card h4{font-size:15.5px;margin-bottom:5px}
.type-card p{font-size:12.5px;color:var(--muted)}
.tc-customer .tc-icon{background:var(--primary-soft);color:var(--primary)}
.tc-supplier .tc-icon{background:var(--warning-soft);color:var(--warning)}

/* spec form (customer order) */
.spec-section{border:1px solid var(--border);border-radius:var(--radius);padding:15px 16px;margin-bottom:14px;background:#fff}
.spec-section>h4{
  font-size:11.5px;text-transform:uppercase;letter-spacing:.9px;color:var(--muted);font-weight:800;margin-bottom:12px;
  display:flex;align-items:center;gap:8px;
}
.spec-section>h4::after{content:"";flex:1;height:1px;background:var(--border)}
.epikolisi-banner{
  background:linear-gradient(90deg,#0f172a,#1e3a8a);border-radius:var(--radius);padding:14px 16px;margin-bottom:14px;
  display:flex;align-items:center;gap:18px;flex-wrap:wrap;color:#e2e8f0;
}
.epikolisi-banner h4{color:#fff;font-size:13px;letter-spacing:1px}
.epikolisi-banner .chip{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.25);color:#e2e8f0}
.epikolisi-banner .chip .tick{background:rgba(255,255,255,.15);border-color:rgba(255,255,255,.4)}
.epikolisi-banner .chip:has(input:checked){background:var(--accent);border-color:var(--accent);color:#1c1917}
.epikolisi-banner .chip:has(input:checked) .tick{background:#1c1917;border-color:#1c1917}
.epikolisi-note{font-size:11.5px;color:#94a3b8;margin-left:auto}

.dir-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:10px}
.dir-tile{position:relative;cursor:pointer}
.dir-tile input{position:absolute;opacity:0;pointer-events:none}
.dir-box{
  border:2px solid var(--border);border-radius:10px;padding:8px;display:flex;flex-direction:column;align-items:center;gap:5px;
  transition:all .14s;background:#fff;height:100%;
}
.dir-box img{height:52px;max-width:100%;object-fit:contain}
.dir-num{
  height:52px;display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:800;color:#94a3b8;
}
.dir-box span.dir-label{font-size:11px;font-weight:700;color:var(--muted)}
.dir-tile:hover .dir-box{border-color:#93c5fd}
.dir-tile input:checked + .dir-box{border-color:var(--primary);background:var(--primary-soft)}
.dir-tile input:checked + .dir-box span.dir-label{color:var(--primary-dark)}

/* dynamic rows (supplier items / custom fields) */
.dyn-row{display:grid;gap:8px;align-items:center;margin-bottom:8px}
.dyn-row.colors{grid-template-columns:minmax(140px,1.2fr) 100px 110px 110px 34px}
.dyn-row.rolls{grid-template-columns:minmax(120px,1.1fr) 74px 74px 62px 84px 92px 96px 34px}
.dyn-row.custom{grid-template-columns:minmax(130px,1fr) minmax(130px,1.2fr) auto auto 34px}
@media(max-width:760px){
  .dyn-row.colors,.dyn-row.rolls{grid-template-columns:1fr 1fr;}
  .dyn-row.custom{grid-template-columns:1fr 1fr;}
  .dyn-row .cell-cost,.dyn-row .cell-price-toggle{grid-column:span 2}
}
.dyn-head{display:grid;gap:8px;font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);font-weight:750;margin-bottom:6px}
.dyn-head.colors{grid-template-columns:minmax(140px,1.2fr) 100px 110px 110px 34px}
.dyn-head.rolls{grid-template-columns:minmax(120px,1.1fr) 74px 74px 62px 84px 92px 96px 34px}
.dyn-head.custom{grid-template-columns:minmax(130px,1fr) minmax(130px,1.2fr) auto auto 34px}
@media(max-width:760px){.dyn-head{display:none}}
.cell-cost{font-weight:750;font-variant-numeric:tabular-nums;text-align:right;color:#334155;font-size:13px}
.row-del{border:none;background:none;color:#cbd5e1;font-size:17px;border-radius:7px;width:30px;height:30px;display:flex;align-items:center;justify-content:center}
.row-del:hover{background:var(--danger-soft);color:var(--danger)}
.total-line{display:flex;justify-content:flex-end;align-items:center;gap:10px;padding-top:10px;border-top:2px dashed var(--border);margin-top:12px;font-size:14px}
.total-line strong{font-size:18px;font-variant-numeric:tabular-nums}
.price-toggle{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:600;color:var(--muted);white-space:nowrap;cursor:pointer}
.price-toggle input{accent-color:var(--primary);width:15px;height:15px}
.price-input-cell{display:flex;align-items:center;gap:6px}
.price-input-cell input{width:95px}

/* searchable combobox */
.combo{position:relative}
.combo-input-wrap{position:relative}
.combo-clear{position:absolute;right:8px;top:50%;transform:translateY(-50%);border:none;background:none;color:var(--muted);font-size:15px;padding:4px}
.combo-results{
  position:absolute;top:calc(100% + 4px);left:0;right:0;background:#fff;border:1px solid var(--border);
  border-radius:10px;box-shadow:var(--shadow-lg);z-index:30;max-height:230px;overflow-y:auto;display:none;
}
.combo.open .combo-results{display:block}
.combo-item{padding:9px 13px;cursor:pointer;border-bottom:1px solid #f1f5f9;display:flex;flex-direction:column;gap:1px}
.combo-item:last-child{border-bottom:none}
.combo-item:hover,.combo-item.hl{background:var(--primary-soft)}
.combo-item strong{font-size:13.5px}
.combo-item small{color:var(--muted);font-size:11.5px}
.combo-hint{padding:11px 13px;color:var(--muted);font-size:12.5px}
.combo-selected{display:flex;align-items:center;gap:10px;border:1.5px solid var(--primary);background:var(--primary-soft);border-radius:var(--radius-sm);padding:9px 12px}
.combo-selected .cs-info{flex:1;min-width:0}
.combo-selected strong{display:block;font-size:13.5px;color:var(--primary-dark)}
.combo-selected small{color:#3b82f6;font-size:11.5px}

/* order summary in wizard step 3 */
.summary-card{background:#f8fafc;border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;margin-top:16px}
.summary-card h5{font-size:11px;text-transform:uppercase;letter-spacing:.8px;color:var(--muted);margin-bottom:9px}
.summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px 18px;font-size:12.8px}
.summary-grid .sg-row{display:flex;justify-content:space-between;gap:10px;border-bottom:1px dashed #e2e8f0;padding:3px 0}
.summary-grid .sg-row span:first-child{color:var(--muted)}
.summary-grid .sg-row span:last-child{font-weight:650;text-align:right}

/* detail view */
.detail-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}
.detail-item{background:#f8fafc;border:1px solid var(--border);border-radius:10px;padding:10px 13px}
.detail-item .di-label{font-size:10.5px;text-transform:uppercase;letter-spacing:.7px;color:var(--muted);font-weight:750;margin-bottom:3px}
.detail-item .di-value{font-size:13.8px;font-weight:600;word-break:break-word}
.detail-section{margin-bottom:18px}
.detail-section>h4{font-size:12px;text-transform:uppercase;letter-spacing:.8px;color:var(--muted);font-weight:800;margin-bottom:10px;display:flex;align-items:center;gap:8px}
.detail-section>h4::after{content:"";flex:1;height:1px;background:var(--border)}
.timeline{display:flex;gap:0;margin:6px 0 2px;flex-wrap:wrap}
.tl-item{flex:1;min-width:130px;position:relative;padding:0 10px}
.tl-item .tl-dot{width:13px;height:13px;border-radius:50%;background:#e2e8f0;border:3px solid #fff;box-shadow:0 0 0 2px #e2e8f0;margin:0 auto 7px;position:relative;z-index:2}
.tl-item::before{content:"";position:absolute;top:6px;left:0;right:0;height:2px;background:#e2e8f0;z-index:1}
.tl-item:first-child::before{left:50%}
.tl-item:last-child::before{right:50%}
.tl-item.done .tl-dot{background:var(--success);box-shadow:0 0 0 2px var(--success)}
.tl-item.done::before{background:var(--success)}
.tl-item .tl-title{text-align:center;font-size:12px;font-weight:700}
.tl-item .tl-date{text-align:center;font-size:11px;color:var(--muted)}
.pill-list{display:flex;flex-wrap:wrap;gap:6px}
.pill{background:var(--primary-soft);color:var(--primary-dark);border-radius:99px;padding:3px 11px;font-size:12px;font-weight:650}
.pill.amber{background:var(--warning-soft);color:var(--warning)}
.pill.gray{background:#f1f5f9;color:#475569}

/* ============ KPI / REPORTS ============ */
.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;margin-bottom:18px}
.kpi{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:17px 19px;box-shadow:var(--shadow);position:relative;overflow:hidden}
.kpi::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--kpi-color,var(--primary))}
.kpi .kpi-label{font-size:11.5px;text-transform:uppercase;letter-spacing:.8px;color:var(--muted);font-weight:750;display:flex;align-items:center;gap:7px}
.kpi .kpi-label svg{width:15px;height:15px;color:var(--kpi-color,var(--primary))}
.kpi .kpi-value{font-size:26px;font-weight:800;letter-spacing:-.6px;margin-top:6px;font-variant-numeric:tabular-nums}
.kpi .kpi-sub{font-size:12px;color:var(--muted);margin-top:3px}
.kpi.k-income{--kpi-color:var(--success)}
.kpi.k-expense{--kpi-color:var(--danger)}
.kpi.k-profit{--kpi-color:var(--primary)}
.kpi.k-neutral{--kpi-color:var(--accent)}
.chart-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:18px}
.chart-grid .span-2{grid-column:span 2}
@media(max-width:1000px){.chart-grid{grid-template-columns:1fr}.chart-grid .span-2{grid-column:span 1}}
.chart-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px 18px}
.chart-card h4{font-size:14px;font-weight:750;margin-bottom:2px}
.chart-card .chart-sub{font-size:12px;color:var(--muted);margin-bottom:12px}
.chart-canvas-wrap{position:relative;width:100%}
.chart-canvas-wrap canvas{width:100%;display:block}
.chart-tooltip{
  position:fixed;background:#0f172a;color:#fff;font-size:12px;padding:6px 10px;border-radius:7px;pointer-events:none;
  z-index:200;display:none;white-space:nowrap;box-shadow:var(--shadow-lg);font-weight:600;
}
.legend{display:flex;gap:14px;flex-wrap:wrap;margin-top:10px;font-size:12px;color:#475569}
.legend .lg-item{display:flex;align-items:center;gap:6px;font-weight:600}
.legend .lg-swatch{width:11px;height:11px;border-radius:3.5px}

.period-chips{display:flex;gap:7px;flex-wrap:wrap}
.period-chip{border:1.5px solid var(--border);background:#fff;border-radius:99px;padding:6px 14px;font-size:12.5px;font-weight:650;color:#475569;transition:all .13s}
.period-chip:hover{border-color:#93c5fd}
.period-chip.active{background:var(--primary);border-color:var(--primary);color:#fff}

/* ============ CALENDAR ============ */
.cal-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:14px 16px;border-bottom:1px solid var(--border)}
.cal-title{font-size:16.5px;font-weight:800;text-transform:capitalize;min-width:190px}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:var(--border);border-radius:0 0 var(--radius) var(--radius);overflow:hidden}
.cal-dow{background:#f8fafc;padding:8px 10px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.7px;color:var(--muted);text-align:center}
.cal-cell{background:#fff;min-height:104px;padding:6px 7px;display:flex;flex-direction:column;gap:4px;cursor:pointer;transition:background .12s;position:relative}
.cal-cell:hover{background:#f8fafc}
.cal-cell.other{background:#fafbfc}
.cal-cell.other .cal-daynum{color:#cbd5e1}
.cal-cell.today{background:var(--primary-soft)}
.cal-cell.today .cal-daynum{background:var(--primary);color:#fff}
.cal-daynum{width:23px;height:23px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:750;color:#475569;flex:none}
.cal-chip{
  font-size:10.5px;font-weight:700;padding:2.5px 7px;border-radius:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  border-left:3px solid;
}
.cal-chip.t-customer{background:var(--primary-soft);color:var(--primary-dark);border-color:var(--primary)}
.cal-chip.t-supplier{background:var(--warning-soft);color:var(--warning);border-color:var(--warning)}
.cal-chip.s-completed{opacity:.75}
.cal-chip.s-archived{opacity:.5;text-decoration:line-through}
.cal-more{font-size:10.5px;color:var(--muted);font-weight:700;padding-left:4px}
@media(max-width:760px){.cal-cell{min-height:64px}.cal-chip{font-size:9px;padding:2px 4px}}

/* ============ WAREHOUSE ============ */
.stock-bar{height:7px;background:#e8edf4;border-radius:99px;overflow:hidden;min-width:90px}
.stock-bar>div{height:100%;border-radius:99px;background:var(--success)}
.stock-bar.low>div{background:var(--danger)}

/* ============ TOASTS ============ */
.toast-root{position:fixed;bottom:20px;right:20px;z-index:300;display:flex;flex-direction:column;gap:9px;max-width:360px}
.toast{
  display:flex;align-items:flex-start;gap:10px;background:#0f172a;color:#f1f5f9;border-radius:11px;
  padding:12px 15px;font-size:13px;font-weight:550;box-shadow:var(--shadow-lg);animation:toastIn .28s cubic-bezier(.2,.9,.3,1.15);
  border-left:4px solid var(--primary);
}
.toast.ok{border-color:var(--success)}
.toast.error{border-color:var(--danger)}
.toast.warn{border-color:var(--accent)}
.toast svg{width:17px;height:17px;flex:none;margin-top:1px}
.toast.out{animation:toastOut .25s ease forwards}
@keyframes toastIn{from{opacity:0;transform:translateX(30px)}to{opacity:1;transform:none}}
@keyframes toastOut{to{opacity:0;transform:translateX(30px)}}

/* ============ MISC ============ */
.muted{color:var(--muted)}
.small{font-size:12px}
.mono{font-variant-numeric:tabular-nums}
.nowrap{white-space:nowrap}
.text-right{text-align:right}
.mt-8{margin-top:8px}.mt-12{margin-top:12px}.mt-16{margin-top:16px}.mb-8{margin-bottom:8px}.mb-12{margin-bottom:12px}.mb-16{margin-bottom:16px}
.row-flex{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.notice{background:var(--info-soft);border:1px solid #a5f3fc;color:#155e75;border-radius:var(--radius-sm);padding:11px 14px;font-size:12.8px;display:flex;gap:9px;align-items:flex-start;margin-bottom:14px}
.notice svg{width:16px;height:16px;flex:none;margin-top:1px}
.notice.amber{background:var(--warning-soft);border-color:#fde68a;color:#92400e}

.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}
@media(max-width:1000px){.settings-grid{grid-template-columns:1fr}}
.settings-card h3{font-size:15px;font-weight:750;margin-bottom:3px;display:flex;align-items:center;gap:9px}
.settings-card h3 svg{width:17px;height:17px;color:var(--primary)}
.settings-card .sc-desc{font-size:12.5px;color:var(--muted);margin-bottom:16px}

/* ============ FILTERS (Αναλώσεις) ============ */
.filters{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}
.filter-row{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end}
.filter-row .field{min-width:170px;flex:1 1 170px;margin:0}
/* .chip normally derives its active look from :has(input:checked); the period
   chips are plain buttons, so they need an explicit state. */
.chip.active{border-color:var(--primary);background:var(--primary-soft);color:var(--primary-dark)}

/* ============ ROLL UNITS (Αποθήκη) ============ */
.roll-detail-row>td{background:#f8fafc;padding:8px 14px 12px}
.roll-list{display:flex;flex-direction:column;gap:6px;margin:2px 0 4px}
.roll-unit{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--border);border-radius:8px;padding:6px 10px;flex-wrap:wrap}

/* ============ SUPPORT-MODE BANNER ============ */
.support-banner{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:14px 22px 0;
  background:#fff7ed;border:1px solid #fdba74;color:#9a3412;border-radius:10px;padding:9px 14px;font-size:13px}
.support-banner .sb-dot{width:9px;height:9px;border-radius:50%;background:#f97316;flex:0 0 auto}
.support-banner b{color:#7c2d12}
.support-banner .btn{margin-left:auto}
@media (max-width:900px){.support-banner{margin:12px 14px 0}}

/* ============ ACTIVE-CONTAINER CHIP (topbar) ============ */
.container-chip{display:flex;align-items:center;gap:8px;background:var(--primary-soft);
  border:1px solid rgba(37,99,235,.28);border-radius:999px;padding:5px 12px;max-width:340px}
.container-chip .cc-label{font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  color:var(--primary-dark);opacity:.75;white-space:nowrap}
.container-chip .cc-name{font-size:13px;font-weight:700;color:var(--primary-dark);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.container-chip .cc-select{border:0;background:transparent;font:inherit;font-size:13px;font-weight:700;
  color:var(--primary-dark);max-width:220px;cursor:pointer;padding:0}
.container-chip .cc-select:focus{outline:2px solid var(--primary);border-radius:6px}
@media (max-width:640px){.container-chip .cc-label{display:none}.container-chip{max-width:150px}}

/* ============ CONTAINERS / PERMISSIONS ============ */
/* Superadmin container switcher, tucked between the brand and the nav. */
.side-switch{padding:10px 14px;border-bottom:1px solid rgba(148,163,184,.14)}
.side-switch .filter-select{width:100%;background:#0f172a;color:#e2e8f0;border-color:rgba(148,163,184,.24)}
.side-switch p{color:#64748b}
.perm-grid{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.perm-item{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border);border-radius:999px;
  padding:5px 11px;font-size:12.5px;cursor:pointer;background:#fff;user-select:none}
.perm-item:hover{border-color:var(--primary)}
.perm-item input{margin:0}
.badge-violet{background:#ede9fe;color:#5b21b6}

/* ============ PDF TEMPLATE PREVIEW ============ */
.pdf-editor-wrap .field{margin-bottom:10px}
.pdf-sheet table td,.pdf-sheet table th{padding:1.2mm 1.5mm;border-bottom:1px solid #eef2f7;vertical-align:top}
.pdf-sheet table th{font-weight:700}
@media print{
  body *{visibility:hidden}
  .pdf-sheet,.pdf-sheet *{visibility:visible}
  .pdf-sheet{position:absolute;left:0;top:0;box-shadow:none!important;margin:0}
}

/* ============ RESPONSIVE ============ */
@media(max-width:960px){
  .sidebar{transform:translateX(-100%)}
  .sidebar.open{transform:translateX(0);box-shadow:0 0 60px rgba(0,0,0,.5)}
  .sidebar-backdrop.show{display:block}
  .main{margin-left:0}
  .icon-btn.menu-btn{display:flex}
  .page-container{padding:16px 13px}
}
