@import url("https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=Outfit:wght@500;600;700;800&display=swap");:root{--font-primary:"Plus Jakarta Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;--font-display:"Outfit","Plus Jakarta Sans",sans-serif;--primary:#0f5132;--primary-light:#10b981;--primary-hover:#059669;--primary-soft:#ecfdf5;--primary-border:#a7f3d0;--accent:#f59e0b;--accent-light:#fef3c7;--accent-dark:#b45309;--danger:#dc2626;--danger-soft:#fef2f2;--danger-border:#fecaca;--info:#2563eb;--info-soft:#eff6ff;--bg-main:#f4f7f4;--bg-card:#fff;--bg-subtle:#f8fafc;--bg-sidebar:#062417;--bg-sidebar-hover:#0d3b27;--text-main:#0f172a;--text-muted:#64748b;--text-subtle:#94a3b8;--text-inverse:#fff;--border:#e2e8f0;--border-strong:#cbd5e1;--shadow-sm:0 1px 2px 0 rgba(0,0,0,.05);--shadow-md:0 4px 6px -1px rgba(0,0,0,.08),0 2px 4px -1px rgba(0,0,0,.04);--shadow-lg:0 10px 15px -3px rgba(0,0,0,.08),0 4px 6px -2px rgba(0,0,0,.04);--shadow-xl:0 20px 25px -5px rgba(0,0,0,.15);--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-full:9999px;--sidebar-width:264px;--topbar-height:64px}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{font-family:var(--font-primary);background-color:var(--bg-main);color:var(--text-main);line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden}a{text-decoration:none}a,button{color:inherit}button{font-family:inherit;cursor:pointer;border:none;outline:none;background:transparent;transition:all .2s ease}button:disabled{cursor:not-allowed;opacity:.55}input,select,textarea{font-family:inherit;font-size:.95rem;color:var(--text-main);outline:none}img{max-width:100%}:focus-visible{outline:2px solid var(--primary-light);outline-offset:2px}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#f1f5f9}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#94a3b8}.app-container{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-width);background-color:var(--bg-sidebar);color:var(--text-inverse);display:flex;flex-direction:column;flex-shrink:0;border-right:1px solid hsla(0,0%,100%,.1);position:-webkit-sticky;position:sticky;top:0;height:100vh;z-index:40}.sidebar-brand{padding:1.5rem 1.25rem;border-bottom:1px solid hsla(0,0%,100%,.1);gap:.75rem}.sidebar-brand,.sidebar-logo{display:flex;align-items:center}.sidebar-logo{width:42px;height:42px;border-radius:12px;background:linear-gradient(135deg,#10b981,#059669);justify-content:center;font-size:1.5rem;box-shadow:0 4px 12px rgba(16,185,129,.4);flex-shrink:0}.sidebar-nav{padding:1rem .85rem;display:flex;flex-direction:column;gap:.2rem;flex:1 1;overflow-y:auto}.nav-section-label{font-size:.65rem;font-weight:800;letter-spacing:.1em;color:#4b7a63;text-transform:uppercase;padding:1rem 1rem .4rem}.nav-link{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.7rem .9rem;border-radius:10px;color:#cbd5e1;font-size:.9rem;font-weight:600;border:1px solid transparent;transition:background .18s ease,color .18s ease}.nav-link:hover{background:var(--bg-sidebar-hover);color:#fff}.nav-link.active{background:rgba(16,185,129,.16);border-color:rgba(52,211,153,.3);color:#fff}.nav-link-main{display:flex;align-items:center;gap:.8rem;min-width:0}.nav-icon{font-size:1.1rem;width:1.35rem;text-align:center;flex-shrink:0}.nav-pill{font-size:.65rem;background:#10b981;color:#062417;padding:.12rem .45rem;font-weight:800}.nav-count,.nav-pill{border-radius:var(--radius-full);flex-shrink:0}.nav-count{font-size:.7rem;background:hsla(0,0%,100%,.12);color:#e2e8f0;padding:.1rem .45rem;font-weight:700}.sidebar-footer{padding:1rem;margin:.75rem;background:hsla(0,0%,100%,.05);border-radius:12px;border:1px solid hsla(0,0%,100%,.1)}.main-content{flex:1 1;display:flex;flex-direction:column;min-width:0}.topbar{background:#fff;border-bottom:1px solid var(--border);padding:.75rem 1.5rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;position:-webkit-sticky;position:sticky;top:0;z-index:30;min-height:var(--topbar-height)}.page-body{padding:1.75rem;flex:1 1;min-width:0}.menu-toggle{display:none;width:40px;height:40px;border-radius:var(--radius-md);border:1px solid var(--border);background:#fff;align-items:center;justify-content:center;font-size:1.2rem;flex-shrink:0}.sidebar-backdrop{display:none}.page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap;margin-bottom:1.5rem}.page-title{display:flex;align-items:center;gap:.5rem;font-size:1.5rem;font-weight:800;letter-spacing:-.02em}.page-subtitle{color:var(--text-muted);font-size:.88rem;margin-top:.2rem;max-width:70ch}.page-actions{display:flex;gap:.6rem;flex-wrap:wrap}.badge{display:inline-flex;align-items:center;gap:.3rem;padding:.25rem .6rem;border-radius:var(--radius-full);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;white-space:nowrap;border:1px solid transparent}.badge-success{background:#ecfdf5;color:#065f46;border-color:#a7f3d0}.badge-warning{background:#fffbeb;color:#92400e;border-color:#fde68a}.badge-info{background:#eff6ff;color:#1e40af;border-color:#bfdbfe}.badge-purple{background:#eef2ff;color:#3730a3;border-color:#c7d2fe}.badge-danger{background:#fef2f2;color:#991b1b;border-color:#fecaca}.badge-neutral{background:#f1f5f9;color:#475569;border-color:#e2e8f0}button.badge{cursor:pointer}button.badge:hover{filter:brightness(.96)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;padding:.6rem 1.15rem;border-radius:var(--radius-md);font-size:.88rem;font-weight:600;white-space:nowrap;transition:all .18s cubic-bezier(.16,1,.3,1)}.btn-primary{background:linear-gradient(135deg,#10b981,#059669);color:#fff;box-shadow:0 2px 4px rgba(16,185,129,.3)}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#059669,#047857);transform:translateY(-1px);box-shadow:0 4px 10px rgba(16,185,129,.4)}.btn-secondary{background:#fff;color:var(--text-main);border:1px solid var(--border)}.btn-secondary:hover:not(:disabled){background:var(--bg-subtle);border-color:var(--border-strong)}.btn-danger{background:#fff;color:var(--danger);border:1px solid var(--danger-border)}.btn-danger:hover:not(:disabled){background:var(--danger-soft)}.btn-solid-danger{background:var(--danger);color:#fff}.btn-solid-danger:hover:not(:disabled){background:#b91c1c}.btn-sm{padding:.4rem .75rem;font-size:.78rem}.btn-block{width:100%}.card{background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border);box-shadow:var(--shadow-sm);padding:1.35rem}.card-title{font-size:1.02rem;font-weight:700;letter-spacing:-.01em}.card-subtitle{font-size:.78rem;color:var(--text-muted)}.grid{display:grid;grid-gap:1.15rem;gap:1.15rem}.grid-kpi{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.grid-cards{grid-template-columns:repeat(auto-fill,minmax(290px,1fr))}.split-2{grid-template-columns:1fr 1fr;grid-gap:1rem}.split-2,.split-3{display:grid;gap:1rem}.split-3{grid-template-columns:repeat(3,1fr);grid-gap:1rem}.dashboard-split{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);grid-gap:1.25rem;gap:1.25rem;align-items:start}.stack{display:flex;flex-direction:column;gap:1.25rem}.table-container{background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border);overflow:hidden;box-shadow:var(--shadow-sm)}.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}table{width:100%;border-collapse:collapse;text-align:left}thead th{background:var(--bg-subtle);padding:.8rem 1.15rem;font-size:.72rem;font-weight:800;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}tbody td,thead th{border-bottom:1px solid var(--border)}tbody td{padding:.9rem 1.15rem;font-size:.88rem;vertical-align:middle}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background:#f8faf8}.cell-actions{display:flex;gap:.4rem;justify-content:flex-end;flex-wrap:nowrap}.empty-state{text-align:center;padding:3rem 1.5rem;color:var(--text-muted)}.empty-state-emoji{font-size:2.5rem;display:block;margin-bottom:.5rem}.form-group{margin-bottom:1.1rem}.form-label{display:block;font-size:.8rem;font-weight:700;color:var(--text-main);margin-bottom:.35rem}.form-hint{font-size:.72rem;color:var(--text-muted);margin-top:.3rem}.form-control{width:100%;padding:.6rem .85rem;border-radius:var(--radius-md);border:1px solid var(--border);background:#fff;font-size:.9rem;transition:border-color .18s ease,box-shadow .18s ease}.form-control:focus{border-color:var(--primary-light);box-shadow:0 0 0 3px rgba(16,185,129,.15)}.form-control:disabled{background:var(--bg-subtle);color:var(--text-muted)}select.form-control{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%2364748B' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center;padding-right:2rem}.checkbox-row{display:flex;align-items:center;gap:.55rem;padding:.55rem .75rem;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-subtle);cursor:pointer;font-size:.85rem;font-weight:600}.checkbox-row input{width:17px;height:17px;accent-color:var(--primary-light);cursor:pointer;flex-shrink:0}.field-error{background:var(--danger-soft);border:1px solid var(--danger-border);color:#991b1b;font-size:.82rem;font-weight:600;padding:.6rem .8rem;border-radius:var(--radius-md);margin-bottom:1rem}.toolbar{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center;margin-bottom:1.15rem}.toolbar .form-control{width:auto;min-width:170px;flex:1 1 190px;max-width:340px}.filter-tabs{display:flex;gap:.45rem;overflow-x:auto;padding-bottom:.6rem;margin-bottom:1.25rem;border-bottom:1px solid var(--border);scrollbar-width:thin}.filter-tab{padding:.45rem .9rem;border-radius:8px;font-size:.8rem;font-weight:700;background:#fff;color:#475569;border:1px solid var(--border);white-space:nowrap;flex-shrink:0}.filter-tab:hover{border-color:var(--border-strong)}.filter-tab.active{background:var(--primary);color:#fff;border-color:var(--primary)}.modal-overlay{position:fixed;inset:0;background:rgba(15,23,42,.6);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:60;padding:1rem;overscroll-behavior:contain}.modal-content{background:#fff;border-radius:var(--radius-lg);max-width:540px;width:100%;max-height:calc(100vh - 2rem);display:flex;flex-direction:column;box-shadow:var(--shadow-xl);border:1px solid var(--border)}.modal-wide{max-width:720px}.modal-header{padding:1.1rem 1.35rem;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-shrink:0}.modal-body{padding:1.35rem;overflow-y:auto;flex:1 1}.modal-footer{padding:.9rem 1.35rem;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:.65rem;background:var(--bg-subtle);flex-shrink:0;flex-wrap:wrap}.modal-close{font-size:1.4rem;line-height:1;color:var(--text-muted);width:32px;height:32px;border-radius:var(--radius-md);flex-shrink:0}.modal-close:hover{background:var(--bg-subtle);color:var(--text-main)}.toast-stack{position:fixed;bottom:1.25rem;right:1.25rem;z-index:80;display:flex;flex-direction:column;gap:.55rem;max-width:min(370px,calc(100vw - 2rem))}.toast{display:flex;align-items:flex-start;gap:.6rem;padding:.8rem 1rem;border-radius:var(--radius-md);box-shadow:var(--shadow-lg);font-size:.85rem;font-weight:600;background:#fff;border:1px solid var(--border);animation:toast-in .22s ease-out}.toast-success{border-color:var(--primary-border);background:var(--primary-soft);color:#065f46}.toast-error{border-color:var(--danger-border);background:var(--danger-soft);color:#991b1b}.toast-info{border-color:#bfdbfe;background:var(--info-soft);color:#1e40af}@keyframes toast-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.skeleton{background:linear-gradient(90deg,#edf2f7 25%,#f7fafc 50%,#edf2f7 75%);background-size:200% 100%;animation:shimmer 1.3s infinite;border-radius:var(--radius-md)}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media (max-width:1100px){.dashboard-split{grid-template-columns:minmax(0,1fr)}}@media (max-width:900px){:root{--sidebar-width:260px}.sidebar{position:fixed;top:0;left:0;height:100dvh;transform:translateX(-100%);transition:transform .25s cubic-bezier(.16,1,.3,1);box-shadow:var(--shadow-xl)}.sidebar.open{transform:translateX(0)}.sidebar-backdrop{display:block;position:fixed;inset:0;background:rgba(15,23,42,.5);z-index:35}.menu-toggle{display:inline-flex}.topbar{padding:.7rem 1rem}.page-body{padding:1.15rem 1rem}.split-3{grid-template-columns:1fr 1fr}}@media (max-width:720px){.page-title{font-size:1.25rem}.page-header{margin-bottom:1.15rem}.page-actions,.page-actions .btn{width:100%}.split-2,.split-3{grid-template-columns:1fr}.toolbar .form-control{max-width:none;flex:1 1 100%}.responsive-table thead{display:none}.responsive-table,.responsive-table tbody,.responsive-table td,.responsive-table tr{display:block;width:100%}.responsive-table tr{border-bottom:8px solid var(--bg-main);padding:.35rem 0}.responsive-table tr:last-child{border-bottom:none}.responsive-table td{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.55rem 1rem;border-bottom:none;text-align:right}.responsive-table td:before{content:attr(data-label);font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);text-align:left;flex-shrink:0}.responsive-table td[data-label=""]{display:block;text-align:left}.responsive-table td[data-label=""]:before{content:none}.responsive-table td>*{text-align:left}.cell-actions{justify-content:flex-end;flex-wrap:wrap}.modal-overlay{padding:0;align-items:flex-end}.modal-content{max-width:none;max-height:92dvh;border-radius:var(--radius-lg) var(--radius-lg) 0 0}.modal-footer .btn{flex:1 1}.toast-stack{left:.75rem;right:.75rem;bottom:.75rem;max-width:none}}.storage-warning{background:#fef2f2;border-bottom:1px solid var(--danger-border);color:#991b1b;font-size:.82rem;line-height:1.5;padding:.7rem 1.75rem}@media (max-width:900px){.storage-warning{padding:.7rem 1rem}}.breadcrumb{display:flex;align-items:center;gap:.4rem;font-size:.78rem;color:var(--text-muted);margin-bottom:.35rem}.breadcrumb a{color:var(--primary-light);font-weight:600}.breadcrumb a:hover{text-decoration:underline}.form-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;grid-gap:1.25rem;gap:1.25rem;align-items:start}.section-heading{margin-bottom:1rem}.section-heading-row{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}.disabled-link{pointer-events:none;opacity:.5}.uploader{border:1.5px dashed var(--border-strong);border-radius:var(--radius-lg);background:var(--bg-subtle);padding:1.75rem 1rem;text-align:center;cursor:pointer;color:var(--text-muted);transition:border-color .18s ease,background .18s ease}.uploader.dragging,.uploader:hover{border-color:var(--primary-light);background:var(--primary-soft);color:var(--primary)}.uploader.busy{cursor:progress}.uploader-title{font-size:.88rem;font-weight:700;color:var(--text-main);margin-top:.5rem}.uploader-hint{font-size:.75rem;margin-top:.2rem}.uploader-spinner{width:26px;height:26px;margin:0 auto;border:2.5px solid var(--border-strong);border-top-color:var(--primary-light);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.thumb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));grid-gap:.65rem;gap:.65rem;margin-top:.9rem}.thumb{position:relative;margin:0;border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--border);background:var(--bg-subtle);aspect-ratio:1}.thumb img{width:100%;height:100%;object-fit:cover;display:block}.thumb-primary{position:absolute;top:6px;left:6px;background:var(--primary);color:#fff;font-size:.6rem;font-weight:800;letter-spacing:.04em;padding:.1rem .4rem;border-radius:999px}.thumb-actions{position:absolute;inset:auto 0 0 0;display:flex;justify-content:center;gap:.2rem;padding:.3rem;background:linear-gradient(transparent,rgba(0,0,0,.6));opacity:0;transition:opacity .18s ease}.thumb:focus-within .thumb-actions,.thumb:hover .thumb-actions{opacity:1}.thumb-actions button{width:24px;height:24px;border-radius:6px;background:hsla(0,0%,100%,.92);color:#0f172a;font-size:.72rem;font-weight:700;display:flex;align-items:center;justify-content:center}.thumb-actions button:disabled{opacity:.35}.thumb-actions .thumb-remove{background:var(--danger);color:#fff}.variant-head,.variant-row{display:grid;grid-template-columns:minmax(120px,2.2fr) minmax(80px,1fr) minmax(80px,1fr) 62px 34px;grid-gap:.45rem;gap:.45rem;align-items:center}.variant-head{font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);padding:0 .15rem .4rem}.variant-row{margin-bottom:.45rem}.variant-row .form-control{padding:.45rem .6rem;font-size:.85rem}.variant-remove{color:var(--danger);font-size:.95rem}.variant-remove:disabled{opacity:.3}.preview-card{border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;background:#fff}.preview-image{position:relative;aspect-ratio:4/3;background:var(--bg-subtle);display:flex;align-items:center;justify-content:center}.preview-image img{width:100%;height:100%;object-fit:cover}.preview-empty{font-size:.75rem;color:var(--text-subtle)}.preview-badge{position:absolute;top:8px;left:8px;background:var(--primary);color:#fff;font-size:.58rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;padding:.12rem .45rem;border-radius:999px}.preview-body{padding:.8rem}.preview-origin{font-size:.68rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.preview-name{font-size:.92rem;font-weight:700;margin-top:.15rem}.preview-price{font-size:1.05rem;font-weight:800;color:var(--primary);margin-top:.35rem}.preview-price span{font-size:.72rem;font-weight:600;color:var(--text-muted)}@media (max-width:1000px){.form-layout{grid-template-columns:minmax(0,1fr)}.form-aside{order:-1}}@media (max-width:720px){.variant-head{display:none}.variant-row{grid-template-columns:1fr 1fr;gap:.4rem;padding:.7rem;border:1px solid var(--border);border-radius:var(--radius-md);margin-bottom:.6rem}.variant-row>:first-child{grid-column:span 2}}.topbar-actions{display:flex;align-items:center;gap:.6rem;flex-shrink:1;min-width:0;flex-wrap:wrap;justify-content:flex-end}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}.table-responsive>table,table.table{width:100%;border-collapse:collapse}@media (max-width:720px){.topbar{flex-wrap:wrap;row-gap:.5rem;padding-block:.6rem}.topbar>div{min-width:0}.admin-chip{display:none!important}.table-responsive>table{min-width:640px}}