*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:root{--font-sans: "DM Sans", system-ui, sans-serif;--font-mono: "JetBrains Mono", monospace;--ink-900: #0f1117;--ink-800: #1a1d27;--ink-700: #272b38;--ink-600: #3a3f50;--ink-500: #5a6072;--ink-400: #7e8494;--ink-300: #a3a8b8;--ink-200: #cdd1dc;--ink-100: #e8eaf0;--ink-50: #f4f5f8;--brand-600: #0d9373;--brand-500: #10b997;--brand-400: #34d3a8;--brand-100: #d1fae9;--brand-50: #ecfdf5;--amber-500: #f59e0b;--amber-100: #fef3c7;--red-600: #dc2626;--red-500: #ef4444;--red-100: #fee2e2;--red-50: #fef2f2;--surface: #ffffff;--surface-raised: #ffffff;--surface-overlay: rgba(15, 17, 23, .5);--page-bg: var(--ink-50);--sidebar-bg: var(--ink-900);--sidebar-text: var(--ink-300);--sidebar-hover: var(--ink-800);--sidebar-active-bg: rgba(16, 185, 151, .12);--sidebar-active-text: var(--brand-400);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--shadow-sm: 0 1px 2px rgba(0,0,0,.05);--shadow-md: 0 4px 12px rgba(0,0,0,.08);--shadow-lg: 0 12px 32px rgba(0,0,0,.12);--transition: .18s ease}html{font-size:15px;-webkit-font-smoothing:antialiased}body{font-family:var(--font-sans);color:var(--ink-800);background:var(--page-bg);line-height:1.6}.app-layout{display:flex;min-height:100vh}.sidebar{width:240px;background:var(--sidebar-bg);display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;z-index:40;transition:transform var(--transition)}.sidebar-brand{padding:24px 20px 20px;border-bottom:1px solid var(--ink-700)}.sidebar-brand h1{font-size:1.15rem;font-weight:700;color:#fff;letter-spacing:-.02em}.sidebar-brand span{display:block;font-size:.75rem;color:var(--ink-400);margin-top:2px;font-weight:400}.sidebar-nav{flex:1;padding:12px 10px;display:flex;flex-direction:column;gap:2px}.sidebar-link{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--radius-sm);color:var(--sidebar-text);text-decoration:none;font-size:.9rem;font-weight:500;transition:all var(--transition)}.sidebar-link:hover{background:var(--sidebar-hover);color:#fff}.sidebar-link.active{background:var(--sidebar-active-bg);color:var(--sidebar-active-text)}.sidebar-link svg{width:18px;height:18px;flex-shrink:0;opacity:.7}.sidebar-link.active svg{opacity:1}.sidebar-footer{padding:16px;border-top:1px solid var(--ink-700)}.sidebar-logout{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;border-radius:var(--radius-sm);background:transparent;border:none;color:var(--ink-400);font-size:.85rem;font-family:var(--font-sans);cursor:pointer;transition:all var(--transition)}.sidebar-logout:hover{background:var(--red-600);color:#fff}.main-content{flex:1;margin-left:240px;min-height:100vh}.page-header{background:var(--surface);border-bottom:1px solid var(--ink-100);padding:20px 32px}.page-header h2{font-size:1.35rem;font-weight:700;color:var(--ink-900);letter-spacing:-.02em}.page-header p{color:var(--ink-400);font-size:.85rem;margin-top:2px}.page-body{padding:28px 32px}.metrics-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;margin-bottom:24px}.metric-card{background:var(--surface);border:1px solid var(--ink-100);border-radius:var(--radius-md);padding:20px;transition:box-shadow var(--transition)}.metric-card:hover{box-shadow:var(--shadow-md)}.metric-card .label{font-size:.78rem;color:var(--ink-400);text-transform:uppercase;letter-spacing:.06em;font-weight:600}.metric-card .value{font-size:2rem;font-weight:700;color:var(--ink-900);margin-top:6px;letter-spacing:-.03em;font-family:var(--font-mono)}.metric-card.warn .value{color:var(--amber-500)}.metric-card.danger .value{color:var(--red-500)}.table-wrapper{background:var(--surface);border:1px solid var(--ink-100);border-radius:var(--radius-md);overflow:hidden}.table-toolbar{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--ink-100)}.table-toolbar h3{font-size:.95rem;font-weight:600}table{width:100%;border-collapse:collapse}thead th{text-align:left;padding:10px 16px;font-size:.75rem;font-weight:600;color:var(--ink-400);text-transform:uppercase;letter-spacing:.06em;background:var(--ink-50);border-bottom:1px solid var(--ink-100)}tbody td{padding:12px 16px;font-size:.88rem;border-bottom:1px solid var(--ink-50);color:var(--ink-700)}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background:var(--brand-50)}tbody tr.row-danger td{background:var(--red-50)}.sku-cell{font-family:var(--font-mono);font-size:.82rem;color:var(--ink-500)}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:var(--radius-sm);font-family:var(--font-sans);font-size:.85rem;font-weight:600;border:none;cursor:pointer;transition:all var(--transition);white-space:nowrap}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--brand-500);color:#fff}.btn-primary:hover:not(:disabled){background:var(--brand-600)}.btn-secondary{background:var(--ink-50);color:var(--ink-700);border:1px solid var(--ink-200)}.btn-secondary:hover:not(:disabled){background:var(--ink-100)}.btn-danger{background:var(--red-50);color:var(--red-600);border:1px solid var(--red-100)}.btn-danger:hover:not(:disabled){background:var(--red-100)}.btn-success{background:var(--brand-50);color:var(--brand-600);border:1px solid var(--brand-100)}.btn-success:hover:not(:disabled){background:var(--brand-100)}.btn-sm{padding:5px 10px;font-size:.78rem}.btn-icon{padding:6px;line-height:0}.form-group{margin-bottom:16px}.form-group label{display:block;font-size:.82rem;font-weight:600;color:var(--ink-600);margin-bottom:6px}.form-input{width:100%;padding:9px 12px;border:1px solid var(--ink-200);border-radius:var(--radius-sm);font-family:var(--font-sans);font-size:.9rem;color:var(--ink-800);background:#fff;transition:border-color var(--transition)}.form-input:focus{outline:none;border-color:var(--brand-500);box-shadow:0 0 0 3px #10b9971f}.form-input::placeholder{color:var(--ink-300)}select.form-input{cursor:pointer}.inline-input{padding:5px 8px;width:100px;text-align:right;border:1px solid var(--ink-200);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:.85rem;color:var(--ink-800);background:#fff;transition:border-color var(--transition)}.inline-input:focus{outline:none;border-color:var(--brand-500);box-shadow:0 0 0 3px #10b9971f}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--surface-overlay);display:flex;align-items:center;justify-content:center;z-index:100;animation:fadeIn .15s ease}.modal{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:100%;max-width:480px;max-height:90vh;overflow-y:auto;animation:slideUp .2s ease}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid var(--ink-100)}.modal-header h3{font-size:1.05rem;font-weight:700}.modal-close{width:28px;height:28px;border-radius:50%;border:none;background:var(--ink-50);color:var(--ink-500);font-size:1.1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition)}.modal-close:hover{background:var(--ink-100);color:var(--ink-800)}.modal-body{padding:22px}.modal-footer{display:flex;gap:10px;justify-content:flex-end;padding:16px 22px;border-top:1px solid var(--ink-100)}.badge{display:inline-block;padding:3px 10px;border-radius:20px;font-size:.73rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.badge-pending{background:var(--amber-100);color:#92400e}.badge-success{background:var(--brand-100);color:#065f46}.badge-danger{background:var(--red-100);color:var(--red-600)}.badge-draft{background:var(--ink-100);color:var(--ink-600)}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--ink-900);position:relative;overflow:hidden}.login-page:before{content:"";position:absolute;width:600px;height:600px;border-radius:50%;background:radial-gradient(circle,rgba(16,185,151,.15),transparent 70%);top:-200px;right:-100px}.login-card{width:100%;max-width:400px;background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:40px 36px;position:relative;z-index:1}.login-card h1{font-size:1.5rem;font-weight:700;color:var(--ink-900);letter-spacing:-.02em;margin-bottom:4px}.login-card .subtitle{color:var(--ink-400);font-size:.88rem;margin-bottom:28px}.login-card .form-group{margin-bottom:18px}.login-card .btn-primary{width:100%;padding:11px 16px;font-size:.95rem;margin-top:4px}.alert{padding:10px 14px;border-radius:var(--radius-sm);font-size:.85rem;margin-bottom:16px}.alert-error{background:var(--red-50);color:var(--red-600);border:1px solid var(--red-100)}.alert-success{background:var(--brand-50);color:var(--brand-600);border:1px solid var(--brand-100)}.spinner-container{display:flex;align-items:center;justify-content:center;padding:48px;color:var(--ink-400);font-size:.9rem;gap:10px}.spinner{width:20px;height:20px;border:2.5px solid var(--ink-100);border-top-color:var(--brand-500);border-radius:50%;animation:spin .7s linear infinite}.detail-panel{background:var(--surface);border:1px solid var(--ink-100);border-radius:var(--radius-md);margin-top:20px}.detail-header{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--ink-100)}.detail-header h3{font-size:.95rem;font-weight:600}.detail-meta{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;padding:16px 18px;border-bottom:1px solid var(--ink-50)}.detail-meta dt{font-size:.73rem;color:var(--ink-400);text-transform:uppercase;letter-spacing:.05em;font-weight:600}.detail-meta dd{font-size:.95rem;font-weight:500;color:var(--ink-800);margin-top:2px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width: 768px){.sidebar{transform:translate(-100%)}.main-content{margin-left:0}.page-body{padding:20px 16px}.page-header{padding:16px}}.text-right{text-align:right}.text-center{text-align:center}.text-mono{font-family:var(--font-mono)}.mt-4{margin-top:16px}.mb-4{margin-bottom:16px}.gap-2{gap:8px}.flex{display:flex}.items-center{align-items:center}.justify-between{justify-content:space-between}
