*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--surface-0: #07111f;--surface-1: #0d1b2b;--surface-2: #132337;--primary: #55a7ff;--secondary: #8ba2b8;--success: #39d98a;--warning: #f4b740;--danger: #ff6b5f;--surface-accent: #123b34;--sidebar-bg: rgba(10, 21, 34, .9);--border: rgba(148, 163, 184, .22);--border-strong: rgba(148, 163, 184, .38);--text-primary: #edf6ff;--text-secondary: #b9c7d6;--text-muted: #8ea1b5;--font-sans: Inter, Poppins, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "SF Mono", "Fira Code", "Cascadia Code", Consolas, monospace;--radius: 12px;--shadow-sm: 0 16px 34px rgba(0, 0, 0, .22);--shadow-md: 0 24px 54px rgba(0, 0, 0, .34)}html,body,#root{height:100%;font-family:var(--font-sans);background:var(--surface-0);color:var(--text-primary);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}body{background:radial-gradient(circle at 18% 12%,rgba(85,167,255,.22),transparent 30%),radial-gradient(circle at 86% 18%,rgba(57,217,138,.13),transparent 26%),radial-gradient(circle at 58% 92%,rgba(244,183,64,.1),transparent 30%),linear-gradient(135deg,#07111f,#0b1828 48%,#101827)}#root{background:linear-gradient(90deg,rgba(148,163,184,.07) 0 1px,transparent 1px 100%),linear-gradient(180deg,rgba(148,163,184,.05) 0 1px,transparent 1px 100%);background-size:42px 42px}input,select,textarea,button{font-family:var(--font-sans);font-size:13px}input,select,textarea{padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:#07111fb8;color:var(--text-primary);outline:none;transition:border-color .15s,box-shadow .15s;width:100%}input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 4px #55a7ff24}input:disabled,select:disabled,textarea:disabled{opacity:.45;cursor:not-allowed;background:#0d1b2bbd}button{cursor:pointer;transition:opacity .15s,transform .1s,box-shadow .15s,background .15s;border:none}button:hover{box-shadow:0 12px 26px #00000047;transform:translateY(-1px)}button:active{transform:scale(.98)}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#94a3b87a;border-radius:3px}table{border-collapse:collapse;width:100%}th{text-transform:uppercase;letter-spacing:.35px}h1,.section-title{font-weight:600}@media (max-width: 900px){table{min-width:760px}aside{width:76px!important}aside nav div{justify-content:center}.nav-label,.sidebar-brand-text,aside>div:last-child{display:none}main{padding:18px!important}}

/* ═══════════════════════════════════════════════════════════════════
   GREIGE INVENTORY — MOBILE UI  (max-width: 700px)
   ═══════════════════════════════════════════════════════════════════ */
@media (max-width: 700px) {

  /* ── Viewport / root ───────────────────────────────────── */
  html, body, #root { height: 100dvh !important; overflow: hidden !important; }

  /* ── Root app wrapper: column layout ──────────────────── */
  #root > div {
    flex-direction: column !important;
    height: 100dvh !important;
    overflow: hidden !important;
    padding-bottom: 0 !important;
  }

  /* ── Sidebar: hidden on mobile (replaced by bottom nav) ── */
  aside { display: none !important; }

  /* ── Main content area ─────────────────────────────────── */
  main {
    flex: 1 !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    min-width: 0 !important;
    padding: 0 !important;
    padding-top: 60px !important;   /* ruang topbar */
    padding-bottom: 72px !important; /* ruang bottom nav */
    -webkit-overflow-scrolling: touch;
  }

  /* ── Konten halaman dalam main ─────────────────────────── */
  main > div { padding: 16px 14px !important; }

  /* ── Grid stat cards: 2 kolom ──────────────────────────── */
  main > div > div:first-child > div[style*="grid"] {
    grid-template-columns: 1fr 1fr !important;
    gap: 10px !important;
  }

  /* ── Dashboard: dua panel bawah jadi column ─────────────── */
  main > div > div[style*="grid-template-columns: 1fr 1fr"],
  main > div > div[style*="gridTemplateColumns: 1fr 1fr"] {
    grid-template-columns: 1fr !important;
  }

  /* ── Table: horizontal scroll ──────────────────────────── */
  table { min-width: 580px; }
  div[style*="overflow"] { overflow-x: auto !important; }

  /* ── Input font: ≥16px cegah iOS zoom ─────────────────── */
  input, select, textarea { font-size: 16px !important; }

  /* ── Form: max-width none ──────────────────────────────── */
  div[style*="maxWidth:620"], div[style*="max-width:620px"],
  div[style*="maxWidth: 620"] { max-width: 100% !important; }

  /* ── Section h1 ─────────────────────────────────────────── */
  h1[style*="fontSize:20"], h1[style*="font-size:20px"] {
    font-size: 17px !important;
  }

  /* ── Stat card: lebih compact ──────────────────────────── */
  div[style*="padding:\"18px 20px\""] { padding: 12px 14px !important; }

  /* ── Buttons: lebih besar touch target ─────────────────── */
  button { min-height: 44px; }

  /* ── Hide sync indicator (dipindah ke topbar) ─────────── */
  #sync-indicator { display: none !important; }

  /* ── Toast: di atas bottom nav ─────────────────────────── */
}

