/* =====================================================================
   Sit 'n Dip — Admin design system (premium pass)
   Loaded AFTER style.css. Shopify/Square feel: airy whitespace,
   12-16px radii, hairline borders, soft shadows, muted neutrals,
   brand accents (burgundy #7D0D0D, orange #F4501E) used sparingly.
   ===================================================================== */
:root{
  /* neutrals (Shopify Polaris-ish) */
  --bg:#f6f6f7; --surface:#ffffff; --surface-sub:#fafbfb;
  --ink:#1a1a1a; --ink-soft:#303030; --muted:#6d7175; --muted-2:#8c9196;
  --border:#e1e3e5; --border-soft:#edeef0;
  /* brand */
  --brand:#7d0d0d; --brand-deep:#5c0909; --accent:#f4501e; --accent-soft:#fdeee7;
  /* semantics */
  --green:#1a7f37; --green-bg:#e7f4ec; --red:#c0392b; --red-bg:#fbe9e6;
  --amber:#9a6a0a; --amber-bg:#fdf3dd; --blue:#2b5cb8; --blue-bg:#e9effc;
  /* data-viz palette — distinct, print-safe */
  --viz1:#7d0d0d; /* burgundy */
  --viz2:#f4501e; /* orange   */
  --viz3:#0e7c7b; /* teal     */
  --viz4:#6d4a7e; /* plum     */
  --viz5:#3b5bdb; /* slate blue */
  --viz6:#7d9b6a; /* sage     */
  --viz7:#c9a227; /* gold     */
  --viz8:#8c9196; /* grey     */
  /* elevation */
  --radius:12px; --radius-lg:16px; --radius-sm:8px;
  --shadow:0 1px 2px rgba(26,26,26,.05),0 4px 16px rgba(26,26,26,.06);
  --shadow-lg:0 2px 4px rgba(26,26,26,.06),0 12px 32px rgba(26,26,26,.10);
  --sidebar-w:248px;
}

/* ---- base refinements ---- */
body{background:var(--bg);color:var(--ink);font-size:14px;-webkit-font-smoothing:antialiased}
.content{padding:24px 32px 48px;max-width:1440px}
.topbar{padding:24px 32px 0;max-width:1440px}
.topbar h2{font-size:24px;font-weight:700;letter-spacing:-.02em}
.page-sub{color:var(--muted);font-size:13.5px;margin-top:4px}

