:root{
  --bg:#f4f6f8;--surface:#fff;--surface-2:#f8fafc;--text:#101828;--muted:#667085;
  --line:#e4e7ec;--dark:#111827;--dark-2:#1f2937;--primary:#2563eb;--primary-2:#1d4ed8;
  --success:#067647;--success-bg:#ecfdf3;--warning:#b54708;--warning-bg:#fffaeb;--danger:#b42318;--danger-bg:#fef3f2;
  --radius:14px;--shadow:0 1px 2px rgba(16,24,40,.04),0 8px 24px rgba(16,24,40,.06);
  --sidebar-expanded:250px;--sidebar-collapsed:76px;--sidebar:var(--sidebar-expanded);
}
*{box-sizing:border-box}html{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--text)}body{margin:0;min-height:100vh}a{color:inherit;text-decoration:none}button,input{font:inherit}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);background:var(--dark);color:#fff;padding:18px 14px;display:flex;flex-direction:column;z-index:50;transition:width .22s ease,transform .22s ease,padding .22s ease}.brand{display:flex;align-items:center;gap:11px;padding:7px;min-height:52px;transition:justify-content .22s ease,padding .22s ease}.brand-text{min-width:0}.brand-mark{width:38px;height:38px;border-radius:11px;background:#fff;color:var(--dark);display:grid;place-items:center;font-weight:800;font-size:19px}.brand strong{display:block;font-size:14px}.brand span{display:block;font-size:11px;color:#9ca3af;margin-top:2px}.nav-list{display:flex;flex-direction:column;gap:4px;margin-top:27px;overflow:auto}.nav-item{display:flex;align-items:center;gap:11px;padding:10px 11px;border-radius:10px;color:#cbd5e1;font-size:13px;font-weight:600;white-space:nowrap;transition:background .18s ease,color .18s ease,justify-content .22s ease,padding .22s ease}.nav-item:hover{background:rgba(255,255,255,.07);color:#fff}.nav-item.active{background:#fff;color:var(--dark)}.nav-icon{width:22px;text-align:center;font-size:15px}.sidebar-footer{margin-top:auto;padding:12px;color:#9ca3af;font-size:11px;border-top:1px solid rgba(255,255,255,.08)}.sidebar-footer strong{display:block;color:#e5e7eb;margin-top:3px}.app-main{margin-left:var(--sidebar);min-height:100vh;transition:margin-left .22s ease}.topbar{height:74px;background:rgba(255,255,255,.94);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);padding:0 28px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:30}.topbar-left,.user-menu{display:flex;align-items:center;gap:12px}.topbar h1{font-size:20px;line-height:1.1;margin:2px 0 0}.page-eyebrow,.eyebrow{color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.08em;font-weight:700}.avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#eef2ff;color:#3730a3;font-weight:800}.user-meta strong,.user-meta span{display:block}.user-meta strong{font-size:12px}.user-meta span{font-size:10px;color:var(--muted);margin-top:2px}.content{padding:24px;max-width:1600px;margin:0 auto}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.metric-card,.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.metric-card{padding:18px}.metric-card span{display:block;color:var(--muted);font-size:12px}.metric-card strong{display:block;font-size:22px;margin:8px 0 5px;letter-spacing:-.03em}.metric-card small{color:#98a2b3;font-size:10px}.dashboard-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:14px;margin-top:14px}.panel{padding:18px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.panel-head h2,.module-placeholder h2{font-size:16px;margin:4px 0 0}.badge{display:inline-flex;align-items:center;padding:5px 8px;border-radius:999px;background:#eef2ff;color:#3730a3;font-size:10px;font-weight:700}.badge.soft{background:#f2f4f7;color:#475467}.badge.success{background:var(--success-bg);color:var(--success)}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:10px}table{border-collapse:collapse;width:100%;min-width:520px}th,td{padding:10px 12px;border-bottom:1px solid var(--line);text-align:left;font-size:11px}th{background:var(--surface-2);color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.04em}tbody tr:last-child td{border-bottom:0}.num{text-align:right}.activity-list{display:flex;flex-direction:column}.activity-item{display:flex;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid var(--line)}.activity-item:last-child{border-bottom:0}.activity-item strong,.activity-item span{display:block}.activity-item strong{font-size:12px}.activity-item span,.activity-item time{font-size:10px;color:var(--muted);margin-top:3px}.empty-state{min-height:145px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:25px;color:var(--muted)}.empty-state strong{font-size:13px;color:var(--text);margin-bottom:4px}.empty-state span{font-size:11px;max-width:340px}.foundation-panel{margin-top:14px}.foundation-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.foundation-grid>div{background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:12px}.foundation-grid strong,.foundation-grid span{display:block}.foundation-grid strong{font-size:12px}.foundation-grid span{font-size:10px;color:var(--muted);margin-top:4px;line-height:1.45}.btn{border:0;border-radius:9px;padding:10px 14px;cursor:pointer;font-weight:700;font-size:12px;display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-2)}.btn-light{background:#f2f4f7;color:#344054}.btn-sm{padding:7px 10px;font-size:10px}.btn-block{width:100%}.icon-btn{width:38px;height:38px;border:1px solid var(--line);background:#fff;border-radius:9px}.btn-icon8{width:16px;height:16px;display:inline-grid;place-items:center;flex:0 0 16px;color:currentColor}.btn-icon8 svg{display:block;width:100%;height:100%}.btn-sm .btn-icon8{width:14px;height:14px;flex-basis:14px}.icon8-tone-white{color:#fff}.icon8-tone-dark{color:#344054}.icon8-tone-danger{color:#b42318}.icon8-tone-primary{color:var(--primary)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.alert{padding:11px 13px;border-radius:10px;margin-bottom:14px;font-size:12px;border:1px solid}.alert-success{background:var(--success-bg);color:var(--success);border-color:#abefc6}.alert-warning{background:var(--warning-bg);color:var(--warning);border-color:#fedf89}.alert-danger{background:var(--danger-bg);color:var(--danger);border-color:#fecdca}.auth-page{background:#eef2f6;display:grid;place-items:center;padding:22px}.auth-wrap{width:min(960px,100%);display:grid;grid-template-columns:1fr 430px;background:var(--surface);border:1px solid var(--line);border-radius:20px;box-shadow:0 18px 50px rgba(16,24,40,.10);overflow:hidden}.auth-info{padding:54px;background:var(--dark);color:#fff;display:flex;flex-direction:column;justify-content:center}.brand-auth{padding:0;margin-bottom:46px}.auth-info h1{font-size:34px;line-height:1.08;letter-spacing:-.04em;margin:0;max-width:450px}.auth-info p{color:#cbd5e1;line-height:1.65;font-size:13px;max-width:460px}.auth-points{display:flex;gap:7px;flex-wrap:wrap;margin-top:16px}.auth-points span{font-size:10px;padding:7px 9px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.1);border-radius:999px}.auth-card{padding:46px;display:flex;flex-direction:column;justify-content:center}.auth-card h1,.auth-card h2{margin:9px 0 5px;letter-spacing:-.03em}.auth-card h2{font-size:23px}.muted{color:var(--muted);font-size:12px;line-height:1.55}.form-stack{display:flex;flex-direction:column;gap:14px;margin-top:19px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:20px}.field{display:flex;flex-direction:column;gap:6px}.field>span{font-size:11px;color:#344054;font-weight:700}.field input{width:100%;border:1px solid #d0d5dd;border-radius:9px;padding:10px 11px;outline:none;background:#fff}.field input:focus{border-color:#84adff;box-shadow:0 0 0 3px #eff4ff}.password-wrap{position:relative}.password-wrap input{padding-right:78px}.password-toggle{position:absolute;right:5px;top:5px;bottom:5px;border:0;background:#f2f4f7;border-radius:7px;padding:0 9px;font-size:10px;cursor:pointer}.single-card{grid-template-columns:1fr;max-width:680px}.auth-card.wide{padding:38px}.span-2{grid-column:1/-1}.module-placeholder{max-width:900px}.module-placeholder>p{font-size:13px;color:var(--muted);line-height:1.6;max-width:700px}.callout{margin-top:18px;padding:14px;border-radius:10px;background:#f8fafc;border:1px dashed #cbd5e1;color:#475467;font-size:12px;line-height:1.55}.error-page{display:grid;place-items:center;padding:30px;background:#f2f4f7}.error-card{width:min(520px,100%);background:#fff;border:1px solid var(--line);border-radius:18px;padding:35px;box-shadow:var(--shadow);text-align:center}.error-code{font-size:48px;font-weight:900;color:#d0d5dd}.error-card h1{font-size:20px}.error-card p{color:var(--muted);font-size:12px;line-height:1.6;margin-bottom:20px}body.sidebar-collapsed .sidebar{width:var(--sidebar-collapsed);padding-left:10px;padding-right:10px}
body.sidebar-collapsed .app-main{margin-left:var(--sidebar-collapsed)}
body.sidebar-collapsed .brand{justify-content:center;padding-left:0;padding-right:0}
body.sidebar-collapsed .brand-text,body.sidebar-collapsed .nav-label,body.sidebar-collapsed .sidebar-footer{display:none}
body.sidebar-collapsed .nav-item{justify-content:center;gap:0;padding:11px 0}
body.sidebar-collapsed .nav-icon{width:auto}
.sidebar-toggle-btn{display:inline-grid;place-items:center;flex:0 0 auto}.toggle-icon{font-size:17px;line-height:1}
.mobile-only{display:none}.sidebar-backdrop{display:none}
@media(max-width:1100px){.metric-grid{grid-template-columns:repeat(2,1fr)}.foundation-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){.mobile-only{display:inline-grid;place-items:center}.desktop-only{display:none}.sidebar{transform:translateX(-100%);width:min(82vw,270px);padding:18px 14px}.sidebar-backdrop{display:block;position:fixed;inset:0;background:rgba(15,23,42,.42);z-index:45;opacity:0;pointer-events:none;transition:opacity .2s}.sidebar-open .sidebar{transform:translateX(0)}.sidebar-open .sidebar-backdrop{opacity:1;pointer-events:auto}.app-main,body.sidebar-collapsed .app-main{margin-left:0}body.sidebar-collapsed .sidebar{width:min(82vw,270px);padding:18px 14px}body.sidebar-collapsed .brand{justify-content:flex-start;padding:7px}body.sidebar-collapsed .brand-text,body.sidebar-collapsed .nav-label,body.sidebar-collapsed .sidebar-footer{display:block}body.sidebar-collapsed .nav-item{justify-content:flex-start;gap:11px;padding:10px 11px}body.sidebar-collapsed .nav-icon{width:22px}.topbar{padding:0 16px;height:66px}.content{padding:14px}.dashboard-grid{grid-template-columns:1fr}.auth-wrap{grid-template-columns:1fr;max-width:480px}.auth-info{display:none}.auth-card{padding:28px}}
@media(max-width:600px){.metric-grid{grid-template-columns:1fr 1fr;gap:9px}.metric-card{padding:13px;border-radius:11px}.metric-card span{font-size:10px}.metric-card strong{font-size:16px}.metric-card small{font-size:9px}.panel{padding:13px;border-radius:11px}.foundation-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.span-2{grid-column:auto}.auth-card{padding:23px}.topbar h1{font-size:17px}.content{padding:10px}.btn-sm{padding:7px 8px}.user-menu{gap:7px}}

