:root{--brand: #0f1a7a;--ring: rgba(15, 26, 122, .25);--fg: #111827;--muted: #6b7280;--line: #e5e7eb;--sb-w: 240px;--sb-w-collapsed: 74px;--sidebar: #0b105f;--bg: #f6f7fb}*{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial;background:#f3f4f6;color:var(--fg)}.min-w-120{min-width:120px}.min-w-160{min-width:160px}.min-w-200{min-width:200px}.w-64{width:64px}.w-110{width:110px}.w-140{width:140px}.w-160{width:160px}.mt-12{margin-top:12px}.mt-26{margin-top:26px}.mt-section{margin:20px 0}.nowrap{white-space:nowrap}.text-right{text-align:right}.bar-between{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.hide-sm{display:table-cell}.wrap{min-height:100vh;display:grid;place-items:center;position:relative;padding:16px}.bg{position:fixed;inset:0;z-index:-2}.bg img{width:100%;height:100%;object-fit:cover;opacity:.45;filter:saturate(.9)}.bg .overlay{position:absolute;inset:0;background:linear-gradient(135deg,#fffc,#ffffff40)}.card{width:min(92vw,440px);background:#fff;border:1px solid #0001;border-radius:20px;box-shadow:0 16px 40px #0000001a;padding:24px 22px}.card-head{text-align:center;margin-bottom:14px}.card-head .logo{height:38px;margin-bottom:8px}.stat{background:#fff;border:1px solid var(--line);border-radius:18px;padding:14px 16px;box-shadow:0 8px 24px #0000000d}.stat-title{font-size:14px;color:#374151;font-weight:700;margin-bottom:8px}.stat-value{font-size:28px;font-weight:800;letter-spacing:.2px}.stats{display:grid;gap:16px}.stats-3{grid-template-columns:repeat(3,minmax(0,1fr))}h1{margin:.2rem 0;font-size:22px}.sub{margin:0;color:var(--muted);font-size:13px}.alert{padding:10px 12px;border-radius:12px;margin:10px 0;font-size:14px}.alert.error{background:#fef2f2;border:1px solid #fecaca;color:#991b1b}.alert.ok{background:#ecfdf5;border:1px solid #a7f3d0;color:#065f46}.field{margin:12px 0}label{display:block;font-size:13px;color:#374151;margin:0 0 6px}.input-wrap{position:relative}.input-wrap .icon,.input-wrap .icon-btn{position:absolute;right:12px;top:50%;transform:translateY(-50%);width:20px;height:20px;display:grid;place-items:center;color:#6b7280}.input-wrap .icon{opacity:.55}.input-wrap .icon-btn{background:0;border:0;cursor:pointer;font-size:16px}input[type=text],input[type=password]{width:100%;height:48px;padding:0 44px 0 14px;border:1px solid #d1d5db;border-radius:14px;font-size:15px;background:#fff;color:#111827;outline:0;transition:.15s}input:focus{border-color:var(--brand);box-shadow:0 0 0 6px var(--ring)}.row{display:flex;justify-content:space-between;align-items:center;margin:6px 0 12px}.remember{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:#4b5563}.link{font-size:13px;color:var(--brand);text-decoration:none}.link:hover{text-decoration:underline}.btn{width:100%;border:0;border-radius:14px;background:var(--brand);color:#fff;font-weight:700;padding:12px 14px;font-size:16px;cursor:pointer;box-shadow:0 8px 20px #0f1a7a59;transition:filter .15s,transform .02s;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.btn:hover{filter:brightness(.97)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn.sm{padding:6px 12px;font-size:14px;background:#f3f4f6;color:#111827;border:1px solid var(--line);box-shadow:none}.btn.sm:hover{background:#0b105f;color:#f3f4f6}.btn.sec{background:#fff;color:var(--brand);border:1px solid var(--line);box-shadow:none}.btn.gray{background:#f3f4f6;color:#111827;border:1px solid var(--line)}.btn.gray:hover{background:#0b105f;color:#f3f4f6}.btn.del{background:#f3f4f6;color:#111827;border:1px solid var(--line);box-shadow:none}.btn.del:hover{background:#991b1b;color:#f3f4f6}body.app{background:var(--bg)}.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sb-w);background:var(--sidebar);color:#fff;display:flex;flex-direction:column;border-right:1px solid #0002;transition:width .18s ease;z-index:10}.sidebar[data-state=collapsed]{width:var(--sb-w-collapsed)}.content{margin-left:var(--sb-w);padding:24px;transition:margin-left .18s ease}.sidebar[data-state=collapsed]~.content{margin-left:var(--sb-w-collapsed)}.sb-top{position:sticky;top:0;z-index:11;padding:10px;background:var(--sidebar)}.sb-header{padding:12px}.brand{font-weight:700;letter-spacing:.3px;white-space:nowrap}.sidebar[data-state=collapsed] .brand{display:none}.sidebar .icon-btn{background:0;border:0;color:#fff;cursor:pointer;padding:8px;border-radius:10px}.sidebar .icon-btn:hover{background:#ffffff14}.ico{width:20px;height:20px;display:block}.sb-nav{padding:8px;display:flex;flex-direction:column;gap:4px}.sb-link{display:flex;align-items:center;gap:12px;padding:10px 12px;color:#cdd2ff;text-decoration:none;border-radius:12px;font-weight:500}.sb-link:hover{background:#ffffff14;color:#fff}.sb-link.active{background:#fff;color:var(--sidebar);font-weight:800}.sb-link.danger{background:#ffffff14;color:#ffd5db}.sb-link.danger:hover{background:#ffd5db;color:#0b105f;font-weight:700}.sb-footer{margin-top:auto;padding:8px}.sidebar[data-state=collapsed] .sb-link span{display:none}.sidebar[data-state=collapsed] .sb-link{justify-content:center}.page{max-width:1200px;margin:0 auto}.page-bar{display:flex;justify-content:space-between;align-items:center;margin:6px 0 16px;gap:12px}.page-title{font-size:26px;margin:0}.actions{display:flex;gap:10px;flex-wrap:wrap}.form{display:grid;gap:12px}.row-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.input,.select,.textarea{width:100%;border:1px solid #d1d5db;border-radius:12px;padding:10px 12px;font-size:15px;background:#fff}.textarea{min-height:110px;resize:vertical}.page-bar form{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.table-wrap{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:auto}.table-wrap table td{white-space:nowrap;vertical-align:middle;line-height:1.4}table{width:100%;border-collapse:separate;border-spacing:0}th,td{padding:12px 14px;text-align:left;border-bottom:2px solid var(--line);border-right:1px solid var(--line);vertical-align:middle}th{font-weight:700;color:#374151;background:#fafafa;position:sticky;top:0;z-index:1}tr:hover td{background:#fafcff}.w-actions{width:160px;min-width:160px}td.actions-cell{white-space:nowrap;vertical-align:middle;text-align:left}td.actions-cell .btn{width:auto;margin-right:8px}td.actions-cell .btn:last-child{margin-right:0}.actions-fixed .btn.sm{width:140px}.badge{display:inline-block;padding:4px 8px;border-radius:999px;font-size:12px;font-weight:700;border:1px solid var(--line);background:#f9fafb}.badge.green{color:#065f46;background:#ecfdf5;border-color:#a7f3d0}.badge.blue{color:#1e40af;background:#eff6ff;border-color:#bfdbfe}.badge.gray{color:#111827;background:#f3f4f6}.thumb{width:48px;height:48px;object-fit:cover;border-radius:8px;border:1px solid var(--line)}.thumb-sm{max-height:80px;display:block}td[data-field=sisa_po]{background:#f9fafb;font-weight:700}td[data-field=image] img.thumb{width:100px;height:auto}td[data-field=image] button{display:block;margin-top:10px}th.actions,td.actions{width:110px}td.desc{white-space:pre-wrap;max-width:320px}td.date,th.date{white-space:nowrap}td.num,th.num{text-align:right}.modal-backdrop{position:fixed;inset:0;background:#00000059;display:none;align-items:center;justify-content:center;z-index:1000;padding:14px}.modal{width:min(92vw,720px);background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 20px 60px #00000040}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-bottom:1px solid var(--line)}.modal-body{padding:14px 16px}.modal-foot{display:flex;justify-content:flex-end;gap:10px;padding:14px 16px;border-top:1px solid var(--line)}.modal-open .modal-backdrop{display:flex}.cell-edit{background:#fff7ed;outline:2px dashed #fdba74;border-radius:6px;padding:6px 8px}[contenteditable=true]:focus{outline:0;box-shadow:0 0 0 4px var(--ring);background:#fff}.pagination-container{display:flex;align-items:center;gap:12px}.page-btn{padding:8px 16px;border:1px solid #ddd;background:#f3f4f6;color:#0b105f;font-weight:700;border-radius:8px;cursor:pointer;text-decoration:none;transition:background-color .3s}.page-btn:hover{background:#0b105f;color:#fff}.page-btn.disabled{background:#ddd;color:#999;cursor:not-allowed}.page-btn:focus{outline:0;box-shadow:0 0 0 4px #1d3c6d33}.page-numbers{display:inline-flex;gap:8px;padding:0 8px}.page-number{padding:8px 16px;border-radius:8px;background:#f3f4f6;color:#0b105f;font-weight:700;text-decoration:none;transition:background-color .3s}.page-number:hover,.page-number.active{background:#0b105f;color:#fff}nav[role=navigation]{display:flex;gap:4px;margin-top:8px}nav[role=navigation] span,nav[role=navigation] a{display:inline-block;padding:6px 12px;border-radius:6px;border:1px solid #d1d5db;background:#fff;color:#374151;font-size:14px;text-decoration:none}nav[role=navigation] .bg-white{background:var(--brand);color:#fff;border-color:var(--brand)}nav[role=navigation] .cursor-default{opacity:.5}.sb-link:focus,.sidebar .icon-btn:focus,button:focus{outline:0;box-shadow:0 0 0 4px var(--ring)}@media print{.sidebar,.actions,.sb-top,.sb-footer,.no-print,.burger-btn{display:none!important}.content{margin:0!important;padding:0!important}.page-bar{margin:0 0 8px}.table-wrap{border:none}th,td{border-color:#ddd}}@media (max-width: 1024px){.content{padding:20px}.page-title{font-size:22px}}@media (max-width: 768px){.page-bar{flex-direction:column;align-items:stretch;gap:10px}.page-bar form,.actions{width:100%;flex-wrap:wrap;gap:10px}.page-bar .input,.page-bar .select,.page-bar .btn{flex:1;min-width:unset}.stats-3{grid-template-columns:1fr}}@media (max-width: 640px){.sidebar{position:fixed;inset:0 auto 0 0;width:82vw;max-width:300px;transform:translate(-105%);transition:transform .25s ease;z-index:40;box-shadow:4px 0 20px #00000040}.sidebar[data-open=true]{transform:translate(0)}.sidebar:after{content:"";position:fixed;inset:0 0 0 82vw;background:#00000059;pointer-events:none;opacity:0;transition:opacity .2s ease}.sidebar[data-open=true]:after{opacity:1;pointer-events:auto}.sidebar[data-state=collapsed]{width:82vw}.sidebar[data-state=collapsed] .sb-link span,.sidebar[data-state=collapsed] .brand{display:inline}.sidebar[data-state=collapsed] .sb-link{justify-content:flex-start}.sb-header,.sb-nav{text-align:left}.content,.sidebar~.content,.sidebar[data-state=collapsed]~.content{margin-left:0!important;padding:68px 0 20px;display:block}.content>.page{width:min(92vw,680px);margin:0 auto;padding-inline:14px}.burger-btn{display:inline-flex;align-items:center;justify-content:center;position:fixed;top:12px;left:12px;z-index:60;width:42px;height:42px;border-radius:10px;border:none;background:var(--brand);color:#fff;cursor:pointer}.burger-btn:focus{outline:0;box-shadow:0 0 0 4px var(--ring)}.page-bar{padding:0 14px}.page-bar form{display:grid;grid-template-columns:1fr;gap:10px;width:100%}.page-bar .input,.page-bar .select,.page-bar .btn{width:100%;height:42px;font-size:14px}.stats{gap:12px;padding:0 14px}.table-wrap{margin:0 14px}th,td{padding:10px 12px;font-size:14px}.thumb{width:40px;height:40px}.page-title{font-size:20px}.pagination-container{flex-wrap:wrap;gap:8px}.page-numbers{gap:6px}.w-actions{width:auto;min-width:0}td.actions-cell{white-space:normal;display:table-cell;vertical-align:middle;text-align:left}td.actions-cell .btn{display:block;width:100%;margin:0 0 8px}}@media (max-width: 480px){th,td{padding:8px 10px;font-size:13px}.thumb{width:36px;height:36px}.page-btn,.page-number{padding:6px 10px}.hide-sm{display:none}td.actions-cell .btn{margin-bottom:6px}}@media (max-width: 420px){.card{padding:20px 16px}}#bulkModalBackdrop{display:none;z-index:1100}#bulkModalBackdrop .bm-preview{display:block;max-width:120px;max-height:72px;width:auto;height:auto;object-fit:contain;border:1px solid var(--line);border-radius:8px;margin-bottom:6px}#bulkModalBackdrop[aria-hidden=false]{display:flex!important}.modal-open #bulkModalBackdrop{display:none!important}#bulkModalBackdrop .modal{max-height:calc(100vh - 28px);display:flex;flex-direction:column}#bulkModalBackdrop .modal-body{flex:1;min-height:0;overflow:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding-bottom:88px}body.noscroll{overflow:hidden}#bulkModalBackdrop .bulk-title{margin:0;font-size:18px;font-weight:800}#bulkModalBackdrop .icon-close{border:1px solid var(--line);background:#fff;color:#111827;width:34px;height:34px;border-radius:10px;cursor:pointer;font-size:16px}#bulkModalBackdrop .icon-close:hover{background:#0b105f;color:#fff}#bulkModalBackdrop .lines-table{width:100%;table-layout:fixed;border-collapse:separate;margin-top:12px;min-width:940px}#bulkModalBackdrop .lines-table th,#bulkModalBackdrop .lines-table td{padding:10px 12px;border-bottom:1px solid var(--line);background:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#bulkModalBackdrop .lines-table th{background:#fafafa;position:static!important}#bulkModalBackdrop .lines-table th:nth-child(1),#bulkModalBackdrop .lines-table td:nth-child(1){width:16%}#bulkModalBackdrop .lines-table th:nth-child(2),#bulkModalBackdrop .lines-table td:nth-child(2){width:28%}#bulkModalBackdrop .lines-table th:nth-child(3),#bulkModalBackdrop .lines-table td:nth-child(3){width:16%}#bulkModalBackdrop .lines-table th:nth-child(4),#bulkModalBackdrop .lines-table td:nth-child(4){width:18%}#bulkModalBackdrop .lines-table th:nth-child(5),#bulkModalBackdrop .lines-table td:nth-child(5){width:12%}#bulkModalBackdrop .lines-table th:nth-child(6),#bulkModalBackdrop .lines-table td:nth-child(6){width:10%;overflow:visible}#bulkModalBackdrop .lines-table input[type=text],#bulkModalBackdrop .lines-table input[type=number],#bulkModalBackdrop .lines-table input[type=date],#bulkModalBackdrop .lines-table input[type=file]{width:100%;height:44px;font-size:14px;color:#111827}#bulkModalBackdrop .lines-table .text-right{text-align:right}#bulkModalBackdrop .lines-table .btn.sm{min-width:80px;padding:6px 10px;font-size:13px}#bulkModalBackdrop .lines-table td.nowrap{white-space:nowrap}@media (max-width: 640px){#bulkModalBackdrop{align-items:stretch}#bulkModalBackdrop .modal{width:100vw;height:100vh;border:0;border-radius:0;display:flex;flex-direction:column}#bulkModalBackdrop .modal-head,#bulkModalBackdrop .modal-foot{position:sticky;background:#fff;z-index:2}#bulkModalBackdrop .modal-head{top:0}#bulkModalBackdrop .modal-foot{bottom:0}#bulkModalBackdrop .modal-body{flex:1;overflow-x:auto;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}#bulkModalBackdrop .lines-table{min-width:940px}}@media (max-width: 1024px){#bulkModalBackdrop .modal{width:min(96vw,860px)}}.cell-multi{vertical-align:top}.multi-wrap{position:relative;min-width:120px}.multi{min-height:42px;padding:8px 36px 8px 10px;border:1px solid var(--line);border-radius:10px;background:#fff;white-space:pre-wrap;word-break:break-word}.multi:focus{outline:0;box-shadow:0 0 0 4px var(--ring);background:#fff}.multi-add{position:absolute;right:6px;top:6px;width:26px;height:26px;border-radius:8px;border:1px solid var(--line);background:#f3f4f6;cursor:pointer}.multi-add:hover{background:#0b105f;color:#fff}.input-sm{height:36px;padding:6px 10px;font-size:14px}.cell-multi .multi-wrap,.cell-multi .multi-list{display:flex;flex-direction:column;gap:8px}.cell-multi .multi-input{width:100%}.cell-multi .multi-add{width:auto}.stok-tooltip{position:relative;cursor:pointer}.stok-tooltip:after{content:attr(data-stok) " pcs";position:absolute;left:50%;top:100%;transform:translate(-50%);visibility:hidden;opacity:0;background:#333;color:#fff;padding:5px;border-radius:5px;font-size:12px;z-index:1000;transition:opacity .3s}.stok-tooltip:hover:after{visibility:visible;opacity:1}.alert.warning{background:#fcd5d5;color:#9e2a2f;padding:10px;border-radius:5px;margin-top:10px}.pagination-container{display:flex;align-items:center;gap:12px;overflow-x:auto;white-space:nowrap}.page-numbers.scrollable{display:inline-flex;overflow-x:auto;-webkit-overflow-scrolling:touch;white-space:nowrap;gap:8px;padding:0 4px;scrollbar-width:thin;max-width:100%}.page-number{padding:8px 16px;border-radius:8px;background:#f3f4f6;color:#0b105f;font-weight:700;text-decoration:none;transition:background-color .3s;flex-shrink:0}.page-number.active{background:#0b105f;color:#fff}.dots{display:inline-block;padding:8px 6px;color:#9ca3af;flex-shrink:0}@media (min-width: 1024px){.table-wrap--viewport{overflow-x:auto;overflow-y:auto;max-height:90vh;border-radius:8px}}@media (min-width: 360px){.table-wrap--viewport{overflow-x:auto;overflow-y:auto;max-height:80vh;border-radius:8px}}@media (max-width: 480px){.page-number{padding:6px 10px}.pagination-container{gap:8px}.page-numbers.scrollable{gap:6px}}@media (max-width: 900px){.page-bar{align-items:stretch}.page-bar form{display:grid;grid-template-columns:1fr;gap:10px;width:100%}.page-bar form .input,.page-bar form .select,.page-bar form .btn{width:100%;min-width:0;height:42px;font-size:14px}}@media (max-width: 900px) and (min-width: 769px){.page-bar{flex-direction:column;align-items:stretch;gap:10px}.page-bar .actions{width:100%;order:3;display:block}.page-bar .actions .btn{width:100%;height:42px;font-size:14px}.page-bar .page-title{order:1}.page-bar form{order:2;display:grid;grid-template-columns:1fr;gap:10px;width:100%}.page-bar form .input,.page-bar form .select,.page-bar form .btn{width:100%;min-width:0;height:42px;font-size:14px}}@media (max-width: 640px){.pagination-container{display:flex;align-items:center;gap:8px;flex-wrap:nowrap;overflow:hidden;min-width:0}.pagination-container .page-btn{flex:0 0 auto;padding:6px 10px;white-space:nowrap}.pagination-container .page-numbers{flex:1 1 auto;min-width:0}.pagination-container .page-numbers.scrollable{display:inline-flex;overflow-x:auto;-webkit-overflow-scrolling:touch;white-space:nowrap;gap:6px;padding:0 2px;scrollbar-width:thin}.pagination-container .page-number,.pagination-container .dots{flex-shrink:0}}@media (max-width: 480px){.pagination-container{gap:6px}.pagination-container .page-btn{padding:5px 8px;font-size:13px}.pagination-container .page-number{padding:6px 10px;font-size:13px}}td.cell-multi{position:relative}td.cell-multi .multi-wrap{padding-bottom:24px}td.cell-multi .subsum{position:absolute;bottom:4px;left:50%;transform:translate(-50%);font-size:12px;color:#000;background:#ffffffd9;padding:2px 6px;border-radius:6px;text-align:center;pointer-events:none;box-shadow:0 0 0 1px #0000000d}
