/* =====================================================================
   HELIOS-STYLE WMS – téma
   Hustý dátový vzhľad podľa Helios iNuvio: modrý top panel, stromová
   navigácia vľavo, kompaktné mriežky, toolbar nad tabuľkou, status bar.
   ===================================================================== */
:root{
  --hx-blue-dark:#0b3c66;
  --hx-blue:#12557f;
  --hx-blue-light:#1c73a8;
  --hx-accent:#f0a30a;
  --hx-green:#2e7d32;
  --hx-red:#b3261e;
  --hx-bg:#eef1f5;
  --hx-panel:#ffffff;
  --hx-border:#c3cdd8;
  --hx-grid-head:#dde5ee;
  --hx-grid-alt:#f5f8fb;
  --hx-grid-hover:#d6e7f7;
  --hx-sidebar:#f3f6f9;
  --hx-text:#1e2b38;
  --hx-topbar-h:42px;
  --hx-status-h:24px;
  --hx-sidebar-w:236px;
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;background:var(--hx-bg);color:var(--hx-text);
  font-family:"Segoe UI",Tahoma,Arial,sans-serif;font-size:12.5px;
  overflow:hidden;
}

/* ------------------------- TOP BAR ------------------------- */
.hx-topbar{
  height:var(--hx-topbar-h);display:flex;align-items:center;gap:14px;
  padding:0 12px;color:#fff;
  background:linear-gradient(180deg,var(--hx-blue-light) 0%,var(--hx-blue) 55%,var(--hx-blue-dark) 100%);
  border-bottom:1px solid #072a49;box-shadow:0 1px 4px rgba(0,0,0,.35);
  position:relative;z-index:30;
}
.hx-brand{font-size:15px;font-weight:600;letter-spacing:.4px;display:flex;align-items:center;gap:7px}
.hx-brand i{font-size:19px;color:var(--hx-accent)}
.hx-brand small{font-size:10px;opacity:.7;font-weight:400}
.hx-company{margin-left:8px}
.hx-company-btn,.hx-user-btn{
  background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.25);
  font-size:12px;padding:3px 10px;border-radius:3px;
}
.hx-company-btn:hover,.hx-user-btn:hover{background:rgba(255,255,255,.22);color:#fff}
.hx-user{margin-left:auto;display:flex;align-items:center;gap:12px}
.hx-clock{font-size:12px;opacity:.85;font-variant-numeric:tabular-nums}

/* ------------------------- LAYOUT ------------------------- */
.hx-body{display:flex;height:calc(100vh - var(--hx-topbar-h) - var(--hx-status-h));}
.hx-sidebar{
  width:var(--hx-sidebar-w);min-width:var(--hx-sidebar-w);background:var(--hx-sidebar);
  border-right:1px solid var(--hx-border);overflow-y:auto;padding:6px 0;
}
.hx-main{flex:1;overflow-y:auto;padding:8px 10px 20px}

/* ------------------------- STROM ------------------------- */
.hx-tree{font-size:12.5px}
.hx-group{margin-bottom:2px}
.hx-group-title{
  padding:5px 10px;font-weight:600;color:var(--hx-blue-dark);cursor:pointer;
  background:linear-gradient(180deg,#e4ebf2,#d7e1ea);border-top:1px solid #fff;
  border-bottom:1px solid var(--hx-border);text-transform:uppercase;font-size:11px;letter-spacing:.5px;
  display:flex;align-items:center;gap:6px;user-select:none;
}
.hx-group-title:hover{background:linear-gradient(180deg,#eaf1f7,#dce6ef)}
.hx-group-title i{font-size:10px;transition:transform .15s}
.hx-group-title.collapsed i{transform:rotate(-90deg)}
.hx-group-items{padding:2px 0}
.hx-group-items.hidden{display:none}
.hx-node{
  display:flex;align-items:center;gap:7px;padding:4px 10px 4px 20px;
  color:var(--hx-text);text-decoration:none;border-left:3px solid transparent;
}
.hx-node:hover{background:var(--hx-grid-hover);color:var(--hx-blue-dark)}
.hx-node.active{background:#cfe3f5;border-left-color:var(--hx-blue);font-weight:600;color:var(--hx-blue-dark)}
.hx-node i{font-size:13px;color:var(--hx-blue)}

/* ------------------------- NADPIS STRÁNKY ------------------------- */
.hx-pagetitle{
  font-size:15px;font-weight:600;color:var(--hx-blue-dark);padding:4px 2px 8px;
  display:flex;align-items:center;gap:8px;border-bottom:2px solid var(--hx-blue);margin-bottom:8px;
}
.hx-pagetitle small{font-weight:400;color:#6b7c8d;font-size:12px;margin-left:6px}

/* ------------------------- PANEL ------------------------- */
.hx-panel{
  background:var(--hx-panel);border:1px solid var(--hx-border);border-radius:2px;
  box-shadow:0 1px 2px rgba(0,0,0,.08);margin-bottom:10px;
}
.hx-panel-head{
  background:linear-gradient(180deg,#e9eff5,#dbe4ed);border-bottom:1px solid var(--hx-border);
  padding:5px 10px;font-weight:600;color:var(--hx-blue-dark);font-size:12px;
  display:flex;align-items:center;gap:7px;
}
.hx-panel-body{padding:10px}

/* ------------------------- TOOLBAR ------------------------- */
.hx-toolbar{
  background:linear-gradient(180deg,#f7f9fb,#e8eef4);border:1px solid var(--hx-border);
  border-bottom:none;padding:4px 6px;display:flex;flex-wrap:wrap;align-items:center;gap:4px;
}
.hx-toolbar .btn{font-size:12px;padding:2px 9px;border-radius:2px}
.hx-toolbar .sep{width:1px;height:20px;background:var(--hx-border);margin:0 5px}
.hx-toolbar form{display:flex;gap:4px;align-items:center;flex-wrap:wrap;margin:0}
.hx-toolbar .form-control,.hx-toolbar .form-select{
  font-size:12px;padding:2px 6px;height:26px;border-radius:2px;border-color:var(--hx-border);
}

/* ------------------------- MRIEŽKA ------------------------- */
.hx-grid-wrap{border:1px solid var(--hx-border);background:#fff;overflow-x:auto}
table.hx-grid{width:100%;border-collapse:collapse;font-size:12px;margin:0}
table.hx-grid thead th{
  background:linear-gradient(180deg,#eaf0f6,var(--hx-grid-head));
  border-right:1px solid #c9d4e0;border-bottom:1px solid #a9b8c8;
  padding:5px 7px;text-align:left;font-weight:600;color:var(--hx-blue-dark);
  white-space:nowrap;position:sticky;top:0;z-index:5;
}
table.hx-grid tbody td{
  border-right:1px solid #e6ebf0;border-bottom:1px solid #e6ebf0;
  padding:3px 7px;white-space:nowrap;
}
table.hx-grid tbody tr:nth-child(even){background:var(--hx-grid-alt)}
table.hx-grid tbody tr:hover{background:var(--hx-grid-hover)}
table.hx-grid tbody tr.hx-row-sel{background:#bcd8f0}
table.hx-grid tfoot td{
  background:#e4ebf2;font-weight:600;border-top:2px solid var(--hx-blue);padding:4px 7px;
}
.hx-num{text-align:right;font-variant-numeric:tabular-nums}
.hx-grid a{color:var(--hx-blue);text-decoration:none}
.hx-grid a:hover{text-decoration:underline}
.hx-sort{color:var(--hx-blue-dark)!important;text-decoration:none}
.hx-sort:hover{text-decoration:underline}
.hx-empty{padding:24px;text-align:center;color:#8a99a8}

/* ------------------------- STAVY ------------------------- */
.hx-status{
  display:inline-block;padding:1px 7px;border-radius:9px;font-size:10.5px;
  font-weight:600;text-transform:uppercase;letter-spacing:.3px;border:1px solid;
}
.st-draft{background:#fff4d6;color:#8a6100;border-color:#e0c273}
.st-confirmed{background:#dceeff;color:#0d4f80;border-color:#8fbde3}
.st-posted{background:#dcf3de;color:#1e6b23;border-color:#8ccb92}
.st-cancelled{background:#fadbd8;color:#922b21;border-color:#e0a09a}

/* ------------------------- STRÁNKOVANIE ------------------------- */
.hx-pager{
  display:flex;align-items:center;gap:8px;padding:5px 8px;
  background:linear-gradient(180deg,#f7f9fb,#e8eef4);border:1px solid var(--hx-border);border-top:none;
}
.hx-pager .page-link{font-size:11.5px;padding:2px 7px;color:var(--hx-blue)}
.hx-pager .page-item.active .page-link{background:var(--hx-blue);border-color:var(--hx-blue)}

/* ------------------------- FORMULÁRE ------------------------- */
.hx-form label{font-size:11.5px;font-weight:600;color:#41576b;margin-bottom:1px}
.hx-form .form-control,.hx-form .form-select,.hx-form textarea{
  font-size:12.5px;padding:3px 7px;border-radius:2px;border-color:var(--hx-border);min-height:28px;
}
.hx-form .form-control:focus,.hx-form .form-select:focus{
  border-color:var(--hx-blue-light);box-shadow:0 0 0 2px rgba(28,115,168,.18);
}
.hx-form .mb-r{margin-bottom:7px}
.hx-req::after{content:" *";color:var(--hx-red)}
.hx-fieldset{
  border:1px solid var(--hx-border);padding:8px 10px 4px;margin-bottom:10px;background:#fbfcfd;
}
.hx-fieldset legend{
  font-size:11px;font-weight:700;color:var(--hx-blue-dark);text-transform:uppercase;
  width:auto;padding:0 6px;margin:0;letter-spacing:.5px;
}

/* ------------------------- KPI DLAŽDICE ------------------------- */
.hx-kpi{
  background:#fff;border:1px solid var(--hx-border);border-left:4px solid var(--hx-blue);
  padding:8px 12px;display:flex;flex-direction:column;gap:1px;height:100%;
}
.hx-kpi .k-label{font-size:11px;color:#6b7c8d;text-transform:uppercase;letter-spacing:.4px}
.hx-kpi .k-value{font-size:21px;font-weight:700;color:var(--hx-blue-dark);font-variant-numeric:tabular-nums}
.hx-kpi .k-sub{font-size:11px;color:#8a99a8}
.hx-kpi.k-green{border-left-color:var(--hx-green)}
.hx-kpi.k-red{border-left-color:var(--hx-red)}
.hx-kpi.k-amber{border-left-color:var(--hx-accent)}

/* ------------------------- STATUS BAR ------------------------- */
.hx-statusbar{
  height:var(--hx-status-h);background:linear-gradient(180deg,#dfe6ed,#ccd6e0);
  border-top:1px solid var(--hx-border);display:flex;align-items:center;gap:18px;
  padding:0 12px;font-size:11px;color:#3b4c5c;
}
.hx-statusbar i{color:var(--hx-blue)}

/* ------------------------- ALERT ------------------------- */
.hx-alert{padding:6px 34px 6px 12px;font-size:12.5px;border-radius:2px;margin-bottom:8px}

/* ------------------------- LOGIN ------------------------- */
.hx-login-wrap{
  height:100vh;display:flex;align-items:center;justify-content:center;overflow:auto;
  background:linear-gradient(135deg,#0b3c66 0%,#12557f 45%,#1c73a8 100%);
}
.hx-login-card{
  width:420px;background:#fff;border-radius:4px;box-shadow:0 10px 40px rgba(0,0,0,.4);overflow:hidden;
}
.hx-login-head{
  background:linear-gradient(180deg,var(--hx-blue-light),var(--hx-blue-dark));color:#fff;
  padding:18px 22px;text-align:center;
}
.hx-login-head i{font-size:34px;color:var(--hx-accent)}
.hx-login-head h1{font-size:19px;margin:6px 0 2px;font-weight:600}
.hx-login-head p{margin:0;font-size:11.5px;opacity:.8}
.hx-login-body{padding:20px 24px 24px}
.hx-login-body .form-control{height:34px;font-size:13px}

/* ------------------------- POLOŽKY DOKLADU ------------------------- */
.hx-items input.form-control,.hx-items select.form-select{
  font-size:12px;padding:1px 5px;height:24px;border-radius:2px;
}
.hx-items td{padding:2px 4px!important}
.hx-quickadd{background:#fffbe8;border:1px solid #e8d89a;padding:6px 8px;margin-bottom:0}

/* autocomplete */
.hx-ac{position:relative}
.hx-ac-list{
  position:absolute;z-index:60;background:#fff;border:1px solid var(--hx-border);
  width:520px;max-height:280px;overflow-y:auto;box-shadow:0 4px 14px rgba(0,0,0,.2);display:none;
}
.hx-ac-list div{padding:4px 8px;cursor:pointer;border-bottom:1px solid #eef2f6;font-size:12px}
.hx-ac-list div:hover,.hx-ac-list div.sel{background:var(--hx-grid-hover)}
.hx-ac-list .ac-code{font-weight:600;color:var(--hx-blue-dark);display:inline-block;min-width:90px}
.hx-ac-list .ac-stock{float:right;color:#6b7c8d}

/* tlač */
@media print{
  .hx-topbar,.hx-sidebar,.hx-statusbar,.hx-toolbar,.hx-pagetitle,.no-print{display:none!important}
  body{overflow:visible;background:#fff;font-size:11px}
  .hx-body{display:block;height:auto}
  .hx-main{overflow:visible;padding:0}
  .hx-panel{border:none;box-shadow:none}
}
@media (max-width:900px){
  .hx-sidebar{position:absolute;left:-260px;height:100%;z-index:40;transition:left .2s}
  .hx-sidebar.open{left:0}
}