/* ── Mobile Shell: Topbar ─────────────────────────────────────────── */
.gi-topbar {
  display: none;
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 9000;
  height: 58px;
  background: rgba(7,17,31,0.97);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-bottom: 0.5px solid rgba(148,163,184,0.18);
  align-items: center;
  gap: 10px;
  padding: 0 14px;
}
@media (max-width: 700px) { .gi-topbar { display: flex !important; } }

.gi-topbar-logo {
  width: 30px; height: 30px;
  border-radius: 9px;
  background: linear-gradient(135deg,#55A7FF,#39D98A);
  color: #07111F;
  display: grid; place-items: center;
  font-weight: 800; font-size: 11px;
  flex-shrink: 0;
}
.gi-topbar-text { flex: 1; }
.gi-topbar-name { font-size: 15px; font-weight: 600; color: #EDF6FF; }
.gi-topbar-sub  { font-size: 10px; color: #8EA1B5; }
.gi-topbar-sync {
  font-size: 10px; padding: 3px 8px;
  border-radius: 20px;
  border: 0.5px solid #334155;
  background: #0f172a; color: #64748b;
  white-space: nowrap; flex-shrink: 0;
  transition: color .3s, border-color .3s;
}

/* ── Mobile Shell: Bottom Navigation ─────────────────────────────── */
.gi-bottomnav {
  display: none;
  position: fixed;
  bottom: 0; left: 0; right: 0;
  z-index: 9000;
  height: 64px;
  background: rgba(7,17,31,0.97);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-top: 0.5px solid rgba(148,163,184,0.18);
  padding-bottom: env(safe-area-inset-bottom,0px);
}
@media (max-width: 700px) { .gi-bottomnav { display: flex !important; } }

.gi-nav-items {
  display: flex;
  width: 100%;
  height: 100%;
}
.gi-nav-btn {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  cursor: pointer;
  background: transparent;
  border: none;
  color: #5A7291;
  font-size: 9.5px;
  font-weight: 500;
  padding: 6px 2px 4px;
  font-family: inherit;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
  position: relative;
  transition: color .15s;
}
.gi-nav-btn.active-dash, .gi-nav-btn.active-mast, .gi-nav-btn.active-hist { color: #55A7FF; }
.gi-nav-btn.active-in   { color: #39D98A; }
.gi-nav-btn.active-out  { color: #FF6B5F; }
.gi-nav-btn.active-adj  { color: #F4B740; }

.gi-nav-btn::before {
  content: '';
  position: absolute;
  top: 0; left: 15%; right: 15%;
  height: 2.5px;
  border-radius: 0 0 3px 3px;
  background: transparent;
  transition: background .15s;
}
.gi-nav-btn.active-dash::before,
.gi-nav-btn.active-mast::before,
.gi-nav-btn.active-hist::before { background: #55A7FF; }
.gi-nav-btn.active-in::before   { background: #39D98A; }
.gi-nav-btn.active-out::before  { background: #FF6B5F; }
.gi-nav-btn.active-adj::before  { background: #F4B740; }

.gi-nav-icon  { font-size: 20px; line-height: 1; }
.gi-nav-label { font-size: 9px; letter-spacing: .01em; }

/* ── Mobile toast override ────────────────────────────────────────── */
@media (max-width: 700px) {
  /* Original React toast — push di atas bottom nav */
  div[style*="position:fixed"][style*="bottom:20px"],
  div[style*="position: fixed"][style*="bottom: 20px"] {
    bottom: 74px !important;
    left: 14px !important;
    right: 14px !important;
    max-width: none !important;
  }
}

/* Dashboard value and mobile usability refresh */
.gi-dashboard-stats,
.gi-dashboard-grid {
  width: 100%;
}

@media (max-width: 1100px) {
  .gi-dashboard-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  .gi-dashboard-grid {
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 700px) {
  body {
    background: linear-gradient(180deg, #07111f 0%, #0d1b2b 56%, #07111f 100%) !important;
  }

  main > div {
    padding: 14px 12px 18px !important;
  }

  .gi-dashboard-stats {
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    margin-bottom: 12px !important;
  }

  .gi-dashboard-grid {
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }

  h1 {
    font-size: 18px !important;
    line-height: 1.2 !important;
  }

  button,
  input,
  select,
  textarea {
    min-height: 46px !important;
  }

  table {
    min-width: 680px !important;
  }

  th,
  td {
    padding-left: 10px !important;
    padding-right: 10px !important;
  }

  div[style*="grid-template-columns: 150px 1fr 92px"],
  div[style*="gridTemplateColumns:150px 1fr 92px"] {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 5px !important;
    align-items: stretch !important;
  }

  div[style*="grid-template-columns: minmax(0,1fr) auto"],
  div[style*="gridTemplateColumns:minmax(0,1fr) auto"] {
    grid-template-columns: minmax(0, 1fr) !important;
  }
}

/* Mobile UI/UX font and layout hardening - 2026-07-05 */
@media (max-width: 700px) {
  html {
    -webkit-text-size-adjust: 100% !important;
    text-size-adjust: 100% !important;
  }

  html, body, #root,
  input, select, textarea, button {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif !important;
  }

  body {
    min-width: 320px !important;
    overscroll-behavior-y: none;
  }

  main {
    padding-top: calc(62px + env(safe-area-inset-top, 0px)) !important;
    padding-bottom: calc(78px + env(safe-area-inset-bottom, 0px)) !important;
  }

  main > div,
  main section,
  main article,
  main form,
  main [style*="display: flex"],
  main [style*="display:flex"] {
    min-width: 0 !important;
    max-width: 100% !important;
  }

  .gi-topbar {
    height: calc(58px + env(safe-area-inset-top, 0px)) !important;
    padding: env(safe-area-inset-top, 0px) 12px 0 !important;
  }

  .gi-topbar-text {
    min-width: 0 !important;
  }

  .gi-topbar-name,
  .gi-topbar-sub,
  .gi-topbar-sync,
  .gi-nav-label {
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
  }

  .gi-topbar-name {
    font-size: 14px !important;
    line-height: 1.15 !important;
  }

  .gi-topbar-sync {
    max-width: 96px !important;
    font-size: 10px !important;
    line-height: 1.2 !important;
  }

  .gi-bottomnav {
    height: calc(66px + env(safe-area-inset-bottom, 0px)) !important;
  }

  .gi-nav-items {
    height: 66px !important;
  }

  .gi-nav-btn {
    min-width: 0 !important;
    min-height: 58px !important;
    padding: 6px 1px 5px !important;
    gap: 3px !important;
    font-size: 9px !important;
    line-height: 1.05 !important;
    transform: none !important;
    box-shadow: none !important;
  }

  .gi-nav-icon {
    display: block !important;
    width: 24px !important;
    height: 22px !important;
    font-family: Arial, sans-serif !important;
    font-size: 18px !important;
    font-weight: 700 !important;
    line-height: 22px !important;
    text-align: center !important;
  }

  .gi-nav-label {
    display: block !important;
    width: 100% !important;
    max-width: 48px !important;
    margin: 0 auto !important;
    font-size: 8.5px !important;
    line-height: 1.1 !important;
    letter-spacing: 0 !important;
  }

  h1, h2, h3, p, label, span, div, td, th, button {
    overflow-wrap: anywhere;
  }

  h1 {
    font-size: 17px !important;
    line-height: 1.22 !important;
  }

  input, select, textarea {
    font-size: 16px !important;
    line-height: 1.35 !important;
    border-radius: 9px !important;
  }

  button {
    font-size: 13px !important;
    line-height: 1.2 !important;
  }

  table {
    font-size: 12px !important;
  }

  th, td {
    white-space: nowrap !important;
  }
}

@media (max-width: 380px) {
  .gi-topbar-logo {
    width: 28px !important;
    height: 28px !important;
  }

  .gi-topbar-sync {
    max-width: 78px !important;
    padding-left: 6px !important;
    padding-right: 6px !important;
  }

  .gi-nav-label {
    max-width: 42px !important;
    font-size: 8px !important;
  }
}

/* Stock Take mobile summary cleanup - 2026-07-05 */
@media (max-width: 700px) {
  main > div[style*="max-width: 880px"],
  main > div[style*="maxWidth:880"],
  main > div[style*="maxWidth: 880"] {
    max-width: 100% !important;
  }

  main > div[style*="max-width: 880px"] > h1,
  main > div[style*="maxWidth:880"] > h1,
  main > div[style*="maxWidth: 880"] > h1 {
    margin-bottom: 4px !important;
  }

  main > div[style*="max-width: 880px"] > p,
  main > div[style*="maxWidth:880"] > p,
  main > div[style*="maxWidth: 880"] > p {
    margin-bottom: 14px !important;
    line-height: 1.35 !important;
  }

  main > div[style*="max-width: 880px"] div[style*="grid-template-columns: repeat(3, 1fr)"],
  main > div[style*="max-width: 880px"] div[style*="grid-template-columns:repeat(3,1fr)"],
  main > div[style*="maxWidth:880"] div[style*="grid-template-columns: repeat(3, 1fr)"],
  main > div[style*="maxWidth: 880"] div[style*="grid-template-columns: repeat(3, 1fr)"] {
    grid-template-columns: 1fr !important;
    gap: 8px !important;
    margin-top: 10px !important;
  }

  main > div[style*="max-width: 880px"] div[style*="grid-template-columns: repeat(3, 1fr)"] > div,
  main > div[style*="max-width: 880px"] div[style*="grid-template-columns:repeat(3,1fr)"] > div,
  main > div[style*="maxWidth:880"] div[style*="grid-template-columns: repeat(3, 1fr)"] > div,
  main > div[style*="maxWidth: 880"] div[style*="grid-template-columns: repeat(3, 1fr)"] > div {
    min-height: 72px !important;
    padding: 12px 14px 12px 16px !important;
    border-radius: 10px !important;
  }

  main > div[style*="max-width: 880px"] div[style*="grid-template-columns: repeat(3, 1fr)"] > div > div[style*="display: flex"],
  main > div[style*="max-width: 880px"] div[style*="grid-template-columns:repeat(3,1fr)"] > div > div[style*="display: flex"],
  main > div[style*="maxWidth:880"] div[style*="grid-template-columns: repeat(3, 1fr)"] > div > div[style*="display: flex"],
  main > div[style*="maxWidth: 880"] div[style*="grid-template-columns: repeat(3, 1fr)"] > div > div[style*="display: flex"] {
    align-items: center !important;
    gap: 10px !important;
  }

  main > div[style*="max-width: 880px"] div[style*="grid-template-columns: repeat(3, 1fr)"] > div > div[style*="display: flex"] > div:first-child,
  main > div[style*="max-width: 880px"] div[style*="grid-template-columns:repeat(3,1fr)"] > div > div[style*="display: flex"] > div:first-child,
  main > div[style*="maxWidth:880"] div[style*="grid-template-columns: repeat(3, 1fr)"] > div > div[style*="display: flex"] > div:first-child,
  main > div[style*="maxWidth: 880"] div[style*="grid-template-columns: repeat(3, 1fr)"] > div > div[style*="display: flex"] > div:first-child {
    flex: 1 1 auto !important;
    min-width: 0 !important;
  }

  main > div[style*="max-width: 880px"] div[style*="text-transform: uppercase"],
  main > div[style*="maxWidth:880"] div[style*="text-transform: uppercase"],
  main > div[style*="maxWidth: 880"] div[style*="text-transform: uppercase"] {
    margin-bottom: 3px !important;
    font-size: 10px !important;
    line-height: 1.2 !important;
    letter-spacing: 0 !important;
    white-space: normal !important;
  }

  main > div[style*="max-width: 880px"] div[style*="font-size: 24px"],
  main > div[style*="maxWidth:880"] div[style*="font-size: 24px"],
  main > div[style*="maxWidth: 880"] div[style*="font-size: 24px"] {
    max-width: 100% !important;
    font-size: 20px !important;
    line-height: 1.1 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
  }

  main > div[style*="max-width: 880px"] div[style*="width: 36px"],
  main > div[style*="maxWidth:880"] div[style*="width: 36px"],
  main > div[style*="maxWidth: 880"] div[style*="width: 36px"] {
    width: 32px !important;
    height: 32px !important;
    border-radius: 9px !important;
    flex: 0 0 32px !important;
  }

  main > div[style*="max-width: 880px"] div[style*="font-size: 11px"][style*="margin-top: 3px"],
  main > div[style*="maxWidth:880"] div[style*="font-size: 11px"][style*="margin-top: 3px"],
  main > div[style*="maxWidth: 880"] div[style*="font-size: 11px"][style*="margin-top: 3px"] {
    margin-top: 6px !important;
    font-size: 10px !important;
    line-height: 1.25 !important;
  }

  main > div[style*="max-width: 880px"] table,
  main > div[style*="maxWidth:880"] table,
  main > div[style*="maxWidth: 880"] table {
    min-width: 620px !important;
  }
}

@media (max-width: 380px) {
  main > div[style*="max-width: 880px"] div[style*="font-size: 24px"],
  main > div[style*="maxWidth:880"] div[style*="font-size: 24px"],
  main > div[style*="maxWidth: 880"] div[style*="font-size: 24px"] {
    font-size: 18px !important;
  }
}