/* ===== Phase 2: Master Data Core ===== */
.master-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}.master-hero h2{font-size:22px;margin:4px 0 8px;letter-spacing:-.03em}.master-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.master-card{background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:15px;display:flex;align-items:flex-start;gap:12px;min-height:118px;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}.master-card:hover{transform:translateY(-2px);border-color:#bfd3ff;box-shadow:0 12px 30px rgba(16,24,40,.10)}.master-card-icon{width:36px;height:36px;border-radius:11px;background:#f2f4f7;display:grid;place-items:center;flex:0 0 auto}.master-card-body{min-width:0;flex:1}.master-card-body strong{display:block;font-size:13px;margin-bottom:6px}.master-card-body span{display:block;font-size:11px;color:var(--muted);line-height:1.45}.master-card-count{min-width:31px;height:28px;border-radius:999px;background:#eef2ff;color:#3730a3;display:grid;place-items:center;font-size:11px;font-weight:800}.phase-note{margin-top:14px}.list-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}.list-head h2{font-size:20px;margin:5px 0 5px;letter-spacing:-.03em}.crumb{display:inline-flex;font-size:11px;font-weight:800;color:#475467;background:#f2f4f7;padding:7px 9px;border-radius:999px}.toolbar-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.toolbar-form{display:grid;grid-template-columns:minmax(280px,1fr) minmax(180px,220px) auto auto;align-items:end;gap:12px;margin-bottom:14px;padding:14px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(180deg,#ffffff 0%,#f9fafb 100%);box-shadow:0 8px 24px rgba(16,24,40,.04)}.search-field{flex:1;display:flex;flex-direction:column;gap:7px;min-width:0}.search-field span{font-size:11px;color:#344054;font-weight:800;letter-spacing:.02em}.search-field input,.search-field select,.field select,.field textarea{width:100%;border:1px solid #d0d5dd;border-radius:12px;padding:11px 13px;outline:none;background:#fff;font:inherit;transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease}.search-field input::placeholder{color:#98a2b3}.search-field input[type="search"]{padding-left:42px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2398A2B3' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='6'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-size:17px 17px;background-position:14px center}.search-field select,.field select{appearance:none;-webkit-appearance:none;-moz-appearance:none;padding-right:42px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2398A2B3' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-size:17px 17px;background-position:right 14px center}.search-field input:focus,.search-field select:focus,.field select:focus,.field textarea:focus{border-color:#84adff;box-shadow:0 0 0 4px #e8f0ff;background-color:#fff}.toolbar-form .btn{min-height:46px;padding:11px 14px;border-radius:12px}.toolbar-form .btn-light{background:#eef2f6}.toolbar-form .btn-light:hover{background:#e5ebf3}.small-field{min-width:180px;max-width:220px}.table-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--muted);font-size:11px;margin:8px 0 10px}.master-table table{min-width:780px}.actions-col{width:160px;text-align:right}.row-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px}.row-actions form{margin:0}.pagination{display:flex;justify-content:flex-end;gap:8px;margin-top:13px}.master-form{align-items:start}.master-form .field b{color:var(--danger);font-weight:900}.field select{min-height:40px}.field textarea{resize:vertical;min-height:84px}.check-row{display:flex;align-items:center;gap:9px;padding:10px 11px;border:1px solid #d0d5dd;border-radius:9px;background:#fff;min-height:40px}.check-row input{width:16px;height:16px;flex:0 0 auto}.check-row span{font-size:12px;font-weight:700;color:#344054}.form-actions{display:flex;gap:8px;margin-top:4px}.btn-danger{background:var(--danger-bg);color:var(--danger)}
@media(max-width:1200px){.master-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.master-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.list-head{flex-direction:column}.toolbar-form{grid-template-columns:1fr;padding:12px}.toolbar-form .btn{width:100%}.small-field{min-width:0;max-width:none}.actions-col{width:130px}.form-actions{flex-direction:column}.form-actions .btn{width:100%}}
@media(max-width:600px){.master-hero{flex-direction:column}.master-grid{grid-template-columns:1fr}.master-card{min-height:auto}.table-meta{align-items:flex-start;flex-direction:column}.row-actions{flex-direction:column;align-items:stretch}.row-actions .btn{width:100%}.actions-col{text-align:left}}

/* Phase 3 inventory + Icons8 navigation */
.nav-icon{display:grid;place-items:center}.nav-icon .btn-icon8{width:17px;height:17px;filter:none}.inventory-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.inventory-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px;box-shadow:var(--shadow);display:flex;gap:13px;align-items:flex-start;min-height:136px}.inventory-card-icon{width:42px;height:42px;border-radius:12px;background:#eff4ff;display:grid;place-items:center;flex:0 0 auto}.inventory-card-icon .btn-icon8{width:22px;height:22px}.inventory-card h3{font-size:14px;margin:2px 0 6px}.inventory-card p{font-size:11px;color:var(--muted);line-height:1.55;margin:0 0 12px}.inventory-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:14px}.inventory-pillbar{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 0}.inventory-pillbar .btn{padding:8px 10px}.inventory-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.field select,.field textarea{width:100%;border:1px solid #d0d5dd;border-radius:9px;padding:10px 11px;outline:none;background:#fff}.field select:focus,.field textarea:focus{border-color:#84adff;box-shadow:0 0 0 3px #eff4ff}.readonly-box{background:#f8fafc;border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-size:12px;color:#344054}.movement-in{color:var(--success);font-weight:800}.movement-out{color:var(--danger);font-weight:800}.help-box{border:1px dashed #cbd5e1;background:#f8fafc;border-radius:12px;padding:13px;color:#475467;font-size:12px;line-height:1.6;margin-top:14px}.toolbar-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.mini-metric{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px;box-shadow:var(--shadow)}.mini-metric span{display:block;color:var(--muted);font-size:11px}.mini-metric strong{display:block;font-size:20px;margin-top:6px}.source-badge{display:inline-flex;padding:4px 7px;border-radius:999px;background:#f2f4f7;color:#475467;font-size:10px;font-weight:700}@media(max-width:1200px){.inventory-grid,.inventory-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.inventory-grid,.inventory-stat-grid,.inventory-form-grid{grid-template-columns:1fr}.inventory-card{min-height:auto}.toolbar-actions{align-items:stretch}.toolbar-actions .btn{width:100%}}

/* Sales Foundation */
.sales-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.small-field{max-width:180px}.sales-item-table table{min-width:980px}.sales-item-table input,.sales-item-table select{width:100%;border:1px solid #d0d5dd;border-radius:8px;padding:8px 9px;background:#fff;font:inherit;font-size:11px}.sales-item-table .num-input{text-align:right}.detail-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}.detail-grid .readonly-box strong,.detail-grid .readonly-box span{display:block}.detail-grid .readonly-box strong{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:5px}.detail-grid .readonly-box span{font-size:13px;font-weight:800;color:var(--text)}.sales-detail-table{margin-top:14px}.btn[disabled]{opacity:.55;cursor:not-allowed}.row-actions{flex-wrap:wrap}
@media(max-width:1000px){.sales-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.small-field{max-width:none}}
@media(max-width:700px){.sales-grid,.detail-grid{grid-template-columns:1fr}}

/* ===== Global Polish: Tables + Forms for all active modules ===== */
.panel{border-radius:18px}.table-wrap{border:1px solid #dbe3ee;border-radius:16px;background:#fff;box-shadow:0 10px 28px rgba(16,24,40,.055);overflow:auto}.table-wrap table{border-collapse:separate;border-spacing:0;width:100%}.table-wrap th{position:sticky;top:0;z-index:1;background:linear-gradient(180deg,#f8fafc 0%,#eef2f7 100%);border-bottom:1px solid #d7dee9;color:#475467;font-size:10px;font-weight:850;letter-spacing:.07em;text-transform:uppercase;white-space:nowrap;padding:12px 14px}.table-wrap td{background:#fff;border-bottom:1px solid #edf1f6;color:#344054;font-size:12px;line-height:1.45;padding:13px 14px;vertical-align:middle}.table-wrap tbody tr:nth-child(even) td{background:#fcfdff}.table-wrap tbody tr:hover td{background:#f7faff}.table-wrap tbody tr:last-child td{border-bottom:0}.table-wrap td strong{color:#101828;font-weight:850}.table-wrap .num{font-variant-numeric:tabular-nums}.master-table table{min-width:860px}.sales-detail-table table,.sales-item-table table{min-width:1040px}.actions-col{width:210px}.row-actions{gap:7px}.row-actions .btn{box-shadow:none}.row-actions .btn-light{border:1px solid #e1e7ef;background:#fff}.row-actions .btn-light:hover{background:#eef4ff;border-color:#bfdbfe}.badge{border:1px solid transparent}.badge.success{border-color:#abefc6}.badge.soft{border-color:#e4e7ec}.pagination{align-items:center}.pagination .btn{border:1px solid #e1e7ef;background:#fff}.table-meta{padding:0 2px;margin:12px 0 12px}.table-meta strong{color:#101828;font-size:12px}.empty-state{border-radius:14px;background:linear-gradient(180deg,#fff,#f8fafc)}

.form-grid.master-form,.inventory-form-grid{padding:16px;border:1px solid #dbe3ee;border-radius:18px;background:linear-gradient(180deg,#ffffff 0%,#fbfcff 100%);box-shadow:0 10px 28px rgba(16,24,40,.045);gap:16px}.sales-form{padding:16px;border:1px solid #dbe3ee;border-radius:18px;background:linear-gradient(180deg,#ffffff 0%,#fbfcff 100%);box-shadow:0 10px 28px rgba(16,24,40,.045);gap:16px}.master-form .field,.inventory-form-grid .field,.sales-form .field{border:1px solid #e5eaf2;background:#fff;border-radius:15px;padding:12px;gap:8px;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.master-form .field:focus-within,.inventory-form-grid .field:focus-within,.sales-form .field:focus-within{border-color:#93b4ff;box-shadow:0 0 0 4px #eff4ff;transform:translateY(-1px)}.master-form .field>span,.inventory-form-grid .field>span,.sales-form .field>span{display:flex;align-items:center;gap:4px;font-size:10px;font-weight:850;letter-spacing:.055em;text-transform:uppercase;color:#475467}.master-form .field input,.inventory-form-grid .field input,.sales-form .field input,.master-form .field select,.inventory-form-grid .field select,.sales-form .field select,.master-form .field textarea,.inventory-form-grid .field textarea,.sales-form .field textarea{border:1px solid #d8e0eb;border-radius:11px;background:#f8fafc;min-height:43px;padding:10px 12px;color:#101828;box-shadow:inset 0 1px 0 rgba(255,255,255,.65)}.master-form .field input:focus,.inventory-form-grid .field input:focus,.sales-form .field input:focus,.master-form .field select:focus,.inventory-form-grid .field select:focus,.sales-form .field select:focus,.master-form .field textarea:focus,.inventory-form-grid .field textarea:focus,.sales-form .field textarea:focus{background:#fff;border-color:#84adff;box-shadow:0 0 0 3px #eff4ff}.master-form .field input::placeholder,.inventory-form-grid .field input::placeholder,.sales-form .field input::placeholder,.master-form .field textarea::placeholder,.inventory-form-grid .field textarea::placeholder,.sales-form .field textarea::placeholder{color:#98a2b3}.master-form .span-2,.inventory-form-grid .span-2,.sales-form .span-2{grid-column:1/-1}.form-actions{border-top:1px solid #edf1f6;padding-top:14px;margin-top:2px;justify-content:flex-end}.form-actions .btn{min-height:42px;border-radius:12px}.form-actions .btn-light{border:1px solid #e1e7ef;background:#fff}.readonly-box{border-color:#dbe3ee;background:linear-gradient(180deg,#fff,#f8fafc);border-radius:14px}.detail-grid .readonly-box{padding:13px 14px}.detail-grid .readonly-box span{font-size:14px}.sales-item-table{margin-top:10px;border-radius:16px}.sales-item-table th{background:linear-gradient(180deg,#eff4ff 0%,#eaf1ff 100%);color:#344054}.sales-item-table input,.sales-item-table select{border:1px solid #d8e0eb;border-radius:10px;background:#fff;min-height:38px;padding:9px 10px;transition:border-color .18s ease,box-shadow .18s ease}.sales-item-table input:focus,.sales-item-table select:focus{outline:0;border-color:#84adff;box-shadow:0 0 0 3px #eff4ff}.sales-item-table .num-input{font-variant-numeric:tabular-nums}.sales-form .sales-item-table{grid-column:1/-1}.sales-form .callout,.help-box{border-radius:15px;background:#f8fafc;border-color:#d7dee9}.list-head{padding-bottom:4px}.list-head h2{letter-spacing:-.035em}.toolbar-actions .btn{border-radius:12px}.btn-primary{box-shadow:0 6px 14px rgba(37,99,235,.18)}.btn-primary:hover{box-shadow:0 8px 18px rgba(37,99,235,.22)}.btn-light{border:1px solid #e1e7ef}.check-row{border-radius:12px;border-color:#d8e0eb;background:#f8fafc}.check-row:hover{background:#fff;border-color:#b7c7dd}

@media(max-width:900px){.form-grid.master-form,.inventory-form-grid,.sales-form{padding:12px;gap:12px}.actions-col{width:150px}.form-actions{justify-content:stretch}.table-wrap th,.table-wrap td{padding:11px 12px}.toolbar-form{box-shadow:0 6px 18px rgba(16,24,40,.04)}}
@media(max-width:600px){.table-wrap{border-radius:14px}.table-wrap th,.table-wrap td{font-size:11px}.master-form .field,.inventory-form-grid .field,.sales-form .field{padding:10px}.row-actions{align-items:stretch}.row-actions .btn{justify-content:center}.form-actions{gap:8px}.detail-grid .readonly-box span{font-size:13px}}


/* ===== Dynamic item rows + automatic source loader ===== */
.doc-load-bar{display:grid;grid-template-columns:minmax(280px,1fr) auto;gap:12px;align-items:end;margin:0 0 16px;padding:14px;border:1px dashed #b7c7dd;border-radius:16px;background:linear-gradient(180deg,#f8fbff 0%,#f3f7ff 100%)}
.doc-load-bar .field{margin:0;border:0;background:transparent;padding:0}.doc-load-bar .field:focus-within{box-shadow:none;transform:none}.doc-load-bar select{width:100%;border:1px solid #c9d7ec;border-radius:12px;background:#fff;min-height:44px;padding:10px 42px 10px 12px;outline:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2398A2B3' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-size:17px 17px;background-position:right 14px center}.doc-load-bar select:focus{border-color:#84adff;box-shadow:0 0 0 4px #e8f0ff}.doc-load-bar .btn{min-height:44px;border-radius:12px}.item-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:6px 0 12px}.item-toolbar>div{display:flex;flex-direction:column;gap:3px}.item-toolbar strong{font-size:13px;color:#101828}.item-toolbar span{font-size:11px;color:var(--muted)}.item-toolbar .btn{border-radius:12px}.sales-item-table th.actions-col,.sales-item-table td.actions-col{width:120px;text-align:right}.sales-item-table [data-remove-item-row]{white-space:nowrap}.sales-item-table tbody tr{transition:background-color .18s ease,box-shadow .18s ease}.sales-item-table tbody tr:hover td{background:#f7faff}.sales-item-table tbody tr td:first-child select{min-width:190px}.sales-item-table tbody tr td:nth-child(2) input{min-width:260px}.sales-item-table tbody tr td .btn-icon8{color:var(--danger)}
@media(max-width:900px){.doc-load-bar{grid-template-columns:1fr}.doc-load-bar .btn{width:100%}.item-toolbar{align-items:stretch;flex-direction:column}.item-toolbar .btn{width:100%}.sales-item-table th.actions-col,.sales-item-table td.actions-col{text-align:left;width:110px}}


/* Phase 6 Cash & Bank */
.item-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin:12px 0 10px}.item-section-head strong{display:block;font-size:13px}.item-section-head .muted{display:block;font-size:11px;line-height:1.45;margin-top:3px}.cashbank-ledger-row{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center}.cash-flow-in{color:var(--success);font-weight:900}.cash-flow-out{color:var(--danger);font-weight:900}.bank-transfer-arrow{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:999px;background:#eef4ff;color:var(--primary);font-weight:900}
@media(max-width:700px){.item-section-head{flex-direction:column}.item-section-head .btn{width:100%}}

/* Phase 7 Accounting & Reports */
.accounting-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.accounting-filter-form{grid-template-columns:minmax(260px,1fr) minmax(150px,190px) minmax(150px,190px) auto auto}.compact-report-filter{grid-template-columns:minmax(170px,220px) minmax(170px,220px) auto}.audit-filter-form{grid-template-columns:minmax(260px,1fr) minmax(150px,190px) minmax(145px,175px) minmax(145px,175px) auto}.report-panel{padding-bottom:18px}.report-title-card{display:flex;align-items:center;justify-content:center;position:relative;gap:12px;margin:12px 0 14px;padding:14px 16px;border:1px solid #dbe3ee;border-radius:16px;background:linear-gradient(180deg,#fff,#f8fafc);box-shadow:0 8px 22px rgba(16,24,40,.04);text-align:center}.report-title-card strong{display:block;font-size:15px;width:100%;text-align:center}.report-title-card span{font-size:12px;color:var(--muted);position:absolute;right:16px;top:50%;transform:translateY(-50%)}.report-title-card.report-title-centered{position:relative;justify-content:center;text-align:center}.report-title-card.report-title-centered strong{width:100%;text-align:center}.report-title-card.report-title-centered span{position:absolute;right:16px;top:50%;transform:translateY(-50%)}@media(max-width:700px){.report-title-card{flex-direction:column;align-items:center}.report-title-card span{position:static;transform:none}.report-title-card.report-title-centered span{position:static;transform:none}.report-title-card.report-title-centered{align-items:center}}.report-table table{min-width:720px}.report-table tfoot th,.table-wrap tfoot th{background:#f8fafc;border-top:1px solid #dbe3ee;padding:13px 14px}.section-row td{background:#f1f5ff!important;color:#1d4ed8;font-weight:900;text-transform:uppercase;letter-spacing:.045em}.subtotal-row td,.subtotal-row th{background:#f8fafc!important;font-weight:850}.grand-row td{background:#eef4ff!important;font-weight:900;color:#1e3a8a}.grand-row.final td{background:#dcfce7!important;color:#065f46;font-size:13px}.report-columns{display:grid;grid-template-columns:1fr 1fr;gap:14px}.empty-cell{text-align:center;color:var(--muted);padding:24px!important}.journal-line-table table{min-width:1160px}.journal-line-table td:first-child select{min-width:230px}.journal-line-table td:nth-child(2) input{min-width:220px}.journal-totalbar{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-top:12px;padding:12px 14px;border:1px solid #dbe3ee;border-radius:14px;background:#f8fafc}.journal-totalbar span{font-size:12px;color:#475467}.journal-totalbar strong{font-size:13px;color:#101828}.journal-totalbar .is-balanced{color:var(--success)}.journal-totalbar .is-unbalanced{color:var(--danger)}.module-open-btn{margin-top:12px;display:inline-flex;width:max-content}.cash-flow-in{color:var(--success);font-weight:900}.cash-flow-out{color:var(--danger);font-weight:900}@media(max-width:1150px){.accounting-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.accounting-filter-form,.audit-filter-form{grid-template-columns:1fr 1fr}.report-columns{grid-template-columns:1fr}}@media(max-width:700px){.accounting-grid,.accounting-filter-form,.compact-report-filter,.audit-filter-form{grid-template-columns:1fr}.report-title-card{flex-direction:column;align-items:center}.report-title-card span{position:static;transform:none}.journal-totalbar{align-items:flex-start;flex-direction:column}.module-open-btn{width:100%;justify-content:center}}

@media print{.sidebar,.topbar,.toolbar-form,.toolbar-actions,.crumb,.pagination,.sidebar-backdrop{display:none!important}.app-main{margin-left:0!important}.content{padding:0}.panel{box-shadow:none;border:0}.table-wrap{box-shadow:none}.table-wrap th{position:static}.report-title-card{box-shadow:none}.btn{display:none!important}body{background:#fff}}

/* Phase 8 production refinement */
.alert.danger{background:var(--danger-bg);color:var(--danger);border-color:#fecdca}.section-title-row{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin:22px 0 10px}.section-title-row h3{font-size:14px;margin:0 0 4px}.section-title-row p{margin:0}.production-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:14px 0}.production-summary .readonly-box{min-height:66px}.production-summary .readonly-box strong{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:5px}.production-summary .readonly-box span{display:block;font-size:15px;font-weight:800;color:var(--text)}@media(max-width:900px){.section-title-row{align-items:stretch;flex-direction:column}.production-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.production-summary{grid-template-columns:1fr}}


/* Phase 10 Settings */
.check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.check-grid.one-col{grid-template-columns:1fr}.check-row span small{display:block;color:var(--muted);font-size:10px;font-weight:600;margin-top:2px}.permission-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.permission-card{background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:14px}.permission-card-head{display:flex;justify-content:space-between;gap:10px;align-items:center;border-bottom:1px solid var(--line);padding-bottom:10px;margin-bottom:10px}.permission-card-head strong{font-size:12px}.permission-card-head span{font-size:10px;color:var(--muted);font-weight:800}.sticky-actions{position:sticky;bottom:0;background:rgba(255,255,255,.94);backdrop-filter:blur(10px);padding:12px 0;border-top:1px solid var(--line);margin-top:14px}.field input[readonly]{background:#f8fafc;color:#667085}.settings-mini-note{font-size:11px;color:var(--muted);line-height:1.55}
@media(max-width:900px){.permission-grid,.check-grid{grid-template-columns:1fr}}

/* Phase 11: Closing period guard + print/PDF refinement */
.badge.warning{background:var(--warning-bg);color:var(--warning)}

.purchase-payment-choice{border:1px solid #dbe3ee;border-radius:16px;background:#f8fafc;padding:14px}.purchase-payment-choice>strong{display:block;font-size:11px;color:#344054;text-transform:uppercase;letter-spacing:.055em;margin-bottom:10px}.purchase-payment-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.purchase-payment-option{display:flex;align-items:flex-start;gap:11px;width:100%;padding:14px;border:1px solid #d8e0eb;border-radius:14px;background:#fff;color:#344054;text-align:left;cursor:pointer;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.purchase-payment-option:hover{border-color:#93b4ff;transform:translateY(-1px)}.purchase-payment-option.active{border-color:#2563eb;background:#eff6ff;box-shadow:0 0 0 3px #dbeafe}.purchase-payment-option .btn-icon8{width:21px;height:21px;flex:0 0 21px}.purchase-payment-option span{display:block;min-width:0}.purchase-payment-option b,.purchase-payment-option small{display:block}.purchase-payment-option b{font-size:13px;color:#101828;margin-bottom:4px}.purchase-payment-option small{font-size:11px;color:#667085;line-height:1.45}.purchase-payment-option:disabled{opacity:.55;cursor:not-allowed;transform:none}@media(max-width:700px){.purchase-payment-choice-grid{grid-template-columns:1fr}}
.print-only{display:none}.print-header-block{margin:0 0 12px;border-bottom:2px solid #111827;padding-bottom:8px}.print-header-block strong,.print-header-block span,.print-header-block small{display:block}.print-header-block strong{font-size:16px}.print-header-block span{font-size:13px;font-weight:800;margin-top:2px}.print-header-block small{font-size:10px;color:#475467;margin-top:2px}.period-lock-note{display:flex;align-items:flex-start;gap:10px;border:1px solid #fedf89;background:var(--warning-bg);color:var(--warning);border-radius:12px;padding:12px;margin:12px 0;font-size:12px;line-height:1.5}.period-lock-note .btn-icon8{margin-top:1px}
@media print{
  @page{size:A4 landscape;margin:10mm}
  html,body{background:#fff!important;color:#111827!important;font-size:10px!important;min-height:auto!important}
  .sidebar,.topbar,.toolbar-form,.toolbar-actions,.crumb,.pagination,.sidebar-backdrop,.print-hide,.btn,.alert,.form-actions{display:none!important}
  .app-shell,.app-main,.content{display:block!important;margin:0!important;padding:0!important;max-width:none!important;width:100%!important}
  .panel{box-shadow:none!important;border:0!important;border-radius:0!important;padding:0!important;margin:0!important;break-inside:auto!important}
  .list-head,.master-hero,.panel-head{margin:0 0 8px!important;padding:0!important;border:0!important;display:block!important}
  .list-head h2,.master-hero h2,.panel-head h2{margin:0 0 3px!important;font-size:15px!important;color:#111827!important}.muted{font-size:9px!important;color:#344054!important}
  .print-only{display:block!important}
  .table-wrap{overflow:visible!important;border:0!important;border-radius:0!important;box-shadow:none!important}.master-table table,.sales-item-table table,table{width:100%!important;min-width:0!important;border-collapse:collapse!important;page-break-inside:auto!important}
  thead{display:table-header-group!important}tfoot{display:table-footer-group!important}tr{page-break-inside:avoid!important;break-inside:avoid!important}th,td{border:1px solid #d0d5dd!important;padding:5px 6px!important;font-size:9px!important;vertical-align:top!important}th{background:#f2f4f7!important;color:#111827!important;font-weight:800!important;letter-spacing:.02em!important}.actions-col{display:none!important}.num{text-align:right!important;white-space:nowrap!important}.badge{border:1px solid #d0d5dd!important;background:#fff!important;color:#111827!important;padding:2px 5px!important}.readonly-box,.mini-metric,.report-title-card{box-shadow:none!important;border:1px solid #d0d5dd!important;background:#fff!important}.report-columns,.detail-grid,.inventory-stat-grid,.production-summary{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:6px!important}
}

/* Phase 11 - Report layout polish */
.report-panel{padding:20px;border-radius:18px;background:#fff}
.report-panel>.list-head{align-items:center;margin-bottom:16px;padding:16px 18px;border:1px solid #dbe3ee;border-radius:18px;background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%);box-shadow:0 8px 24px rgba(16,24,40,.04)}
.report-panel>.list-head h2{font-size:19px;letter-spacing:-.02em;margin:7px 0 5px}.report-panel>.list-head .muted{max-width:760px}.report-panel .toolbar-actions{justify-content:flex-end}.report-panel .toolbar-form{margin:0 0 14px;border-color:#dbe3ee;background:linear-gradient(180deg,#fff,#f9fbff)}
.report-title-card{min-height:48px;border-color:#ccd8ea;background:linear-gradient(180deg,#ffffff 0%,#f6f9ff 100%)}.report-title-card strong{font-size:16px;letter-spacing:-.015em;color:#0f172a}.report-title-card span{font-size:11px;font-weight:800;color:#475467;white-space:nowrap}.report-meta{padding:10px 12px;margin:0 0 12px;border:1px solid #e4eaf3;border-radius:13px;background:#fbfdff;color:#475467}.report-meta strong{color:#101828}.report-summary-grid{margin:12px 0 14px}.report-summary-grid .mini-metric{border-color:#dbe3ee;background:linear-gradient(180deg,#fff,#f8fbff)}
.report-panel .table-wrap{border-radius:16px;border-color:#dbe3ee;background:#fff;box-shadow:0 8px 24px rgba(16,24,40,.035)}.report-panel table{min-width:760px}.report-panel th{background:#edf4ff;color:#1d4ed8;font-size:10px;font-weight:900;letter-spacing:.055em}.report-panel td{font-size:11px;vertical-align:middle}.report-panel tbody tr:nth-child(even) td{background:#fbfdff}.report-panel tbody tr:hover td{background:#f4f8ff}.report-panel tfoot th,.report-panel tfoot td{background:#f8fafc;font-weight:900}.report-panel .num{font-variant-numeric:tabular-nums}.report-panel .source-badge{background:#eef4ff;color:#1e3a8a}.report-panel .empty-state{border:1px dashed #cbd5e1;border-radius:16px;background:#fbfdff;margin-top:12px}.report-panel .pagination{padding-top:4px}
@media(max-width:900px){.report-panel{padding:14px}.report-panel>.list-head{align-items:stretch;flex-direction:column;padding:14px}.report-panel .toolbar-actions{width:100%;justify-content:stretch}.report-panel .toolbar-actions .btn{width:100%}.report-title-card{padding:13px 14px}.report-title-card span{white-space:normal;text-align:center}.report-meta{align-items:center;text-align:center}}
@media print{.report-panel{padding:0!important;border:0!important}.report-panel>.list-head{display:none!important}.report-title-card{min-height:auto!important;margin:0 0 8px!important;padding:7px 8px!important;border:1px solid #111827!important;border-radius:0!important;background:#fff!important;text-align:center!important}.report-title-card strong{font-size:12px!important;color:#111827!important}.report-title-card span{font-size:9px!important;color:#111827!important}.report-meta{border:0!important;background:#fff!important;padding:0!important;margin:0 0 6px!important;font-size:9px!important}.report-panel .table-wrap{border-radius:0!important;border:0!important;box-shadow:none!important}.report-panel table{min-width:0!important;width:100%!important}.report-panel th{font-size:8px!important}.report-panel td{font-size:8px!important}.print-header-block{text-align:center!important;border-bottom:1px solid #111827!important;margin-bottom:8px!important}}


/* Phase 13 Backup, Restore, Import/Export Data */
.data-tools-grid{margin:14px 0}.data-subpanel{margin-top:16px}.inline-import-form{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.file-mini{display:inline-flex;align-items:center;gap:8px;min-height:32px;border:1px dashed #cbd5e1;border-radius:10px;background:#fff;padding:6px 9px;font-size:10px;font-weight:800;color:#475467;cursor:pointer}.file-mini input{max-width:150px;font-size:10px}.data-restore-form{max-width:620px}.data-restore-form input[type="file"]{padding:11px;border:1px dashed #cbd5e1;background:#f8fafc}.data-subpanel .panel-head{margin-bottom:10px}.data-subpanel code,.data-tools-grid code{background:#f2f4f7;border:1px solid #e4e7ec;border-radius:6px;padding:2px 5px;font-size:10px;color:#344054}@media(max-width:800px){.inline-import-form{justify-content:stretch;flex-direction:column;align-items:stretch}.inline-import-form .btn,.file-mini{width:100%;justify-content:center}.file-mini input{max-width:100%}}

/* Phase 14 Security Hardening */
.field-hint{display:block;color:var(--muted);font-size:10px;line-height:1.45;margin-top:3px}.security-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:14px 0}.security-card{display:flex;align-items:flex-start;gap:13px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:15px;min-height:116px}.security-card-icon{width:42px;height:42px;border-radius:13px;background:#eff4ff;color:var(--primary);display:grid;place-items:center;flex:0 0 auto}.security-card-icon .btn-icon8{width:22px;height:22px}.security-card strong,.security-card span,.security-card small{display:block}.security-card strong{font-size:13px;margin:2px 0 6px}.security-card span{font-size:12px;color:#344054;line-height:1.5}.security-card small{font-size:10px;color:var(--muted);line-height:1.45;margin-top:7px}.security-stat-grid .mini-metric strong{font-size:17px}.badge.danger{background:var(--danger-bg);color:var(--danger)}@media(max-width:900px){.security-grid{grid-template-columns:1fr}.security-card{min-height:auto}}

/* Phase 15 Executive Dashboard & KPI */
.executive-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:14px;padding:20px}.executive-hero h2{font-size:24px;margin:4px 0 7px;letter-spacing:-.04em}.executive-filter{display:grid;grid-template-columns:minmax(150px,180px) minmax(150px,180px) auto;align-items:end;gap:10px;min-width:min(100%,520px);padding:12px;border:1px solid var(--line);border-radius:16px;background:#f8fafc}.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:14px 0}.kpi-card{position:relative;display:flex;align-items:flex-start;gap:12px;min-height:122px;padding:16px;border:1px solid var(--line);border-radius:17px;background:linear-gradient(180deg,#fff,#fbfcff);box-shadow:var(--shadow);overflow:hidden}.kpi-card:after{content:"";position:absolute;right:-26px;bottom:-30px;width:92px;height:92px;border-radius:50%;background:#eef4ff}.kpi-icon{position:relative;z-index:1;width:39px;height:39px;border-radius:13px;background:#eef4ff;display:grid;place-items:center;flex:0 0 auto}.kpi-icon .btn-icon8{width:20px;height:20px}.kpi-main{position:relative;z-index:1;min-width:0}.kpi-main span{display:block;font-size:11px;font-weight:850;color:#475467;letter-spacing:.01em}.kpi-main strong{display:block;font-size:20px;line-height:1.15;letter-spacing:-.035em;margin:8px 0 6px;color:#101828;word-break:break-word}.kpi-main small{display:block;color:#98a2b3;font-size:10px;line-height:1.45}.kpi-trend{position:absolute;right:12px;top:12px;z-index:2;display:inline-flex;align-items:center;padding:4px 7px;border-radius:999px;font-size:10px;font-weight:900}.trend-up{background:#ecfdf3;color:#067647}.trend-down{background:#fef3f2;color:#b42318}.trend-flat{background:#f2f4f7;color:#475467}.quick-action-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.executive-quick-actions{margin-bottom:14px}.quick-action-card{display:flex;align-items:center;gap:9px;border:1px solid var(--line);border-radius:14px;background:#fff;padding:12px 13px;box-shadow:0 5px 16px rgba(16,24,40,.04);font-size:12px;font-weight:800;color:#344054;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}.quick-action-card:hover{transform:translateY(-2px);border-color:#bdd1ff;box-shadow:0 12px 28px rgba(16,24,40,.08)}.quick-action-card .btn-icon8{width:18px;height:18px}.dashboard-two-col{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}.dashboard-two-col.wide-left{grid-template-columns:1.35fr .65fr}.dashboard-two-col.wide-right{grid-template-columns:.8fr 1.2fr}.dashboard-panel{min-width:0}.combo-chart{height:230px;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;align-items:end;padding:16px 8px 6px;border:1px solid #edf1f7;border-radius:16px;background:linear-gradient(180deg,#ffffff 0%,#f8fafc 100%)}.combo-month{display:flex;flex-direction:column;align-items:center;gap:8px;min-width:0}.combo-month strong{font-size:10px;color:#667085;white-space:nowrap}.combo-bars{height:160px;width:100%;display:flex;align-items:end;justify-content:center;gap:4px}.bar{display:block;width:12px;height:var(--h);min-height:6px;border-radius:999px 999px 4px 4px;transition:height .2s ease}.sales-bar,.legend-sales{background:#2563eb}.purchase-bar,.legend-purchase{background:#f59e0b}.cash-in-bar,.legend-cash-in{background:#16a34a}.cash-out-bar,.legend-cash-out{background:#dc2626}.chart-legend{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:10px;color:#475467;font-size:11px}.chart-legend span{display:inline-flex;align-items:center;gap:6px}.chart-legend i{width:9px;height:9px;border-radius:999px;display:inline-block}.cash-summary-stack{display:flex;flex-direction:column;gap:10px}.cash-summary-stack>div{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--line);border-radius:14px;background:#f8fafc;padding:13px}.cash-summary-stack span{font-size:11px;color:#667085;font-weight:800}.cash-summary-stack strong{font-size:15px;color:#101828}.cash-summary-stack .net{background:#eef4ff;border-color:#d6e4ff}.mini-note{margin-top:12px;font-size:11px;color:#667085;line-height:1.55}.aging-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.aging-card{border:1px solid var(--line);border-radius:15px;background:#fff;padding:13px}.aging-card>strong{display:block;font-size:13px;margin-bottom:10px}.aging-card span{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid #edf1f7}.aging-card span:last-child{border-bottom:0}.aging-card em{font-style:normal;font-size:11px;color:#667085}.aging-card b{font-size:11px;color:#101828;text-align:right}.compact-list{display:flex;flex-direction:column}.compact-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}.compact-row:last-child{border-bottom:0}.compact-row strong,.compact-row span{display:block}.compact-row strong{font-size:12px}.compact-row span{font-size:10px;color:#667085;margin-top:3px}.compact-row b{font-size:12px;text-align:right;white-space:nowrap}.dashboard-table table{min-width:620px}.risk-stack{display:grid;grid-template-columns:1fr 1fr;gap:14px}.risk-stack>div{border:1px solid var(--line);border-radius:15px;background:#fff;padding:13px;min-width:0}.risk-stack>div>strong{display:block;font-size:13px;margin-bottom:10px}.risk-row{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid #edf1f7}.risk-row:last-child{border-bottom:0}.risk-row span{font-size:11px;color:#344054;line-height:1.4}.risk-row b{font-size:11px;color:#101828;white-space:nowrap;text-align:right}.executive-activity .activity-item{align-items:flex-start}.executive-activity .activity-item span+span{color:#344054}
@media(max-width:1250px){.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-two-col,.dashboard-two-col.wide-left,.dashboard-two-col.wide-right{grid-template-columns:1fr}.quick-action-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.executive-hero{flex-direction:column}.executive-filter{grid-template-columns:1fr;width:100%;min-width:0}.kpi-grid,.quick-action-grid,.aging-grid,.risk-stack{grid-template-columns:1fr}.kpi-card{min-height:auto}.combo-chart{gap:8px;overflow:auto;grid-template-columns:repeat(6,80px)}.combo-bars{height:135px}.bar{width:10px}.compact-row,.risk-row{align-items:flex-start;flex-direction:column}.compact-row b,.risk-row b{text-align:left}.executive-quick-actions{grid-template-columns:1fr 1fr}.quick-action-card{align-items:flex-start;flex-direction:column}}

/* Phase 16 Notifications & Operational Reminder */
.badge.warning{background:var(--warning-bg);color:var(--warning)}.notification-topbar-link{position:relative;min-width:38px;height:38px;padding:0 12px;border:1px solid var(--line);background:#fff;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;gap:8px;color:#344054;box-shadow:0 4px 14px rgba(16,24,40,.05);transition:background .18s ease,border-color .18s ease,transform .18s ease,box-shadow .18s ease}.notification-topbar-link:hover{background:#fff7ed;border-color:#fdba74;transform:translateY(-1px);box-shadow:0 10px 22px rgba(249,115,22,.14)}.notification-topbar-icon{width:24px;height:24px;border-radius:999px;background:#fff1f2;color:var(--danger);display:grid;place-items:center;flex:0 0 auto}.notification-topbar-icon .btn-icon8{width:15px;height:15px}.notification-topbar-text{font-size:12px;font-weight:800;color:#344054;white-space:nowrap}.notification-topbar-badge{position:absolute;top:-6px;right:-6px;min-width:18px;height:18px;border-radius:999px;background:var(--danger);color:#fff;border:2px solid #fff;display:grid;place-items:center;font-size:9px;font-weight:900;line-height:1;padding:0 4px}.notification-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}.notification-hero h2{font-size:24px;margin:4px 0 7px;letter-spacing:-.04em}.notification-hero form{margin:0}.notification-summary-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin-bottom:14px}.notification-metric{text-decoration:none;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}.notification-metric:hover{transform:translateY(-2px);border-color:#bfd3ff;box-shadow:0 12px 30px rgba(16,24,40,.08)}.notification-metric strong{font-size:18px}.notification-metric small{display:block;color:#98a2b3;font-size:10px;margin-top:4px}.notification-panel{margin-top:0}.notification-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px;border-bottom:1px solid var(--line);padding-bottom:10px}.notification-tabs a{display:inline-flex;align-items:center;gap:8px;padding:9px 11px;border-radius:999px;background:#f2f4f7;color:#344054;font-size:12px;font-weight:850}.notification-tabs a.active{background:#eef4ff;color:var(--primary)}.notification-filter-form{grid-template-columns:minmax(170px,220px) auto}.notification-list{display:flex;flex-direction:column;gap:10px}.notification-item{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:12px;align-items:flex-start;border:1px solid var(--line);border-radius:16px;background:#fff;padding:13px;box-shadow:0 5px 18px rgba(16,24,40,.035)}.notification-item.is-unread{border-color:#fedf89;background:linear-gradient(180deg,#fff,#fffcf5)}.notification-icon{width:42px;height:42px;border-radius:13px;background:#eef4ff;display:grid;place-items:center}.notification-icon .btn-icon8{width:21px;height:21px}.notification-body{min-width:0}.notification-title-row{display:flex;align-items:center;gap:8px;justify-content:space-between;margin-bottom:5px}.notification-title-row strong{font-size:13px}.notification-body p{font-size:12px;line-height:1.55;color:#344054;margin:0 0 6px}.notification-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.notification-actions form{margin:0}.notification-risk-grid,.notification-draft-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.notification-risk-card{border:1px solid var(--line);border-radius:16px;background:#fff;padding:14px;box-shadow:0 5px 18px rgba(16,24,40,.035);min-width:0}.notification-risk-card>strong{display:block;font-size:13px;margin-bottom:10px}.notification-risk-card .risk-row{padding:9px 0}.notification-draft-grid{grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:1200px){.notification-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.notification-risk-grid{grid-template-columns:1fr}.notification-draft-grid{grid-template-columns:1fr}}@media(max-width:760px){.notification-hero{flex-direction:column}.notification-hero .toolbar-actions{width:100%;align-items:stretch;flex-direction:column}.notification-hero .toolbar-actions .btn{width:100%}.notification-summary-grid{grid-template-columns:1fr}.notification-filter-form{grid-template-columns:1fr}.notification-item{grid-template-columns:1fr}.notification-icon{width:38px;height:38px}.notification-actions{justify-content:stretch;flex-direction:column}.notification-actions .btn{width:100%}.notification-title-row{align-items:flex-start;flex-direction:column}.notification-tabs a{flex:1;justify-content:center}.user-menu .notification-topbar-link{min-width:34px;height:34px;padding:0 9px}.notification-topbar-text{display:none}.notification-topbar-icon{width:22px;height:22px}}
.executive-quick-actions{grid-template-columns:repeat(5,minmax(0,1fr))}@media(max-width:1250px){.executive-quick-actions{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:760px){.executive-quick-actions{grid-template-columns:1fr 1fr}}


/* Phase 17 Approval Workflow */
.approval-summary-grid .mini-metric strong{font-size:20px}.approval-decision-card{display:grid;grid-template-columns:1fr;gap:12px;margin:14px 0;padding:15px;border:1px solid #dbe3ee;border-radius:16px;background:linear-gradient(180deg,#fff,#f8fafc);box-shadow:0 8px 22px rgba(16,24,40,.04)}.approval-decision-card textarea{width:100%;border:1px solid #d0d5dd;border-radius:12px;padding:11px 13px;outline:none;resize:vertical}.approval-decision-card textarea:focus{border-color:#84adff;box-shadow:0 0 0 4px #e8f0ff}.approval-current-row td{background:#fffbeb!important}.inline-form{display:inline;margin:0}.inline-form .btn{white-space:nowrap}.approval-flow-hint{display:flex;gap:10px;align-items:flex-start;border:1px dashed #cbd5e1;background:#f8fafc;border-radius:14px;padding:13px;color:#475467;font-size:12px;line-height:1.55;margin-top:12px}.approval-flow-hint .btn-icon8{margin-top:1px}.master-table input,.master-table select{width:100%;border:1px solid #d0d5dd;border-radius:9px;padding:9px 10px;background:#fff;outline:none}.master-table input:focus,.master-table select:focus{border-color:#84adff;box-shadow:0 0 0 3px #eff4ff}@media(max-width:760px){.approval-decision-card .form-actions{flex-direction:column}.approval-decision-card .btn{width:100%}}

/* Phase 18 POS / Kasir */
.pos-hero-panel{margin-bottom:14px}.pos-kpi-grid{margin-top:14px}.pos-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:16px;align-items:start}.pos-left,.pos-right{min-width:0}.pos-scan-card{border:1px solid #dbe3ee;border-radius:16px;background:linear-gradient(180deg,#fff,#f8fafc);box-shadow:0 8px 22px rgba(16,24,40,.04);padding:14px;margin-bottom:12px}.pos-scan-card small{display:block;margin-top:8px;color:var(--muted);font-size:11px;line-height:1.55}.pos-item-table table{min-width:1080px}.pos-item-table td,.pos-item-table th{vertical-align:middle}.pos-item-table select,.pos-item-table input{border:1px solid #d0d5dd;border-radius:10px;padding:9px 10px;background:#fff;font-size:11px}.pos-summary-card{position:sticky;top:92px;border:1px solid #dbe3ee;border-radius:18px;background:#fff;box-shadow:0 14px 34px rgba(16,24,40,.08);padding:16px}.pos-summary-card h3{font-size:16px;margin:0 0 14px;letter-spacing:-.03em}.pos-summary-card .field{margin-bottom:11px}.pos-total-lines{border:1px solid var(--line);border-radius:15px;background:#f8fafc;margin:12px 0;padding:12px}.pos-total-lines span{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid #e8edf5}.pos-total-lines span:last-child{border-bottom:0}.pos-total-lines em,.pos-change span{font-style:normal;color:#667085;font-size:11px;font-weight:800}.pos-total-lines strong{font-size:12px}.pos-total-lines .grand{border-top:1px solid #dbe3ee;margin-top:5px;padding-top:12px}.pos-total-lines .grand strong{font-size:20px;color:#1d4ed8}.pos-change{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #abefc6;background:#ecfdf3;color:#067647;border-radius:14px;padding:12px;margin:10px 0 13px}.pos-change strong{font-size:17px}.pos-flow{display:grid;gap:10px}.pos-flow>div{display:grid;grid-template-columns:32px minmax(0,1fr);column-gap:10px;align-items:start;border:1px solid var(--line);border-radius:14px;background:#fff;padding:12px}.pos-flow .btn-icon8{grid-row:1/3;width:22px;height:22px}.pos-flow strong{display:block;font-size:12px}.pos-flow span{font-size:11px;color:var(--muted);line-height:1.5}.pos-receipt-panel{display:grid;place-items:center}.receipt-paper{width:min(380px,100%);background:#fff;border:1px solid #dbe3ee;border-radius:18px;padding:18px;box-shadow:0 14px 34px rgba(16,24,40,.08);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono",monospace}.receipt-head{text-align:center;border-bottom:1px dashed #98a2b3;padding-bottom:10px;margin-bottom:10px}.receipt-head strong,.receipt-head span,.receipt-head small{display:block}.receipt-head strong{font-size:16px}.receipt-head span{font-size:12px;font-weight:800;margin-top:5px}.receipt-head small{font-size:10px;color:#667085;margin-top:4px}.receipt-meta{display:grid;gap:4px;border-bottom:1px dashed #d0d5dd;padding-bottom:10px;margin-bottom:10px}.receipt-meta span{font-size:10px;color:#344054}.receipt-items{display:grid;gap:10px}.receipt-items>div{position:relative;border-bottom:1px dashed #e4e7ec;padding-bottom:9px}.receipt-items strong,.receipt-items span{display:block;padding-right:90px}.receipt-items strong{font-size:11px}.receipt-items span{font-size:10px;color:#667085;margin-top:3px}.receipt-items b{position:absolute;right:0;top:0;font-size:11px}.receipt-total{border-top:1px dashed #98a2b3;margin-top:10px;padding-top:10px}.receipt-total span{display:flex;justify-content:space-between;gap:10px;padding:4px 0}.receipt-total em{font-style:normal;font-size:10px;color:#667085}.receipt-total strong{font-size:11px}.receipt-total .grand{border-top:1px dashed #98a2b3;margin-top:5px;padding-top:8px}.receipt-total .grand strong{font-size:15px}.receipt-foot{text-align:center;color:#667085;font-size:10px;line-height:1.5;border-top:1px dashed #d0d5dd;margin-top:12px;padding-top:10px}.no-print{width:100%}
.pos-onepage-layout{display:block}.pos-full-grid{display:grid;grid-template-columns:1fr;gap:14px}.panel-soft{border:1px solid #dbe3ee;border-radius:18px;background:linear-gradient(180deg,#fff,#fbfdff);box-shadow:0 8px 22px rgba(16,24,40,.04);padding:14px}.pos-scan-hero{margin-bottom:0}.pos-inline-summary{margin:0}.pos-inline-summary-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.pos-inline-summary-head strong{display:block;font-size:14px}.pos-inline-fields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.pos-inline-fields .field{margin-bottom:0}.pos-cart-card{padding:14px}.pos-cart-card .item-section-head{margin-bottom:10px}.pos-item-table{overflow-x:auto}.pos-item-table table{min-width:1000px}.pos-bottom-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:14px;align-items:start}.pos-summary-flat{position:static;top:auto;height:100%;box-shadow:0 8px 22px rgba(16,24,40,.04)}.pos-payment-card{display:flex;flex-direction:column;gap:10px}.pos-payment-card .btn-block{margin-top:auto}.pos-summary-card .field:last-of-type{margin-bottom:0}@media(max-width:1150px){.pos-inline-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.pos-bottom-grid{grid-template-columns:1fr}.pos-item-table table{min-width:900px}}@media(max-width:760px){.pos-inline-fields{grid-template-columns:1fr}.panel-soft,.pos-summary-card,.pos-scan-card{border-radius:14px;padding:13px}.pos-bottom-grid{grid-template-columns:1fr}.pos-item-table table{min-width:820px}}
.pos-payment-reference{padding:14px}.pos-payment-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}.pos-payment-head h3{margin-bottom:3px}.pos-payment-method-field{min-width:180px;max-width:220px;margin-bottom:0}.pos-money-card{border:1px solid #dbe3ee;border-radius:18px;background:linear-gradient(180deg,#fff,#f8fafc);padding:14px 16px;text-align:center}.pos-money-card span{display:block;font-size:11px;font-weight:800;color:#667085}.pos-money-card strong{display:block;font-size:32px;line-height:1.1;letter-spacing:-.04em;margin:8px 0 6px;color:#111827}.pos-money-card small{display:block;font-size:10px;color:#98a2b3}.pos-quick-amounts{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.pos-quick-amounts .btn{padding:10px 8px;border-radius:12px;background:#eef2ff}.pos-quick-amounts .btn:hover{background:#e0e7ff}.pos-payment-body{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start}.pos-keypad{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.pos-keypad button{height:58px;border:1px solid #dbe3ee;border-radius:16px;background:#fff;font-size:24px;font-weight:500;color:#111827;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease}.pos-keypad button:hover{transform:translateY(-1px);box-shadow:0 10px 20px rgba(16,24,40,.08);border-color:#c7d7fe}.pos-keypad .is-backspace,.pos-keypad .is-clear{font-size:13px;font-weight:800}.pos-keypad .is-clear{grid-column:1/-1;height:44px;background:#fff7ed;border-color:#fed7aa;color:#9a3412}.pos-keypad .is-backspace .btn-icon8{width:18px;height:18px}.pos-payment-side{display:grid;gap:10px}.pos-payment-side .field{margin-bottom:0}.pos-payment-totals{border:1px solid var(--line);border-radius:14px;background:#f8fafc;padding:10px 12px;display:grid;gap:8px}.pos-payment-totals span{display:flex;align-items:center;justify-content:space-between;gap:12px}.pos-payment-totals em{font-style:normal;font-size:11px;font-weight:800;color:#667085}.pos-payment-totals strong{font-size:12px}.pos-payment-totals [data-pos-status].is-paid{color:#067647}.pos-payment-side .btn-block{min-height:48px}@media(max-width:1150px){.pos-payment-body{grid-template-columns:1fr}.pos-payment-head{flex-direction:column;align-items:stretch}.pos-payment-method-field{max-width:none}.pos-quick-amounts{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:760px){.pos-quick-amounts{grid-template-columns:repeat(2,minmax(0,1fr))}.pos-money-card strong{font-size:26px}.pos-keypad button{height:52px;font-size:20px}}@media(max-width:1150px){.pos-layout{grid-template-columns:1fr}.pos-summary-card{position:static}.pos-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.pos-kpi-grid{grid-template-columns:1fr}.pos-summary-card,.pos-scan-card{border-radius:14px;padding:13px}.receipt-paper{border-radius:12px;box-shadow:none}.pos-flow>div{grid-template-columns:1fr}.pos-flow .btn-icon8{grid-row:auto}}@media print{.no-print,.topbar,.sidebar,.sidebar-backdrop,.toolbar-actions,.crumb{display:none!important}.pos-receipt-panel{display:block}.receipt-paper{width:72mm;max-width:72mm;border:0;box-shadow:none;border-radius:0;padding:0;margin:0 auto}.receipt-items b{position:static;display:block;text-align:right;margin-top:4px}.receipt-items strong,.receipt-items span{padding-right:0}body{background:#fff!important}}


/* POS payment modal refinement */
.pos-payment-compact{display:grid;gap:12px}.pos-payment-compact .pos-payment-method-field{max-width:none;min-width:0}.pos-payment-preview{border:1px solid var(--line);border-radius:15px;background:#f8fafc;padding:12px;display:grid;gap:9px}.pos-payment-preview span{display:flex;align-items:center;justify-content:space-between;gap:12px}.pos-payment-preview em{font-style:normal;color:#667085;font-size:11px;font-weight:800}.pos-payment-preview strong{font-size:13px}.pos-payment-preview span:first-child strong{font-size:18px;color:#1d4ed8}.pos-payment-modal[hidden]{display:none!important}.pos-payment-modal{position:fixed;inset:0;z-index:999;display:grid;place-items:center;padding:18px}.pos-payment-backdrop{position:absolute;inset:0;background:rgba(15,23,42,.48);backdrop-filter:blur(5px)}.pos-payment-dialog{position:relative;width:min(880px,calc(100vw - 28px));max-height:calc(100vh - 36px);overflow:hidden;background:#fff;border:1px solid #e4e7ec;border-radius:22px;box-shadow:0 30px 80px rgba(15,23,42,.28);display:flex;flex-direction:column}.pos-payment-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:18px 20px;border-bottom:1px solid #eef2f6}.pos-payment-modal-head h3{font-size:19px;margin:0 0 4px;letter-spacing:-.03em}.pos-payment-modal-head span{font-size:12px;color:#667085}.pos-modal-close{width:34px;height:34px;border:0;border-radius:999px;background:#f2f4f7;color:#344054;font-size:22px;line-height:1;cursor:pointer}.pos-payment-modal-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:0;min-height:0}.pos-modal-receipt{background:#f8fafc;padding:20px;border-right:1px solid #eef2f6;display:flex;flex-direction:column;gap:16px}.pos-modal-customer{display:flex;align-items:center;gap:11px}.pos-customer-mark{width:42px;height:42px;border-radius:12px;background:#0f766e;color:#fff;display:grid;place-items:center;font-weight:900;font-size:13px}.pos-modal-customer strong,.pos-modal-customer small{display:block}.pos-modal-customer strong{font-size:13px}.pos-modal-customer small{font-size:11px;color:#667085;margin-top:3px}.pos-modal-detail-lines{border:1px solid #e4e7ec;background:#fff;border-radius:18px;padding:16px;display:grid;gap:10px}.pos-modal-detail-lines>strong{font-size:13px;margin-bottom:2px}.pos-modal-detail-lines span{display:flex;align-items:center;justify-content:space-between;gap:12px}.pos-modal-detail-lines em{font-style:normal;color:#667085;font-size:12px}.pos-modal-detail-lines b{font-size:12px}.pos-modal-detail-lines .grand{border-top:1px dashed #cbd5e1;margin-top:4px;padding-top:12px}.pos-modal-detail-lines .grand em,.pos-modal-detail-lines .grand b{font-size:16px;font-weight:900;color:#111827}.pos-modal-payment{padding:20px;display:grid;gap:12px;align-content:start}.pos-modal-method{margin-bottom:0}.pos-modal-keypad-wrap{display:grid;grid-template-columns:1fr 220px;gap:14px;align-items:start}.pos-money-card{margin:0}.pos-quick-amounts{grid-template-columns:repeat(5,minmax(0,1fr))}.pos-keypad{gap:10px}.pos-keypad button{height:54px}.pos-payment-side .pos-change{margin:0}.pos-payment-side .btn-block{min-height:46px}.pos-modal-open{overflow:hidden}@media(max-width:900px){.pos-payment-dialog{overflow:auto}.pos-payment-modal-grid{grid-template-columns:1fr}.pos-modal-receipt{border-right:0;border-bottom:1px solid #eef2f6}.pos-modal-keypad-wrap{grid-template-columns:1fr}.pos-quick-amounts{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:600px){.pos-payment-modal{padding:8px}.pos-payment-dialog{width:calc(100vw - 16px);max-height:calc(100vh - 16px);border-radius:18px}.pos-payment-modal-head,.pos-modal-payment,.pos-modal-receipt{padding:14px}.pos-quick-amounts{grid-template-columns:repeat(2,minmax(0,1fr))}.pos-keypad button{height:48px;font-size:19px}}

.pos-reference-layout{display:flex;flex-direction:column;flex:1;min-height:0}.pos-ref-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:12px;flex:1;min-height:0;height:calc(100vh - 218px);overflow:hidden}.pos-browser-panel,.pos-cart-panel{border:1px solid #dbe3ee;border-radius:20px;background:#fff;padding:12px;box-shadow:0 8px 24px rgba(16,24,40,.04);display:flex;flex-direction:column;min-height:0;overflow:hidden}.pos-pane-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:8px}.pos-pane-head h3{font-size:18px;line-height:1.1;margin:0 0 2px;color:#26369c}.pos-pane-head p{margin:0;font-size:12px;color:#667085}.pos-toolbar-row{display:grid;grid-template-columns:220px 1fr 44px 118px;gap:8px;align-items:center}.pos-warehouse-pill{display:flex;align-items:center;gap:8px;padding:0 10px;border:1px solid #d0d5dd;border-radius:14px;height:42px;background:#fff;font-weight:800}.pos-warehouse-pill select,.pos-top-select{border:0;background:transparent;outline:none;font:inherit;width:100%}.pos-search-shell{position:relative;display:flex;align-items:center;height:42px;border:1px solid #d0d5dd;border-radius:14px;background:#fff;padding:0 10px 0 40px}.pos-search-shell input{border:0;outline:none;width:100%;height:100%;font:inherit;background:transparent}.pos-search-icon{position:absolute;left:12px;display:grid;place-items:center}.pos-icon-btn{height:42px;width:44px;border:1px solid #d0d5dd;border-radius:14px;background:#fff;display:grid;place-items:center}.btn-outline-primary{background:#f8fbff;border:1px solid #0ea5e9;color:#0b67a2}.pos-info-strip{display:flex;align-items:center;gap:8px;margin-top:8px;padding:7px 10px;border:1px dashed #d0d5dd;border-radius:12px;background:#fafbff;font-size:12px;color:#667085}.pos-filter-chips{display:flex;gap:8px;overflow:auto;padding:8px 0 6px}.chip{border:1px solid #d6dae6;border-radius:16px;background:#fff;padding:7px 10px;display:flex;align-items:center;gap:8px;min-width:112px}.chip.is-active{border-color:#4f46e5;box-shadow:inset 0 0 0 1px #4f46e5;background:#eef2ff}.chip span{display:grid}.chip b{font-size:13px}.chip small{font-size:11px;color:#667085}.pos-product-board{flex:1;min-height:0;border:1px dashed #d0d5dd;border-radius:18px;background:#fcfcfe;padding:10px;overflow:auto}.pos-product-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(138px,1fr));gap:10px}.pos-product-card{border:1px solid #dbe3ee;border-radius:16px;background:#fff;padding:10px;display:grid;gap:6px;text-align:left;cursor:pointer;box-shadow:0 6px 16px rgba(15,23,42,.05)}.pos-product-card:hover{transform:translateY(-1px);box-shadow:0 10px 22px rgba(15,23,42,.10)}.pos-product-thumb{width:60px;height:60px;border-radius:14px;background:linear-gradient(135deg,#e0e7ff,#c7d2fe);display:grid;place-items:center;font-size:22px;font-weight:900;color:#3730a3}.pos-product-card strong{font-size:13px;color:#111827}.pos-product-card small{font-size:10px;color:#667085;min-height:26px}.pos-product-card b{font-size:13px;color:#f97316}.pos-product-card em{font-style:normal;font-size:10px;color:#667085}.pos-browser-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:8px}.pos-browser-footer span{font-size:12px;color:#667085}.pos-cart-head{margin-bottom:6px}.pos-cart-topbar{display:grid;grid-template-columns:minmax(0,1.2fr) 44px minmax(0,.8fr) minmax(0,.8fr);gap:8px;margin-bottom:8px}.pos-top-select{height:42px;border:1px solid #d0d5dd;border-radius:14px;padding:0 12px;background:#fff}.pos-plus-btn{height:42px;border:0;border-radius:14px;background:#2563eb;color:#fff;font-size:28px;line-height:1;cursor:pointer;display:grid;place-items:center;text-decoration:none}.pos-account-hint{padding:8px 10px;border:1px solid #d9d6fe;border-radius:12px;background:#f7f5ff;color:#4f46e5;font-size:11px;margin-bottom:8px}.pos-cart-box{flex:1;min-height:0;border:1px dashed #d0d5dd;border-radius:18px;background:#fcfcfe;padding:10px;overflow:auto}.pos-empty-cart{min-height:100%;display:grid;place-items:center;text-align:center;color:#667085;gap:6px;padding:20px}.pos-empty-icon{width:54px;height:54px;border-radius:18px;background:#eef2ff;color:#3730a3;display:grid;place-items:center}.pos-empty-icon .btn-icon8{width:30px;height:30px}.pos-cart-item{border:1px solid #dbe3ee;border-radius:16px;background:#fff;padding:8px 10px;margin-bottom:8px}.pos-cart-item-row{display:grid;grid-template-columns:minmax(0,1.5fr) auto auto auto;align-items:center;gap:10px}.pos-cart-item-main{display:flex;align-items:center;gap:10px;min-width:0}.pos-cart-thumb{width:40px;height:40px;border-radius:12px;overflow:hidden;background:#eef2ff;display:grid;place-items:center;flex:0 0 40px}.pos-cart-thumb img{width:100%;height:100%;object-fit:cover;display:block}.pos-cart-thumb.is-initial{font-size:18px;font-weight:800;color:#3730a3}.pos-cart-item-meta{min-width:0}.pos-cart-item-meta strong{display:block;font-size:13px;line-height:1.25;color:#111827;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pos-cart-item-meta small{display:block;font-size:10px;color:#667085;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pos-remove-item{width:26px;height:26px;border:0;border-radius:999px;background:#fff1f2;color:#b42318;font-size:18px;cursor:pointer;display:grid;place-items:center}.pos-qty-box{display:flex;align-items:center;gap:6px}.pos-qty-box button{width:28px;height:28px;border:1px solid #d0d5dd;border-radius:10px;background:#fff;cursor:pointer}.pos-qty-box input{width:46px;height:28px;border:1px solid #d0d5dd;border-radius:10px;text-align:center}.pos-cart-prices{display:grid;gap:2px;text-align:right;white-space:nowrap}.pos-cart-prices span{font-size:10px;color:#667085}.pos-cart-prices b{font-size:12px;color:#111827}.pos-cart-prices.is-inline span{display:block}.pos-summary-box{margin-top:8px;padding:10px;border:1px solid #dbe3ee;border-radius:18px;background:#fff}.pos-summary-box>p{font-size:11px;color:#667085;margin-bottom:8px}.pos-summary-mini-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.pos-summary-mini-grid span{border:1px solid #e4e7ec;border-radius:12px;padding:8px 10px;display:grid;gap:3px}.pos-summary-mini-grid em{font-style:normal;font-size:11px;color:#667085}.pos-summary-mini-grid strong{font-size:14px}.pos-total-highlight{margin-top:8px;border:1px solid #fed7aa;background:#fff7ed;color:#f97316;border-radius:14px;padding:8px 10px;display:flex;align-items:center;justify-content:space-between;gap:12px}.pos-total-highlight em{font-style:normal;font-weight:800;color:#374151}.pos-total-highlight strong{font-size:24px;letter-spacing:-.03em}.pos-summary-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:11px;color:#667085;padding-top:8px}.pos-action-row{display:grid;grid-template-columns:1fr 1.4fr;gap:8px;margin-top:8px}.pos-hidden-fields{display:none}.pos-sale-panel{height:calc(100vh - 92px);overflow:hidden;display:flex;flex-direction:column;padding:12px}.pos-sale-panel>.list-head{margin-bottom:10px;flex:0 0 auto}.pos-sale-panel .alert{flex:0 0 auto}@media(max-width:1180px){.pos-ref-grid{grid-template-columns:1fr;height:auto;overflow:visible}.pos-sale-panel{height:auto;overflow:visible}.pos-toolbar-row{grid-template-columns:1fr 1fr 44px 118px}.pos-cart-box{max-height:320px}}@media(max-width:760px){.pos-toolbar-row,.pos-cart-topbar,.pos-summary-mini-grid,.pos-action-row{grid-template-columns:1fr}.pos-product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pos-browser-footer,.pos-summary-foot{flex-direction:column;align-items:stretch}.pos-cart-item-row{grid-template-columns:1fr;align-items:stretch}.pos-cart-prices{text-align:left}.pos-remove-item{justify-self:end}.pos-total-highlight strong{font-size:22px}}

/* POS no duplicate page header */
.pos-sale-no-page-head{height:calc(100vh - 92px);overflow:hidden;display:flex;flex-direction:column;padding:8px 10px;margin:0}.pos-sale-no-page-head .pos-reference-layout{height:100%;min-height:0}.pos-sale-no-page-head .pos-ref-grid{height:100%;min-height:0;overflow:hidden;gap:10px}.pos-sale-no-page-head.panel{border-radius:18px}.pos-sale-no-page-head .pos-browser-panel,.pos-sale-no-page-head .pos-cart-panel{padding:10px;border-radius:18px}.pos-sale-no-page-head .pos-product-board,.pos-sale-no-page-head .pos-cart-box{padding:8px}.pos-sale-no-page-head .pos-summary-box{margin-top:6px;padding:8px 10px}.pos-sale-no-page-head .pos-pane-head{margin-bottom:6px}.pos-sale-no-page-head .pos-toolbar-row,.pos-sale-no-page-head .pos-cart-topbar{gap:6px}.pos-sale-no-page-head .pos-filter-chips{padding:6px 0 4px}.pos-card-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.pos-card-actions .btn{height:38px;padding:0 12px}.pos-sale-no-page-head .pos-browser-footer{padding-top:6px}.pos-sale-no-page-head .pos-action-row{gap:6px;margin-top:6px}@media(max-width:1180px){.pos-sale-no-page-head{height:auto;overflow:visible;padding:10px}.pos-sale-no-page-head .pos-reference-layout{height:auto}.pos-sale-no-page-head .pos-ref-grid{height:auto;overflow:visible}}@media(max-width:760px){.pos-card-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.pos-card-actions .btn{width:100%;justify-content:center}}

/* POS full-screen: hapus jarak/padding content khusus halaman sale POS */
.content:has(.pos-sale-no-page-head){padding:0!important;max-width:none!important;margin:0!important;overflow:hidden!important}.content:has(.pos-sale-no-page-head) .pos-sale-no-page-head{height:calc(100vh - 74px)!important;margin:0!important;border-radius:0!important;border-left:0!important;border-right:0!important;border-bottom:0!important}.content:has(.pos-sale-no-page-head) .pos-ref-grid{height:100%!important}@media(max-width:1180px){.content:has(.pos-sale-no-page-head){overflow:visible!important}.content:has(.pos-sale-no-page-head) .pos-sale-no-page-head{height:auto!important;border-radius:18px!important;margin:10px!important}}

.settings-two-col{display:grid;grid-template-columns:1.15fr .85fr;gap:16px;align-items:start}.settings-card{border:1px solid #dbe3ee;border-radius:18px;background:#fff;padding:16px;box-shadow:0 8px 22px rgba(16,24,40,.04)}.settings-card h3{font-size:16px;margin:0 0 6px}.settings-card .field textarea{width:100%;border:1px solid #cfd8e3;border-radius:14px;padding:12px 14px;font:inherit;resize:vertical}.check-field{border:1px solid #dbe3ee;border-radius:14px;padding:12px 14px;background:#f8fafc;display:flex!important;align-items:center;justify-content:space-between;gap:12px}.check-field input{width:20px;height:20px}.whatsapp-stat-grid .mini-metric strong{font-size:18px}.mt-16{margin-top:16px}.empty-cell{text-align:center;color:#667085;padding:18px}.status-badge.cancelled{background:#fee4e2;color:#b42318}.status-badge.draft{background:#f2f4f7;color:#475467}.status-badge.posted{background:#dcfae6;color:#067647}@media(max-width:980px){.settings-two-col{grid-template-columns:1fr}}


/* Phase 20: Printer struk thermal 58/80mm */
.print-setting-preview{display:grid;gap:12px}.receipt-thermal{width:var(--receipt-width,58mm);max-width:100%;font-size:var(--receipt-font,10px);padding:calc(var(--receipt-margin,0mm) + 8px)}.receipt-screen-border{border:1px solid #111827!important}.receipt-preview-paper{margin:12px auto 0}.receipt-note{border-top:1px dashed #d0d5dd;margin-top:10px;padding-top:8px;text-align:center;color:#344054;font-size:calc(var(--receipt-font,10px) - 1px);line-height:1.45}.receipt-thermal .receipt-head strong{font-size:calc(var(--receipt-font,10px) + 5px)}.receipt-thermal .receipt-head span{font-size:calc(var(--receipt-font,10px) + 1px)}.receipt-thermal .receipt-head small,.receipt-thermal .receipt-meta span,.receipt-thermal .receipt-items span,.receipt-thermal .receipt-total em,.receipt-thermal .receipt-foot{font-size:var(--receipt-font,10px)}.receipt-thermal .receipt-items strong,.receipt-thermal .receipt-items b,.receipt-thermal .receipt-total strong{font-size:calc(var(--receipt-font,10px) + 1px)}.receipt-thermal .receipt-total .grand strong{font-size:calc(var(--receipt-font,10px) + 5px)}@media print{@page{size:var(--receipt-width,58mm) auto;margin:var(--receipt-margin,0mm)}.receipt-paper,.receipt-thermal{width:var(--receipt-width,58mm)!important;max-width:var(--receipt-width,58mm)!important;font-size:var(--receipt-font,10px)!important;padding:0!important;margin:0!important;border:0!important;box-shadow:none!important;border-radius:0!important}.receipt-screen-border{border:0!important}.receipt-note{font-size:calc(var(--receipt-font,10px) - 1px)!important}.pos-receipt-panel{place-items:start!important}.content{padding:0!important}}

/* Phase 21 - POS shift cashier */
.badge{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:4px 10px;font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.badge-success{background:#ecfdf3;color:#027a48;border:1px solid #abefc6}.badge-muted{background:#f2f4f7;color:#475467;border:1px solid #d0d5dd}.full-span{grid-column:1/-1}.mt-2{margin-top:8px}.mt-3{margin-top:14px}.compact-flow div{padding:12px}.compact-flow strong{font-size:13px}.compact-flow span{font-size:12px}.pos-shift-note{border:1px dashed #d0d5dd;border-radius:14px;padding:12px;background:#fcfcfd;color:#475467}
@media print{.toolbar-actions,.crumb,.no-print{display:none!important}.dashboard-two-col{display:block!important}.panel{box-shadow:none!important;border:0!important}.pos-flow div{break-inside:avoid}}
/* Phase 22 - POS Return / Refund */
.receipt-return-paper .receipt-head span{font-weight:900;color:#b42318;letter-spacing:.06em}.compact-table table{font-size:12px}.row-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.alert-info{border-color:#bfdbfe;background:#eff6ff;color:#1d4ed8}.receipt-return-paper{border-color:#fecaca}

/* Fase 23 - POS loyalty / voucher */
.pos-voucher-box{display:grid;gap:5px;margin-bottom:8px;padding:8px 10px;border:1px solid #d9d6fe;border-radius:14px;background:#fbfaff;color:#4f46e5;font-size:11px}.pos-voucher-box label{display:flex;align-items:center;gap:8px;margin:0}.pos-voucher-box input{width:100%;height:36px;border:1px solid #ddd6fe;border-radius:12px;background:#fff;padding:0 10px;font-weight:800;text-transform:uppercase;color:#1f2937}.pos-voucher-box span{color:#667085}.loyalty-member-list a{color:inherit;text-decoration:none}.loyalty-member-list a:hover{transform:translateY(-1px);box-shadow:0 8px 18px rgba(15,23,42,.08)}

/* Fase 24 - POS promo / bundling */
.pos-promo-entry-grid{grid-template-columns:1fr;}
.pos-promo-entry-grid label+label{margin-top:2px}
.promo-product-picker{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;max-height:260px;overflow:auto;border:1px solid #e4e7ec;border-radius:14px;padding:10px;background:#fff}.promo-product-picker label{display:flex;align-items:flex-start;gap:8px;font-size:12px;border:1px solid #edf0f5;border-radius:12px;padding:8px 10px;background:#fbfcff}.promo-product-picker input{margin-top:2px}.promo-product-picker span{line-height:1.35}

/* Phase 25: produk gambar, barcode, label harga */
.product-image-preview{display:flex;align-items:center;gap:10px;padding:8px;border:1px solid var(--border);border-radius:12px;background:#f8fafc;margin-bottom:8px}.product-image-preview img{width:64px;height:64px;border-radius:12px;object-fit:cover;background:#fff}.product-image-preview span{font-size:12px;color:var(--muted);word-break:break-all}.pos-product-card.has-image .pos-product-thumb{background:#fff;border:1px solid rgba(15,23,42,.08);overflow:hidden}.pos-product-thumb img{width:100%;height:100%;object-fit:cover;display:block}.pos-variant-pill{display:inline-flex;align-items:center;width:max-content;max-width:100%;padding:3px 8px;border-radius:999px;background:#eef2ff;color:#3730a3;font-size:11px;font-weight:800;margin-top:2px}.pos-cart-thumb{width:42px;height:42px;flex:0 0 42px;border-radius:14px;background:#f1f5f9;display:inline-flex;align-items:center;justify-content:center;overflow:hidden;font-weight:900;color:#0f172a}.pos-cart-thumb img{width:100%;height:100%;object-fit:cover}.pos-label-actions{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}.compact-field{max-width:180px;margin:0}.compact-field span{font-size:12px;color:var(--muted);display:block;margin-bottom:4px}.label-product-thumb{width:54px;height:54px;border-radius:12px;object-fit:cover;border:1px solid var(--border);background:#fff}.barcode-preview{min-width:170px}.barcode-svg{width:100%;height:38px;display:block;background:#fff}.print-label-sheet{display:none}.print-label-sheet.is-ready{display:grid;gap:8px;margin-top:18px}.print-label-sheet.label-size-58{grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}.print-label-sheet.label-size-80{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.print-label-sheet.label-size-a4{grid-template-columns:repeat(3,minmax(0,1fr))}.barcode-label{break-inside:avoid;border:1px dashed #cbd5e1;border-radius:10px;background:#fff;padding:8px;text-align:center;display:flex;flex-direction:column;gap:3px;color:#111}.barcode-label strong{font-size:12px;line-height:1.15}.barcode-label small,.barcode-label em,.barcode-label span{font-size:10px;color:#334155;font-style:normal}.barcode-label b{font-size:15px}.barcode-label .barcode-svg{height:46px;margin-top:2px}@media print{body{background:#fff!important}.no-print,.sidebar,.topbar,.sidebar-backdrop,.app-sidebar,.app-topbar{display:none!important}.app-shell,.content,.main-content{display:block!important;margin:0!important;padding:0!important;max-width:none!important;overflow:visible!important}.panel.pos-label-panel{border:0!important;box-shadow:none!important;padding:0!important;margin:0!important}.pos-label-panel>form.no-print,.pos-label-panel>.list-head{display:none!important}.print-label-sheet.is-ready{display:grid!important;margin:0!important;gap:2mm}.print-label-sheet.label-size-58{grid-template-columns:1fr;width:58mm}.print-label-sheet.label-size-80{grid-template-columns:1fr;width:80mm}.print-label-sheet.label-size-a4{grid-template-columns:repeat(3,1fr);width:190mm}.barcode-label{border:0;border-radius:0;padding:2mm;min-height:26mm;page-break-inside:avoid}.label-size-58 .barcode-label{width:54mm}.label-size-80 .barcode-label{width:76mm}.barcode-label .barcode-svg{height:13mm}.barcode-label strong{font-size:10pt}.barcode-label b{font-size:12pt}}

/* Penanda singkat saat posisi scroll tabel dipulihkan setelah kembali dari detail */
.table-wrap tr.scroll-restored-row td{background:#fff7ed!important;transition:background .5s ease}

/* Master Data breadcrumb tambahan */
.subtle-crumb{margin-left:6px;background:#fff;color:#667085;border:1px solid var(--line)}


/* Master produk: kode otomatis, barcode manual/generate/scan kamera */
.barcode-input-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:center}.barcode-input-row input{min-width:0}.field input[readonly]{background:#f8fafc;color:#475467;border-style:dashed}.barcode-camera-modal{position:fixed;inset:0;background:rgba(15,23,42,.72);z-index:9999;display:grid;place-items:center;padding:18px}.barcode-camera-box{width:min(520px,100%);background:#fff;border-radius:18px;border:1px solid var(--line);box-shadow:0 24px 70px rgba(15,23,42,.30);padding:14px;position:relative}.barcode-camera-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.barcode-camera-head strong{display:block;font-size:15px}.barcode-camera-head span,.barcode-camera-box small{display:block;color:var(--muted);font-size:11px;line-height:1.45;margin-top:3px}.barcode-camera-box video{width:100%;max-height:360px;background:#0f172a;border-radius:14px;display:block;object-fit:cover}.barcode-camera-line{position:absolute;left:26px;right:26px;top:50%;height:2px;background:#ef4444;box-shadow:0 0 16px rgba(239,68,68,.55);pointer-events:none}@media(max-width:760px){.barcode-input-row{grid-template-columns:1fr}.barcode-input-row .btn{width:100%}.barcode-camera-box{border-radius:14px}.barcode-camera-head{flex-direction:column}.barcode-camera-head .btn{width:100%}}

/* Fix klik tombol Generate/Scan Kamera pada field barcode Master Produk */
.barcode-input-row{position:relative}.barcode-input-row .btn{position:relative;z-index:2;pointer-events:auto}.barcode-input-row input{position:relative;z-index:1}

/* Master Produk barcode camera fallback */
.barcode-camera-stage{position:relative}.barcode-camera-stage .barcode-camera-line{left:12px;right:12px;top:50%}.barcode-camera-status{margin:10px 0 8px;padding:9px 11px;border-radius:12px;font-size:12px;line-height:1.45;background:#f1f5f9;color:#334155;border:1px solid #e2e8f0}.barcode-camera-status[data-tone="success"]{background:#ecfdf3;color:#067647;border-color:#abefc6}.barcode-camera-status[data-tone="error"]{background:#fef3f2;color:#b42318;border-color:#fecdca}

/* Barcode camera permission/helper state */
.barcode-camera-stage-error{min-height:190px;background:#0f172a;border-radius:14px;overflow:hidden}.barcode-camera-stage-error video{opacity:.18;min-height:190px}.barcode-camera-help{position:absolute;inset:10px;z-index:3;background:rgba(255,255,255,.96);border:1px solid #e2e8f0;border-radius:12px;padding:12px;overflow:auto;color:#0f172a}.barcode-camera-help strong{display:block;font-size:14px;margin-bottom:6px}.barcode-camera-help ol{margin:0 0 10px 18px;padding:0;font-size:12px;line-height:1.45;color:#334155}.barcode-camera-help-actions{display:flex;gap:8px;flex-wrap:wrap}.barcode-camera-help-actions .btn{height:34px;padding:0 10px}@media(max-width:760px){.barcode-camera-help-actions{display:grid;grid-template-columns:1fr}.barcode-camera-help-actions .btn{width:100%;justify-content:center}}

/* Hide empty action slot when breadcrumb already provides the back navigation */
.toolbar-actions.is-empty{display:none!important}.is-duplicate-back-hidden{display:none!important}

/* POS compact cart panel: voucher/promo moved to modal, account hint removed from sale view */
.pos-compact-tools{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px;padding:0 2px}.pos-compact-tools .btn{height:34px;padding:0 10px;font-size:11px;border-radius:12px}.pos-compact-note{font-size:10px;color:#667085;line-height:1.25;text-align:right}.pos-compact-total{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:6px;padding:8px 10px;border:1px solid #dbe3ee;border-radius:14px;background:#fff;font-size:11px;color:#667085}.pos-compact-total strong{font-size:13px;color:#111827}.pos-compact-total b{font-weight:800;color:#111827}.pos-action-row-compact{margin-top:6px}.pos-browser-footer-compact{justify-content:space-between;color:#667085;font-size:11px}.pos-browser-footer-compact small{font-size:10px;color:#667085}.pos-promo-dialog{max-width:640px}.pos-promo-modal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.pos-promo-modal-grid .field input{height:42px;font-size:13px}.pos-promo-modal-note{margin-top:10px;font-size:11px;color:#667085}.pos-sale-no-page-head .pos-compact-total{margin-top:6px;padding:7px 9px}.pos-sale-no-page-head .pos-cart-box{min-height:0}.pos-sale-no-page-head .pos-action-row-compact .btn{height:40px;font-size:12px}@media(max-width:760px){.pos-compact-tools,.pos-compact-total{align-items:stretch;flex-direction:column}.pos-compact-note{text-align:left}.pos-promo-modal-grid{grid-template-columns:1fr}.pos-browser-footer-compact{align-items:flex-start}}


/* POS compact patch: modal voucher/promo lebih rapi dan kartu produk menampilkan sisa stok */
.pos-product-card{position:relative;align-content:start}.pos-stock-pill{display:inline-flex;align-items:center;justify-content:center;width:max-content;max-width:100%;padding:4px 8px;border-radius:999px;background:#ecfdf3;color:#067647;border:1px solid #abefc6;font-size:10px;font-weight:800;line-height:1.1}.pos-stock-pill.is-empty{background:#fff1f3;color:#b42318;border-color:#fecdd3}.pos-product-card .pos-stock-pill{margin-top:1px}.pos-stock-inline{display:inline-flex!important;align-items:center;flex-wrap:nowrap;gap:2px;width:max-content;max-width:100%;padding:4px 6px;border-radius:999px;font-size:9px;line-height:1;white-space:nowrap;text-align:left;box-shadow:none;overflow:visible}.pos-stock-inline small,.pos-stock-inline strong,.pos-stock-inline em{display:inline-flex;align-items:center;min-height:0!important;line-height:1!important;white-space:nowrap;flex:0 0 auto}.pos-stock-inline small{font-size:8.5px;line-height:1;text-transform:none;letter-spacing:0;color:inherit;opacity:.82;font-weight:800}.pos-stock-inline strong{font-size:9px;line-height:1;font-weight:900;letter-spacing:0}.pos-stock-inline em{font-style:normal;font-size:8.5px;line-height:1;font-weight:900}.pos-stock-inline.is-empty strong{color:#b42318}.pos-stock-inline.is-nonstock{background:#f2f4f7;color:#475467;border-color:#d0d5dd}.pos-stock-inline.is-nonstock strong{font-size:9px}.pos-promo-dialog{width:min(560px,calc(100vw - 28px));max-width:560px;border-radius:22px}.pos-promo-head{padding:15px 18px 12px;background:linear-gradient(180deg,#fff,#f8fafc)}.pos-promo-head h3{font-size:17px;margin:0 0 3px}.pos-promo-head span{font-size:11px;line-height:1.35}.pos-promo-modal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:14px 16px 8px}.pos-promo-field{gap:6px;margin:0;padding:10px;border:1px solid #e4e7ec;border-radius:16px;background:#fbfcff}.pos-promo-field>span{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:#475467}.pos-promo-field input{height:38px;border-radius:12px;font-size:12px;font-weight:800;text-transform:uppercase;padding:0 10px}.pos-promo-field small{font-size:10px;color:#667085;line-height:1.35}.pos-promo-modal-note{margin:0;padding:0 16px 12px;font-size:10.5px;color:#667085}.pos-promo-actions{display:flex;justify-content:flex-end;gap:8px;padding:12px 16px 16px;border-top:1px solid #eef2f6}.pos-promo-actions .btn{height:38px;padding:0 13px;font-size:11px;border-radius:12px}@media(max-width:760px){.pos-promo-dialog{width:calc(100vw - 18px);border-radius:18px}.pos-promo-modal-grid{grid-template-columns:1fr;padding:12px}.pos-promo-actions{padding:12px;display:grid;grid-template-columns:1fr 1fr}.pos-promo-actions .btn{width:100%}}

/* Barcode type support: master product and POS */
.pos-barcode-type-pill{display:inline-flex;align-items:center;width:max-content;max-width:100%;padding:2px 7px;border-radius:999px;background:#f1f5f9;color:#334155;font-size:10px;font-weight:800;border:1px solid #e2e8f0}.barcode-input-row input[inputmode="text"]{letter-spacing:.02em}.barcode-type-note{font-size:11px;color:#64748b}


/* POS payment modal: tombol proses dan cetak dibuat selalu terlihat */
.pos-payment-dialog{max-height:calc(100vh - 28px)}
.pos-payment-modal-grid{flex:1;overflow:auto;min-height:0}
.pos-payment-modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:12px 20px;border-top:1px solid #eef2f6;background:#fff;position:sticky;bottom:0;z-index:2;box-shadow:0 -8px 18px rgba(15,23,42,.05)}
.pos-payment-modal-footer .btn{min-height:44px;padding:0 16px;border-radius:14px}
.pos-payment-modal-footer .btn-primary{font-weight:900;min-width:230px}
.pos-payment-action-hint{margin:2px 0 0;font-size:11px;line-height:1.35;color:#667085;text-align:center}
.pos-product-card.is-out-of-stock,.pos-product-card:disabled{opacity:.62;cursor:not-allowed;filter:grayscale(.2);box-shadow:none}
.pos-product-card.is-out-of-stock:hover,.pos-product-card:disabled:hover{transform:none;box-shadow:none}
.btn.is-disabled,.btn:disabled{opacity:.55;cursor:not-allowed;filter:grayscale(.15)}
@media(max-width:600px){.pos-payment-modal-footer{padding:10px 14px;display:grid;grid-template-columns:1fr}.pos-payment-modal-footer .btn-primary{min-width:0;width:100%}}


/* FIX STRUK POS THERMAL 58MM: font 12px dan anti terpotong kanan */
.receipt-thermal{box-sizing:border-box;font-size:12px!important;line-height:1.25;font-family:"Courier New",ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;overflow-wrap:anywhere;word-break:normal}.receipt-thermal *{box-sizing:border-box;max-width:100%}.receipt-thermal .receipt-head{padding-bottom:6px;margin-bottom:6px}.receipt-thermal .receipt-head strong{font-size:14px!important;line-height:1.15}.receipt-thermal .receipt-head span{font-size:12px!important;line-height:1.15}.receipt-thermal .receipt-head small{font-size:10px!important}.receipt-thermal .receipt-meta{gap:2px;padding-bottom:6px;margin-bottom:6px}.receipt-thermal .receipt-meta span{font-size:10px!important;line-height:1.25;white-space:normal;overflow-wrap:anywhere}.receipt-thermal .receipt-items{gap:6px}.receipt-thermal .receipt-items>div{display:grid;grid-template-columns:minmax(0,1fr);gap:1px;padding-bottom:6px}.receipt-thermal .receipt-items strong,.receipt-thermal .receipt-items span{padding-right:0!important;white-space:normal;overflow-wrap:anywhere}.receipt-thermal .receipt-items strong{font-size:12px!important;line-height:1.25}.receipt-thermal .receipt-items span{font-size:10px!important;line-height:1.25}.receipt-thermal .receipt-items b{position:static!important;display:block!important;text-align:right!important;margin-top:1px;font-size:12px!important;line-height:1.2;white-space:nowrap}.receipt-thermal .receipt-total{margin-top:6px;padding-top:6px}.receipt-thermal .receipt-total span{display:grid!important;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:5px;padding:2px 0}.receipt-thermal .receipt-total em{font-size:10px!important;line-height:1.25;overflow-wrap:anywhere}.receipt-thermal .receipt-total strong{font-size:12px!important;line-height:1.25;white-space:nowrap;text-align:right}.receipt-thermal .receipt-total .grand strong{font-size:15px!important}.receipt-thermal .receipt-note,.receipt-thermal .receipt-foot{font-size:10px!important;line-height:1.35}.receipt-thermal .receipt-foot{padding-top:7px;margin-top:8px}
@media print{@page{size:58mm auto!important;margin:0!important}html,body{width:58mm!important;min-width:58mm!important;margin:0!important;padding:0!important;background:#fff!important;overflow:visible!important}.app-shell,.app-main,.content,.panel,.pos-receipt-panel{display:block!important;width:58mm!important;max-width:58mm!important;margin:0!important;padding:0!important;background:#fff!important;overflow:visible!important}.receipt-paper,.receipt-thermal{width:56mm!important;max-width:56mm!important;margin:0!important;padding:1.2mm 1mm!important;border:0!important;border-radius:0!important;box-shadow:none!important;font-size:12px!important;line-height:1.22!important;transform:none!important}.receipt-screen-border{border:0!important}.receipt-thermal .receipt-items b{position:static!important;display:block!important;text-align:right!important}.receipt-thermal .receipt-total span{grid-template-columns:minmax(0,1fr) auto!important}.receipt-thermal .receipt-total strong{white-space:nowrap!important}.receipt-thermal .receipt-note,.receipt-thermal .receipt-foot{font-size:10px!important}.no-print,.topbar,.sidebar,.sidebar-backdrop,.toolbar-actions,.crumb{display:none!important}}

/* FIX LANJUTAN STRUK THERMAL 58MM: printable width 48mm agar tidak terpotong kanan */
.receipt-thermal{
  width:var(--receipt-printable-width,48mm)!important;
  max-width:var(--receipt-printable-width,48mm)!important;
  font-family:"Courier New",Courier,monospace!important;
  font-size:12px!important;
  line-height:1.22!important;
  letter-spacing:-.15px!important;
  color:#000!important;
}
.receipt-thermal,.receipt-thermal *{box-sizing:border-box!important;max-width:100%!important}
.receipt-thermal .receipt-head strong{font-size:13px!important;line-height:1.15!important}
.receipt-thermal .receipt-head span,
.receipt-thermal .receipt-head small,
.receipt-thermal .receipt-meta span,
.receipt-thermal .receipt-items strong,
.receipt-thermal .receipt-items span,
.receipt-thermal .receipt-items b,
.receipt-thermal .receipt-total em,
.receipt-thermal .receipt-total strong,
.receipt-thermal .receipt-note,
.receipt-thermal .receipt-foot{font-size:12px!important;line-height:1.22!important;color:#000!important}
.receipt-thermal .receipt-head{padding-bottom:5px!important;margin-bottom:6px!important;border-bottom:1px solid #000!important}
.receipt-thermal .receipt-meta{gap:1px!important;padding-bottom:6px!important;margin-bottom:7px!important;border-bottom:1px dashed #999!important}
.receipt-thermal .receipt-meta span{display:block!important;white-space:normal!important;overflow-wrap:anywhere!important;word-break:normal!important}
.receipt-thermal .receipt-items{display:block!important}
.receipt-thermal .receipt-items>div{display:grid!important;grid-template-columns:1fr!important;gap:1px!important;padding:0 0 7px!important;margin:0 0 7px!important;border-bottom:1px dashed #999!important;break-inside:avoid!important;page-break-inside:avoid!important}
.receipt-thermal .receipt-items strong,
.receipt-thermal .receipt-items span{display:block!important;padding-right:0!important;white-space:normal!important;overflow-wrap:anywhere!important;word-break:normal!important}
.receipt-thermal .receipt-items b{position:static!important;display:block!important;width:100%!important;text-align:right!important;white-space:nowrap!important;padding-right:1mm!important;margin-top:2px!important;overflow:hidden!important;text-overflow:clip!important}
.receipt-thermal .receipt-total{border-top:1px dashed #999!important;margin-top:6px!important;padding-top:6px!important}
.receipt-thermal .receipt-total span{display:grid!important;grid-template-columns:minmax(0,1fr) max-content!important;gap:4px!important;align-items:start!important;padding:2px 0!important}
.receipt-thermal .receipt-total em{font-style:normal!important;white-space:normal!important;overflow-wrap:anywhere!important}
.receipt-thermal .receipt-total strong{text-align:right!important;white-space:nowrap!important;padding-right:1mm!important;overflow:hidden!important;text-overflow:clip!important}
.receipt-thermal .receipt-total .grand{border-top:1px dashed #999!important;margin-top:5px!important;padding-top:6px!important}
.receipt-thermal .receipt-total .grand em,
.receipt-thermal .receipt-total .grand strong{font-size:12px!important;font-weight:900!important}
.receipt-thermal .receipt-note,
.receipt-thermal .receipt-foot{text-align:center!important;white-space:normal!important;overflow-wrap:anywhere!important;word-break:normal!important;border-top:1px dashed #999!important;margin-top:7px!important;padding-top:6px!important}
@media print{
  @page{size:58mm auto!important;margin:0!important}
  html,body{width:58mm!important;min-width:58mm!important;max-width:58mm!important;margin:0!important;padding:0!important;background:#fff!important;overflow:visible!important}
  .app-shell,.app-main,.content,.panel,.pos-receipt-panel{display:block!important;width:58mm!important;min-width:58mm!important;max-width:58mm!important;margin:0!important;padding:0!important;background:#fff!important;overflow:visible!important}
  .receipt-paper,.receipt-thermal{width:48mm!important;min-width:48mm!important;max-width:48mm!important;margin:0!important;padding:.8mm .4mm!important;border:0!important;border-radius:0!important;box-shadow:none!important;background:#fff!important;font-size:12px!important;line-height:1.22!important;letter-spacing:-.15px!important;transform:none!important;overflow:hidden!important}
  .receipt-thermal .receipt-head strong{font-size:13px!important}
  .receipt-thermal .receipt-head span,.receipt-thermal .receipt-head small,.receipt-thermal .receipt-meta span,.receipt-thermal .receipt-items strong,.receipt-thermal .receipt-items span,.receipt-thermal .receipt-items b,.receipt-thermal .receipt-total em,.receipt-thermal .receipt-total strong,.receipt-thermal .receipt-note,.receipt-thermal .receipt-foot{font-size:12px!important;line-height:1.22!important;color:#000!important}
  .receipt-thermal .receipt-items b,.receipt-thermal .receipt-total strong{padding-right:1mm!important;text-align:right!important;white-space:nowrap!important}
  .no-print,.topbar,.sidebar,.sidebar-backdrop,.toolbar-actions,.crumb,.whatsapp-receipt-form{display:none!important}
}

/* POS payment modal no-scroll: seluruh keypad dan tombol proses muat dalam satu popup */
.pos-payment-modal{padding:10px!important;overflow:hidden!important}
.pos-payment-dialog{width:min(920px,calc(100vw - 20px))!important;height:min(650px,calc(100vh - 20px))!important;max-height:calc(100vh - 20px)!important;overflow:hidden!important;border-radius:20px!important}
.pos-payment-modal-head{flex:0 0 auto!important;padding:12px 16px!important}
.pos-payment-modal-head h3{font-size:17px!important;margin:0 0 2px!important}
.pos-payment-modal-head span{font-size:11px!important;line-height:1.25!important}
.pos-modal-close{width:30px!important;height:30px!important;font-size:20px!important}
.pos-payment-modal-grid{flex:1 1 auto!important;min-height:0!important;overflow:hidden!important;grid-template-columns:.7fr 1.3fr!important}
.pos-modal-receipt{padding:14px!important;gap:10px!important;overflow:hidden!important}
.pos-modal-customer{gap:8px!important}.pos-customer-mark{width:36px!important;height:36px!important;border-radius:10px!important;font-size:12px!important}
.pos-modal-customer strong{font-size:12px!important}.pos-modal-customer small{font-size:10px!important;margin-top:1px!important}
.pos-modal-detail-lines{padding:12px!important;border-radius:14px!important;gap:7px!important}
.pos-modal-detail-lines>strong{font-size:12px!important;margin-bottom:0!important}.pos-modal-detail-lines em{font-size:11px!important}.pos-modal-detail-lines b{font-size:11px!important}.pos-modal-detail-lines .grand{padding-top:8px!important;margin-top:1px!important}.pos-modal-detail-lines .grand em,.pos-modal-detail-lines .grand b{font-size:14px!important}
.pos-modal-payment{padding:12px 14px!important;gap:8px!important;overflow:hidden!important;align-content:start!important}
.pos-modal-method>span,.pos-manual-field>span{font-size:11px!important;margin-bottom:4px!important}.pos-modal-method select,.pos-manual-field input{height:40px!important;font-size:14px!important;border-radius:11px!important}
.pos-money-card{padding:8px 12px!important;border-radius:14px!important}.pos-money-card span{font-size:10px!important}.pos-money-card strong{font-size:28px!important;line-height:1!important;margin:4px 0 3px!important}.pos-money-card small{font-size:9px!important}
.pos-quick-amounts{gap:7px!important}.pos-quick-amounts .btn{height:34px!important;min-height:34px!important;padding:0 8px!important;border-radius:11px!important;font-size:11px!important}
.pos-modal-keypad-wrap{grid-template-columns:1fr 220px!important;gap:10px!important;min-height:0!important;overflow:hidden!important}
.pos-keypad{gap:7px!important}.pos-keypad button{height:42px!important;border-radius:12px!important;font-size:22px!important}.pos-keypad .is-backspace,.pos-keypad .is-clear{font-size:12px!important}
.pos-payment-side{gap:7px!important;min-height:0!important}.pos-payment-side .field{margin:0!important}.pos-change{min-height:46px!important;padding:8px 12px!important;border-radius:12px!important}.pos-change span{font-size:10px!important}.pos-change strong{font-size:15px!important}.pos-payment-totals{padding:8px 10px!important;gap:6px!important;border-radius:12px!important}.pos-payment-totals em{font-size:10px!important}.pos-payment-totals strong{font-size:11px!important}.pos-payment-side .btn-block{min-height:36px!important;height:36px!important;font-size:11px!important}.pos-payment-action-hint{display:none!important}
.pos-payment-modal-footer{flex:0 0 auto!important;position:static!important;padding:9px 14px!important;box-shadow:none!important}.pos-payment-modal-footer .btn{min-height:40px!important;height:40px!important;padding:0 14px!important;font-size:12px!important}.pos-payment-modal-footer .btn-primary{min-width:240px!important}
@media(max-width:900px){.pos-payment-dialog{height:min(680px,calc(100vh - 16px))!important}.pos-payment-modal-grid{grid-template-columns:1fr!important}.pos-modal-receipt{display:none!important}.pos-modal-keypad-wrap{grid-template-columns:1fr 190px!important}.pos-payment-dialog{overflow:hidden!important}.pos-quick-amounts{grid-template-columns:repeat(5,minmax(0,1fr))!important}}
@media(max-width:620px){.pos-payment-modal{padding:6px!important}.pos-payment-dialog{width:calc(100vw - 12px)!important;height:calc(100vh - 12px)!important;border-radius:16px!important}.pos-payment-modal-head{padding:10px 12px!important}.pos-modal-payment{padding:10px!important;gap:7px!important}.pos-modal-keypad-wrap{grid-template-columns:1fr!important}.pos-keypad button{height:40px!important;font-size:20px!important}.pos-quick-amounts{grid-template-columns:repeat(3,minmax(0,1fr))!important}.pos-payment-side{grid-template-columns:1fr 1fr!important;display:grid!important}.pos-payment-side .btn-block,.pos-payment-action-hint{display:none!important}.pos-payment-modal-footer{display:grid!important;grid-template-columns:1fr!important;padding:8px 10px!important}.pos-payment-modal-footer .btn-primary{min-width:0!important;width:100%!important}}

/* POS product image: gambar mengikuti lebar kartu produk */
.pos-product-card.has-image{overflow:hidden;padding:8px;gap:6px}
.pos-product-card.has-image .pos-product-thumb{width:100%;height:82px;border-radius:13px;background:#f8fafc;border:1px solid rgba(15,23,42,.08);display:block;overflow:hidden}
.pos-product-card.has-image .pos-product-thumb img{width:100%;height:100%;display:block;object-fit:cover;object-position:center}
.pos-product-card:not(.has-image) .pos-product-thumb{width:56px;height:56px}
@media(min-width:1440px){.pos-product-card.has-image .pos-product-thumb{height:88px}}
@media(max-width:1180px){.pos-product-card.has-image .pos-product-thumb{height:78px}}
@media(max-width:760px){.pos-product-card.has-image{padding:7px}.pos-product-card.has-image .pos-product-thumb{height:68px;border-radius:12px}}


/* POS product card cleanup: remove scan info strip, clickable filters, product images instead of letter initials */
.pos-info-strip{display:none!important}
.pos-filter-chips .chip{cursor:pointer;user-select:none;pointer-events:auto}
.pos-filter-chips .chip.is-active{border-color:#2563eb;background:#eef4ff;box-shadow:inset 0 0 0 1px #2563eb}
.pos-product-card.has-product-placeholder{overflow:hidden;padding:8px;gap:6px}
.pos-product-card.has-product-placeholder .pos-product-thumb{width:100%;height:82px;border-radius:13px;background:linear-gradient(135deg,#eef2ff,#f8fafc);border:1px dashed #c7d7fe;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:#3730a3;overflow:hidden}
.pos-product-thumb-empty .btn-icon8{width:24px;height:24px}
.pos-product-thumb-empty small{font-size:10px;font-weight:800;color:#475467;line-height:1;text-transform:none;letter-spacing:0;margin:0}
.pos-product-card.has-image .pos-product-thumb,.pos-product-card.has-product-placeholder .pos-product-thumb{grid-column:1/-1}
@media(max-width:1180px){.pos-product-card.has-product-placeholder .pos-product-thumb{height:78px}}
@media(max-width:760px){.pos-product-card.has-product-placeholder .pos-product-thumb{height:68px;border-radius:12px}}


/* POS voucher/promo modal compact + dropdown aktif */
.pos-promo-modal{padding:10px!important;align-items:center!important;overflow:hidden!important}
.pos-promo-modal .pos-promo-dialog{width:min(560px,calc(100vw - 20px))!important;height:auto!important;min-height:0!important;max-height:calc(100vh - 20px)!important;overflow:hidden!important;border-radius:20px!important}
.pos-promo-modal .pos-promo-head{padding:13px 16px 11px!important}
.pos-promo-modal .pos-promo-head h3{font-size:16px!important;margin:0 0 2px!important}
.pos-promo-modal .pos-promo-head span{font-size:11px!important;line-height:1.25!important}
.pos-promo-modal .pos-promo-modal-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important;padding:12px 14px 8px!important}
.pos-promo-modal .pos-promo-field{padding:10px!important;border-radius:15px!important;gap:6px!important;background:#fbfcff!important}
.pos-promo-modal .pos-promo-field>span{font-size:9.5px!important;letter-spacing:.06em!important;text-transform:uppercase!important;color:#475467!important}
.pos-promo-modal .pos-promo-field select{width:100%!important;height:40px!important;border:1px solid #cfd8e3!important;border-radius:12px!important;background:#fff!important;color:#111827!important;font-size:11px!important;font-weight:800!important;padding:0 9px!important;outline:none!important;min-width:0!important}
.pos-promo-modal .pos-promo-field select:focus{border-color:#2563eb!important;box-shadow:0 0 0 3px rgba(37,99,235,.12)!important}
.pos-promo-modal .pos-promo-field small{font-size:9.5px!important;line-height:1.25!important;color:#667085!important}
.pos-promo-modal .pos-promo-modal-note{margin:0!important;padding:0 14px 10px!important;font-size:10px!important;line-height:1.35!important;color:#667085!important}
.pos-promo-modal .pos-promo-actions{padding:10px 14px 14px!important;border-top:1px solid #eef2f6!important;gap:8px!important}
.pos-promo-modal .pos-promo-actions .btn{height:36px!important;min-height:36px!important;padding:0 13px!important;border-radius:12px!important;font-size:11px!important}
@media(max-width:760px){.pos-promo-modal .pos-promo-dialog{width:calc(100vw - 16px)!important}.pos-promo-modal .pos-promo-modal-grid{grid-template-columns:1fr!important;padding:12px!important}.pos-promo-modal .pos-promo-actions{display:grid!important;grid-template-columns:1fr 1fr!important;padding:10px 12px 12px!important}}

/* POS: tampilkan diskon voucher/promo di halaman depan kasir */
.pos-promo-front-summary{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 6px;padding:7px 9px;border:1px solid #bfdbfe;border-radius:12px;background:#eff6ff;color:#1e40af;font-size:10.5px;line-height:1.2}.pos-promo-front-summary[hidden]{display:none!important}.pos-promo-front-label{font-weight:800;white-space:nowrap}.pos-promo-front-summary strong{font-size:11px;font-weight:900;text-align:right;word-break:break-word}.pos-promo-front-summary.is-warning{border-color:#fed7aa;background:#fff7ed;color:#9a3412}@media(max-width:760px){.pos-promo-front-summary{align-items:flex-start;flex-direction:column}.pos-promo-front-summary strong{text-align:left}}


/* POS retur: tombol cetak struk thermal selain PDF */
.receipt-return-paper .receipt-head span{letter-spacing:.02em}.receipt-return-paper .receipt-total .grand strong{font-weight:900}@media print{.receipt-return-paper{width:48mm!important;max-width:48mm!important;margin:0!important;padding:.8mm .4mm!important}.receipt-return-paper .receipt-head,.receipt-return-paper .receipt-meta,.receipt-return-paper .receipt-items>div,.receipt-return-paper .receipt-total,.receipt-return-paper .receipt-foot{border-color:#999!important}}


/* POS Barcode & Label page polish */
.pos-label-page{min-height:calc(100vh - 122px)}
.pos-label-head{align-items:flex-start}.pos-label-search-card{display:grid;grid-template-columns:minmax(260px,1fr) 170px 160px auto auto;gap:10px;align-items:end;padding:14px;border:1px solid var(--border);border-radius:18px;background:#fff;margin-bottom:12px}.pos-label-search input{height:44px}.pos-label-filter{margin:0}.pos-label-filter span{font-size:11px;color:var(--muted);display:block;margin-bottom:5px}.pos-label-filter select{height:44px;border:1px solid var(--border);border-radius:12px;background:#fff;padding:0 12px;font-weight:700;color:#0f172a}.pos-label-form{display:block}.pos-label-control-card{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap;margin-bottom:12px}.pos-label-count{font-size:12px;color:var(--muted);font-weight:800;margin-left:auto;padding:9px 12px;border:1px dashed #cbd5e1;border-radius:12px;background:#f8fafc}.pos-label-table-wrap{width:100%;max-width:100%;display:block;border-radius:16px;overflow:auto}.pos-label-table{width:100%;min-width:980px}.pos-label-table th,.pos-label-table td{vertical-align:middle}.pos-label-table .check-col{width:46px;text-align:center}.pos-label-product-cell strong{display:block;font-size:13px;color:#0f172a;line-height:1.25}.pos-label-product-cell span{display:block;font-size:12px;color:#334155;margin-top:2px}.pos-label-product-cell small{display:block;font-size:10px;color:#94a3b8;margin-top:2px}.label-photo-box{min-width:76px}.label-product-thumb{width:72px;height:56px;border-radius:12px;object-fit:cover;border:1px solid var(--border);background:#fff;display:block}.pos-label-barcode-cell strong{font-size:12px;letter-spacing:.2px;color:#0f172a}.pos-label-table .badge{white-space:nowrap}.barcode-preview{min-width:190px;width:220px}.barcode-preview .barcode-svg{height:42px;max-width:220px;border:1px solid #eef2f7;border-radius:8px;padding:4px;background:#fff}.pos-label-table .empty-state{padding:22px}.print-label-sheet .empty-state{margin-top:12px}@media(max-width:1180px){.pos-label-search-card{grid-template-columns:1fr 1fr}.pos-label-search{grid-column:1/-1}.pos-label-control-card .compact-field{min-width:150px}.pos-label-count{width:100%;margin-left:0}}@media(max-width:760px){.pos-label-search-card{grid-template-columns:1fr}.pos-label-control-card{display:grid;grid-template-columns:1fr}.pos-label-control-card .btn,.pos-label-control-card .compact-field{width:100%;max-width:none}.pos-label-count{width:auto}.pos-label-head .toolbar-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.barcode-preview{min-width:160px}}


.pos-label-table td{padding-top:12px;padding-bottom:12px}.label-photo-box{min-width:90px}.label-product-thumb{width:84px;height:64px;border-radius:12px;object-fit:cover;border:1px solid var(--border);background:#fff;display:block;box-shadow:0 1px 2px rgba(15,23,42,.06)}.barcode-preview{min-width:240px;width:260px}.barcode-preview-card{display:flex;flex-direction:column;gap:8px}.barcode-preview-actions{display:flex;justify-content:flex-start}.btn-small{height:34px;padding:0 12px;border-radius:10px;font-size:12px;font-weight:800}.btn-small img{width:14px;height:14px}.barcode-preview .barcode-svg{height:46px;max-width:220px;border:1px solid #e2e8f0;border-radius:10px;padding:6px;background:#fff;box-shadow:0 1px 2px rgba(15,23,42,.04)}


/* Barcode label: tampil seperti barcode retail dengan angka di bawah */
.barcode-svg-with-text{height:92px!important;max-width:260px!important;width:100%!important;background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:6px;box-sizing:border-box}.barcode-preview .barcode-svg-with-text{height:96px!important;max-width:260px!important}.barcode-label .barcode-svg-with-text{height:24mm!important;max-width:100%!important;border:0!important;border-radius:0!important;padding:0!important}.barcode-svg-with-text text{font-family:Arial,Helvetica,sans-serif!important;paint-order:stroke;stroke:#fff;stroke-width:.4px}.barcode-svg-with-text rect{shape-rendering:crispEdges}.barcode-preview{min-width:280px;width:300px}.barcode-preview .barcode-preview-card{min-width:260px}
.barcode-preview-trigger{display:block;width:100%;border:1px solid #94a3b8;border-radius:4px;background:#f3f4f6;padding:0;cursor:pointer;text-align:center;color:#0f172a;overflow:hidden}.barcode-preview-trigger:hover{border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.12)}.barcode-preview-trigger:focus-visible{outline:3px solid rgba(37,99,235,.35);outline-offset:2px}.barcode-preview-zoom{display:block;background:#e5e7eb;border-top:1px solid #cbd5e1;font-size:12px;line-height:20px;color:#111827}.barcode-lightbox[hidden]{display:none!important}.barcode-lightbox{position:fixed;inset:0;z-index:2000;display:grid;place-items:center;padding:18px}.barcode-lightbox-backdrop{position:absolute;inset:0;background:rgba(15,23,42,.62);backdrop-filter:blur(4px)}.barcode-lightbox-dialog{position:relative;width:min(920px,calc(100vw - 28px));max-height:calc(100vh - 28px);background:#fff;border-radius:22px;border:1px solid #e5e7eb;box-shadow:0 30px 90px rgba(15,23,42,.35);display:flex;flex-direction:column;overflow:hidden}.barcode-lightbox-head,.barcode-lightbox-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;border-bottom:1px solid #eef2f7}.barcode-lightbox-head strong{display:block;font-size:18px;color:#0f172a}.barcode-lightbox-head span{display:block;margin-top:3px;font-size:12px;color:#64748b}.barcode-lightbox-body{padding:18px;background:#f8fafc;overflow:auto}.barcode-lightbox-canvas{display:grid;place-items:center;min-height:260px}.barcode-lightbox-preview{width:min(760px,100%);background:#fff;border:1px solid #dbe3ef;border-radius:16px;padding:22px;box-shadow:0 8px 30px rgba(15,23,42,.08)}.barcode-lightbox-preview .barcode-svg-large{display:block;width:100%;height:360px!important;max-width:none!important;border:0!important;padding:0!important;border-radius:0!important;box-shadow:none!important}.barcode-lightbox-foot{border-top:1px solid #eef2f7;border-bottom:0;justify-content:flex-end}.barcode-lightbox-open{overflow:hidden}@media(max-width:640px){.barcode-lightbox{padding:10px}.barcode-lightbox-dialog{width:calc(100vw - 20px);max-height:calc(100vh - 20px);border-radius:18px}.barcode-lightbox-head,.barcode-lightbox-foot,.barcode-lightbox-body{padding:12px}.barcode-lightbox-foot{display:grid;grid-template-columns:1fr}.barcode-lightbox-preview{padding:12px}.barcode-lightbox-preview .barcode-svg-large{height:250px!important}}
.label-photo-trigger{display:inline-grid;gap:5px;justify-items:center;border:0;background:transparent;padding:0;cursor:pointer;color:#64748b;font-size:10px;font-weight:800}.label-photo-trigger:hover .label-product-thumb{border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.12)}.label-photo-trigger:focus-visible{outline:3px solid rgba(37,99,235,.35);outline-offset:3px;border-radius:12px}.label-photo-trigger span{line-height:1.1}.product-image-lightbox-preview{width:min(620px,100%);padding:14px}.product-image-lightbox-preview img{display:block;width:100%;max-height:68vh;object-fit:contain;border-radius:12px;background:#f8fafc}
.pos-css-lightbox{display:none;position:fixed;inset:0;z-index:3000;place-items:center;padding:18px}.pos-css-lightbox:target{display:grid}.pos-css-lightbox-backdrop{position:absolute;inset:0;background:rgba(15,23,42,.64);backdrop-filter:blur(4px)}.pos-css-lightbox-dialog{position:relative;width:min(860px,calc(100vw - 28px));max-height:calc(100vh - 28px);background:#fff;border:1px solid #e5e7eb;border-radius:22px;box-shadow:0 30px 90px rgba(15,23,42,.36);display:flex;flex-direction:column;overflow:hidden}.pos-css-lightbox-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:16px 18px;border-bottom:1px solid #eef2f7}.pos-css-lightbox-head strong{display:block;font-size:18px;color:#0f172a}.pos-css-lightbox-head span{display:block;margin-top:3px;font-size:12px;color:#64748b}.pos-css-lightbox-close{width:34px;height:34px;border-radius:999px;background:#f2f4f7;color:#111827;display:grid;place-items:center;font-size:24px;line-height:1;text-decoration:none}.pos-css-lightbox-body{padding:18px;background:#f8fafc;overflow:auto;display:grid;place-items:center}.pos-css-lightbox-image{display:block;width:auto;max-width:100%;max-height:68vh;object-fit:contain;border-radius:14px;background:#fff;border:1px solid #e5e7eb}.pos-css-lightbox-foot{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:14px 18px;border-top:1px solid #eef2f7}.pos-css-lightbox-barcode{width:min(940px,calc(100vw - 28px))}.pos-css-barcode-large{width:min(800px,100%);background:#fff;border:1px solid #dbe3ef;border-radius:16px;padding:24px;box-shadow:0 8px 30px rgba(15,23,42,.08)}.pos-css-barcode-large .barcode-svg-with-text{height:360px!important;max-width:none!important;width:100%!important;border:0!important;border-radius:0!important;padding:0!important;box-shadow:none!important}.barcode-preview-trigger{text-decoration:none}@media(max-width:640px){.pos-css-lightbox{padding:10px}.pos-css-lightbox-dialog{width:calc(100vw - 20px);max-height:calc(100vh - 20px);border-radius:18px}.pos-css-lightbox-head,.pos-css-lightbox-body,.pos-css-lightbox-foot{padding:12px}.pos-css-lightbox-foot{display:grid;grid-template-columns:1fr}.pos-css-barcode-large{padding:12px}.pos-css-barcode-large .barcode-svg-with-text{height:250px!important}}
@media print{.barcode-label .barcode-svg-with-text{height:24mm!important}.label-size-58 .barcode-label .barcode-svg-with-text{height:22mm!important}.label-size-80 .barcode-label .barcode-svg-with-text{height:25mm!important}}


/* POS label barcode scan-ready: angka di bawah dan batang lebih besar agar mudah discan kamera POS */
.barcode-label-scan-ready{align-items:stretch}.barcode-label-scan-ready .barcode-svg-with-text{height:118px!important;max-width:100%!important}.barcode-label-scan-ready .barcode-svg-with-text .barcode-bars rect,.barcode-label-scan-ready .barcode-svg-with-text rect{shape-rendering:crispEdges}.barcode-label-scan-ready em{letter-spacing:.4px}@media print{.barcode-label-scan-ready{padding:1.2mm 1.4mm!important;gap:1mm!important;min-height:34mm!important}.label-size-58 .barcode-label-scan-ready{width:55mm!important}.label-size-58 .barcode-label-scan-ready strong{font-size:9pt!important;line-height:1.05!important}.label-size-58 .barcode-label-scan-ready b{font-size:11pt!important;line-height:1.05!important}.label-size-58 .barcode-label-scan-ready .barcode-svg-with-text{height:28mm!important;width:100%!important}.label-size-58 .barcode-label-scan-ready em{display:none!important}.label-size-80 .barcode-label-scan-ready .barcode-svg-with-text{height:30mm!important}}
.barcode-camera-box{max-width:520px}.barcode-camera-stage{min-height:330px}.barcode-camera-stage video{object-fit:cover}.barcode-camera-status[data-tone="success"]{font-weight:800}


/* Purchase invoice payment tabs */
.purchase-payment-tabs{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:12px 0 14px;padding-bottom:10px;border-bottom:1px solid var(--line)}
.purchase-payment-tabs a{display:inline-flex;align-items:center;gap:8px;padding:9px 11px;border:1px solid var(--line);border-radius:999px;background:#fff;color:#344054;font-size:12px;font-weight:850;box-shadow:0 4px 12px rgba(15,23,42,.035)}
.purchase-payment-tabs a.active{background:#eef4ff;color:var(--primary);border-color:#bfd7ff}
.purchase-payment-tabs a b{min-width:22px;height:22px;border-radius:999px;background:#f2f4f7;color:#344054;display:grid;place-items:center;font-size:10px;font-weight:900;padding:0 7px}
.purchase-payment-tabs a.active b{background:#2563eb;color:#fff}
@media(max-width:760px){.purchase-payment-tabs a{flex:1;justify-content:center}.purchase-payment-tabs{align-items:stretch}}

/* Stock movement print/table cleanup */
.stock-movement-table table{min-width:1120px;table-layout:fixed}
.stock-movement-table th:nth-child(1),.stock-movement-table td:nth-child(1){width:120px}
.stock-movement-table th:nth-child(2),.stock-movement-table td:nth-child(2){width:150px}
.stock-movement-table th:nth-child(3),.stock-movement-table td:nth-child(3){width:230px}
.stock-movement-table th:nth-child(4),.stock-movement-table td:nth-child(4){width:150px}
.stock-movement-table th:nth-child(5),.stock-movement-table td:nth-child(5){width:155px}
.stock-movement-table th:nth-child(6),.stock-movement-table td:nth-child(6),
.stock-movement-table th:nth-child(7),.stock-movement-table td:nth-child(7),
.stock-movement-table th:nth-child(8),.stock-movement-table td:nth-child(8){width:105px}
.stock-movement-table td,.stock-movement-table th{white-space:normal;overflow-wrap:anywhere;word-break:break-word;vertical-align:top}
.stock-movement-table .source-badge{white-space:normal;line-height:1.25}
@media print{
  .stock-movement-table{overflow:visible!important;border-radius:0!important;box-shadow:none!important}
  .stock-movement-table table{min-width:0!important;width:100%!important;table-layout:fixed!important}
  .stock-movement-table th,.stock-movement-table td{font-size:8.5pt!important;line-height:1.25!important;padding:5px 6px!important;white-space:normal!important;overflow-wrap:anywhere!important;word-break:break-word!important;color:#111827!important}
  .stock-movement-table th:nth-child(1),.stock-movement-table td:nth-child(1){width:12%!important}
  .stock-movement-table th:nth-child(2),.stock-movement-table td:nth-child(2){width:15%!important}
  .stock-movement-table th:nth-child(3),.stock-movement-table td:nth-child(3){width:22%!important}
  .stock-movement-table th:nth-child(4),.stock-movement-table td:nth-child(4){width:13%!important}
  .stock-movement-table th:nth-child(5),.stock-movement-table td:nth-child(5){width:14%!important}
  .stock-movement-table th:nth-child(6),.stock-movement-table td:nth-child(6){width:8%!important}
  .stock-movement-table th:nth-child(7),.stock-movement-table td:nth-child(7){width:8%!important}
  .stock-movement-table th:nth-child(8),.stock-movement-table td:nth-child(8){width:8%!important}
}

/* Shared print signature block */
.settings-tabs{display:flex;gap:8px;border:1px solid #dbe3ee;background:#f8fafc;border-radius:14px;padding:6px;margin-bottom:4px}
.settings-tab{border:1px solid transparent;background:transparent;color:#344054;border-radius:10px;padding:10px 12px;font-size:12px;font-weight:800;display:inline-flex;align-items:center;gap:8px;cursor:pointer}
.settings-tab.active{background:#fff;border-color:#c7d7fe;color:#1d4ed8;box-shadow:0 6px 14px rgba(16,24,40,.06)}
.settings-tab-panel{display:none}
.settings-tab-panel.is-active{display:contents}
.signature-apply-card{border:1px solid #dbe3ee;border-radius:14px;background:#f8fafc;padding:12px}
.signature-apply-card>strong{display:block;font-size:12px;margin-bottom:9px}
.signature-apply-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.signature-apply-grid .checkline{margin:0;border:1px solid #e4e7ec;border-radius:11px;background:#fff;padding:10px}
.print-signature-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-top:28px;align-items:start}
.print-signature-grid.is-three{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.print-signature-box{text-align:center;font-size:12px;color:#111827}
.print-signature-box>div{line-height:1.45}
.print-signature-space{height:68px}
.print-signature-box strong{display:block;font-size:12px;font-weight:800}
.print-sign-date{margin-bottom:8px;color:#344054}
@media(max-width:700px){.settings-tabs{display:grid;grid-template-columns:1fr}.signature-apply-grid{grid-template-columns:1fr}.print-signature-grid,.print-signature-grid.is-three{grid-template-columns:1fr;gap:18px}.print-signature-space{height:48px}}
@media print{.print-signature-grid{break-inside:avoid;page-break-inside:avoid;margin-top:22px}.print-signature-space{height:62px}}
.master-card-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:12px}

/* Patch Jurnal Umum: layout rapi + nominal panjang */
.journal-entry-form{display:grid;grid-template-columns:minmax(190px,260px) minmax(260px,1fr);gap:14px;align-items:start;padding:14px 16px!important;background:#fff!important;border-color:#dbe3ee!important}
.journal-entry-form>.field{padding:10px 12px!important;border-radius:14px!important;background:#fbfcff!important}
.journal-entry-form>.field input,.journal-entry-form>.field textarea,.journal-entry-form>.field select{background:#fff!important;border-radius:10px!important;min-height:40px!important}
.journal-entry-form>.field textarea{min-height:76px;resize:vertical}
.journal-entry-form .span-2{grid-column:1/-1}
.journal-lines-card{border:1px solid #dbe3ee;border-radius:18px;background:#fff;padding:12px 12px 14px;box-shadow:0 8px 22px rgba(16,24,40,.035)}
.journal-item-toolbar{margin-bottom:10px;padding:2px 0 8px;border-bottom:1px solid #edf1f6}
.journal-item-toolbar>div{display:grid;gap:2px}.journal-item-toolbar strong{font-size:13px}.journal-item-toolbar span{font-size:11px;color:#667085}
.journal-line-table{margin-top:0;border-radius:14px;overflow:auto;background:#fff}
.journal-line-table table{min-width:1260px;table-layout:fixed}
.journal-line-table th,.journal-line-table td{vertical-align:middle;padding:10px 12px}
.journal-line-table th:nth-child(1),.journal-line-table td:nth-child(1){width:270px}
.journal-line-table th:nth-child(2),.journal-line-table td:nth-child(2){width:260px}
.journal-line-table th:nth-child(3),.journal-line-table td:nth-child(3){width:190px}
.journal-line-table th:nth-child(4),.journal-line-table td:nth-child(4){width:170px}
.journal-line-table th:nth-child(5),.journal-line-table td:nth-child(5),.journal-line-table th:nth-child(6),.journal-line-table td:nth-child(6){width:170px}
.journal-line-table th:nth-child(7),.journal-line-table td:nth-child(7){width:96px}
.journal-line-table td:first-child select,.journal-line-table td:nth-child(2) input{min-width:0!important;width:100%}
.journal-line-table .journal-money-input{width:100%;min-width:145px;text-align:right;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:.01em;padding-right:12px!important;color:#101828}
.journal-line-table .journal-money-input:focus{background:#fff!important;border-color:#2563eb!important;box-shadow:0 0 0 3px #dbeafe!important}
.journal-totalbar{justify-content:flex-end!important;gap:16px!important;margin-top:10px!important;padding:11px 14px!important;background:#f8fafc!important;border-radius:14px!important}
.journal-totalbar span{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.journal-totalbar strong{font-size:13px;font-weight:900}
.journal-entry-form .form-actions{grid-column:1/-1;margin-top:0;padding-top:14px;display:flex;justify-content:flex-end;gap:8px;background:#fff}
@media(max-width:900px){.journal-entry-form{grid-template-columns:1fr}.journal-lines-card{padding:10px}.journal-totalbar{justify-content:flex-start!important}.journal-entry-form .form-actions{justify-content:stretch}.journal-entry-form .form-actions .btn{flex:1}}
@media(max-width:600px){.journal-entry-form{padding:12px!important}.journal-item-toolbar{display:grid;gap:8px}.journal-item-toolbar .btn{width:100%;justify-content:center}.journal-totalbar{display:grid!important;grid-template-columns:1fr;gap:7px!important}}
