:root{--blue:#183f91;--blue2:#2867d8;--dark:#10244d;--gold:#f5b21b;--bg:#f4f7fb;--card:#fff;--text:#172033;--muted:#6b7280;--line:#e8edf5}*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--text)}button,input,textarea,select{font:inherit}.hidden{display:none!important}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:22px;background:radial-gradient(circle at 90% 90%,#f4a51c 0,#f4a51c22 25%,transparent 45%),linear-gradient(135deg,#10244d,#235bc4)}.login-card{width:100%;max-width:480px;background:rgba(255,255,255,.92);backdrop-filter:blur(20px);border-radius:34px;padding:38px;box-shadow:0 28px 90px #0005}.mark{width:82px;height:82px;border-radius:24px;background:linear-gradient(145deg,var(--blue),#0d2d72);color:white;display:flex;align-items:center;justify-content:center;font-size:34px;font-weight:900;margin:0 auto 20px}.login-card h1{text-align:center;margin:0;font-size:36px}.subtitle{text-align:center;color:var(--muted);font-weight:700;margin:6px 0 32px}.field{margin:14px 0}.field label{display:block;font-weight:800;margin-bottom:8px}.input{width:100%;border:1px solid var(--line);background:#fff;border-radius:18px;padding:15px 18px;outline:none;box-shadow:0 8px 20px #1d2b4f08}.input:focus{border-color:var(--blue);box-shadow:0 0 0 4px #2867d81c}.btn{border:0;border-radius:18px;padding:14px 18px;font-weight:900;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn-primary{background:linear-gradient(135deg,var(--blue),var(--blue2));color:#fff}.btn-gold{background:var(--gold);color:#fff}.btn-danger{background:#dc2626;color:#fff}.btn-soft{background:#eef4ff;color:var(--blue)}.btn-block{width:100%}.link{border:0;background:transparent;color:var(--blue);font-weight:800;cursor:pointer}.app{display:flex;min-height:100vh}.sidebar{position:fixed;left:0;top:0;bottom:0;width:280px;background:linear-gradient(180deg,#10244d,#132b61);color:#fff;padding:22px;z-index:50}.brand{display:flex;gap:12px;align-items:center;margin-bottom:28px}.brand .brand-logo{width:52px;height:52px;border-radius:16px;background:#fff;color:var(--blue);display:flex;align-items:center;justify-content:center;font-weight:900;font-size:22px}.brand b{font-size:18px}.brand small{color:#b8c9ee}.nav button{width:100%;border:0;background:transparent;color:#fff;padding:13px 14px;border-radius:16px;text-align:left;font-weight:800;margin:4px 0}.nav button:hover,.nav button.active{background:#ffffff1f}.main{margin-left:280px;width:100%;padding:26px}.topbar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:22px}.topbar-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.topbar h1{margin:0;font-size:30px}.topbar p{margin:4px 0 0;color:var(--muted);font-weight:600}.menu-btn{display:none}.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.card{background:var(--card);border-radius:26px;padding:22px;box-shadow:0 14px 40px #1f2f5a12;border:1px solid #fff}.card small{color:var(--muted);font-weight:800}.card b{display:block;font-size:28px;margin-top:8px}.panel{background:#fff;border-radius:26px;box-shadow:0 14px 40px #1f2f5a12;overflow:hidden;margin-top:20px}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:18px 20px;border-bottom:1px solid var(--line)}.panel-head h2{margin:0}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:900px}th,td{padding:14px 16px;border-bottom:1px solid var(--line);text-align:left;font-size:14px}th{background:#f8fafc;color:#64748b;text-transform:uppercase;font-size:12px;letter-spacing:.05em}.badge{display:inline-flex;padding:6px 10px;border-radius:999px;font-size:12px;font-weight:900}.Paid,.Approved,.Received{background:#dcfce7;color:#15803d}.Unpaid,.Pending,.Ordered{background:#fef3c7;color:#b45309}.Rejected,.Cancelled{background:#fee2e2;color:#b91c1c}.actions{display:flex;gap:6px;flex-wrap:wrap}.modal-backdrop{position:fixed;inset:0;background:#07132799;z-index:100;display:flex;align-items:center;justify-content:center;padding:18px}.modal{width:100%;max-width:920px;max-height:92vh;overflow:auto;background:#fff;border-radius:28px;box-shadow:0 24px 90px #0008}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:20px 22px;border-bottom:1px solid var(--line)}.modal-head h2{margin:0}.modal-body{padding:22px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.item-row{display:grid;grid-template-columns:1fr 100px 160px 44px;gap:8px;margin-bottom:8px}.toast{position:fixed;right:18px;bottom:18px;background:#10244d;color:white;padding:14px 18px;border-radius:18px;box-shadow:0 18px 50px #0005;z-index:200}.mobile-cards{display:none}@media(max-width:920px){.sidebar{transform:translateX(-110%);transition:.22s}.sidebar.show{transform:translateX(0)}.main{margin-left:0;padding:16px}.menu-btn{display:inline-flex}.grid{grid-template-columns:1fr 1fr}.form-grid{grid-template-columns:1fr}.item-row{grid-template-columns:1fr}.topbar{align-items:flex-start}.desktop-table{display:none}.mobile-cards{display:grid;gap:12px;padding:14px}.mobile-card{background:white;border:1px solid var(--line);border-radius:20px;padding:14px}.mobile-card b{display:block;margin-bottom:6px}.mobile-card small{color:var(--muted)}}@media(max-width:560px){.grid{grid-template-columns:1fr}.login-card{padding:28px}.login-card h1{font-size:30px}.topbar{display:block}.topbar .btn{margin-top:12px;width:100%}.panel-head{display:block}.panel-head .btn{width:100%;margin-top:12px}.card b{font-size:24px}}
/* Premium quotation/editor update */
.field.full{grid-column:1/-1}.rt-toolbar{display:flex;gap:8px;flex-wrap:wrap;background:#f8fafc;border:1px solid #d6dde8;border-bottom:0;border-radius:14px 14px 0 0;padding:8px}.rt-toolbar button{border:0;background:white;border-radius:9px;padding:8px 10px;font-weight:800;box-shadow:0 2px 8px #1d2b4f10;cursor:pointer}.rich-editor{min-height:125px;background:white;border:1px solid #d6dde8;border-radius:0 0 14px 14px;padding:13px 14px;line-height:1.6;outline:none}.logo-preview{margin-top:10px;min-height:84px;border:1px dashed #cbd5e1;border-radius:16px;background:#f8fafc;display:flex;align-items:center;justify-content:center;overflow:hidden}.logo-preview img{max-height:78px;max-width:220px;object-fit:contain}.item-row.premium{grid-template-columns:190px 1fr 90px 100px 150px 46px}.modal{max-width:980px}.modal-body{max-height:78vh;overflow:auto}@media(max-width:900px){.item-row.premium{grid-template-columns:1fr}.modal{width:94vw}.modal-body{max-height:76vh}}
/* Gas cylinder control module */
.Filled,.Available,.ReturnFilled,.Fill{background:#dcfce7;color:#15803d}.Delivered,.Delivery{background:#dbeafe;color:#1d4ed8}.Empty,.ReturnEmpty{background:#fef3c7;color:#b45309}.Maintenance,.Adjustment{background:#ede9fe;color:#6d28d9}.Lost,.Retired,.Retire{background:#fee2e2;color:#b91c1c}.due-soon{font-weight:900;color:#b91c1c}.gas-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}@media(max-width:920px){.gas-summary{grid-template-columns:1fr 1fr}}@media(max-width:560px){.gas-summary{grid-template-columns:1fr}}

/* Perbaikan toolbar pencarian modul tabung gas */
.gas-toolbar{display:grid;grid-template-columns:1.2fr .8fr 1fr auto;gap:12px;align-items:end;padding:14px 18px;border-bottom:1px solid #e5e7eb;background:#f8fafc}
.gas-toolbar .field{margin:0}.gas-toolbar-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.gas-result-info{padding:10px 18px;color:#64748b;font-size:13px;border-bottom:1px solid #e5e7eb;background:#fff}
@media(max-width:920px){.gas-toolbar{grid-template-columns:1fr}.gas-toolbar-actions .btn{width:100%}}


/* Customer special price grid */
.customer-price-box{border:1px solid #e2e8f0;border-radius:18px;overflow:hidden;background:#fff}
.customer-price-head,.customer-price-row{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:10px;align-items:center;padding:10px 12px;border-bottom:1px solid #eef2f7}
.customer-price-head{font-weight:800;color:#64748b;background:#f8fafc}
.customer-price-row:last-child{border-bottom:0}
.customer-price-row small{display:block;color:#64748b;margin-top:2px}
@media(max-width:760px){.customer-price-head{display:none}.customer-price-row{grid-template-columns:1fr;padding:12px}.customer-price-row .input{width:100%}}

/* v10 search/download visibility fix */
.panel-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.module-toolbar-force{display:block!important}.gas-toolbar{display:grid!important}.topbar-actions{display:flex!important}@media(max-width:920px){.panel-actions{margin-top:12px}.panel-head{display:flex;align-items:center}.gas-toolbar-actions .btn,.topbar-actions .btn{min-height:44px}}

/* v11 User Management */
.module-access-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;margin-top:8px}
.module-check{display:flex;align-items:center;gap:9px;padding:12px 14px;border:1px solid #e5e7eb;border-radius:16px;background:#f8fafc;font-weight:800;color:#172033}
.module-check input{width:18px;height:18px;accent-color:#1d4ed8}
.topbar-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.panel-actions{display:flex;gap:8px;flex-wrap:wrap}
@media(max-width:760px){.module-access-grid{grid-template-columns:1fr}.topbar-actions,.panel-actions{justify-content:flex-start}}

/* v20 compact search/filter toolbar */
.compact-head{padding-bottom:10px!important}
.module-filter-compact{padding:12px 18px;border-bottom:1px solid #e5e7eb;background:#f8fafc}
.module-filter-compact .field{margin:0}
.compact-main{display:grid;grid-template-columns:minmax(260px,1fr) 170px auto;gap:10px;align-items:end}
.compact-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.compact-actions .btn{padding:12px 18px;min-height:42px}
.compact-date-range{margin-top:8px;color:#475569;font-size:13px}
.compact-date-range summary{cursor:pointer;font-weight:700;color:#1d4f91;list-style:none}
.compact-date-range summary::-webkit-details-marker{display:none}
.compact-date-range summary:before{content:'▸ ';font-size:12px}
.compact-date-range[open] summary:before{content:'▾ '}
.compact-date-grid{display:grid;grid-template-columns:repeat(2,minmax(180px,240px));gap:10px;margin-top:8px}
@media(max-width:920px){
  .compact-main{grid-template-columns:1fr 150px;align-items:end}
  .compact-actions{grid-column:1/-1;justify-content:flex-start}
  .compact-actions .btn{flex:1;min-width:90px}
  .compact-date-grid{grid-template-columns:1fr}
}
@media(max-width:560px){
  .compact-main{grid-template-columns:1fr}
  .module-filter-compact{padding:10px 12px}
}

/* AMSA ERP v21 mobile-friendly foundation */
.menu-btn{display:none}.topbar-actions{display:flex;gap:8px;flex-wrap:wrap}.desktop-table{display:block}.mobile-cards{display:none}.mobile-card{background:#fff;border:1px solid #e2e8f0;border-radius:16px;padding:14px;margin:10px 0;box-shadow:0 8px 24px rgba(15,23,42,.06)}.mobile-card small{display:block;color:#64748b;margin-top:4px}.mobile-card p{white-space:pre-line;color:#334155}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.field.full{grid-column:1/-1}.badge.Partial,.badge.Overdue{background:#fff7ed;color:#c2410c}.badge.Cancelled,.badge.Rejected{background:#fee2e2;color:#b91c1c}.badge.Delivered,.badge.Paid{background:#dcfce7;color:#166534}.badge.Draft{background:#e0f2fe;color:#075985}.card b{word-break:break-word}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
@media(max-width:760px){
  body{font-size:14px}.app{display:block}.menu-btn{display:inline-flex;position:sticky;top:10px;z-index:20;margin:10px}.sidebar{position:fixed;z-index:1000;top:0;bottom:0;left:0;width:84%;max-width:320px;transform:translateX(-105%);transition:.2s ease;box-shadow:20px 0 60px rgba(15,23,42,.25)}.sidebar.show{transform:translateX(0)}.main{padding:8px 12px 28px}.topbar{display:block}.topbar h1{font-size:24px}.topbar-actions{margin-top:12px}.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.card{padding:14px;border-radius:16px}.card b{font-size:18px}.desktop-table{display:none}.mobile-cards{display:block}.panel{padding:14px;border-radius:18px}.form-grid{display:block}.field{margin-bottom:12px}.modal{width:96vw;max-height:92vh;border-radius:18px}.modal-body{max-height:78vh;overflow:auto}.item-row,.item-row.premium{display:grid;grid-template-columns:1fr;gap:8px}.compact-main,.compact-date-grid{display:grid;grid-template-columns:1fr;gap:8px}.compact-actions{display:flex;gap:8px;flex-wrap:wrap}.actions{display:flex;gap:6px;flex-wrap:wrap}.actions .btn{padding:8px 10px}.btn{min-height:38px}.login-card{width:92vw}.module-access-grid{grid-template-columns:1fr!important}
}
@media(max-width:420px){.grid{grid-template-columns:1fr}.topbar h1{font-size:21px}.card b{font-size:16px}.brand small{display:none}}


/* v22 sidebar logout visibility fix */
.sidebar{
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  padding-bottom:26px;
}
.nav{
  display:flex;
  flex-direction:column;
  gap:2px;
  padding-bottom:32px;
}
.nav button:last-child{
  margin-bottom:18px;
}
@media(max-width:760px){
  .sidebar{
    overflow-y:auto;
    padding-bottom:36px;
  }
  .brand{
    position:sticky;
    top:0;
    z-index:2;
    padding:0 0 12px 0;
    background:linear-gradient(180deg,#10244d,#122a5d);
  }
  .nav button{
    padding:12px 14px;
    margin:2px 0;
  }
  .nav button:nth-last-child(2),
  .nav button:last-child{
    background:rgba(255,255,255,.12);
  }
  .nav button:last-child{
    background:#dc2626;
    color:#fff;
  }
}


/* v23 compact responsive consistency for new modules and dashboard */
.compact-page{margin-bottom:14px;align-items:center}.compact-page h1{font-size:30px;line-height:1.05}.compact-page p{font-size:15px}.panel-compact{margin-top:12px;border-radius:24px}.panel-compact .panel-head{padding:14px 18px}.panel-compact .panel-head h2{font-size:22px}.panel-compact .module-filter-compact{padding:10px 16px}.panel-compact .field label,.v23-filter .field label{font-size:13px;margin-bottom:6px}.panel-compact .input,.v23-filter .input{padding:10px 13px;border-radius:14px;min-height:42px}.panel-compact .compact-main,.v23-filter .compact-main{grid-template-columns:minmax(220px,1fr) 155px auto;gap:8px;align-items:end}.panel-compact .compact-actions,.v23-filter .compact-actions{gap:6px;justify-content:flex-end}.panel-compact .compact-actions .btn,.v23-filter .compact-actions .btn{padding:10px 13px;min-height:42px;border-radius:14px}.compact-date-range{margin-top:6px}.compact-date-range summary{font-size:13px}.compact-date-grid{gap:8px}.compact-info{padding:8px 16px}.panel-compact table{min-width:760px}.panel-compact th,.panel-compact td{padding:12px 14px}.dashboard-grid-v23{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.dash-card-v23{padding:16px 18px;border-radius:20px;min-height:96px}.dash-card-v23 small{font-size:13px}.dash-card-v23 b{font-size:22px;line-height:1.1}.dash-card-v23.primary{border-left:5px solid #2867d8}.dash-card-v23.success{border-left:5px solid #16a34a}.dash-card-v23.warning{border-left:5px solid #f59e0b}.dash-card-v23.danger{border-left:5px solid #dc2626}.dash-card-v23.info{border-left:5px solid #0891b2}.reports-panel{overflow:hidden}.reports-panel .dashboard-grid-v23{padding:14px 18px}.report-main{grid-template-columns:220px auto!important;justify-content:start}.finance-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:1180px){.dashboard-grid-v23{grid-template-columns:repeat(3,minmax(0,1fr))}.finance-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.panel-compact .compact-main,.v23-filter .compact-main{grid-template-columns:minmax(220px,1fr) 150px}.panel-compact .compact-actions,.v23-filter .compact-actions{grid-column:1/-1;justify-content:flex-start}}
@media(max-width:920px){.compact-page{display:flex;align-items:flex-start}.dashboard-grid-v23{grid-template-columns:repeat(2,minmax(0,1fr))}.panel-compact{padding:0}.panel-compact .module-filter-compact{padding:10px 12px}.panel-compact .compact-main,.v23-filter .compact-main,.report-main{grid-template-columns:1fr!important}.panel-compact .compact-actions .btn,.v23-filter .compact-actions .btn{flex:1;min-width:72px}.panel-compact .mobile-cards{padding:10px}.panel-compact .mobile-card{margin:0}.compact-info{font-size:12px}.main{padding:14px}}
@media(max-width:560px){.compact-page{display:block}.compact-page h1{font-size:24px}.compact-page .topbar-actions .btn{width:auto;flex:1}.dashboard-grid-v23,.finance-grid{grid-template-columns:1fr}.dash-card-v23{min-height:auto;padding:14px}.dash-card-v23 b{font-size:20px}.panel-compact .panel-head h2{font-size:20px}}


/* v24 tidy gas cylinder page */
.gas-page-top{align-items:flex-start;margin-bottom:10px}.gas-page-top h1{font-size:30px}.gas-page-top p{max-width:620px;line-height:1.25}.gas-top-actions{gap:8px;justify-content:flex-end}.gas-top-actions .btn{padding:12px 18px;min-height:44px;border-radius:16px}.gas-summary-v24{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:8px 0 14px}.gas-summary-v24 .gas-stat{min-height:86px;padding:16px 18px;border-radius:20px}.gas-summary-v24 .gas-stat small{font-size:13px;line-height:1.2}.gas-summary-v24 .gas-stat b{font-size:26px}.gas-panel-v24{overflow:hidden}.gas-panel-v24 .panel-head{padding:14px 18px}.gas-toolbar-v24{padding:12px 18px;background:#f8fafc;border-top:1px solid #eef2f7;border-bottom:1px solid #e5e7eb}.gas-main-filter{display:grid;grid-template-columns:minmax(260px,1fr) 170px 160px auto;gap:10px;align-items:end}.gas-toolbar-v24 .field{margin:0}.gas-toolbar-v24 .field label{font-size:13px;margin-bottom:6px}.gas-toolbar-v24 .input{min-height:42px;padding:10px 13px;border-radius:14px}.gas-toolbar-v24 .btn{min-height:42px;padding:10px 14px;border-radius:14px}.gas-toolbar-v24 .compact-actions{display:flex;gap:6px;justify-content:flex-end;align-items:center;flex-wrap:nowrap}.gas-advanced-filter{margin-top:8px}.gas-advanced-filter summary{cursor:pointer;color:#1d4f91;font-weight:800;font-size:13px;list-style:none}.gas-advanced-filter summary::-webkit-details-marker{display:none}.gas-advanced-filter summary:before{content:'▸ ';font-size:12px}.gas-advanced-filter[open] summary:before{content:'▾ '}.gas-detail-grid{display:grid;grid-template-columns:170px 160px 160px minmax(180px,1fr) auto;gap:10px;align-items:end;margin-top:8px}.gas-detail-actions{display:flex;gap:6px;align-items:center}.gas-panel-v24 .compact-info{padding:8px 18px;font-size:13px}.gas-panel-v24 table{min-width:920px}.gas-panel-v24 th,.gas-panel-v24 td{padding:11px 13px}.gas-panel-v24 .actions .btn{padding:8px 10px;border-radius:12px;min-height:36px}
@media(max-width:1180px){.gas-main-filter{grid-template-columns:minmax(220px,1fr) 160px 150px}.gas-toolbar-v24 .compact-actions{grid-column:1/-1;justify-content:flex-start}.gas-detail-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.gas-detail-actions{grid-column:1/-1}.gas-summary-v24{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.gas-page-top{display:block}.gas-top-actions{margin-top:10px;justify-content:flex-start}.gas-top-actions .btn{flex:1}.gas-summary-v24{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.gas-summary-v24 .gas-stat{min-height:auto;padding:12px 14px}.gas-summary-v24 .gas-stat b{font-size:21px}.gas-main-filter,.gas-detail-grid{grid-template-columns:1fr}.gas-toolbar-v24{padding:10px 12px}.gas-toolbar-v24 .compact-actions,.gas-detail-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.gas-panel-v24 .panel-head h2{font-size:22px}}
@media(max-width:420px){.gas-summary-v24{grid-template-columns:1fr}.gas-toolbar-v24 .compact-actions,.gas-detail-actions{grid-template-columns:1fr}.gas-page-top h1{font-size:24px}}


/* v25 - Compact modal item form fix for quotation, invoice, PO and all document modules */
.modal{max-width:880px;}
.modal-head{padding:16px 20px;}
.modal-head h2{font-size:24px;line-height:1.15;}
.modal-body{padding:18px 20px;}
.form-grid > h3,
.form-grid > #itemRows,
.form-grid > button[onclick="addItem()"],
.form-grid > #formTotal{
  grid-column:1 / -1;
}
.form-grid > h3{margin:4px 0 2px;font-size:18px;}
#itemRows{display:block;width:100%;}
.item-row.premium{
  grid-template-columns:minmax(170px,1.15fr) minmax(190px,1.4fr) 76px 92px 116px 38px;
  gap:7px;
  align-items:center;
  margin-bottom:7px;
}
.item-row.premium .input{padding:10px 12px;min-height:42px;border-radius:14px;}
.item-row.premium .btn-danger{width:38px;height:38px;min-height:38px;padding:0;border-radius:12px;}
.form-grid > button[onclick="addItem()"]{
  width:auto;
  justify-self:start;
  min-width:145px;
  padding:10px 16px;
  min-height:42px;
  border-radius:14px;
}
#formTotal{margin-top:6px!important;font-size:16px;text-align:right!important;}
.modal-body > div[style*="text-align:right"]{margin-top:14px!important;}
.modal-body > div[style*="text-align:right"] .btn-primary{min-width:118px;padding:11px 18px;border-radius:14px;}
/* Prevent document item button from stretching on tablet/desktop */
@media(min-width:901px){
  .modal .btn:not(.btn-block){max-width:max-content;}
  .modal .item-row .btn{max-width:none;}
}
@media(max-width:920px){
  .modal{width:94vw;max-width:94vw;border-radius:22px;}
  .modal-head{padding:14px 16px;}
  .modal-body{padding:14px 16px;}
  .item-row.premium{grid-template-columns:1fr 1fr;gap:8px;padding:10px;border:1px solid #eef2f7;border-radius:16px;background:#fbfdff;}
  .item-row.premium select,
  .item-row.premium input[placeholder="Deskripsi produk"]{grid-column:1 / -1;}
  .item-row.premium .btn-danger{width:100%;grid-column:1 / -1;}
  .form-grid > button[onclick="addItem()"]{width:100%;justify-self:stretch;max-width:none;}
}
@media(max-width:560px){
  .modal{width:96vw;max-width:96vw;}
  .modal-head h2{font-size:20px;}
  .item-row.premium{grid-template-columns:1fr;}
  .item-row.premium select,
  .item-row.premium input[placeholder="Deskripsi produk"],
  .item-row.premium .btn-danger{grid-column:auto;}
  #formTotal{text-align:left!important;}
}

/* ===== AMSA ERP v30 Mobile Final ===== */
.sidebar-overlay{display:none;position:fixed;inset:0;background:rgba(7,19,39,.48);z-index:80;backdrop-filter:blur(2px)}
.sidebar-overlay.show{display:block}.mobile-header{display:none}.modal-open{overflow:hidden}.sidebar-open{overflow:hidden}
@media(max-width:920px){
  .app{display:block;min-height:100vh}.main{margin-left:0!important;padding:74px 10px 22px!important;width:100%}.mobile-header{display:flex;align-items:center;justify-content:space-between;gap:10px;position:fixed;top:0;left:0;right:0;height:58px;padding:8px 10px;background:rgba(244,247,251,.94);backdrop-filter:blur(16px);border-bottom:1px solid #e5e7eb;z-index:70}.mobile-header .menu-btn{display:inline-flex!important;margin:0!important;position:static!important}.mobile-title{text-align:right;line-height:1.05}.mobile-title b{display:block;color:#172033}.mobile-title small{color:#6b7280;font-weight:800}.sidebar{z-index:100!important;width:82vw!important;max-width:310px!important;padding:16px!important;overflow-y:auto!important;-webkit-overflow-scrolling:touch}.brand{margin-bottom:14px}.brand .brand-logo{width:46px;height:46px;border-radius:14px}.nav button{padding:11px 12px;margin:3px 0;border-radius:14px;font-size:15px}.topbar.compact-page,.topbar{margin-bottom:10px!important;gap:10px}.topbar h1,.compact-page h1,.gas-page-top h1{font-size:25px!important;line-height:1.1}.topbar p,.compact-page p,.gas-page-top p{font-size:13px!important;line-height:1.3}.topbar-actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;width:100%;justify-content:stretch!important}.topbar-actions .btn{width:100%;min-height:40px;padding:9px 10px;border-radius:14px}.dashboard-grid-v23,.grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:9px!important}.dash-card-v23,.card{border-radius:16px!important;padding:12px 13px!important;min-height:74px}.dash-card-v23 small,.card small{font-size:12px!important;line-height:1.2}.dash-card-v23 b,.card b{font-size:18px!important;margin-top:6px}.panel,.panel-compact{border-radius:18px!important;margin-top:10px!important;overflow:hidden}.panel-head,.panel-compact .panel-head{padding:12px 13px!important}.panel-head h2{font-size:20px!important}.module-filter-compact,.gas-toolbar-v24{padding:10px 12px!important}.compact-main,.gas-main-filter,.gas-detail-grid,.compact-date-grid,.report-main{grid-template-columns:1fr!important;gap:8px!important}.compact-actions,.gas-toolbar-v24 .compact-actions,.gas-detail-actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important;justify-content:stretch!important}.compact-actions .btn,.gas-toolbar-v24 .btn{width:100%;min-height:39px!important;padding:8px 10px!important;border-radius:13px!important}.field label{font-size:13px!important;margin-bottom:5px!important}.input{min-height:40px!important;padding:9px 12px!important;border-radius:13px!important}.desktop-table{display:none!important}.mobile-cards{display:grid!important;gap:10px!important;padding:10px 12px!important}.mobile-card{border-radius:16px!important;padding:12px!important;box-shadow:0 10px 26px rgba(31,47,90,.08);border:1px solid #e8edf5}.mobile-card b{font-size:15px}.mobile-card p{margin:7px 0;font-size:13px;line-height:1.35}.mobile-card small{font-size:12px;line-height:1.25}.mobile-card .actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:9px}.mobile-card .actions .btn{width:100%;min-height:36px;padding:8px 9px!important;border-radius:12px!important;font-size:13px}.modal-backdrop{padding:0!important;align-items:flex-end!important}.modal,.modal-v30{width:100vw!important;max-width:100vw!important;max-height:92vh!important;border-radius:22px 22px 0 0!important}.modal-head{padding:14px 16px!important;position:sticky;top:0;background:#fff;z-index:4}.modal-head h2{font-size:21px!important}.modal-body{padding:14px 16px 20px!important;max-height:78vh!important;overflow:auto!important}.form-grid{grid-template-columns:1fr!important;gap:10px!important}.form-grid>.field,.form-grid>.full{grid-column:1/-1!important}.item-row,.item-row.premium{display:grid!important;grid-template-columns:1fr!important;gap:8px!important;background:#f8fafc;border:1px solid #e5e7eb;border-radius:16px;padding:10px;margin-bottom:10px}.item-row .btn-danger{justify-self:end;width:48px}.module-access-grid{grid-template-columns:1fr!important}.toast{left:10px!important;right:10px!important;bottom:12px!important;text-align:center;border-radius:14px!important}.gas-summary-v24{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:9px!important}.gas-top-actions{grid-template-columns:1fr 1fr!important}.gas-advanced-filter summary{padding:4px 0}.gas-result-info,.compact-info{padding:8px 12px!important;font-size:12px!important}.reports-panel .dashboard-grid-v23{padding:10px 12px!important}.btn{touch-action:manipulation}
}
@media(max-width:480px){.dashboard-grid-v23,.grid,.gas-summary-v24{grid-template-columns:1fr!important}.topbar-actions,.compact-actions,.gas-toolbar-v24 .compact-actions,.gas-detail-actions,.mobile-card .actions{grid-template-columns:1fr!important}.main{padding-left:8px!important;padding-right:8px!important}.mobile-header{height:56px}.topbar h1,.compact-page h1,.gas-page-top h1{font-size:23px!important}.modal-head h2{font-size:19px!important}}
@media(min-width:921px){.sidebar-overlay{display:none!important}.main{transition:margin-left .18s ease}.sidebar{overflow-y:auto;-webkit-overflow-scrolling:touch}.mobile-card .actions .btn{white-space:nowrap}}

/* AMSA ERP v31 - Surat Jalan Pro */
.delivery-preview{background:#f8fafc;border:1px solid #e5e7eb;border-radius:16px;padding:14px;grid-column:1/-1}
.delivery-preview b{display:block;margin-bottom:8px;color:#172033}
.mini-table{width:100%;border-collapse:collapse;margin-top:8px;background:#fff;border-radius:12px;overflow:hidden}
.mini-table th,.mini-table td{padding:8px 10px;border-bottom:1px solid #e5e7eb;font-size:13px;text-align:left}
.delivery-form-v31 textarea#f_cylinder_nos{min-height:110px}
.badge.Scheduled{background:#e0f2fe;color:#075985}.badge.Received{background:#dcfce7;color:#166534}.badge.Delivered{background:#dbeafe;color:#1e40af}.badge.Returned{background:#fef3c7;color:#92400e}.badge.Cancelled{background:#fee2e2;color:#991b1b}
@media(max-width:920px){.delivery-preview{padding:12px}.mini-table th,.mini-table td{font-size:12px;padding:7px}.delivery-form-v31{grid-template-columns:1fr!important}}
/* v35 payment aging */
.payment-info-v35{background:#ecfdf5;border:1px solid #bbf7d0;border-radius:16px;padding:12px;color:#065f46;font-weight:700}
.aging-panel-v35{padding:18px 26px;border-bottom:1px solid #e5e7eb;background:#fbfdff}
.aging-grid-v35{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));gap:12px;margin-top:12px}
.aging-grid-v35 .card{padding:14px 16px;border-radius:18px;min-height:auto}
.aging-detail-v35{margin-top:12px}.aging-detail-v35 summary{cursor:pointer;font-weight:800;color:#173b77}
.reports-aging-v35{margin-top:18px}
@media(max-width:760px){.aging-grid-v35{grid-template-columns:repeat(2,minmax(120px,1fr))}.payment-form-v35{grid-template-columns:1fr!important}}

/* v36 - Nomor tabung per item Surat Jalan */
.delivery-per-item-v36{border:1px solid #e5e7eb;border-radius:18px;padding:14px;background:#fff;box-shadow:0 8px 24px #0f172a0a}
.delivery-per-item-v36 > b{display:block;margin-bottom:5px;color:#172033}
.delivery-per-item-v36 > small{display:block;color:#64748b;margin-bottom:12px}
.delivery-item-grid-v36{display:grid;gap:10px}
.delivery-item-row-v36{display:grid;grid-template-columns:minmax(220px,1fr) minmax(260px,1.3fr);gap:12px;align-items:stretch;border:1px solid #edf2f7;border-radius:14px;padding:10px;background:#f8fafc}
.delivery-item-info-v36{display:flex;flex-direction:column;justify-content:center;gap:4px}
.delivery-item-info-v36 b{font-size:15px;color:#172033}.delivery-item-info-v36 span{font-size:13px;color:#64748b}.delivery-item-cylinder-v36{min-height:74px;resize:vertical;background:#fff}.delivery-legacy-v36{border:1px dashed #cbd5e1;border-radius:16px;padding:12px;background:#f8fafc}.delivery-legacy-v36 summary{cursor:pointer;font-weight:800;color:#1e3a8a}
@media(max-width:760px){.delivery-item-row-v36{grid-template-columns:1fr}.delivery-item-cylinder-v36{min-height:92px}}
/* v37 Delivery item cylinders layout */
.delivery-per-item-v37 small{display:block;color:#64748b;margin:6px 0 12px}.delivery-item-grid-v37{display:grid;gap:12px}.delivery-item-row-v37{display:grid;grid-template-columns:minmax(220px,1fr) minmax(260px,1.3fr);gap:14px;align-items:start;padding:14px;border:1px solid #e5e7eb;border-radius:16px;background:#fff}.delivery-item-info-v37 b{display:block}.delivery-item-info-v37 span{display:block;margin-top:6px;color:#64748b}.delivery-item-cylinder-v37{min-height:78px}.delivery-legacy-v37 summary{cursor:pointer;color:#1e3a8a;font-weight:800}@media(max-width:780px){.delivery-item-row-v37{grid-template-columns:1fr}.delivery-item-cylinder-v37{min-height:100px}}

/* ===== v38 Surat Jalan per item cylinder tidy ===== */
.delivery-form-per-item .delivery-legacy-cylinder{opacity:.92;margin-top:6px}
.delivery-item-cylinder-box{border:1px solid #e5e7eb;border-radius:18px;padding:14px;background:#fff}
.delivery-cylinder-table{width:100%;border-collapse:collapse;margin-top:10px}
.delivery-cylinder-table th,.delivery-cylinder-table td{padding:10px;border-bottom:1px solid #e5e7eb;vertical-align:top}
.delivery-cylinder-table th{font-size:12px;text-transform:uppercase;color:#64748b;letter-spacing:.04em}
.delivery-cylinder-table .delivery-item-cylinder-input{min-height:64px;border-radius:12px;font-size:14px}
@media(max-width:760px){
  .delivery-cylinder-table,.delivery-cylinder-table thead,.delivery-cylinder-table tbody,.delivery-cylinder-table tr,.delivery-cylinder-table th,.delivery-cylinder-table td{display:block;width:100%}
  .delivery-cylinder-table thead{display:none}
  .delivery-cylinder-table tr{border:1px solid #e5e7eb;border-radius:14px;margin:10px 0;padding:10px;background:#fff}
  .delivery-cylinder-table td{border-bottom:0;padding:6px 0}
  .delivery-cylinder-table td:nth-child(1)::before{content:'Produk: ';font-weight:700;color:#64748b}
  .delivery-cylinder-table td:nth-child(2)::before{content:'Qty: ';font-weight:700;color:#64748b}
  .delivery-cylinder-table td:nth-child(3)::before{content:'Satuan: ';font-weight:700;color:#64748b}
  .delivery-cylinder-table td:nth-child(4)::before{content:'Nomor Tabung';display:block;font-weight:700;color:#64748b;margin-bottom:6px}
}

/* v39-recipient-location */
.delivery-form-v37 textarea#f_recipient_location{min-height:72px;}
@media(max-width:768px){.delivery-bottom{grid-template-columns:1fr!important}.terms b{display:inline-block;margin-top:3px}}
/* v40 delivery strict per item */
.delivery-form-v40 .field.full{grid-column:1/-1}.delivery-cylinder-table textarea{min-height:78px;font-size:14px}.delivery-legacy-v40 summary{cursor:pointer;font-weight:800;color:#1d4ed8;margin-bottom:8px}.delivery-legacy-v40 small{display:block;color:#64748b;margin-top:6px}.delivery-form-v40 .mini-table th,.delivery-form-v40 .mini-table td{vertical-align:top}@media(max-width:760px){.delivery-cylinder-table,.delivery-cylinder-table thead,.delivery-cylinder-table tbody,.delivery-cylinder-table tr,.delivery-cylinder-table th,.delivery-cylinder-table td{display:block;width:100%}.delivery-cylinder-table thead{display:none}.delivery-cylinder-table tr{padding:10px;border-bottom:1px solid #e5e7eb}.delivery-cylinder-table td{border:0!important;padding:6px 0!important}.delivery-cylinder-table textarea{width:100%}}
/* v46 - Tanda Terima Tagihan */
.receipt-invoice-box{grid-column:1/-1}.receipt-tools{display:grid;grid-template-columns:1fr auto auto;gap:10px;margin-bottom:10px}.receipt-invoice-list{border:1px solid #e5e7eb;border-radius:18px;max-height:300px;overflow:auto;background:#fff}.receipt-invoice-row{display:grid;grid-template-columns:26px 1fr auto;gap:12px;align-items:center;padding:12px 14px;border-bottom:1px solid #eef2f7;cursor:pointer}.receipt-invoice-row:last-child{border-bottom:0}.receipt-invoice-row small{display:block;color:#64748b;margin-top:3px}.receipt-invoice-row strong{white-space:nowrap}.readonly{background:#f8fafc;color:#10203b}@media(max-width:720px){.receipt-tools{grid-template-columns:1fr}.receipt-invoice-row{grid-template-columns:24px 1fr}.receipt-invoice-row strong{grid-column:2}}

/* v48 receipt form compact filter */
.receipt-form-v48 .receipt-filter-box{border:1px solid #e5e7eb;border-radius:18px;padding:14px;background:#f8fafc;margin-top:4px}
.receipt-filter-grid{display:grid;grid-template-columns:1fr 220px;gap:12px;align-items:start}
.compact-receipt-tools{display:grid;grid-template-columns:1fr auto auto;gap:10px;margin:8px 0 10px}
.receipt-form-v48 .receipt-invoice-list{max-height:260px;overflow:auto;border-radius:14px;background:white;border:1px solid #e5e7eb}
.receipt-form-v48 .receipt-invoice-row{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid #eef2f7}
.receipt-form-v48 .receipt-invoice-row:last-child{border-bottom:0}
.receipt-form-v48 .receipt-invoice-row span{flex:1;min-width:0}
.receipt-form-v48 .receipt-invoice-row small{display:block;color:#64748b;margin-top:2px}
@media(max-width:760px){.receipt-filter-grid,.compact-receipt-tools{grid-template-columns:1fr}.receipt-form-v48 .receipt-invoice-row{align-items:flex-start}.receipt-form-v48 .receipt-invoice-row strong{white-space:nowrap}}
/* v52 Return Tabung checkbox list */
.return-cylinder-box{border:1px solid #e5e7eb;border-radius:18px;padding:14px;background:#fff;box-shadow:0 8px 22px rgba(15,23,42,.04)}
.return-cylinder-head{display:flex;align-items:center;gap:10px;justify-content:space-between;flex-wrap:wrap;margin-bottom:10px}
.return-cylinder-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;max-height:260px;overflow:auto;padding:3px}
.return-cylinder-check{display:flex;align-items:center;gap:8px;padding:10px 12px;border:1px solid #e5e7eb;border-radius:14px;background:#f8fafc;font-weight:700;color:#172033}
.return-cylinder-check input{width:18px;height:18px;accent-color:#164ca8}
.btn-sm{padding:8px 12px!important;border-radius:12px!important;font-size:14px!important}
@media(max-width:780px){.return-cylinder-grid{grid-template-columns:1fr 1fr}.return-cylinder-head{align-items:flex-start}.return-cylinder-check{font-size:14px}}

/* v53 Return Tabung checkbox force */
.return-form-v53 .return-cylinder-box{border:1px solid #e5e7eb;border-radius:18px;padding:14px;background:#fff;box-shadow:0 8px 22px rgba(15,23,42,.04)}
.return-form-v53 .return-cylinder-head{display:flex;align-items:center;gap:10px;justify-content:space-between;flex-wrap:wrap;margin-bottom:10px}
.return-form-v53 .return-cylinder-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;max-height:260px;overflow:auto;padding:3px}
.return-form-v53 .return-cylinder-check{display:flex;align-items:center;gap:8px;padding:10px 12px;border:1px solid #e5e7eb;border-radius:14px;background:#f8fafc;font-weight:700;color:#172033}
.return-form-v53 .return-cylinder-check input{width:19px;height:19px;accent-color:#164ca8}
@media(max-width:780px){.return-form-v53 .return-cylinder-grid{grid-template-columns:1fr 1fr}.return-form-v53 .return-cylinder-check{font-size:14px}}
/* v54 Return Tabung checkbox list */
.return-cylinder-box{border:1px solid #e5e7eb;border-radius:18px;padding:14px;background:#fff;box-shadow:0 8px 22px rgba(15,23,42,.04)}
.return-cylinder-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;flex-wrap:wrap}
.return-cylinder-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;max-height:260px;overflow:auto;padding:4px}
.return-cylinder-check{display:flex;align-items:center;gap:9px;padding:10px 12px;background:#f8fafc;border:1px solid #e5e7eb;border-radius:14px;font-weight:800;color:#0f172a}
.return-cylinder-check input{width:18px;height:18px;accent-color:#1d4ed8}
.btn-sm{padding:8px 12px!important;border-radius:12px!important;font-size:13px!important}
@media(max-width:700px){.return-cylinder-grid{grid-template-columns:1fr 1fr}.return-cylinder-head{align-items:flex-start}}

/* v56 Inventory Category Material/Gas */
.category-checks{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.category-checks.compact{gap:8px;margin-top:4px}
.check-pill{display:inline-flex;align-items:center;gap:8px;background:#f3f6ff;border:1px solid #e5eaf5;border-radius:16px;padding:10px 14px;font-weight:800;color:#17366f;cursor:pointer;white-space:nowrap}
.check-pill input{width:18px;height:18px;accent-color:#1f57c8}
.inventory-category-field{background:#f8fafc;border:1px solid #edf2f7;border-radius:18px;padding:12px}
.inventory-category-filter{min-width:220px}
.badge.inv-cat{font-size:12px;border-radius:999px;padding:7px 10px;font-weight:900;display:inline-block}
.badge.inv-cat.Material{background:#eef2ff;color:#1d4ed8}
.badge.inv-cat.Gas{background:#dcfce7;color:#15803d}
.inventory-main-filter{grid-template-columns:minmax(260px,1fr) 220px 190px auto;align-items:end}
@media(max-width:900px){.inventory-main-filter{grid-template-columns:1fr}.inventory-category-filter{min-width:0}.category-checks{gap:8px}.check-pill{padding:9px 12px}}

/* v57 - kategori produk pada form dokumen */
.doc-item-category-filter{margin:8px 0 12px;padding:12px 14px;border:1px solid #e5e7eb;border-radius:18px;background:#f8fafc}
.doc-item-category-filter label{font-weight:800;color:#111827}
.doc-item-category-filter small{display:block;margin-top:6px;color:#64748b;font-size:13px}
.doc-product-cat-checks{margin-top:8px}
.compact-doc-item-row{grid-template-columns:minmax(220px,1.25fr) minmax(220px,1fr) 90px 110px 140px 54px;gap:10px;align-items:center}
.compact-doc-item-row .item-remove-btn{padding:10px 14px;min-width:48px}
@media(max-width:900px){.compact-doc-item-row{grid-template-columns:1fr 1fr}.compact-doc-item-row .sku-select,.compact-doc-item-row .desc-input{grid-column:1/-1}.compact-doc-item-row .item-remove-btn{width:100%}}

/* v58 document item category filter */
.doc-item-category-filter{margin:8px 0 4px;padding:12px 14px;border:1px solid #e5e7eb;border-radius:18px;background:#f8fafc;}
.doc-item-category-filter label{display:block;font-weight:800;margin-bottom:6px;color:#0f172a;}
.doc-item-category-filter small{display:block;margin-top:6px;color:#64748b;font-size:13px;}
.compact-doc-item-row{grid-template-columns:minmax(220px,1.5fr) minmax(220px,1.7fr) 90px 110px 140px auto!important;gap:10px!important;align-items:center;}
@media(max-width:900px){.compact-doc-item-row{grid-template-columns:1fr!important}.doc-item-category-filter{padding:10px}}

/* v59 Invoice due date status */
.due-cell{display:flex;flex-direction:column;gap:3px;line-height:1.15}
.due-cell small,.due-mini{font-size:12px;font-weight:800;border-radius:999px;padding:4px 8px;display:inline-block;width:max-content;max-width:100%}
.due-cell.overdue small,.due-mini.overdue{background:#fee2e2;color:#b91c1c}
.due-cell.today small,.due-mini.today{background:#fef3c7;color:#92400e}
.due-cell.soon small,.due-mini.soon{background:#ffedd5;color:#c2410c}
.due-cell.normal small,.due-mini.normal{background:#e0f2fe;color:#075985}
.due-cell.paid small,.due-mini.paid{background:#dcfce7;color:#166534}
.invoice-overdue-row{background:#fff7f7}
.invoice-overdue-row td:first-child{border-left:5px solid #ef4444}
.invoice-overdue-card{border-left:6px solid #ef4444;background:#fff7f7}
.badge.Overdue{background:#fee2e2!important;color:#b91c1c!important}
.invoice-due-table th:nth-child(3),.invoice-due-table th:nth-child(4){min-width:120px}
/* v60 invoice Surat Jalan status */
.invoice-sj-table th:nth-child(8), .invoice-sj-table td:nth-child(8){min-width:150px}
.sj-created{display:flex;flex-direction:column;gap:5px;align-items:flex-start;font-size:13px;line-height:1.25;color:#0f766e}
.sj-created b{font-weight:800;color:#047857}
.sj-badge{display:inline-block;background:#dcfce7;color:#166534;border:1px solid #bbf7d0;border-radius:999px;padding:5px 10px;font-weight:800;white-space:nowrap}
.sj-empty{display:inline-block;background:#f1f5f9;color:#64748b;border-radius:999px;padding:6px 10px;font-weight:800;font-size:13px;white-space:nowrap}
.mobile-card .sj-created{margin-top:6px}

/* AMSA ERP v61 - Customer Price Management */
.price-toolbar{display:grid;grid-template-columns:minmax(220px,1.4fr) 170px minmax(220px,1fr) auto;gap:14px;align-items:end;padding:18px 22px;border-bottom:1px solid #e5e7eb;background:#f8fafc}
.price-toolbar-actions{display:flex;gap:10px;align-items:center}.customer-price-edit-panel{padding:18px 22px;border-bottom:1px solid #e5e7eb}.customer-price-edit-panel h3{margin:0 0 6px}.muted,.empty-hint{color:#64748b}.empty-hint{padding:18px 22px;border-bottom:1px solid #e5e7eb}.customer-price-compact-list{max-height:380px;overflow:auto;border:1px solid #e5e7eb;border-radius:18px;background:#fff}.cp-row{display:grid;grid-template-columns:minmax(220px,1fr) 180px 230px;gap:14px;align-items:center;padding:12px 16px;border-bottom:1px solid #eef2f7}.cp-row:last-child{border-bottom:0}.cp-row small{display:block;color:#64748b;margin-top:4px}.price-management-callout{border:1px solid #dbeafe;background:#f8fbff;border-radius:18px;padding:14px 16px}.price-management-callout p{margin:4px 0 12px;color:#64748b}.customer-price-box{max-height:260px}@media(max-width:800px){.price-toolbar{grid-template-columns:1fr}.price-toolbar-actions{flex-wrap:wrap}.cp-row{grid-template-columns:1fr}.customer-price-compact-list{max-height:300px}}

/* v63 compact gas form */
.gas-form-note{margin-top:-4px;color:#6b7280;line-height:1.35}
.gas-form-note small{display:block;background:#f8fafc;border:1px solid #e5e7eb;border-radius:14px;padding:10px 12px}

/* v64 - Compact paginated table view for large datasets */
.panel-table-v64{overflow:hidden!important}.panel-table-v64 .panel-head{padding:12px 16px!important}.table-mode-note-v64{color:#64748b;font-weight:800}.data-table-v64{max-height:62vh;overflow:auto!important;border-top:1px solid #e5e7eb;border-bottom:1px solid #e5e7eb;background:#fff}.data-table-v64 table{min-width:920px;border-collapse:separate;border-spacing:0}.data-table-v64 th{position:sticky;top:0;z-index:4;background:#f8fafc!important;font-size:11px!important;padding:9px 10px!important;white-space:nowrap;box-shadow:0 1px 0 #e5e7eb}.data-table-v64 td{font-size:13px!important;padding:9px 10px!important;line-height:1.2!important;vertical-align:middle!important}.data-table-v64 tbody tr:nth-child(even){background:#fbfdff}.data-table-v64 tbody tr:hover{background:#eef6ff}.data-table-v64 td b{font-size:13px}.data-table-v64 .btn{padding:8px 10px!important;border-radius:12px!important;font-size:12px!important;min-height:34px}.data-table-v64 .actions{gap:5px!important;flex-wrap:nowrap!important}.data-table-v64 .badge{padding:4px 8px!important;font-size:11px!important}.data-table-v64 td[style*="white-space:pre-line"]{white-space:normal!important;max-width:260px}.table-pager-v64{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;background:#fff;border-bottom:1px solid #e5e7eb;color:#64748b;font-size:13px}.table-pager-v64:last-child{border-top:1px solid #e5e7eb;border-bottom:0}.pager-actions-v64{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.pager-size-v64{width:auto!important;min-width:120px;padding:8px 10px!important;border-radius:12px!important}.pager-page-v64{padding:0 6px;color:#334155;font-weight:800}.pager-actions-v64 .btn[disabled]{opacity:.45;cursor:not-allowed}.gas-summary-v24 .card{padding:14px 16px!important;border-radius:18px!important}.gas-summary-v24 .card b{font-size:22px!important}.desktop-table{display:block!important}.mobile-cards-disabled-v64,.mobile-cards{display:none!important}@media(max-width:920px){.desktop-table{display:block!important}.data-table-v64{max-height:60vh}.data-table-v64 table{min-width:860px}.table-pager-v64{align-items:flex-start;flex-direction:column}.pager-actions-v64{width:100%;justify-content:flex-start}.main{padding-left:10px!important;padding-right:10px!important}.data-table-v64 th,.data-table-v64 td{padding:8px 9px!important;font-size:12px!important}.data-table-v64 .btn{font-size:12px!important;padding:7px 9px!important}.compact-main{grid-template-columns:1fr!important}.module-filter-compact{padding:10px 12px!important}}@media(max-width:560px){.data-table-v64 table{min-width:780px}.pager-actions-v64 .btn,.pager-size-v64{flex:1 1 auto}.table-mode-note-v64{display:block;margin-top:4px}}

/* v67 delivery invoice picker */
.delivery-invoice-picker-v67{border:1px solid #e5e7eb;border-radius:18px;padding:12px;background:#fff}
.delivery-invoice-picker-top{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;margin-bottom:8px}
.delivery-invoice-list-v67{max-height:260px;overflow:auto;border:1px solid #edf2f7;border-radius:14px;background:#f8fafc;padding:6px;margin-top:8px}
.invoice-choice-v67{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;margin:4px 0;border:1px solid transparent;border-radius:12px;cursor:pointer;background:#fff}
.invoice-choice-v67:hover,.invoice-choice-v67.selected{border-color:#1d4ed8;background:#eff6ff}
.invoice-choice-v67 input{margin-top:4px;width:18px;height:18px;flex:0 0 auto}
.invoice-choice-v67 span{display:flex;flex-direction:column;gap:3px;min-width:0}
.invoice-choice-v67 small{color:#64748b;line-height:1.25}
.delivery-invoice-count{font-size:13px;color:#475569;margin:2px 0 8px}
.delivery-invoice-count span{color:#0f766e;margin-left:6px}
@media(max-width:700px){.delivery-invoice-picker-top{grid-template-columns:1fr}.delivery-invoice-list-v67{max-height:220px}.invoice-choice-v67 small{font-size:12px}}

/* v68 delivery invoice selector */
.delivery-invoice-picker-top-v68{display:grid;grid-template-columns:1.4fr .55fr auto auto;gap:10px;align-items:center}
.delivery-invoice-list-v68{max-height:320px;overflow:auto;border:1px solid #edf1f7;border-radius:16px;background:#f8fafc;padding:8px;margin-top:10px}
.delivery-invoice-count{font-size:13px;color:#64748b;margin:6px 0 8px}.delivery-invoice-count span{color:#0f766e;margin-left:6px}
.invoice-choice-v68{display:flex;gap:10px;align-items:flex-start;background:#fff;border:1px solid #edf1f7;border-radius:14px;padding:11px;margin:8px 0;cursor:pointer}
.invoice-choice-v68.selected{background:#eff6ff;border-color:#93c5fd}.invoice-choice-v68 small{display:block;color:#64748b;margin-top:3px}
@media(max-width:900px){.delivery-invoice-picker-top-v68{grid-template-columns:1fr}.delivery-invoice-list-v68{max-height:300px}}

/* v69 delivery invoice picker - no automatic date filter */
.delivery-invoice-picker-v69{border:1px solid #e5e7eb;border-radius:18px;padding:12px;background:#fff}
.delivery-invoice-picker-v69 .delivery-invoice-picker-top{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center}
.delivery-invoice-list-v68,.delivery-invoice-list-v69{max-height:330px;overflow:auto;margin-top:10px;display:grid;gap:8px}
.invoice-choice-v69{display:flex;gap:10px;align-items:flex-start;border:1px solid #edf2f7;border-radius:14px;padding:10px 12px;background:#fff;cursor:pointer}
.invoice-choice-v69.selected{border-color:#2563eb;background:#eff6ff}
.invoice-choice-v69 small{display:block;color:#64748b;margin-top:3px}
.delivery-invoice-count{font-size:13px;color:#64748b;padding:8px 2px}
.delivery-invoice-count span{color:#0f766e;margin-left:6px}
@media(max-width:760px){.delivery-invoice-picker-v69 .delivery-invoice-picker-top{grid-template-columns:1fr}.delivery-invoice-list-v69{max-height:260px}}

/* v70 Bulk Update Gas */
.bulk-template-bar{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0 10px;align-items:center}
.bulk-upload-label{cursor:pointer;display:inline-flex;align-items:center;justify-content:center}
.bulk-info{font-size:13px;color:#64748b;margin:6px 0 8px}
.bulk-preview{background:#f8fafc;border:1px solid #e2e8f0;border-radius:14px;padding:12px;margin:8px 0 14px;color:#334155;font-size:13px;line-height:1.55;max-height:160px;overflow:auto}
#bulk_customer_box,#bulk_vendor_box{transition:all .15s ease}
@media(max-width:800px){.bulk-template-bar .btn{width:100%}}
/* v71 - edit kepemilikan tabung */
.gas-edit-ownership-field select,
.gas-party-box select{min-height:46px;}
.gas-edit-note{background:#f8fafc;border:1px solid #e5e7eb;border-radius:14px;padding:10px 14px;color:#64748b;}

/* AMSA ERP v75 - Neraca Tabung */
.balance-summary-grid{display:grid;grid-template-columns:repeat(7,minmax(120px,1fr));gap:14px;margin:16px 0 18px}.balance-card{border:0;background:#fff;border-radius:22px;box-shadow:0 14px 34px rgba(15,23,42,.06);padding:18px;text-align:left;cursor:pointer;color:#172033}.balance-card small{display:block;color:#64748b;font-weight:800;margin-bottom:8px}.balance-card b{font-size:32px}.balance-card.ok b{color:#047857}.balance-card.info b{color:#1d4ed8}.balance-card.purple b{color:#7c3aed}.balance-card.warn b{color:#b45309}.balance-card.danger b{color:#dc2626}.balance-filter-panel{margin-bottom:18px}.balance-toolbar{display:grid;grid-template-columns:2fr 1.15fr 1fr 1fr auto;gap:12px;align-items:end;padding:16px 18px}.balance-toolbar .field{margin:0}.balance-toolbar-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.balance-panel{margin-bottom:18px}.balance-two-cols{display:grid;grid-template-columns:1fr 1fr;gap:18px}.link-count{border:0;background:#eff6ff;color:#174ea6;font-weight:900;border-radius:14px;padding:8px 12px;cursor:pointer}.link-count.ok{background:#dcfce7;color:#047857}.link-count.info{background:#dbeafe;color:#1d4ed8}.link-count.purple{background:#ede9fe;color:#7c3aed}.link-count.warn{background:#fef3c7;color:#b45309}.link-count.danger{background:#fee2e2;color:#dc2626}.balance-table th,.balance-table td,.balance-detail-table th,.balance-detail-table td{font-size:13px;padding:11px 12px}.balance-detail-wrap{max-height:68vh;overflow:auto}.muted{color:#64748b;font-weight:700}.cylinder-balance-top p{max-width:760px}@media(max-width:1100px){.balance-summary-grid{grid-template-columns:repeat(3,1fr)}.balance-toolbar{grid-template-columns:1fr 1fr}.balance-toolbar-actions{grid-column:1/-1}.balance-two-cols{grid-template-columns:1fr}}@media(max-width:640px){.balance-summary-grid{grid-template-columns:repeat(2,1fr)}.balance-toolbar{grid-template-columns:1fr}.balance-card b{font-size:26px}}

/* v76 Bulk update gas ownership/position */
.bulk-gas-form-v76 .field small{display:block;color:#64748b;margin-top:6px;font-size:12px;line-height:1.35}
.bulk-template-bar{display:flex;gap:10px;flex-wrap:wrap;margin:10px 0 12px}
.bulk-info{background:#f8fafc;border:1px solid #e5e7eb;border-radius:14px;padding:10px 12px;color:#475569;margin-bottom:10px}
.bulk-preview{background:#fff;border:1px dashed #cbd5e1;border-radius:14px;padding:10px 12px;margin:8px 0 12px;color:#334155;font-size:13px;line-height:1.5;max-height:150px;overflow:auto}
@media(max-width:760px){.bulk-template-bar .btn,.bulk-template-bar label.btn{width:100%;justify-content:center}.bulk-gas-form-v76{grid-template-columns:1fr!important}}
/* v80 return customer picker */
.choice-line{display:flex;gap:18px;flex-wrap:wrap;align-items:center;padding:10px 2px;font-weight:700;color:#15213a}
.choice-line label{display:flex;gap:8px;align-items:center;cursor:pointer}
.return-form-v80 .return-cylinder-box{border:1px solid #e6ebf3;border-radius:18px;padding:16px;background:#fff}
.return-form-v80 .return-cylinder-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:12px}
.return-form-v80 .return-cylinder-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(145px,1fr));gap:12px}
.return-form-v80 .return-cylinder-check{display:flex;gap:10px;align-items:center;border:1px solid #e6ebf3;border-radius:14px;padding:12px;background:#f8fafc;font-weight:800}
.return-form-v80 .return-cylinder-check input{width:18px;height:18px}

/* v87 expense form improvements */
.expense-form-v87 .field.full{grid-column:1/-1}.btn-xs{padding:6px 10px;font-size:12px}.badge.Draft{background:#e2e8f0;color:#334155}.badge.Approved{background:#dbeafe;color:#1d4ed8}.badge.Cancelled{background:#fee2e2;color:#b91c1c}
