/* Stage 24 Zoho Books inspired Procurement UI
   Clean navy topbar, soft sidebar, blue primary accent, orange due/overdue accents.
   Replace: procure/assets/css/style.css
*/
:root{
  --bg:#f4f6fb;
  --card:#ffffff;
  --text:#0f172a;
  --muted:#64748b;
  --line:#e7ebf2;
  --line-strong:#d3dae6;

  /* Dark shell (sidebar + topbar share the same deep slate for a cohesive frame) */
  --topbar:#0f172a;
  --topbar-2:#1e293b;
  --topbar-text:#f1f5f9;
  --topbar-muted:#94a3b8;

  --sidebar:#0f172a;
  --sidebar-2:#131c31;
  --sidebar-border:rgba(148,163,184,.14);
  --sidebar-text:#cbd5e1;
  --sidebar-muted:#7688a3;
  --sidebar-active:#ffffff;
  --sidebar-active-soft:rgba(59,130,246,.20);

  --brand:#2563eb;
  --brand-dark:#1d4ed8;
  --brand-soft:#eff4ff;
  --brand2:#eff4ff;
  --accent:#f97316;
  --accent-soft:#fff4ea;

  --danger:#dc2626;
  --success:#16a34a;
  --warning:#d97706;
  --info:#2563eb;

  --radius:14px;
  --radius-sm:10px;
  --shadow:0 12px 32px rgba(15,23,42,.12);
  --shadow-soft:0 1px 3px rgba(15,23,42,.06),0 1px 2px rgba(15,23,42,.04);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
  background:var(--bg);
  color:var(--text);
  font-size:14px;
  line-height:1.45;
}
a{color:var(--brand);text-decoration:none}
a:hover{color:var(--brand-dark);text-decoration:none}