/* ---- app shell: lighter, airier sidebar ---- */
.sidebar{background:#1f100d;width:var(--sidebar-w)}
.sidebar-brand{padding:26px 22px 0;font-size:21px}
.sidebar-sub{padding:4px 22px 18px;color:#cfa694;font-size:11px}
#nav{padding:0 14px;gap:4px}
.nav-item{padding:11px 14px;border-radius:10px;font-size:14px;color:#ead9d1;font-weight:500}
.nav-item:hover{background:rgba(255,255,255,.08)}
.nav-item.active{background:var(--accent);color:#fff;font-weight:700;box-shadow:0 4px 12px rgba(244,80,30,.35)}
.user-chip{color:#ead9d1}
.sidebar-footer{padding:18px}

/* ---- cards ---- */
.card{background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:22px 24px;margin-bottom:20px}
.card h3{margin:0 0 4px;font-size:16px;font-weight:700;letter-spacing:-.01em}
.card-sub{color:var(--muted);font-size:13px;margin:0 0 16px}

/* ---- page header ---- */
.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:20px;flex-wrap:wrap}
.page-head h2{margin:0;font-size:24px;font-weight:700;letter-spacing:-.02em}
.page-head .page-sub{margin:6px 0 0}
.page-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}

/* ---- KPI cards (premium) ---- */
.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:20px}
.kpi{background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:18px 20px;position:relative;overflow:hidden;transition:transform .12s,box-shadow .12s}
.kpi:hover{transform:translateY(-1px);box-shadow:var(--shadow-lg)}
.kpi::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--viz-c,var(--border-soft));border-radius:3px}
.kpi .kpi-label{font-size:12px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.5px;display:flex;align-items:center;gap:8px}
.kpi .kpi-value{font-size:30px;font-weight:800;letter-spacing:-.02em;margin-top:8px;font-variant-numeric:tabular-nums}
.kpi .kpi-foot{margin-top:8px;font-size:12.5px;color:var(--muted);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.trend{display:inline-flex;align-items:center;gap:4px;font-weight:700;font-size:12px;padding:3px 9px;border-radius:999px;font-variant-numeric:tabular-nums}
.trend.up{background:var(--green-bg);color:var(--green)}
.trend.down{background:var(--red-bg);color:var(--red)}
.trend.flat{background:#eef0f1;color:var(--muted)}

/* ---- chart cards ---- */
.chart-card{background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:22px 24px;margin-bottom:20px;min-width:0}
.chart-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:6px;flex-wrap:wrap}
.chart-title{font-size:15px;font-weight:700;letter-spacing:-.01em;margin:0}
.chart-sub{color:var(--muted);font-size:12.5px;margin:4px 0 0}
.chart-legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12.5px;color:var(--muted);margin:8px 0 4px}
.legend-dot{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:baseline}
.chart-empty{color:var(--muted-2);text-align:center;padding:48px 20px;font-size:14px}
.chart-tip{position:absolute;pointer-events:none;background:#1a1a1a;color:#fff;font-size:12px;font-weight:600;padding:7px 11px;border-radius:8px;white-space:nowrap;z-index:50;box-shadow:0 6px 20px rgba(0,0,0,.25);transform:translate(-50%,-115%);font-variant-numeric:tabular-nums}
.chart-wrap{position:relative}
.grid-2col{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.grid-2col-3-2{display:grid;grid-template-columns:3fr 2fr;gap:20px}
@media(max-width:1100px){.grid-2col,.grid-2col-3-2{grid-template-columns:1fr}}

/* ---- segmented control (refined) ---- */
.seg{display:inline-flex;background:#eceeef;border-radius:999px;padding:3px;gap:2px}
.seg button{border:none;background:transparent;padding:7px 16px;border-radius:999px;font-size:13px;font-weight:600;color:var(--muted);cursor:pointer;transition:.12s;font-family:inherit}
.seg button:hover{color:var(--ink)}
.seg button.on{background:#fff;color:var(--ink);box-shadow:0 1px 4px rgba(0,0,0,.12)}

/* ---- tables (refined) ---- */
table{font-size:13.5px}
thead th{font-size:11px;text-transform:uppercase;letter-spacing:.7px;color:var(--muted-2);font-weight:700;padding:12px;border-bottom:1px solid var(--border)}
tbody td{padding:12px;border-bottom:1px solid var(--border-soft)}
tbody tr:last-child td{border-bottom:none}
tbody tr:hover{background:#fafbfb}
.rank-cell{font-weight:800;color:var(--muted-2);width:36px;font-variant-numeric:tabular-nums}
.mini-bar{height:6px;border-radius:3px;background:#eef0f1;overflow:hidden;min-width:80px}
.mini-bar i{display:block;height:100%;border-radius:3px}

/* ---- live pulse ---- */
.live-dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:#22c55e;margin-right:7px;animation:pulse 1.8s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(34,197,94,.5)}70%{box-shadow:0 0 0 7px rgba(34,197,94,0)}100%{box-shadow:0 0 0 0 rgba(34,197,94,0)}}

/* ---- net banner (premium) ---- */
.net-banner{border:none;border-radius:var(--radius-lg);padding:24px 28px;margin-bottom:20px;display:flex;justify-content:space-between;align-items:center;box-shadow:var(--shadow-lg);color:#fff}
.net-banner.profit{background:linear-gradient(135deg,#0f5c2e,#1a7f37)}
.net-banner.loss{background:linear-gradient(135deg,#8f2418,#c0392b)}
.net-banner .net-tag{font-size:13px;font-weight:800;letter-spacing:2.5px;opacity:.92}
.net-banner .net-amount{font-size:38px;font-weight:800;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.net-banner .net-sub{font-size:13px;opacity:.85;margin-top:4px}

/* ---- heatmap ---- */
.hm-table{border-collapse:separate;border-spacing:3px;font-size:12px}
.hm-table th{border:none;font-size:11px;color:var(--muted);padding:6px 4px;text-transform:none;letter-spacing:0}
.hm-table td{border:none;padding:0}
.hm-cell{min-width:64px;height:38px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:12px;font-variant-numeric:tabular-nums;background:#f1f2f3;color:var(--muted-2)}
.hm-name{font-weight:600;font-size:13px;padding-right:10px;white-space:nowrap;max-width:150px;overflow:hidden;text-overflow:ellipsis}
.hm-legend{display:flex;gap:6px;align-items:center;font-size:11.5px;color:var(--muted);margin-top:10px}
.hm-sw{width:14px;height:14px;border-radius:4px}

/* ---- alert cards (low stock) ---- */
.alert-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;margin-bottom:20px}
.alert-card{background:#fff;border:1px solid #f0c6c0;border-left:4px solid var(--red);border-radius:var(--radius);padding:14px 16px;box-shadow:var(--shadow)}
.alert-card .ac-title{font-weight:700;font-size:13.5px}
.alert-card .ac-sub{color:var(--muted);font-size:12.5px;margin-top:4px}

/* ---- buttons (premium touch) ---- */
.btn{border-radius:10px;padding:9px 16px;font-weight:600;transition:.12s}
.btn.primary{background:var(--brand);border-color:var(--brand)}
.btn.primary:hover{background:var(--brand-deep);box-shadow:0 4px 12px rgba(125,13,13,.25)}
.toolbar{background:transparent}

/* ---- modal ---- */
.modal{border-radius:18px;box-shadow:0 24px 70px rgba(0,0,0,.28)}

/* ---- horizontal bars (Charts.hbars) ---- */
.hbars{display:flex;flex-direction:column;gap:10px;padding:6px 0}
.hbar-row{display:grid;grid-template-columns:150px 1fr 92px;gap:12px;align-items:center}
.hbar-label{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hbar-track{background:#eef0f1;border-radius:999px;height:12px;overflow:hidden}
.hbar-fill{height:100%;border-radius:999px;min-width:6px;transition:width .5s ease}
.hbar-val{font-size:13px;font-weight:700;text-align:right;font-variant-numeric:tabular-nums}

/* ---- responsive ---- */
@media(max-width:900px){
  .content{padding:16px 16px 40px}
  .topbar{padding:16px 16px 0}
  .kpi .kpi-value{font-size:26px}
}
