
:root{
  --bg:#f8fafc;
  --card:#ffffff;
  --line:#e2e8f0;
  --text:#0f172a;
  --muted:#64748b;
  --dark:#0f172a;
  --accent:#111827;
  --soft:#f1f5f9;
  --success:#dcfce7;
  --success-text:#15803d;
  --warn:#fef3c7;
  --warn-text:#b45309;
  --danger:#fee2e2;
  --danger-text:#b91c1c;
}
*{box-sizing:border-box}
html,body{max-width:100%;overflow-x:hidden}
body{margin:0;font-family:"Cairo",sans-serif;background:var(--bg);color:var(--text);font-size:14px}
.hidden{display:none!important}
.small{font-size:12px;color:var(--muted)}

/* login */
.login-screen{min-height:100vh;padding:18px}
.login-grid{max-width:1200px;margin:0 auto;min-height:calc(100vh - 36px);display:grid;grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr);gap:20px;align-items:center}
.hero-card,.form-card,.card,.table-card,.filters-bar{background:var(--card);border:1px solid var(--line);border-radius:24px;box-shadow:0 8px 30px rgba(15,23,42,.05)}
.hero-card{background:linear-gradient(135deg,#0f172a,#1e293b);color:#fff;padding:30px;display:flex;flex-direction:column;justify-content:space-between;min-height:580px}
.badge{display:inline-flex;padding:6px 12px;border-radius:999px;font-size:12px;font-weight:700}
.badge.dark{background:rgba(255,255,255,.12);color:#fff}
.hero-card h1{font-size:clamp(30px,4vw,42px);line-height:1.25;margin:18px 0 12px}
.hero-card p{max-width:620px;color:#cbd5e1;line-height:1.9}
.hero-boxes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:24px}
.mini-box{border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.06);border-radius:18px;padding:16px}
.mini-box strong{display:block;font-size:17px;margin-bottom:6px}.mini-box span{font-size:13px;color:#cbd5e1}
.form-card{padding:28px}
.form-head{display:flex;align-items:center;gap:14px;margin-bottom:20px}.form-head h2{margin:0;font-size:30px}.form-head p{margin:4px 0 0;color:var(--muted)}
.logo-box{width:56px;height:56px;border-radius:18px;background:var(--dark);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800}
label{display:block;margin:14px 0 8px;font-size:14px;font-weight:700;color:#334155}
input,select{width:100%;height:44px;padding:0 14px;border:1px solid var(--line);border-radius:16px;background:#fff;font-family:inherit;font-size:14px;min-width:0}
.primary-btn,.ghost-btn,.outline-btn,.menu-btn,.menu-chip{height:42px;border:none;border-radius:16px;padding:0 14px;font-family:inherit;font-weight:700;cursor:pointer;transition:.2s}
.primary-btn{background:var(--dark);color:#fff}.primary-btn:hover{opacity:.92}
.primary-btn.full{width:100%;margin-top:18px;height:48px;font-size:15px}
.ghost-btn{background:var(--soft);color:var(--text);border:1px solid var(--line)}
.outline-btn{background:#fff;border:1px solid var(--line);color:var(--text)}
.note-box{margin-top:22px;padding:16px;border-radius:18px;background:var(--soft);color:#475569}.note-box strong{display:block;margin-bottom:8px;color:var(--text)}

/* app shell */
.app-shell{display:grid;grid-template-columns:minmax(220px,250px) minmax(0,1fr);min-height:100vh;max-width:100vw;overflow:hidden}
.sidebar{background:#fff;border-left:1px solid var(--line);display:flex;flex-direction:column;min-width:0}
.sidebar-head{padding:18px;border-bottom:1px solid var(--line);display:flex;gap:12px;align-items:center}.sidebar-logo{width:46px;height:46px;border-radius:16px;background:var(--dark);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;flex:0 0 auto}
.sidebar-head h3{margin:0;font-size:16px}.sidebar-head p{margin:4px 0 0;font-size:12px;color:var(--muted)}
.sidebar-menu{padding:12px;overflow:auto;flex:1}.menu-btn{width:100%;display:flex;align-items:center;gap:12px;text-align:right;padding:12px 14px;background:transparent;border-radius:16px;color:#334155;margin-bottom:5px;height:auto;line-height:1.4}
.menu-btn:hover{background:var(--soft)}.menu-btn.active{background:var(--dark);color:#fff}
.sidebar-user{padding:14px;border-top:1px solid var(--line);display:flex;gap:12px;align-items:center}.user-avatar{width:40px;height:40px;border-radius:50%;background:var(--soft);display:flex;align-items:center;justify-content:center;font-weight:800;flex:0 0 auto}.sidebar-user strong{display:block;font-size:13px}.sidebar-user span{display:block;font-size:11px;color:var(--muted)}
.main-content{display:flex;flex-direction:column;min-width:0;overflow:hidden}
.topbar{position:sticky;top:0;z-index:10;background:rgba(255,255,255,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);padding:14px 18px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.topbar h1{margin:0;font-size:clamp(20px,2.8vw,26px)}.topbar p{margin:4px 0 0;color:var(--muted);font-size:13px}.topbar-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;min-width:0}.search-input{width:min(240px,100%);background:#fff}
.mobile-menu{display:none}
.mobile-menu-bar{display:none;padding:10px 14px;border-bottom:1px solid var(--line);background:#fff;overflow:auto;white-space:nowrap;gap:8px}
.menu-chip{display:inline-flex;align-items:center;justify-content:center;background:#fff;border:1px solid var(--line);color:#334155;margin-left:8px;padding:0 12px}
.menu-chip.active{background:var(--dark);color:#fff;border-color:var(--dark)}
.view-container{padding:18px;overflow-x:hidden}
.section-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;flex-wrap:wrap}.section-head h2{margin:0;font-size:clamp(20px,2.6vw,24px)}.section-head p{margin:6px 0 0;color:var(--muted);font-size:13px}
.section-actions{display:flex;gap:8px;flex-wrap:wrap}
.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px}
.stat-card{padding:16px}.stat-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.stat-top .icon{width:42px;height:42px;border-radius:15px;background:var(--soft);display:flex;align-items:center;justify-content:center;font-size:18px;flex:0 0 auto}.stat-card h3{margin:8px 0 0;font-size:clamp(24px,3vw,30px)}.stat-card p{margin:0;color:var(--muted);font-size:13px}.stat-card .delta{margin-top:8px;font-size:12px;color:var(--muted)}
.grid-2-1{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(320px,.9fr);gap:14px;margin-top:14px}
.card-head{padding:16px 16px 0}.card-head h3{margin:0;font-size:18px}.card-body{padding:16px}.mini-activity{border:1px solid var(--line);border-radius:18px;padding:12px;margin-bottom:10px}.mini-activity strong{display:block}.mini-activity .small{margin-top:4px}
.filters-bar{padding:12px;margin-bottom:14px;display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}.filters-left,.filters-right{display:flex;gap:8px;flex-wrap:wrap;align-items:center;min-width:0}.filters-left{flex:1}.filters-left .search-input{width:min(260px,100%)}
.table-card{overflow:hidden}.table-wrap{overflow:auto;-webkit-overflow-scrolling:touch}
table{width:100%;border-collapse:collapse;background:#fff;min-width:780px}th,td{padding:12px 10px;border-bottom:1px solid var(--line);text-align:right;font-size:13px;white-space:nowrap}th{background:#f8fafc;color:#334155;font-weight:800;position:sticky;top:0}.table-actions{display:flex;gap:6px}
.table-actions .outline-btn,.table-actions .primary-btn{height:36px;border-radius:14px;padding:0 12px}
.status{display:inline-flex;align-items:center;justify-content:center;padding:5px 10px;border-radius:999px;font-size:12px;font-weight:700;border:1px solid transparent}
.status.confirmed,.status.نشط{background:var(--success);color:var(--success-text);border-color:#bbf7d0}.status.draft{background:var(--warn);color:var(--warn-text);border-color:#fde68a}.status.cancelled,.status.نعم{background:var(--danger);color:var(--danger-text);border-color:#fecaca}.status.لا{background:#f1f5f9;color:#475569;border-color:#e2e8f0}
.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
.info-box{padding:16px;border-radius:20px;border:1px solid var(--line);background:#fff}
.info-box strong{display:block;margin-bottom:8px}
.setting-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.setting-card{padding:18px}.setting-card h3{margin:0 0 14px}.setting-card .stack>*+*{margin-top:12px}

@media (max-width: 1400px){
  .app-shell{grid-template-columns:220px minmax(0,1fr)}
  .topbar{padding:12px 16px}
  .view-container{padding:16px}
  .grid-2-1{grid-template-columns:1fr}
}

@media (max-width: 1180px){
  .app-shell{grid-template-columns:1fr}
  .sidebar{display:none}
  .mobile-menu-bar{display:flex}
  .topbar{padding:12px 14px}
}

@media (max-width: 1100px){
  .login-grid{grid-template-columns:1fr}
  .hero-card{min-height:auto}
}

@media (max-width: 820px){
  .topbar{flex-direction:column;align-items:stretch}
  .topbar-actions{width:100%}
  .topbar-actions .search-input{flex:1;width:100%}
  .filters-left,.filters-right{width:100%}
  .filters-left .search-input{width:100%}
  .setting-grid{grid-template-columns:1fr}
}

@media (max-width: 700px){
  .login-screen{padding:12px}
  .hero-card,.form-card,.card,.table-card,.filters-bar{border-radius:20px}
  .hero-card{padding:20px}
  .hero-boxes{grid-template-columns:1fr}
  .form-card{padding:20px}
  .view-container{padding:12px}
  .stats-grid,.info-grid{grid-template-columns:1fr}
  table{min-width:640px}
}

.modal-overlay{position:fixed;inset:0;background:rgba(15,23,42,.35);display:flex;align-items:center;justify-content:center;padding:16px;z-index:100}
.modal-card{width:min(760px,100%);background:#fff;border:1px solid var(--line);border-radius:24px;box-shadow:0 18px 50px rgba(15,23,42,.18);overflow:hidden}
.modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px;border-bottom:1px solid var(--line)}
.modal-head h3{margin:0;font-size:22px}
.modal-body{padding:18px;display:grid;gap:14px}
.modal-actions{padding:0 18px 18px;display:flex;justify-content:flex-start;gap:8px;flex-wrap:wrap}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.modal-error{padding:10px 12px;border-radius:14px;background:#fff1f2;border:1px solid #fecdd3;color:#be123c;font-size:13px;white-space:pre-line}
@media (max-width:760px){.form-grid{grid-template-columns:1fr}.modal-card{border-radius:20px}}

.invoice-items-box{border:1px solid var(--line);border-radius:20px;padding:12px;background:#fff}
.invoice-items-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px;flex-wrap:wrap}
.invoice-items-table{min-width:980px}
.invoice-items-table select,.invoice-items-table input{width:100%;min-width:92px;height:40px;border:1px solid var(--line);border-radius:12px;padding:0 10px;background:#fff}
.small-btn{height:34px;padding:0 10px;border-radius:12px}
.invoice-summary-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.invoice-summary-grid .info-box{padding:12px;border-radius:16px}
.invoice-summary-grid .info-box span{display:block;margin-top:8px;font-weight:700;color:#0f172a}
@media (max-width: 900px){.invoice-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width: 600px){.invoice-summary-grid{grid-template-columns:1fr}}



/* v19 invoice form visibility improvements */
.modal-card{
  width:min(1180px, 100%);
  max-height:92vh;
  display:flex;
  flex-direction:column;
}
.modal-body{
  overflow:auto;
  max-height:calc(92vh - 150px);
}
.invoice-top-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}
.invoice-quick-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
  align-items:end;
}
.invoice-items-box{
  border:1px solid var(--line);
  border-radius:20px;
  padding:14px;
  background:#fff;
  margin-top:2px;
}
.invoice-items-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
  margin-bottom:10px;
}
.invoice-hot-hint,.invoice-items-note{
  font-size:12px;
  color:#64748b;
  margin-top:4px;
}
.invoice-items-table{
  min-width:1260px;
}
.invoice-item-sku,.invoice-item-unit,.invoice-item-balance{
  font-weight:700;
  color:#334155;
}
.invoice-item-sku.warn,.invoice-item-balance.warn,
.row-stock-warn .invoice-item-sku,
.row-stock-warn .invoice-item-balance{
  color:#b91c1c;
}
.invoice-stock-alert{
  margin-top:10px;
  padding:10px 12px;
  border-radius:14px;
  border:1px solid #fecaca;
  background:#fff7ed;
  color:#9a3412;
  font-size:13px;
}
.invoice-stock-alert-line{margin-bottom:6px}.invoice-stock-alert-line:last-child{margin-bottom:0}.invoice-stock-alert.hidden{display:none}
@media (max-width:1100px){
  .invoice-top-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .invoice-quick-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:760px){
  .invoice-top-grid,.invoice-quick-grid{grid-template-columns:1fr;}
  .modal-card{width:min(100%,100%);}
}


/* v20 invoice items first-look fix */
.modal-card{width:min(1280px,100%);max-height:94vh;}
.modal-body{max-height:calc(94vh - 150px);padding:16px;display:grid;gap:10px;}
.invoice-top-grid.invoice-top-grid-primary{grid-template-columns:repeat(4,minmax(0,1fr));}
.invoice-top-grid.invoice-top-grid-secondary{grid-template-columns:repeat(4,minmax(0,1fr));}
.invoice-quick-grid.invoice-quick-grid-compact{grid-template-columns:repeat(2,minmax(0,1fr));}
.invoice-items-box{margin-top:0;padding:12px;border-radius:18px;}
.invoice-items-head{margin-bottom:8px;}
.invoice-items-table{min-width:1100px;}
.invoice-items-table th,.invoice-items-table td{padding:8px 10px;}
.invoice-summary-grid{grid-template-columns:repeat(5,minmax(0,1fr));}
@media (max-width:1180px){
  .invoice-top-grid.invoice-top-grid-primary,.invoice-top-grid.invoice-top-grid-secondary{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:760px){
  .invoice-top-grid.invoice-top-grid-primary,.invoice-top-grid.invoice-top-grid-secondary,.invoice-quick-grid.invoice-quick-grid-compact{grid-template-columns:1fr;}
}

.fixed-notes{width:100%;min-height:88px;max-height:88px;height:88px;resize:none;overflow:auto;border:1px solid var(--line);border-radius:14px;padding:10px 12px;background:#fff;}


.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:16px}
.info-box{border:1px solid #e2e8f0;border-radius:18px;padding:12px 14px;background:#fff;font-size:14px;display:flex;flex-direction:column;gap:6px}
.info-box strong{font-size:12px;color:#64748b}
.mini-activity{border:1px solid #e2e8f0;border-radius:18px;padding:12px;background:#fff;margin-bottom:10px}
.mini-activity .small{font-size:12px;color:#64748b;margin-top:4px}