/* App shell */
.app-shell{display:flex;min-height:100vh}
.sidebar{
  width:268px;
  background:var(--sidebar);
  color:var(--sidebar-text);
  position:fixed;
  top:0;bottom:0;left:0;
  padding:0 10px 14px;
  overflow:auto;
  border-right:1px solid var(--sidebar-border);
  z-index:20;
  transition:width .18s ease,transform .18s ease;
}
.brand{
  display:flex;gap:10px;align-items:center;
  min-height:58px;
  padding:10px 8px;
  border-bottom:1px solid var(--sidebar-border);
  margin-bottom:8px;
}
.brand-mark{
  flex:0 0 38px;width:38px;height:38px;border-radius:11px;
  background:linear-gradient(135deg,#3b82f6,#2563eb);
  color:#fff;display:grid;place-items:center;font-weight:800;letter-spacing:.2px;font-size:18px;
  box-shadow:0 8px 18px rgba(37,99,235,.35);
}
.brand-logo{flex:0 0 auto;width:38px;height:38px;border-radius:10px;object-fit:contain;background:#fff;padding:3px;box-shadow:0 8px 18px rgba(15,23,42,.25)}
.brand strong{display:block;font-size:15px;line-height:1.15;color:#f8fafc;white-space:nowrap;letter-spacing:-.01em}
.brand small{display:block;color:var(--sidebar-muted);font-size:11px;margin-top:1px;white-space:nowrap}
.main{margin-left:268px;width:calc(100% - 268px);min-height:100vh;transition:margin-left .18s ease,width .18s ease}
.topbar{
  height:58px;background:var(--topbar);border-bottom:1px solid rgba(255,255,255,.08);
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:0 18px;position:sticky;top:0;z-index:15;
  box-shadow:0 1px 0 rgba(0,0,0,.08);
  color:var(--topbar-text);
}
.topbar-left{display:flex;align-items:center;gap:12px;min-width:0}
.topbar-title{min-width:0}
.topbar-title strong{display:block;color:#fff;font-size:14px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.topbar-title small{display:block;color:var(--topbar-muted);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.topbar-search{
  width:min(420px,38vw);height:38px;border:1px solid rgba(255,255,255,.16);border-radius:10px;
  background:var(--topbar-2);color:#dce3f7;display:flex;align-items:center;gap:8px;padding:0 12px;
}
.topbar-search input{border:0;background:transparent;color:#dce3f7;min-height:auto;padding:0;width:100%;box-shadow:none}
.topbar-search input::placeholder{color:#8e98b2}
.topbar-search input:focus{box-shadow:none;border:0}
.user-box{display:flex;gap:10px;align-items:center;color:#fff;white-space:nowrap}
.user-avatar{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:#eef4ff;color:#1e3a8a;font-weight:800}
.user-box a{color:#dce6ff;font-weight:700;font-size:13px}
.content{padding:20px 22px 30px}

/* Sidebar collapse */
body.sidebar-collapsed .sidebar{width:72px}
body.sidebar-collapsed .main{margin-left:72px;width:calc(100% - 72px)}
body.sidebar-collapsed .brand{justify-content:center;padding-left:0;padding-right:0}
body.sidebar-collapsed .brand-text,body.sidebar-collapsed .nav-text,body.sidebar-collapsed .nav-section-title{display:none}
body.sidebar-collapsed .nav a{justify-content:center;padding:10px 8px}
body.sidebar-collapsed .nav-icon{margin:0}
.sidebar-backdrop{display:none}

/* Sidebar nav */
.nav{padding:2px 0 20px}
.nav-section-title{
  padding:11px 12px 5px;
  color:var(--sidebar-muted);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;
}
.nav a{
  display:flex;align-items:center;gap:10px;
  color:var(--sidebar-text);
  padding:10px 12px;
  border-radius:10px;
  margin:2px 0;
  font-weight:650;
  border:1px solid transparent;
  line-height:1.2;
  transition:background .15s ease,color .15s ease,border .15s ease;
}
.nav-icon{width:22px;min-width:22px;text-align:center;font-size:17px;opacity:.85}
.nav-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nav a:hover{background:rgba(148,163,184,.12);border-color:transparent;color:#fff}
.nav a.active,.nav a[aria-current="page"]{
  background:var(--sidebar-active-soft);color:var(--sidebar-active);border-color:transparent;
  box-shadow:inset 3px 0 0 #60a5fa;
}

/* Toggle buttons */
.icon-btn,.menu-toggle,.sidebar-collapse-toggle{
  display:inline-flex;align-items:center;justify-content:center;
  width:36px;height:36px;border-radius:10px;border:1px solid rgba(255,255,255,.14);
  background:var(--topbar-2);color:#fff;cursor:pointer;font-weight:800;
}
.icon-btn:hover,.menu-toggle:hover,.sidebar-collapse-toggle:hover{background:#303753}
.menu-toggle{display:inline-flex}

/* Page header and action rows */
.page-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;flex-wrap:wrap;margin-bottom:16px}
.page-head h1{margin:0 0 4px;font-size:22px;letter-spacing:-.02em;color:var(--text)}
.page-head p{margin:0;color:var(--muted)}
.actions,.row-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.section-title{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}
.section-title h2,.section-title h3{margin:0}

/* Cards and grids */
.card{
  background:var(--card);border:1px solid var(--line);border-radius:14px;
  padding:18px;box-shadow:var(--shadow-soft);margin-bottom:16px;
}
.card.compact{padding:14px}
.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.mini-card,.soft-panel{border:1px solid var(--line);border-radius:13px;padding:14px;background:#fff}
.soft-panel{background:#fafbff}
.kpi{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px;transition:.15s;box-shadow:var(--shadow-soft)}
.kpi:hover{transform:translateY(-1px);box-shadow:var(--shadow)}
.kpi strong{font-size:26px;display:block;line-height:1.05;color:var(--text)}
.kpi span{color:var(--muted);font-size:13px}
.kpi.accent{border-left:4px solid var(--accent)}
.kpi.blue{border-left:4px solid var(--brand)}

h1,h2,h3{margin-top:0;color:var(--text)}
h2{font-size:18px}h3{font-size:16px}
.muted{color:var(--muted)}.muted-link{color:var(--muted)}.right{text-align:right}.text-right{text-align:right}.nowrap{white-space:nowrap}

/* Buttons */
.btn,button.btn,input[type="submit"].btn{
  display:inline-flex;align-items:center;justify-content:center;gap:7px;
  min-height:38px;
  border:1px solid var(--brand);background:var(--brand);color:#fff;
  padding:9px 16px;border-radius:10px;font-weight:700;font-size:13px;line-height:1.2;
  cursor:pointer;box-shadow:0 1px 2px rgba(37,99,235,.28),0 4px 12px rgba(37,99,235,.18);
  transition:background .15s ease,border .15s ease,box-shadow .15s ease,transform .1s ease;
}
.btn:hover{background:var(--brand-dark);border-color:var(--brand-dark);color:#fff;box-shadow:0 2px 4px rgba(37,99,235,.3),0 8px 20px rgba(37,99,235,.22)}
.btn:active{transform:translateY(1px)}
.btn.secondary{background:#fff;color:#344054;border-color:#d3dae6;box-shadow:var(--shadow-soft)}
.btn.secondary:hover{background:#f8fafc;color:var(--brand);border-color:#a9c4f7}
.btn.warning{background:var(--accent);border-color:var(--accent)}
.btn.warning:hover{background:#e56705;border-color:#e56705}
.btn.danger{background:var(--danger);border-color:var(--danger)}
.btn.danger:hover{background:#b42318;border-color:#b42318}
.btn.success{background:var(--success);border-color:var(--success)}
.btn.success:hover{background:#057747;border-color:#057747}
.btn.small{min-height:30px;padding:6px 10px;font-size:12px;border-radius:7px}
.btn.block{width:100%}

/* Tabs */
.tabs,.nav-tabs,.tab-nav{
  display:flex;gap:6px;flex-wrap:wrap;align-items:center;
  margin:0 0 14px;padding:5px;background:#fff;border:1px solid var(--line);border-radius:12px;
}
.tabs a,.tabs button,.nav-tabs a,.nav-tabs button,.tab-nav a,.tab-nav button,.tab{
  display:inline-flex;align-items:center;justify-content:center;
  padding:8px 12px;border-radius:8px;border:1px solid transparent;background:transparent;
  color:#445266;font-weight:700;font-size:13px;cursor:pointer;line-height:1.2;
}
.tabs a:hover,.tabs button:hover,.nav-tabs a:hover,.nav-tabs button:hover,.tab-nav a:hover,.tab-nav button:hover,.tab:hover{background:#f7f9fd;color:var(--brand)}
.tabs .active,.tabs a.active,.tabs button.active,.nav-tabs .active,.tab-nav .active,.tab.active{
  background:var(--brand-soft);color:var(--brand);border-color:#cfe0ff;
}

/* Tables */
.table-wrap{overflow:auto;border-radius:12px;border:1px solid var(--line);background:#fff}
table{width:100%;border-collapse:separate;border-spacing:0;background:#fff}
th,td{border-bottom:1px solid var(--line);padding:10px 11px;text-align:left;vertical-align:top}
th{font-size:11.5px;text-transform:uppercase;letter-spacing:.03em;color:#64748b;background:#f8fafc;font-weight:800;white-space:nowrap}
tr:last-child td{border-bottom:0}
tbody tr:hover td{background:#f6f9ff}
.table-compact th,.table-compact td{padding:8px 9px}

/* Forms */
.form-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.form-row.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.form-group{margin-bottom:14px}
label{display:block;font-weight:700;margin-bottom:6px;color:#263445;font-size:13px}
input,select,textarea{
  width:100%;padding:9px 11px;border:1px solid #d6dbe3;border-radius:8px;background:#fff;color:var(--text);font:inherit;min-height:38px;
  transition:border .15s ease,box-shadow .15s ease;
}
textarea{min-height:92px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:none;border-color:#93b4f5;box-shadow:0 0 0 3px rgba(37,99,235,.15)}
input[type="file"]{padding:8px;background:#fbfcfd}
.filters{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;align-items:end;margin-bottom:14px}
.filters .form-group{margin-bottom:0}

/* Badges and alerts */
.badge{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border-radius:999px;background:var(--brand2);color:var(--brand);font-size:12px;font-weight:800;line-height:1.2}
.badge.green{background:#ecfdf3;color:var(--success)}
.badge.red{background:#fef3f2;color:var(--danger)}
.badge.orange{background:var(--accent-soft);color:var(--warning)}
.badge.gray{background:#f3f4f6;color:#374151}.badge.blue{background:#eff6ff;color:#1d4ed8}
.alert{padding:12px 14px;border-radius:12px;margin-bottom:16px;border:1px solid transparent}
.alert-success{background:#ecfdf3;color:#05603a;border-color:#a6f4c5}.alert-danger{background:#fef3f2;color:#912018;border-color:#fecdca}.alert-warning{background:#fffaeb;color:#93370d;border-color:#fedf89}
.empty-state{padding:24px;text-align:center;color:var(--muted);background:#fbfcfd;border:1px dashed #cfd6df;border-radius:14px}

/* Attachments, previews, and document cards */
.attachment-card,.file-card,.response-card{border:1px solid var(--line);border-radius:13px;background:#fff;padding:13px;margin-bottom:12px}
.attachment-preview iframe{width:100%;height:360px;border:1px solid var(--line);border-radius:10px;background:#f8fafc}
.attachment-preview img{max-width:100%;border:1px solid var(--line);border-radius:10px;background:#fff}
.progress-mini{width:96px;height:7px;border-radius:99px;background:#eef2f7;overflow:hidden;margin:3px 0}
.progress-mini span{display:block;height:100%;background:var(--accent);border-radius:99px}

/* Login */
.login-page{display:grid;place-items:center;min-height:100vh;padding:24px;background:radial-gradient(1100px 560px at 100% -10%,#1d4ed8 0,transparent 55%),radial-gradient(900px 520px at -10% 110%,#1e293b 0,transparent 50%),#0b1120}
.login-shell{width:min(410px,100%)}
.login-brand{display:flex;align-items:center;gap:12px;justify-content:center;margin-bottom:20px;color:#fff}
.login-brand .brand-mark{width:46px;height:46px;flex:0 0 46px;border-radius:13px;font-size:21px}
.login-brand .brand-logo{width:52px;height:52px;flex:0 0 auto;border-radius:13px;object-fit:contain;background:#fff;padding:4px}
.login-brand-text strong{display:block;font-size:18px;letter-spacing:-.01em;line-height:1.2}
.login-brand-text small{display:block;color:#94a3b8;font-size:12px}
.login-card{background:#fff;border:1px solid rgba(255,255,255,.06);border-radius:18px;padding:28px 26px;box-shadow:0 26px 70px rgba(2,6,23,.55)}
.login-card h2{font-size:21px;margin:0 0 4px;letter-spacing:-.01em}
.login-card .login-sub{color:var(--muted);margin:0 0 20px;font-size:13px}
.login-card .btn.block{margin-top:4px}
.login-foot{color:#7688a3;text-align:center;margin-top:18px;font-size:12px}

/* Print */
.print-doc{background:#fff;padding:30px}.doc-header{display:flex;justify-content:space-between;border-bottom:2px solid #111827;padding-bottom:16px;margin-bottom:18px}

@media(max-width:1200px){.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.filters{grid-template-columns:repeat(3,minmax(0,1fr))}.topbar-search{display:none}}
@media(max-width:900px){
  body.sidebar-collapsed .main,.main{margin-left:0;width:100%}
  body.sidebar-collapsed .sidebar,.sidebar{width:min(285px,86vw);transform:translateX(-105%)}
  body.sidebar-open .sidebar{transform:translateX(0);z-index:30}
  body.sidebar-open .sidebar-backdrop{display:block;position:fixed;inset:0;background:rgba(15,23,42,.38);z-index:19}
  body.sidebar-collapsed .brand-text,body.sidebar-collapsed .nav-text,body.sidebar-collapsed .nav-section-title{display:block}
  body.sidebar-collapsed .nav a{justify-content:flex-start;padding:10px 12px}
  .grid,.grid-2,.form-row,.form-row.three{grid-template-columns:1fr}
  .content{padding:14px}
  .topbar{height:58px;padding:0 12px}
  .topbar-title small{display:none}
  .user-box span{display:none}
  .page-head{display:block}.actions{margin-top:10px}
  .card{padding:14px;border-radius:13px}.kpi{padding:14px}
  .filters{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:650px){
  body{font-size:13px}.filters{grid-template-columns:1fr}.table-compact th,.table-compact td{padding:7px}.progress-mini{width:70px}
  .tabs,.nav-tabs,.tab-nav{overflow:auto;flex-wrap:nowrap;justify-content:flex-start}.tabs a,.tabs button,.tab{white-space:nowrap}
  .btn{min-height:34px;padding:7px 11px}
}
@media print{
  .sidebar,.topbar,.no-print,.sidebar-backdrop{display:none!important}.main{margin:0!important;width:100%!important}.content{padding:0}.card{border:0;box-shadow:none}.print-doc{padding:0}body{background:#fff}
}

/* Stage 24 sidebar behavior fix: bottom collapse button + reliable mobile drawer */
.sidebar{
  display:flex;
  flex-direction:column;
  overflow:hidden;
  padding:0 10px 0;
}
.brand{flex:0 0 auto;margin-bottom:6px}
.nav{
  flex:1 1 auto;
  min-height:0;
  overflow:auto;
  padding:2px 0 12px;
}
.sidebar-footer{
  flex:0 0 auto;
  padding:10px 0 12px;
  border-top:1px solid var(--sidebar-border);
  background:var(--sidebar);
}
.sidebar-bottom-toggle{
  width:100%;
  min-height:38px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  border:1px solid transparent;
  background:rgba(148,163,184,.12);
  color:#e2e8f0;
  border-radius:10px;
  font-weight:800;
  cursor:pointer;
}
.sidebar-bottom-toggle:hover{
  border-color:transparent;
  color:#fff;
  background:rgba(148,163,184,.20);
}
.collapse-icon{font-size:16px;line-height:1}.collapse-text{white-space:nowrap}
.mobile-sidebar-toggle{display:none}
body.sidebar-collapsed .sidebar-footer{padding:10px 8px 12px}
body.sidebar-collapsed .sidebar-bottom-toggle{width:40px;margin:0 auto;padding:0;border-radius:12px}
body.sidebar-collapsed .collapse-text{display:none}
body.sidebar-collapsed .collapse-icon{font-size:18px}
body.sidebar-collapsed .nav{padding-bottom:12px}
body.sidebar-collapsed .nav a{min-height:40px}

@media(min-width:901px){
  .mobile-sidebar-toggle{display:none!important}
}
@media(max-width:900px){
  .mobile-sidebar-toggle{display:inline-flex!important}
  body.sidebar-collapsed .main,.main{margin-left:0;width:100%}
  body.sidebar-collapsed .sidebar,.sidebar{width:min(285px,86vw);transform:translateX(-105%)}
  body.sidebar-open .sidebar{transform:translateX(0);z-index:30}
  body.sidebar-open .sidebar-backdrop{display:block;position:fixed;inset:0;background:rgba(15,23,42,.38);z-index:19}
  body.sidebar-collapsed .brand-text,body.sidebar-collapsed .nav-text,body.sidebar-collapsed .nav-section-title{display:block}
  body.sidebar-collapsed .nav a{justify-content:flex-start;padding:10px 12px}
  body.sidebar-collapsed .sidebar-footer{padding:10px 0 12px}
  body.sidebar-collapsed .sidebar-bottom-toggle{width:100%;margin:0;min-height:38px;border-radius:10px}
  body.sidebar-collapsed .collapse-text{display:inline}
  .sidebar-footer{padding-bottom:14px}
  .sidebar-bottom-toggle{background:rgba(148,163,184,.12);color:#e2e8f0}
}

/* Stage 56-59 Procurement-only workflow, alerts, timeline, UX cleanup */
.proc-flow{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:10px 0 16px}.proc-step{padding:7px 12px;border:1px solid #dbe3ef;border-radius:999px;background:#f8fafc;color:#475569;font-size:12px;font-weight:700}.proc-step.done{background:#ecfdf5;border-color:#bbf7d0;color:#166534}.proc-step.current{background:#dbeafe;border-color:#93c5fd;color:#1d4ed8}.proc-arrow{color:#94a3b8}.inline-action{display:inline-flex;gap:8px;align-items:center;flex-wrap:wrap;margin:4px}.inline-action input{min-width:180px}.proc-timeline-note{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.proc-timeline-note input{flex:1;min-width:220px}.proc-timeline-list{display:grid;gap:10px}.proc-event{border-left:4px solid #cbd5e1;background:#f8fafc;border-radius:10px;padding:10px 12px}.proc-event.note{border-left-color:#2563eb;background:#eff6ff}.proc-event strong{display:block}.proc-event span{font-size:12px;color:#64748b}.proc-event p{margin:6px 0 0}.stage59-action-strip{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.badge.blue{background:#dbeafe;color:#1d4ed8}.badge.gray{background:#f1f5f9;color:#475569}
@media(max-width:760px){.proc-flow{display:none}.inline-action{display:grid;grid-template-columns:1fr;width:100%}.inline-action input,.inline-action button,.proc-timeline-note input,.proc-timeline-note button{width:100%}.page-head .actions{display:grid;grid-template-columns:1fr;gap:8px;width:100%}.table-wrap{overflow-x:auto}}

/* =========================================================================
   Professional UI layer (shared toolkit: SVG icons, stat cards, polish)
   Additive + backward compatible with all existing class names.
   ========================================================================= */

/* Inline SVG icon base */
.icon{width:18px;height:18px;display:inline-block;flex:none;vertical-align:-.15em;stroke:currentColor;fill:none}

/* Sidebar nav icons rendered as SVG */
.nav-icon{display:inline-flex;align-items:center;justify-content:center}
.nav-icon .icon{width:19px;height:19px;opacity:.9}
.nav a.active .nav-icon .icon,.nav a[aria-current="page"] .nav-icon .icon{opacity:1}

/* Topbar icons */
.topbar-search-icon{display:inline-flex;align-items:center;color:#8e98b2}
.topbar-search-icon .icon{width:16px;height:16px}
.topbar-search-submit{display:inline-flex;align-items:center;justify-content:center;height:28px;padding:0 12px;border:0;border-radius:8px;background:var(--brand);color:#fff;font-weight:700;font-size:12px;cursor:pointer}
.topbar-search-submit:hover{background:var(--brand-dark)}
.mobile-sidebar-toggle{align-items:center;justify-content:center;width:38px;height:38px;border-radius:10px;border:1px solid rgba(255,255,255,.16);background:var(--topbar-2);color:#fff;cursor:pointer}
.mobile-sidebar-toggle:hover{background:#303753}
.mobile-sidebar-toggle .icon{width:20px;height:20px}
.user-box a{display:inline-flex;align-items:center;gap:5px}
.user-box a .icon{width:15px;height:15px}

/* Stat / KPI cards (shared component via ui_stat_card) */
.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;margin-bottom:18px}
.stat-card{display:flex;gap:12px;align-items:flex-start;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px 15px;box-shadow:var(--shadow-soft);color:var(--text);transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}
.stat-card:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:var(--line-strong);color:var(--text)}
.stat-card__icon{flex:0 0 40px;width:40px;height:40px;border-radius:11px;display:grid;place-items:center;background:var(--brand-soft);color:var(--brand)}
.stat-card__icon .icon{width:20px;height:20px}
.stat-card__body{display:flex;flex-direction:column;min-width:0}
.stat-card__value{font-size:23px;line-height:1.1;color:var(--text);font-weight:800}
.stat-card__label{font-size:13px;font-weight:700;color:var(--text);margin-top:2px}
.stat-card__desc{color:var(--muted);font-size:11.5px;margin-top:3px;line-height:1.35}
.stat-card.tone-red .stat-card__icon{background:#fef3f2;color:var(--danger)}
.stat-card.tone-red .stat-card__value{color:var(--danger)}
.stat-card.tone-orange .stat-card__icon{background:var(--accent-soft);color:var(--warning)}
.stat-card.tone-orange .stat-card__value{color:var(--warning)}
.stat-card.tone-green .stat-card__icon{background:#ecfdf3;color:var(--success)}
.stat-card.tone-green .stat-card__value{color:var(--success)}
.stat-card.tone-blue .stat-card__icon{background:var(--brand-soft);color:var(--brand)}
@media(max-width:760px){.stat-grid{gap:10px}.stat-card__value{font-size:20px}}
@media(max-width:440px){.stat-grid{grid-template-columns:1fr}}

/* Dashboard helpers (moved out of inline page styles) */
.dash-sync{font-size:11px;color:var(--muted);margin-top:4px}
.dash-material{min-width:240px}
@media(max-width:800px){.dash-material{min-width:170px}}

/* Item-summary cell (shared by PR / RFQ / PO list tables) */
.item-lines{min-width:240px;max-width:460px}
.item-line{font-size:12px;line-height:1.35;margin:0 0 4px;color:var(--text)}
.item-count{display:inline-block;margin-bottom:5px}
.mini-metrics{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}
@media(max-width:760px){.item-lines{min-width:170px;max-width:none}}
