:root{--bg: #0f172a;--surface: #1e293b;--surface-alt: #172033;--border: #334155;--text: #e2e8f0;--text-muted: #94a3b8;--accent: #f97316;--accent-soft: rgba(249, 115, 22, .15);--accent-dark: #ea580c;--success: #4ade80;--success-soft: rgba(74, 222, 128, .15);--warning: #fbbf24;--warning-soft: rgba(251, 191, 36, .15);--danger: #f87171;--danger-soft: rgba(248, 113, 113, .15);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .25);--shadow: 0 2px 8px rgba(0, 0, 0, .35);--radius: 12px;--radius-sm: 8px}html{color-scheme:dark}*{box-sizing:border-box}body{margin:0;background-color:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:14px}.app-shell{display:flex;min-height:100vh}.sidebar{width:240px;background:var(--surface);border-right:1px solid var(--border);padding:1.25rem .75rem;position:sticky;top:0;height:100vh;overflow-y:auto}.sidebar-brand{text-align:center;padding:.5rem 0 1.5rem;border-bottom:1px solid var(--border);margin-bottom:1rem}.sidebar-brand .logo{width:56px;height:56px;margin:0 auto .5rem;background:var(--accent-soft);border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:28px}.sidebar-brand h6{margin:0;font-weight:700;color:var(--text)}.sidebar-brand small{color:var(--text-muted);font-size:11px;text-transform:uppercase;letter-spacing:.05em}.sidebar-nav{list-style:none;padding:0;margin:0}.sidebar-nav a{display:flex;align-items:center;gap:.75rem;padding:.6rem .75rem;margin-bottom:.15rem;border-radius:var(--radius-sm);color:var(--text-muted);text-decoration:none;font-weight:500;transition:background .15s,color .15s}.sidebar-nav a:hover{background:var(--surface-alt);color:var(--text)}.sidebar-nav a.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.sidebar-nav .nav-icon{width:18px;text-align:center;font-size:14px}.sidebar-footer{position:absolute;bottom:1rem;left:.75rem;right:.75rem;padding:.75rem;background:var(--accent-soft);border-radius:var(--radius-sm);display:flex;align-items:center;gap:.6rem;font-size:12px}.sidebar-footer .avatar{width:32px;height:32px;border-radius:8px;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0}.sidebar-footer .name{font-weight:600;color:var(--text)}.sidebar-footer .role{color:var(--text-muted);font-size:11px}.main{flex:1;padding:1.75rem 2rem 3rem;max-width:100%}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.topbar .back-link{color:var(--text-muted);text-decoration:none;font-size:13px;display:inline-flex;align-items:center;gap:.4rem}.topbar .back-link:hover{color:var(--text)}.topbar .user-chip{display:inline-flex;align-items:center;gap:.6rem;font-size:13px}.topbar .user-chip .avatar{width:32px;height:32px;border-radius:50%;background:var(--accent-soft);color:var(--accent-dark);display:flex;align-items:center;justify-content:center;font-weight:600}.page-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.75rem}.page-header .header-icon{width:52px;height:52px;border-radius:var(--radius);background:var(--success-soft);color:var(--success);display:flex;align-items:center;justify-content:center;font-size:22px}.page-header h2{margin:0;font-weight:700;font-size:1.6rem}.page-header p{margin:.2rem 0 0;color:var(--text-muted);font-size:14px}.card-soft{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem 1.5rem;box-shadow:var(--shadow-sm);margin-bottom:1.25rem}.card-soft .section-title{display:flex;align-items:center;gap:.6rem;margin:0 0 1rem;font-weight:700;font-size:1rem}.card-soft .section-title .badge-icon{width:30px;height:30px;border-radius:8px;background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center;font-size:14px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.form-row.three{grid-template-columns:1fr 1fr 1fr}.form-field{margin-bottom:1rem}.form-field label{display:block;font-weight:600;font-size:13px;color:var(--text);margin-bottom:.35rem}.form-field label .req{color:var(--danger)}.form-field input,.form-field select,.form-field textarea{width:100%;padding:.6rem .85rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);font-size:14px;color:var(--text);transition:border-color .15s,box-shadow .15s}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.form-field .hint{display:block;font-size:12px;color:var(--text-muted);margin-top:.3rem}.form-field input.error{border-color:var(--danger)}.form-field .error-text{color:var(--danger);font-size:12px;margin-top:.3rem}.image-upload{border:2px dashed var(--border);border-radius:var(--radius);padding:1.5rem;text-align:center;background:var(--surface-alt)}.image-upload img{max-width:100%;max-height:220px;border-radius:var(--radius-sm);margin-bottom:.75rem}.image-upload .upload-btn{background:var(--surface);border:1px solid var(--border);padding:.45rem 1rem;border-radius:var(--radius-sm);font-size:13px;cursor:pointer;color:var(--text)}.image-upload .upload-btn:hover{border-color:var(--accent);color:var(--accent)}.image-upload .meta{color:var(--text-muted);font-size:12px;margin-top:.4rem}.tips-card{background:var(--accent-soft);border:1px solid rgba(249,115,22,.3);border-radius:var(--radius);padding:1rem 1.2rem}.tips-card h6{display:flex;align-items:center;gap:.5rem;margin:0 0 .6rem;font-weight:700;color:var(--accent);font-size:14px}.tips-card ul{margin:0;padding-left:0;list-style:none}.tips-card li{display:flex;gap:.4rem;font-size:13px;color:var(--text);margin-bottom:.35rem}.tips-card li:before{content:"✓";color:var(--success);font-weight:700}.btn-row{display:flex;justify-content:flex-end;gap:.6rem;margin-top:.5rem}.btn{padding:.6rem 1.4rem;border-radius:var(--radius-sm);border:1px solid transparent;font-weight:600;font-size:14px;cursor:pointer;transition:background .15s,opacity .15s}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-dark)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{background:var(--surface);color:var(--text);border-color:var(--border)}.btn-secondary:hover{background:var(--surface-alt)}.btn-success{background:var(--success);color:#fff}.btn-success:hover{filter:brightness(.95)}.badge-status{display:inline-block;padding:.25rem .6rem;border-radius:999px;font-size:11px;font-weight:600}.badge-status.in-stock{background:var(--success-soft);color:var(--success)}.badge-status.low-stock{background:var(--warning-soft);color:var(--warning)}.badge-status.out-of-stock{background:var(--danger-soft);color:var(--danger)}.data-table{width:100%;background:var(--surface);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm);border-collapse:separate;border-spacing:0}.data-table th{background:var(--surface-alt);font-weight:600;font-size:12px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;padding:.85rem 1rem;border-bottom:1px solid var(--border);text-align:left}.data-table td{padding:.85rem 1rem;border-bottom:1px solid var(--border);vertical-align:middle;color:var(--text)}.data-table tr:last-child td{border-bottom:none}.data-table tr:hover td{background:var(--surface-alt)}.alert-box{padding:.75rem 1rem;border-radius:var(--radius-sm);margin-bottom:1rem;font-size:13px}.alert-box.danger{background:var(--danger-soft);color:var(--danger);border:1px solid rgba(248,113,113,.3)}.alert-box.success{background:var(--success-soft);color:var(--success);border:1px solid rgba(74,222,128,.3)}.btn-danger{background:var(--danger);color:#1a0a0a;font-weight:700}.btn-danger:hover{filter:brightness(1.05)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .15s ease-out}.modal-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.75rem 1.75rem 1.25rem;width:min(420px,calc(100% - 2rem));box-shadow:0 20px 50px #00000080;text-align:center;animation:popIn .18s ease-out}.modal-icon{width:56px;height:56px;border-radius:50%;margin:0 auto 1rem;display:flex;align-items:center;justify-content:center;font-size:26px}.modal-icon.danger{background:var(--danger-soft);color:var(--danger)}.modal-icon.primary{background:var(--accent-soft);color:var(--accent)}.modal-title{margin:0 0 .4rem;font-size:1.15rem;font-weight:700;color:var(--text)}.modal-message{margin:0 0 1.5rem;color:var(--text-muted);font-size:14px;line-height:1.5}.modal-actions{display:flex;gap:.6rem;justify-content:center}.modal-actions .btn{min-width:110px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes popIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.mobile-header{display:none;align-items:center;gap:.6rem;padding:.4rem .75rem;background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:50;min-height:44px}.mobile-brand{display:flex;align-items:center;gap:.45rem;font-weight:600;font-size:14px;color:var(--text)}.mobile-brand .logo-sm{width:22px;height:22px;background:var(--accent-soft);border-radius:5px;display:inline-flex;align-items:center;justify-content:center;font-size:13px}.hamburger{background:transparent;border:0;width:30px;height:30px;padding:0;cursor:pointer;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:3px;border-radius:6px}.hamburger:hover{background:var(--surface-alt)}.hamburger span{display:block;width:16px;height:2px;background:var(--text);border-radius:2px}.sidebar-backdrop{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:90;animation:fadeIn .15s ease-out}@media (max-width: 900px){.mobile-header{display:flex}.sidebar{position:fixed;top:0;left:0;height:100vh;width:260px;z-index:100;transform:translate(-100%);transition:transform .2s ease-out;box-shadow:4px 0 24px #0006}.sidebar.open{transform:translate(0)}.sidebar-backdrop{display:block}.main{padding:1rem 1rem 3rem}.page-header{flex-direction:column;align-items:flex-start!important;gap:.75rem}.page-header h2{font-size:1.3rem}.form-row,.form-row.three{grid-template-columns:1fr!important}.card-soft{padding:1rem 1.1rem}.modal-card{padding:1.4rem 1.25rem 1rem}.btn-row{flex-wrap:wrap}.btn-row .btn{flex:1 1 auto}}@media (max-width: 480px){body{font-size:13px}.main{padding:.85rem .75rem 3rem}.page-header .header-icon{width:44px;height:44px;font-size:18px}.page-header h2{font-size:1.15rem}.topbar{margin-bottom:1rem}.data-table th,.data-table td{padding:.6rem;font-size:12px}.badge-status{font-size:10px;padding:.2rem .45rem}}.table-scroll{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-scroll .data-table{min-width:720px}.mobile-card-view{display:none}@media (max-width: 720px){.desktop-table-view{display:none!important}.mobile-card-view{display:flex;flex-direction:column;gap:.75rem}}.product-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem;box-shadow:var(--shadow-sm)}.product-card-head{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem}.product-card-head .thumb{width:44px;height:44px;border-radius:8px;background:var(--surface-alt);display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0;overflow:hidden}.product-card-head .thumb img{width:100%;height:100%;object-fit:cover}.product-card-head .name{font-weight:600;color:var(--text);line-height:1.2}.product-card-head .meta{font-size:12px;color:var(--text-muted);margin-top:2px}.product-card-head .badge-status{margin-left:auto;align-self:flex-start;flex-shrink:0}.product-card-stats{display:grid;grid-template-columns:1fr 1fr 1fr;gap:.5rem;padding:.75rem 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.product-card-stats .stat .label{font-size:10px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;display:block;margin-bottom:2px}.product-card-stats .stat .value{font-weight:700;font-size:14px}.product-card-actions{display:flex;gap:.5rem;margin-top:.75rem}.product-card-actions .btn{flex:1;padding:.55rem;font-size:13px}
