/* ===========================
   ERP MBG — Master Stylesheet
   =========================== */
:root {
  --green-900:#0d2818;--green-800:#1a3a2a;--green-700:#2d6a4f;--green-600:#40916c;--green-400:#74c69d;--green-100:#d8f3dc;--green-50:#f0faf3;
  --cream:#faf7f2;--cream-dark:#f0ebe0;
  --gray-900:#1a2218;--gray-700:#3d5a47;--gray-400:#6b8a76;--gray-200:#d1e8da;
  --amber:#e9c46a;--amber-dark:#c9962a;--amber-light:#fef9ec;
  --coral:#e76f51;--coral-light:#fff0ed;
  --purple:#7b4fcf;--purple-light:#ede6ff;
  --bg:var(--cream);--surface:#fff;--border:#d1e8da;--border-strong:#b8d9c6;
  --text-primary:var(--gray-900);--text-secondary:var(--gray-400);--text-muted:#9db5a4;
  --shadow-xs:0 1px 2px rgba(26,58,42,.06);
  --shadow-sm:0 1px 4px rgba(26,58,42,.08),0 2px 8px rgba(26,58,42,.04);
  --shadow-md:0 4px 16px rgba(26,58,42,.10),0 2px 6px rgba(26,58,42,.06);
  --shadow-lg:0 12px 40px rgba(26,58,42,.15),0 4px 12px rgba(26,58,42,.08);
  --shadow-xl:0 24px 64px rgba(26,58,42,.20);
  --r-sm:8px;--r-md:12px;--r-lg:16px;--r-xl:20px;--r-full:9999px;
  --sidebar-w:268px;--topbar-h:64px;
  --t-fast:150ms ease;--t-base:200ms ease;--t-slow:300ms ease;
}

*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
body{font-family:'DM Sans',system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--text-primary);min-height:100vh;display:flex;overflow-x:hidden;-webkit-font-smoothing:antialiased}
::-webkit-scrollbar{width:6px;height:6px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--green-400);border-radius:var(--r-full)}

