:root,html.dark{--bg: #0b0e13;--sf: #10141b;--sf-2: #161b24;--ln: #212a37;--tx: #edf1f7;--tx-muted: #94a0b3;--tx-disabled: #4a5468;--ac: #ffb020;--ac-hover: #e09918;--ac-fg: #1a1200;--okx: #22c55e;--okx-bg: #14532d26;--lox: #eab308;--lox-bg: #71350626;--oux: #ef4444;--oux-bg: #7f1d1d26;--draf: #3b82f6;--draf-bg: #1e3a8a26;--shadow-sm: 0 1px 3px rgba(0,0,0,.4);--shadow-md: 0 4px 12px rgba(0,0,0,.5);--shadow-lg: 0 8px 24px rgba(0,0,0,.6);--r-btn: 12px;--r-card: 16px;--r-card-lg: 18px;--r-input: 8px;--r-badge: 20px;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--sp-10: 40px;--sp-12: 48px;--sidebar-width: 240px;--sidebar-collapsed: 64px;--bottom-nav-h: 64px;--header-h: 56px;--z-sidebar: 100;--z-header: 90;--z-modal: 200;--z-toast: 300;--z-tooltip: 400}html.light{--bg: #f4f5f7;--sf: #ffffff;--sf-2: #f0f1f5;--ln: #e2e5ed;--tx: #0f1117;--tx-muted: #6b7280;--tx-disabled: #9ca3af;--ac: #d97706;--ac-hover: #b45309;--ac-fg: #ffffff;--okx: #16a34a;--okx-bg: #f0fdf4;--lox: #ca8a04;--lox-bg: #fefce8;--oux: #dc2626;--oux-bg: #fef2f2;--draf: #2563eb;--draf-bg: #eff6ff;--shadow-sm: 0 1px 3px rgba(0,0,0,.08);--shadow-md: 0 4px 12px rgba(0,0,0,.12);--shadow-lg: 0 8px 24px rgba(0,0,0,.16)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-family:Inter,system-ui,-apple-system,sans-serif;font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--bg);color:var(--tx)}body{min-height:100dvh;background-color:var(--bg)}.font-display,h1,h2,h3{font-family:Space Grotesk,system-ui,sans-serif;font-weight:700;letter-spacing:-.02em}h4,h5,h6,p,label,button,input,select,textarea{font-family:Inter,system-ui,sans-serif}.font-mono,code,kbd,pre{font-family:JetBrains Mono,Courier New,monospace}.rupiah{font-family:Space Grotesk,system-ui,sans-serif;font-weight:700;font-variant-numeric:tabular-nums}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--ln);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--tx-muted)}:focus-visible{outline:2px solid var(--ac);outline-offset:2px;border-radius:4px}a{color:var(--ac);text-decoration:none}a:hover{text-decoration:underline}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 10px;border-radius:var(--r-badge);font-size:12px;font-weight:600;line-height:1.6}.badge:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0}.badge-ok{background:var(--okx-bg);color:var(--okx)}.badge-warn{background:var(--lox-bg);color:var(--lox)}.badge-danger{background:var(--oux-bg);color:var(--oux)}.badge-draft{background:var(--draf-bg);color:var(--draf)}.badge-muted{background:var(--ln);color:var(--tx-muted)}.stock-ok{color:var(--okx)}.stock-low{color:var(--lox)}.stock-empty{color:var(--oux)}.card{background:var(--sf);border:1px solid var(--ln);border-radius:var(--r-card);padding:var(--sp-4)}.input{width:100%;background:var(--bg);border:1px solid var(--ln);border-radius:var(--r-input);color:var(--tx);font-family:Inter,sans-serif;font-size:14px;padding:10px 12px;transition:border-color .15s,box-shadow .15s;outline:none}.input::-moz-placeholder{color:var(--tx-muted)}.input::placeholder{color:var(--tx-muted)}.input:focus{border-color:var(--ac);box-shadow:0 0 0 3px color-mix(in srgb,var(--ac) 20%,transparent)}.input:disabled{opacity:.5;cursor:not-allowed}.input.error{border-color:var(--oux)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 20px;border-radius:var(--r-btn);font-family:Inter,sans-serif;font-size:14px;font-weight:600;cursor:pointer;border:none;transition:background .15s,transform .1s,opacity .15s;min-height:44px;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none}.btn:active:not(:disabled){transform:scale(.98)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--ac);color:var(--ac-fg)}.btn-primary:hover:not(:disabled){background:var(--ac-hover)}.btn-secondary{background:var(--sf-2);color:var(--tx);border:1px solid var(--ln)}.btn-secondary:hover:not(:disabled){background:var(--ln)}.btn-danger{background:var(--oux-bg);color:var(--oux);border:1px solid var(--oux)}.btn-danger:hover:not(:disabled){background:var(--oux);color:#fff}.btn-ghost{background:transparent;color:var(--tx-muted)}.btn-ghost:hover:not(:disabled){background:var(--sf);color:var(--tx)}.btn-icon{padding:10px;min-width:44px}.layout-desktop{display:flex;height:100dvh;overflow:hidden}.sidebar{width:var(--sidebar-width);min-width:var(--sidebar-width);height:100%;background:var(--sf);border-right:1px solid var(--ln);display:flex;flex-direction:column;overflow-y:auto;transition:width .2s,min-width .2s;z-index:var(--z-sidebar)}.sidebar.collapsed{width:var(--sidebar-collapsed);min-width:var(--sidebar-collapsed)}.main-content{flex:1;overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column}.page-header{height:var(--header-h);background:var(--sf);border-bottom:1px solid var(--ln);display:flex;align-items:center;padding:0 var(--sp-6);gap:var(--sp-4);position:sticky;top:0;z-index:var(--z-header)}.page-body{flex:1;padding:var(--sp-6)}.layout-mobile{display:flex;flex-direction:column;min-height:100dvh}.mobile-header{height:var(--header-h);background:var(--sf);border-bottom:1px solid var(--ln);display:flex;align-items:center;padding:0 var(--sp-4);position:sticky;top:0;z-index:var(--z-header)}.mobile-content{flex:1;overflow-y:auto;padding-bottom:calc(var(--bottom-nav-h) + 8px)}.bottom-nav{position:fixed;bottom:0;left:0;right:0;height:var(--bottom-nav-h);background:var(--sf);border-top:1px solid var(--ln);display:flex;align-items:center;justify-content:space-around;z-index:var(--z-sidebar)}.table-wrapper{overflow-x:auto;border:1px solid var(--ln);border-radius:var(--r-card)}table{width:100%;border-collapse:collapse;font-size:14px}thead th{background:var(--sf-2);color:var(--tx-muted);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:10px 16px;text-align:left;position:sticky;top:0;border-bottom:1px solid var(--ln)}tbody tr{border-bottom:1px solid var(--ln);transition:background .1s}tbody tr:last-child{border-bottom:none}tbody tr:hover{background:var(--sf)}tbody td{padding:12px 16px;color:var(--tx);vertical-align:middle}.toast-container{position:fixed;bottom:calc(var(--bottom-nav-h, 0px) + 16px);left:50%;transform:translate(-50%);display:flex;flex-direction:column;gap:8px;z-index:var(--z-toast);pointer-events:none;width:calc(100% - 32px);max-width:400px}.toast{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:12px;background:var(--sf);border:1px solid var(--ln);box-shadow:var(--shadow-md);font-size:14px;font-weight:500;pointer-events:all;animation:toast-in .25s ease-out}.toast-ok{border-color:var(--okx)}.toast-error{border-color:var(--oux)}.toast-warn{border-color:var(--lox)}@keyframes toast-in{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;z-index:var(--z-modal);display:flex;align-items:center;justify-content:center;padding:16px}.dialog{background:var(--sf);border:1px solid var(--ln);border-radius:var(--r-card-lg);padding:var(--sp-6);max-width:480px;width:100%;box-shadow:var(--shadow-lg)}.skeleton{background:linear-gradient(90deg,var(--ln) 25%,var(--sf-2) 50%,var(--ln) 75%);background-size:200% 100%;animation:skeleton-loading 1.5s infinite;border-radius:6px}@keyframes skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;color:var(--tx-muted);text-align:center;gap:12px}.empty-state svg{opacity:.4}.empty-state h3{color:var(--tx);font-size:16px}.empty-state p{font-size:14px}