/* SIDEBAR */
.sidebar{width:var(--sidebar-w);min-height:100vh;background:linear-gradient(160deg,var(--green-800) 0%,var(--green-900) 100%);display:flex;flex-direction:column;position:fixed;left:0;top:0;bottom:0;z-index:100;overflow-y:auto;box-shadow:4px 0 24px rgba(0,0,0,.15)}
.sb-brand{padding:22px 18px 18px;border-bottom:1px solid rgba(255,255,255,.06)}
.sb-logo{display:flex;align-items:center;gap:12px}
.sb-icon{width:44px;height:44px;background:linear-gradient(135deg,var(--green-400),var(--amber));border-radius:var(--r-md);display:flex;align-items:center;justify-content:center;font-size:22px;box-shadow:0 4px 12px rgba(116,198,157,.35);flex-shrink:0}
.sb-name{font-family:'DM Serif Display',Georgia,serif;font-size:21px;color:#fff;line-height:1.1}
.sb-sub{font-size:10px;color:var(--green-400);letter-spacing:2px;text-transform:uppercase;margin-top:2px;font-weight:500}
.sb-nav{flex:1;padding:12px 10px}
.nav-sec{font-size:10px;letter-spacing:1.8px;text-transform:uppercase;color:rgba(255,255,255,.25);padding:16px 12px 6px;font-weight:700}
.nav-item{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:var(--r-md);cursor:pointer;transition:all var(--t-base);color:rgba(255,255,255,.6);font-size:13.5px;font-weight:500;margin-bottom:1px;text-decoration:none;position:relative}
.nav-item:hover{background:rgba(255,255,255,.08);color:#fff;transform:translateX(2px)}
.nav-item.active{background:linear-gradient(135deg,rgba(64,145,108,.8),rgba(45,106,79,.9));color:#fff;box-shadow:0 4px 12px rgba(64,145,108,.3)}
.nav-item.active::before{content:'';position:absolute;left:-10px;top:50%;transform:translateY(-50%);width:3px;height:60%;background:var(--green-400);border-radius:0 2px 2px 0}
.nav-icon{font-size:16px;width:22px;text-align:center;flex-shrink:0}
.nav-sub{font-size:12px;color:rgba(255,255,255,.4);padding:5px 12px 5px 44px;margin-bottom:1px;cursor:pointer;border-radius:var(--r-sm);transition:all var(--t-base);text-decoration:none;display:block}
.nav-sub:hover{color:rgba(255,255,255,.75);background:rgba(255,255,255,.05)}
.nav-sub.active{color:var(--green-400);font-weight:600}
.sb-footer{padding:14px;border-top:1px solid rgba(255,255,255,.06)}
.user-card{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--r-md);background:rgba(255,255,255,.05);transition:background var(--t-base)}
.user-card:hover{background:rgba(255,255,255,.09)}
.uavatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--green-400),var(--amber));display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;color:var(--green-900);flex-shrink:0}
.uname{font-size:13px;font-weight:600;color:#fff}
.urole{font-size:11px;color:rgba(255,255,255,.4);margin-top:1px}

/* MAIN */
.main{margin-left:var(--sidebar-w);flex:1;display:flex;flex-direction:column;min-height:100vh}
.topbar{background:rgba(255,255,255,.95);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border);padding:0 28px;height:var(--topbar-h);display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:50;box-shadow:var(--shadow-sm)}
.tb-title{font-size:17px;font-weight:700;color:var(--text-primary)}
.tb-date{font-size:12.5px;color:var(--text-secondary);background:var(--green-50);border:1px solid var(--green-100);padding:5px 14px;border-radius:var(--r-full);font-weight:500}
.tb-notif{width:36px;height:36px;border-radius:50%;background:var(--cream);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:17px;position:relative;transition:all var(--t-base)}
.tb-notif:hover{background:var(--green-50);border-color:var(--green-400)}
.notif-dot{position:absolute;top:7px;right:7px;width:7px;height:7px;border-radius:50%;background:var(--coral);border:2px solid #fff}
.content{padding:28px 32px;flex:1}

/* PAGE HEADER */
.ph{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:24px;gap:12px;flex-wrap:wrap}
.pt{font-family:'DM Serif Display',Georgia,serif;font-size:28px;line-height:1.2}
.ps{font-size:14px;color:var(--text-secondary);margin-top:4px}

/* BUTTONS */
.btn{display:inline-flex;align-items:center;gap:7px;padding:9px 18px;border-radius:var(--r-md);font-family:'DM Sans',sans-serif;font-size:13.5px;font-weight:600;cursor:pointer;border:none;transition:all var(--t-base);text-decoration:none;white-space:nowrap;outline:none}
.btn:focus-visible{box-shadow:0 0 0 3px rgba(64,145,108,.35)}
.btn-p{background:linear-gradient(135deg,var(--green-600),var(--green-700));color:#fff;box-shadow:0 4px 12px rgba(64,145,108,.28)}
.btn-p:hover{transform:translateY(-1px);box-shadow:0 6px 18px rgba(64,145,108,.38)}
.btn-p:active{transform:translateY(0)}
.btn-s{background:#fff;color:var(--text-primary);border:1.5px solid var(--border)}
.btn-s:hover{background:var(--cream);border-color:var(--border-strong)}
.btn-d{background:var(--coral-light);color:var(--coral);border:1.5px solid #fbd5ca}
.btn-d:hover{background:#ffe0d8}
.btn-a{background:var(--amber-light);color:var(--amber-dark);border:1.5px solid #f5e5a3}
.btn-a:hover{background:#fef3d0}
.btn-pu{background:var(--purple-light);color:var(--purple);border:1.5px solid #d8c8f8}
.btn-pu:hover{background:#e5d8ff}
.btn-sm{padding:6px 12px;font-size:12.5px;border-radius:var(--r-sm)}

/* STAT CARDS */
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}
.sc{background:#fff;border-radius:var(--r-lg);padding:20px;border:1px solid var(--border);position:relative;overflow:hidden;transition:all var(--t-base)}
.sc:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}
.sc::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;border-radius:var(--r-lg) var(--r-lg) 0 0}
.sc.green::before{background:linear-gradient(90deg,var(--green-600),var(--green-400))}
.sc.amber::before{background:linear-gradient(90deg,var(--amber-dark),var(--amber))}
.sc.coral::before{background:linear-gradient(90deg,#c1553d,var(--coral))}
.sc.teal::before{background:linear-gradient(90deg,#0a7075,#0aa3a8)}
.sc.pu::before{background:linear-gradient(90deg,var(--purple),#a87ee0)}
.si{width:40px;height:40px;border-radius:var(--r-sm);display:flex;align-items:center;justify-content:center;font-size:20px;margin-bottom:12px}
.sc.green .si{background:var(--green-100)}
.sc.amber .si{background:var(--amber-light)}
.sc.coral .si{background:var(--coral-light)}
.sc.teal .si{background:#e0f5f5}
.sc.pu .si{background:var(--purple-light)}
.sv{font-size:26px;font-weight:700;line-height:1}
.sl{font-size:12px;color:var(--text-secondary);margin-top:4px;font-weight:500}

/* CARDS */
.card{background:#fff;border-radius:var(--r-lg);border:1px solid var(--border);box-shadow:var(--shadow-sm);overflow:hidden;transition:box-shadow var(--t-base)}
.card:hover{box-shadow:var(--shadow-md)}
.ch{padding:16px 22px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;background:rgba(250,247,242,.5)}
.ct{font-size:15px;font-weight:700}
.cb{padding:20px 22px}

/* TABLES */
.tw{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:13.5px}
thead th{background:var(--cream);padding:10px 16px;text-align:left;font-size:11px;font-weight:700;color:var(--text-secondary);letter-spacing:.5px;text-transform:uppercase;border-bottom:2px solid var(--border)}
tbody td{padding:11px 16px;border-bottom:1px solid rgba(209,232,218,.6);vertical-align:middle;transition:background var(--t-fast)}
tbody tr:last-child td{border-bottom:none}
tbody tr:hover td{background:rgba(240,250,243,.7)}

/* BADGES */
.badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:var(--r-full);font-size:11px;font-weight:700;letter-spacing:.3px}
.bg{background:var(--green-100);color:var(--green-700)}
.ba{background:var(--amber-light);color:var(--amber-dark)}
.bc{background:var(--coral-light);color:var(--coral)}
.bpu{background:var(--purple-light);color:var(--purple)}

/* FORMS */
label{font-size:12.5px;font-weight:600;color:var(--gray-700);display:block;margin-bottom:5px}
input,select,textarea{padding:9px 13px;border:1.5px solid var(--border);border-radius:var(--r-md);font-family:'DM Sans',sans-serif;font-size:14px;color:var(--text-primary);background:#fff;outline:none;transition:all var(--t-base);width:100%}
input:focus,select:focus,textarea:focus{border-color:var(--green-600);box-shadow:0 0 0 3px rgba(64,145,108,.12)}
input::placeholder{color:var(--text-muted)}
.hint{font-size:12px;color:var(--text-muted);margin-top:4px}
.fg{display:flex;flex-direction:column;gap:0}
.fg2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.fg3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}
.full{grid-column:1/-1}
.divider{height:1px;background:var(--border);margin:18px 0}
.sec-lbl{font-size:11px;font-weight:700;color:var(--text-secondary);letter-spacing:1.5px;text-transform:uppercase;margin-bottom:10px}
.calc-box{border-radius:var(--r-md);padding:14px 18px;display:flex;gap:24px;flex-wrap:wrap;margin-top:14px}
.calc-box.green{background:linear-gradient(135deg,var(--green-100),#c8f0d8);border:1px solid var(--green-400)}
.calc-box.pu{background:linear-gradient(135deg,#f0eaff,#e5d8ff);border:1px solid #c5aaf0}
.cb-label{font-size:12px;color:var(--text-secondary);font-weight:500;margin-bottom:2px}
.cb-val{font-size:20px;font-weight:700;color:var(--green-800)}
.add-row{display:flex;align-items:center;gap:8px;padding:8px 14px;border:2px dashed var(--green-400);border-radius:var(--r-md);background:transparent;color:var(--green-600);font-size:13px;font-weight:600;cursor:pointer;transition:all var(--t-base);width:100%;justify-content:center;margin-top:6px;outline:none;font-family:'DM Sans',sans-serif}
.add-row:hover{background:var(--green-50);border-color:var(--green-600)}

/* MODALS */
.modal-overlay{display:none;position:fixed;inset:0;background:rgba(13,40,24,.5);z-index:200;align-items:center;justify-content:center;padding:20px;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.modal-overlay.open{display:flex}
.modal{background:#fff;border-radius:var(--r-xl);width:100%;max-width:660px;max-height:92vh;overflow-y:auto;box-shadow:var(--shadow-xl);animation:modalIn var(--t-slow) cubic-bezier(.16,1,.3,1)}
.modal-lg{max-width:860px}
@keyframes modalIn{from{transform:translateY(24px) scale(.97);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}
.mh{padding:20px 24px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;background:rgba(255,255,255,.95);backdrop-filter:blur(8px);z-index:5}
.mt{font-family:'DM Serif Display',Georgia,serif;font-size:22px}
.mc{width:32px;height:32px;border-radius:50%;border:none;background:var(--cream);cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);transition:all var(--t-base);flex-shrink:0}
.mc:hover{background:var(--coral-light);color:var(--coral)}
.mb{padding:22px 24px}
.mf{padding:16px 24px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:10px;background:rgba(250,247,242,.5)}

/* CALENDAR */
.cal-tabs{display:flex;gap:4px;background:var(--cream);padding:4px;border-radius:var(--r-lg);margin-bottom:20px;width:fit-content}
.cal-tab{display:flex;align-items:center;gap:8px;padding:9px 18px;border-radius:var(--r-md);font-size:13.5px;font-weight:600;cursor:pointer;color:var(--text-secondary);transition:all var(--t-base);white-space:nowrap}
.cal-tab:hover{color:var(--text-primary)}
.cal-tab.active{color:#fff;box-shadow:0 3px 10px rgba(0,0,0,.15)}
.cal-tab.a.active{background:linear-gradient(135deg,var(--green-600),var(--green-700))}
.cal-tab.b3.active{background:linear-gradient(135deg,var(--purple),#5a2fa8)}
.cal-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;border-radius:var(--r-full);font-size:10px;font-weight:700;padding:0 5px}
.cal-badge.a{background:var(--green-100);color:var(--green-700)}
.cal-badge.b3{background:var(--purple-light);color:var(--purple)}
.cal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.cal-month{font-family:'DM Serif Display',Georgia,serif;font-size:22px;min-width:200px;text-align:center}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}
.cal-dh{text-align:center;font-size:11px;font-weight:700;color:var(--text-secondary);padding:7px;text-transform:uppercase;letter-spacing:.8px}
.cal-day{border:1.5px solid var(--border);border-radius:var(--r-md);padding:7px;min-height:90px;cursor:pointer;transition:all var(--t-base);background:#fff}
.cal-day:hover{border-color:var(--green-400);background:var(--green-50);transform:translateY(-1px);box-shadow:var(--shadow-sm)}
.cal-day.has-a{border-color:var(--green-600);border-left:3px solid var(--green-600)}
.cal-day.has-b3{border-color:var(--purple);border-right:3px solid var(--purple)}
.cal-day.has-a.has-b3{border-left:3px solid var(--green-600);border-right:3px solid var(--purple)}
.cal-day.today{border-color:var(--amber);background:#fffdf5}
.cal-day.empty{background:var(--cream);cursor:default;border-color:transparent}
.cal-day.empty:hover{transform:none;box-shadow:none;border-color:transparent;background:var(--cream)}
.cdn{font-size:12px;font-weight:700;margin-bottom:4px}
.cal-day.today .tn{background:var(--amber);color:var(--green-900);width:22px;height:22px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:11px}
.menu-chip{font-size:9.5px;padding:2px 6px;border-radius:5px;font-weight:600;margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.chip-a{background:var(--green-100);color:var(--green-700)}
.chip-b3{background:var(--purple-light);color:var(--purple)}
.cal-klaster-dot{display:inline-flex;align-items:center;gap:3px;font-size:9.5px;font-weight:600;margin-bottom:3px}
.dot{width:7px;height:7px;border-radius:50%;display:inline-block}
.dot-a{background:var(--green-600)}
.dot-b3{background:var(--purple)}

/* PURCHASING */
.pur-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:22px}
.pur-sum-card{border-radius:var(--r-lg);padding:20px 22px}
.pur-sum-card.est{background:linear-gradient(135deg,var(--green-800),var(--green-700));color:#fff}
.pur-sum-card.real{background:linear-gradient(135deg,var(--amber-dark),var(--amber));color:#fff}
.pur-sum-card.selisih{background:#fff;border:1px solid var(--border);box-shadow:var(--shadow-sm)}
.pur-sum-card .label{font-size:11px;opacity:.75;margin-bottom:6px;text-transform:uppercase;letter-spacing:1px;font-weight:700}
.pur-sum-card .value{font-size:26px;font-weight:700}
.pur-sum-card .sub{font-size:11px;opacity:.65;margin-top:3px}
.pur-sum-card.selisih .label{color:var(--text-secondary);opacity:1}
.pur-sum-card.selisih .value{font-size:22px}
.pi-wrap{display:flex;align-items:center}
.pi-pre{padding:8px 10px;background:var(--cream);border:1.5px solid var(--border);border-right:none;border-radius:var(--r-md) 0 0 var(--r-md);font-size:12px;font-weight:600;color:var(--text-secondary);white-space:nowrap}
.pi-wrap input{border-radius:0 var(--r-md) var(--r-md) 0}
.sel-pos{color:var(--green-600);font-weight:700}
.sel-neg{color:var(--coral);font-weight:700}

/* MENU CARDS */
.menu-cards-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.mc-card{background:#fff;border-radius:var(--r-lg);border:1px solid var(--border);overflow:hidden;transition:all var(--t-base)}
.mc-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}
.mc-top{padding:14px 18px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:10px;background:rgba(250,247,242,.5)}
.mc-icon{width:44px;height:44px;border-radius:var(--r-md);display:flex;align-items:center;justify-content:center;font-size:22px;background:var(--green-100);flex-shrink:0}
.mc-body{padding:14px 18px}
.mc-ing{display:flex;justify-content:space-between;font-size:13px;padding:7px 10px;background:var(--cream);border-radius:var(--r-sm);margin-bottom:5px}
.mc-add{border:2px dashed var(--border-strong);display:flex;align-items:center;justify-content:center;min-height:180px;cursor:pointer;border-radius:var(--r-lg);background:#fff;transition:all var(--t-base)}
.mc-add:hover{border-color:var(--green-400);background:var(--green-50)}
.ir{display:grid;grid-template-columns:2.5fr 1fr 1.2fr auto;gap:8px;align-items:center;margin-bottom:8px}
.ir-del,.kmr-del{width:32px;height:32px;border-radius:var(--r-sm);background:var(--coral-light);border:1px solid #fbd5ca;color:var(--coral);cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all var(--t-base)}
.ir-del:hover,.kmr-del:hover{background:var(--coral);color:#fff}
.kmr{display:flex;gap:8px;align-items:center;margin-bottom:8px}
.klaster-banner{border-radius:var(--r-md);padding:13px 16px;display:flex;align-items:center;gap:12px}
.klaster-banner.a{background:var(--green-100);border:1px solid var(--green-400)}
.klaster-banner.b3{background:var(--purple-light);border:1px solid #c5aaf0}

/* ABSENSI */
.absen-hero{background:linear-gradient(135deg,var(--green-800),var(--green-600));border-radius:var(--r-xl);padding:28px;color:#fff;margin-bottom:22px;position:relative;overflow:hidden}
.absen-hero::before{content:'';position:absolute;top:-40%;right:-5%;width:240px;height:240px;border-radius:50%;background:rgba(255,255,255,.06)}
.absen-hero::after{content:'🍱';position:absolute;right:28px;top:50%;transform:translateY(-50%);font-size:72px;opacity:.1}
.absen-time{font-size:48px;font-family:'DM Serif Display',Georgia,serif;line-height:1;margin-bottom:4px;letter-spacing:-1px}
.tabs{display:flex;gap:3px;background:var(--cream);padding:4px;border-radius:var(--r-lg);margin-bottom:20px;width:fit-content}
.tab{padding:7px 18px;border-radius:var(--r-md);font-size:13.5px;font-weight:600;cursor:pointer;color:var(--text-secondary);transition:all var(--t-base)}
.tab.active{background:#fff;color:var(--text-primary);box-shadow:var(--shadow-sm)}
.tab-content{display:none}
.tab-content.active{display:block}
.sig-area{border:2px dashed var(--border-strong);border-radius:var(--r-md);background:var(--cream);position:relative;overflow:hidden;margin:10px 0;transition:border-color var(--t-base)}
.sig-area:hover{border-color:var(--green-400)}
.sig-canvas{width:100%;height:170px;cursor:crosshair;display:block}
.sig-hint{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:13px;color:var(--text-muted);pointer-events:none;text-align:center}
.stripe-a{border-left:4px solid var(--green-600)}
.stripe-b3{border-left:4px solid var(--purple)}

/* TOAST */
#toast-container{position:fixed;bottom:24px;right:24px;z-index:9999;display:flex;flex-direction:column;gap:10px;pointer-events:none}
.toast{display:flex;align-items:center;gap:10px;padding:12px 18px;border-radius:var(--r-md);font-size:13.5px;font-weight:500;box-shadow:var(--shadow-lg);transform:translateX(110%);opacity:0;transition:all var(--t-slow) cubic-bezier(.16,1,.3,1);pointer-events:all;min-width:260px;max-width:360px}
.toast.show{transform:translateX(0);opacity:1}
.toast-success{background:#fff;border-left:4px solid var(--green-600);color:var(--text-primary)}
.toast-error{background:#fff;border-left:4px solid var(--coral);color:var(--text-primary)}
.toast-warn{background:#fff;border-left:4px solid var(--amber-dark);color:var(--text-primary)}

/* EMPTY STATE */
.empty-state{text-align:center;padding:48px 20px;color:var(--text-muted)}
.empty-state-icon{font-size:48px;margin-bottom:12px;opacity:.6}
.empty-state-title{font-size:16px;font-weight:600;color:var(--text-secondary);margin-bottom:6px}

@media print{.sidebar,.topbar,.btn,.no-print{display:none!important}.main{margin-left:0}.content{padding:16px}}
@media(max-width:1100px){.stats-grid{grid-template-columns:repeat(2,1fr)}.menu-cards-grid{grid-template-columns:repeat(2,1fr)}}

/* ═══════════════════════════════════════════════════
   RESPONSIVE — Hamburger + Sidebar Drawer
   ═══════════════════════════════════════════════════ */
.hamburger{display:none;align-items:center;justify-content:center;width:38px;height:38px;border-radius:var(--r-md);border:1.5px solid var(--border);background:var(--cream);cursor:pointer;flex-shrink:0;transition:all var(--t-base);font-size:18px;line-height:1;padding:0}
.hamburger:hover{background:var(--green-50);border-color:var(--green-400)}
.sb-overlay{display:none;position:fixed;inset:0;background:rgba(13,40,24,.55);z-index:99;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);cursor:pointer}
.sb-overlay.open{display:block;animation:sbFadeIn .2s ease}
@keyframes sbFadeIn{from{opacity:0}to{opacity:1}}

/* ── Tablet  768px – 1023px ─────────────────────── */
@media(max-width:1023px){
  .sidebar{transform:translateX(-100%);transition:transform var(--t-slow) cubic-bezier(.16,1,.3,1);z-index:200}
  .sidebar.sb-open{transform:translateX(0);box-shadow:var(--shadow-xl)}
  .main{margin-left:0!important}
  .topbar{left:0!important;width:100%!important;padding:0 20px}
  .hamburger{display:flex}
  .stat-row{grid-template-columns:repeat(3,1fr)!important}
  .pur-summary{grid-template-columns:1fr 1fr!important}
  .menu-cards-grid{grid-template-columns:repeat(2,1fr)}
  .fg3{grid-template-columns:1fr 1fr}
  .cal-tabs{width:100%}
  .cal-tab{flex:1;justify-content:center}
  .dash-grid-3{grid-template-columns:1fr 1fr!important}
}

/* ── Mobile  < 768px ────────────────────────────── */
@media(max-width:767px){
  .content{padding:16px!important}
  .topbar{padding:0 14px}
  .tb-date{display:none}
  .tb-title{font-size:15px}

  /* Hero */
  .dash-hero{flex-direction:column;align-items:flex-start;gap:10px;padding:18px 20px}
  .hero-greeting{font-size:22px}
  .hero-time{font-size:32px}

  /* Grids */
  .stat-row{grid-template-columns:1fr 1fr!important;gap:10px!important}
  .stats-grid{grid-template-columns:1fr 1fr;gap:10px}
  .pur-summary{grid-template-columns:1fr!important}
  .menu-cards-grid{grid-template-columns:1fr}
  .fg2{grid-template-columns:1fr}
  .fg3{grid-template-columns:1fr}
  .dash-grid-2{grid-template-columns:1fr!important}
  .dash-grid-3{grid-template-columns:1fr!important}

  /* Page header */
  .ph{flex-direction:column;align-items:flex-start}
  .ph>.btn{width:100%;justify-content:center}
  .pt{font-size:22px}

  /* Calendar */
  .cal-tabs{flex-direction:column;width:100%}
  .cal-tab{font-size:12.5px;padding:8px 12px;flex:unset}
  .cal-grid{gap:3px}
  .cal-day{min-height:54px;padding:4px}
  .cal-month{font-size:17px;min-width:unset}
  .cal-header{flex-direction:column;gap:8px;align-items:flex-start}
  .menu-chip{display:none}

  /* Modals — bottom sheet */
  .modal-overlay{padding:0;align-items:flex-end}
  .modal,.modal-lg{max-width:100%;border-radius:var(--r-xl) var(--r-xl) 0 0;max-height:90vh}
  .mh{padding:16px 18px}
  .mb{padding:16px 18px}
  .mf{padding:12px 18px}

  /* Tables */
  .tw{overflow-x:auto;-webkit-overflow-scrolling:touch}
  table{min-width:600px}

  /* PO list row */
  .po-row{grid-template-columns:72px 1fr!important;gap:8px}
  .po-row>:nth-child(3),.po-row>:nth-child(4){display:none}

  /* Purchasing summary bar */
  .summary-bar{flex-direction:column;align-items:stretch;gap:12px}
  .summary-bar>div:last-child{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .summary-bar>div:last-child .btn{justify-content:center}

  /* Step indicator */
  .steps{gap:2px}
  .step-circle{width:26px;height:26px;font-size:11px}
  .step-label{font-size:11px}

  /* Forms */
  .ir{grid-template-columns:1.5fr 1fr auto}

  /* Calc box */
  .calc-box{gap:14px}

  /* Absensi */
  .absen-time{font-size:34px}
  .absen-hero{padding:20px}

  /* Toast */
  #toast-container{bottom:12px;right:12px;left:12px}
  .toast{min-width:unset;max-width:100%}

  /* Date picker */
  .date-option{padding:8px 4px!important}
  .d-num{font-size:18px}
  .d-day{font-size:9px}
}
