:root{--ink: #0E1A2B;--ink-2: #2B3A52;--ink-3: #5A6A82;--ink-4: #8FA0BD;--line: #DCE5F0;--line-2: #BFCEE0;--bg: #F4F8FD;--bg-2: #E6EFF8;--paper: #FFFFFF;--accent: #1F5BA8;--accent-2: #19C2C4;--accent-soft: #DCE9F7;--ok: #137B5A;--warn: #B07306;--crit: #B5232F;--info: #1F5BA8;--r-sm: 4px;--r-md: 6px;--r-lg: 10px;--sidebar-w: 240px;--font-sans: "Inter", system-ui, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, monospace}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%}body{font-family:var(--font-sans);color:var(--ink);background:var(--bg);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}.admin-app button,.admin-app input,.admin-app textarea,.admin-app select{font-family:inherit;font-size:inherit;color:inherit}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.admin-app .overline{font-family:var(--font-mono);font-size:10.5px;font-weight:500;text-transform:uppercase;letter-spacing:.16em;color:var(--ink-3)}.admin-app .overline.accent{color:var(--accent)}.admin-app{display:grid;grid-template-columns:var(--sidebar-w) 1fr;min-height:100vh}.login-page{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#1b86e2,#0e62b8);padding:24px;position:relative}.login-lang{position:absolute;top:18px;right:22px;border:1px solid rgba(255,255,255,.3);background:#ffffff14;color:#fff;padding:6px 14px;border-radius:100px;font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.12em;cursor:pointer;z-index:2}.login-lang:hover{background:#ffffff2e}.login-split{display:grid;grid-template-columns:1fr 1fr;width:100%;max-width:880px;min-height:500px;background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 30px 80px -20px #0a162873}.login-aside{position:relative;color:#fff;overflow:hidden}.login-aside-bg{position:absolute;inset:0;width:100%;height:100%;display:block}.login-aside-inner{position:relative;z-index:1;height:100%;padding:36px 36px 28px;display:flex;flex-direction:column;justify-content:space-between}.login-aside-logo{height:36px;width:auto;align-self:flex-start;background:#fff;padding:4px 10px;border-radius:6px}.login-aside-title{font-size:38px;font-weight:600;letter-spacing:-.02em;margin:auto 0 8px;line-height:1.1;color:#fff}.login-aside-sub{font-size:13px;color:#ffffffd9;letter-spacing:.06em;margin:0}.login-aside-foot{margin-top:14px;font-family:var(--font-mono);font-size:11px;color:#ffffffbf;letter-spacing:.14em;text-transform:uppercase}.login-form-wrap{padding:44px 44px 36px;display:flex;flex-direction:column}.login-greet{display:flex;flex-direction:column;gap:2px;font-size:18px;color:var(--ink);font-weight:500;margin-bottom:22px}.login-greet-accent{color:var(--accent);font-weight:600;font-size:22px}.login-title{font-size:16px;color:var(--ink-2);margin-bottom:24px}.login-title-accent{color:var(--accent);font-weight:600}.login-field{margin-bottom:22px}.login-field input{width:100%;border:0;border-bottom:1px solid var(--line-2);background:transparent;padding:10px 0;font-size:14px;outline:none;color:var(--ink);transition:border-color .15s}.login-field input:focus{border-bottom-color:var(--accent)}.login-field input::placeholder{color:var(--ink-3)}.login-row{display:flex;justify-content:space-between;align-items:center;margin:6px 0 20px}.login-check{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-2);cursor:pointer}.login-check input{accent-color:var(--accent)}.login-forgot{font-size:13px;color:var(--accent);text-decoration:none}.login-forgot:hover{text-decoration:underline}.login-submit{width:100%;border:0;background:linear-gradient(135deg,#1b86e2,#0e62b8);color:#fff;padding:14px;border-radius:4px;font-size:14px;font-weight:600;letter-spacing:.14em;cursor:pointer;box-shadow:0 12px 24px -12px #0b5fa880;transition:transform .12s,box-shadow .12s}.login-submit:hover{transform:translateY(-1px);box-shadow:0 16px 28px -10px #0b5fa88c}.login-err{color:var(--crit);font-size:13px;margin:0 0 12px}.login-demo{margin:18px 0 0;font-size:12px;color:var(--ink-3);text-align:center;font-family:var(--font-mono)}@media (max-width: 720px){.login-split{grid-template-columns:1fr;min-height:auto;max-width:460px}.login-aside{min-height:220px}.login-aside-inner{padding:24px 28px}.login-form-wrap{padding:32px 28px 28px}}.admin-app .sidebar{background:linear-gradient(180deg,#1b4576,#2563a8 60%,#1f5ba8);color:#fff;padding:24px 0;position:sticky;top:0;height:100vh;overflow-y:auto}.admin-app .sidebar .brand{display:flex;align-items:center;gap:12px;padding:0 22px 24px;border-bottom:1px solid rgba(255,255,255,.15)}.admin-app .sidebar .brand-logo{height:40px;width:auto;display:block;background:#fff;padding:4px 10px;border-radius:6px}.admin-app .sidebar .brand-mark{width:36px;height:36px;background:#fff;color:var(--accent);display:grid;place-items:center;font-family:var(--font-mono);font-weight:600;font-size:13px;border-radius:4px}.admin-app .sidebar .brand-name{font-weight:600;font-size:15px;letter-spacing:-.01em}.admin-app .sidebar .brand-sub{display:block;font-family:var(--font-mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.16em;color:#ffffff8c;margin-top:4px}.admin-app .sidebar-section{padding:18px 22px 6px;font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.16em;color:#ffffff8c}.admin-app .sidebar nav{display:flex;flex-direction:column}.admin-app .sidebar nav button{border:0;background:transparent;text-align:left;padding:11px 22px;color:#ffffffd9;font-size:13.5px;cursor:pointer;display:flex;align-items:center;gap:12px;transition:background .12s,color .12s;border-left:3px solid transparent}.admin-app .sidebar nav button:hover{background:#ffffff12;color:#fff}.admin-app .sidebar nav button.active{background:#ffffff1a;color:#fff;border-left-color:var(--accent-2)}.admin-app .sidebar nav button .ic{color:#ffffffb3;display:inline-flex}.admin-app .sidebar nav button.active .ic{color:var(--accent-2)}.admin-app .sidebar nav button .count{margin-left:auto;font-family:var(--font-mono);font-size:11px;background:#ffffff1a;padding:2px 8px;border-radius:100px;color:#ffffffbf}.admin-app .sidebar-footer{margin-top:auto;padding:24px 22px;font-size:11px;color:#ffffff80}.admin-app .sidebar .quick-link{display:block;font-family:var(--font-mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.12em;color:#ffffffa6;margin-top:8px;padding:6px 0}.admin-app .sidebar .quick-link:hover{color:#fff}.admin-app .main{background:var(--bg);min-height:100vh;display:flex;flex-direction:column}.admin-app .topbar{background:#fff;border-bottom:1px solid var(--line);padding:14px 32px;display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:5}.admin-app .topbar .crumbs{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.14em;color:var(--ink-3)}.admin-app .topbar .crumbs .sep{margin:0 8px;opacity:.5}.admin-app .topbar .crumbs .current{color:var(--ink)}.admin-app .topbar-right{display:flex;gap:10px;align-items:center}.admin-app .topbar-search{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:var(--r-md);padding:6px 12px;background:var(--bg-2);width:280px}.admin-app .topbar-search input{border:0;background:transparent;outline:none;flex:1;font-size:13px}.admin-app .topbar-search svg{color:var(--ink-3)}.admin-app .user-chip{display:flex;align-items:center;gap:10px;padding:5px 12px;border-radius:100px;background:var(--bg-2);font-size:13px}.admin-app .user-chip-menu{position:relative;cursor:pointer;transition:background .12s}.admin-app .user-chip-menu:hover{background:var(--bg-3)}.admin-app .user-menu{position:absolute;top:calc(100% + 6px);right:0;min-width:160px;background:#fff;border:1px solid var(--line);border-radius:var(--r-md);box-shadow:0 18px 32px -12px #0a16282e;padding:6px;opacity:0;visibility:hidden;transform:translateY(-4px);transition:opacity .12s,transform .12s,visibility .12s;z-index:60}.admin-app .user-chip-menu:hover .user-menu,.admin-app .user-chip-menu:focus-within .user-menu{opacity:1;visibility:visible;transform:translateY(0)}.admin-app .user-menu-item{display:flex;align-items:center;gap:10px;width:100%;border:0;background:transparent;padding:9px 12px;border-radius:4px;font-size:13px;color:var(--ink);cursor:pointer;text-align:left}.admin-app .user-menu-item:hover{background:var(--bg-2);color:var(--accent)}.admin-app .user-chip .avatar{width:28px;height:28px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;font-weight:600;font-size:12px}.admin-app .content{padding:28px 32px 64px;flex:1;width:100%}.admin-app .page-head{margin-bottom:24px;display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap}.admin-app .page-head h1{font-size:26px;font-weight:600;letter-spacing:-.02em;margin:6px 0}.admin-app .page-head p{color:var(--ink-3);margin:0;font-size:13.5px}.admin-app .page-head .actions{display:flex;gap:8px}.admin-app .btn-primary,.admin-app .btn-ghost,.admin-app .btn-danger{border:1px solid transparent;padding:9px 18px;border-radius:var(--r-md);font-size:13px;font-weight:500;cursor:pointer;display:inline-flex;align-items:center;gap:8px;transition:background .12s,border-color .12s,color .12s}.admin-app .btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}.admin-app .btn-primary:hover{background:#174a8e;border-color:#174a8e}.admin-app .btn-ghost{background:#fff;color:var(--ink);border-color:var(--line-2)}.admin-app .btn-ghost:hover{border-color:var(--ink)}.admin-app .btn-danger{background:#fff;color:var(--crit);border-color:var(--line-2)}.admin-app .btn-danger:hover{border-color:var(--crit);background:#b5232f0d}.admin-app .btn-sm{padding:6px 12px;font-size:12px}.admin-app .stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:28px}.admin-app .stat-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:18px 20px}.admin-app .stat-card .l{font-family:var(--font-mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-3);margin-bottom:8px}.admin-app .stat-card .v{font-size:28px;font-weight:600;letter-spacing:-.02em;line-height:1}.admin-app .stat-card .v.mono{font-family:var(--font-mono)}.admin-app .stat-card .d{margin-top:8px;font-size:12px;color:var(--ink-3)}.admin-app .stat-card .d .up{color:var(--ok)}.admin-app .stat-card .d .down{color:var(--crit)}.admin-app .card{background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:22px 24px;margin-bottom:18px}.admin-app .card-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;padding-bottom:14px;border-bottom:1px solid var(--line);gap:16px;flex-wrap:wrap}.admin-app .card-head h3{font-size:15px;font-weight:600;letter-spacing:-.005em;margin:0}.admin-app .card-head .sub{font-size:12.5px;color:var(--ink-3)}.admin-app .filter-bar{display:flex;gap:4px;background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:4px;margin-bottom:18px;overflow-x:auto;width:max-content;max-width:100%}.admin-app .filter-bar button{border:0;background:transparent;padding:8px 16px;border-radius:4px;font-size:12.5px;color:var(--ink-2);display:inline-flex;align-items:center;gap:8px;cursor:pointer;white-space:nowrap;transition:background .12s,color .12s}.admin-app .filter-bar button:hover{background:var(--bg-2);color:var(--ink)}.admin-app .filter-bar button.active{background:var(--ink);color:#fff}.admin-app .filter-bar button .count{font-family:var(--font-mono);font-size:10.5px;opacity:.7}.admin-app .table-wrap{background:#fff;border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden}.admin-app .tbl{width:100%;border-collapse:collapse}.admin-app .tbl thead th{background:var(--bg-2);text-align:left;padding:12px 16px;font-family:var(--font-mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-3);font-weight:500;border-bottom:1px solid var(--line)}.admin-app .tbl tbody td{padding:14px 16px;border-bottom:1px solid var(--line);vertical-align:middle;font-size:13.5px}.admin-app .tbl tbody tr:last-child td{border-bottom:0}.admin-app .tbl tbody tr:hover{background:var(--bg-2)}.admin-app .tbl .mono{font-family:var(--font-mono);font-size:12.5px}.admin-app .tbl .row-actions{display:table-cell;vertical-align:middle;text-align:right;white-space:nowrap}.admin-app .tbl .row-actions>*{margin-left:8px}.admin-app .tbl .row-actions>*:first-child{margin-left:0}.admin-app .tbl .row-link{background:transparent;border:0;padding:0;color:var(--accent);cursor:pointer;font-size:12.5px;font-weight:500}.admin-app .tbl .row-link:hover{text-decoration:underline}.admin-app .tbl .row-link.danger{color:var(--crit)}.admin-app .tbl .row-thumb{width:44px;height:44px;object-fit:cover;border-radius:4px;background:var(--bg-2);border:1px solid var(--line)}.admin-app .tbl .row-product{display:flex;align-items:center;gap:12px;max-width:320px}.admin-app .tbl .row-product-name{font-weight:500;color:var(--ink);line-height:1.35;font-size:13px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.admin-app .tbl .row-cat{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-3);margin-top:2px}.admin-app .pill{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;padding:3px 10px;border-radius:100px}.admin-app .pill .dot{width:6px;height:6px;border-radius:50%;background:currentColor}.admin-app .pill.ok{background:#137b5a1a;color:var(--ok)}.admin-app .pill.warn{background:#b073061f;color:var(--warn)}.admin-app .pill.crit{background:#b5232f1a;color:var(--crit)}.admin-app .pill.info{background:#1f5ba81a;color:var(--info)}.admin-app .pill.muted{background:var(--bg-2);color:var(--ink-3)}.admin-app .form-row{margin-bottom:16px}.admin-app .form-row.two{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:16px}.admin-app .form-row.three{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px;margin-bottom:16px}.admin-app .form-row.four{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:16px}.admin-app .form-row label{display:block;font-family:var(--font-mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-3);margin:0 0 6px}.admin-app .form-row input,.admin-app .form-row textarea,.admin-app .form-row select{width:100%;border:1px solid var(--line-2);background:#fff;padding:10px 12px;border-radius:var(--r-sm);font-size:13.5px;color:var(--ink);outline:none;transition:border-color .12s,box-shadow .12s}.admin-app .form-row input:focus,.admin-app .form-row textarea:focus,.admin-app .form-row select:focus{border-color:var(--accent);box-shadow:0 0 0 3px #1f5ba81f}.admin-app .form-row textarea{resize:vertical;min-height:90px}.admin-app .form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}.admin-app .detail-grid{display:grid;grid-template-columns:1fr 340px;gap:20px;align-items:start}.admin-app .detail-grid>.side{position:sticky;top:80px;display:flex;flex-direction:column;gap:16px}.admin-app .product-image-field{display:grid;grid-template-columns:132px 1fr;gap:18px;align-items:start}.admin-app .product-image-preview{width:132px;height:132px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--bg-2);overflow:hidden;display:grid;place-items:center;position:relative}.admin-app .product-image-preview img{width:100%;height:100%;object-fit:cover;display:block}.admin-app .product-image-preview.is-empty{background:repeating-linear-gradient(45deg,var(--bg-2) 0 12px,var(--bg-3) 12px 24px);border-style:dashed}.admin-app .product-image-preview .ph{font-family:var(--font-mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-3);padding:0 8px;text-align:center}.admin-app .product-image-controls{display:flex;flex-direction:column;gap:8px;align-items:flex-start}.admin-app .product-image-controls .btn-primary,.admin-app .product-image-controls .btn-danger{padding:8px 14px;font-size:12.5px}.admin-app .product-image-hint{font-size:12px;color:var(--ink-3);margin:4px 0 0;line-height:1.55}.admin-app .product-gallery-field{display:block}.admin-app .gallery-images{display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:12px;align-items:stretch}.admin-app .gallery-thumb{position:relative;aspect-ratio:1 / 1;border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;background:var(--bg-2)}.admin-app .gallery-thumb.is-primary{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.admin-app .gallery-thumb img,.admin-app .gallery-thumb video{width:100%;height:100%;object-fit:cover;display:block}.admin-app .gallery-badge{position:absolute;top:6px;left:6px;font-family:var(--font-mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.12em;padding:3px 7px;border-radius:3px;background:var(--accent);color:#fff}.admin-app .gallery-badge.video{background:var(--ink)}.admin-app .gallery-actions{position:absolute;top:6px;right:6px;display:flex;gap:4px;opacity:0;transition:opacity .12s}.admin-app .gallery-thumb:hover .gallery-actions{opacity:1}.admin-app .gallery-btn{width:26px;height:26px;border:0;background:#fffffff0;color:var(--ink);border-radius:4px;display:grid;place-items:center;cursor:pointer;backdrop-filter:blur(4px)}.admin-app .gallery-btn:hover{background:#fff}.admin-app .gallery-btn.danger:hover{color:var(--crit)}.admin-app .gallery-add,.admin-app .gallery-add-video{aspect-ratio:1 / 1;border:1.5px dashed var(--line-2);border-radius:var(--r-md);background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:var(--ink-3);cursor:pointer;font-size:12px;transition:border-color .12s,color .12s,background .12s;font-family:inherit}.admin-app .gallery-add:hover,.admin-app .gallery-add-video:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}@media (max-width: 700px){.admin-app .product-image-field{grid-template-columns:1fr}}.admin-app .modal-backdrop{position:fixed;inset:0;background:#0a16288c;backdrop-filter:blur(4px);z-index:100;display:grid;place-items:center;padding:24px;overflow-y:auto;animation:fade-in .18s ease-out}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.admin-app .modal{background:#fff;border-radius:var(--r-lg);max-width:720px;width:100%;max-height:92vh;overflow-y:auto;padding:28px 32px;position:relative;box-shadow:0 30px 80px -20px #0a162866;animation:pop .22s cubic-bezier(.16,1.16,.5,1)}@keyframes pop{0%{transform:translateY(10px) scale(.985);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}.admin-app .modal-close{position:absolute;top:14px;right:16px;width:32px;height:32px;border-radius:50%;border:0;background:transparent;color:var(--ink-2);font-size:22px;line-height:1;cursor:pointer}.admin-app .modal-close:hover{background:var(--bg-2);color:var(--ink)}.admin-app .modal h2{font-size:20px;font-weight:600;letter-spacing:-.02em;margin:0 0 6px}.admin-app .modal p.modal-sub{font-size:13.5px;color:var(--ink-3);margin:0 0 22px}.admin-app .empty{background:#fff;border:1px dashed var(--line-2);border-radius:var(--r-md);padding:56px 28px;text-align:center;color:var(--ink-3)}.admin-app .empty h3{color:var(--ink);font-weight:600;font-size:17px;margin:12px 0 6px}.admin-app .cm-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.admin-app .cm-block{background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:18px 20px}.admin-app .cm-block h4{font-size:13.5px;font-weight:600;margin:0 0 6px;display:flex;align-items:center;gap:10px}.admin-app .cm-block h4 .pill{font-size:10px;padding:2px 8px}.admin-app .cm-block .desc{font-size:12.5px;color:var(--ink-3);margin:0 0 12px}.admin-app .timeline{display:grid;grid-template-columns:repeat(4,1fr);padding:18px 20px;background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-md);margin-bottom:18px}.admin-app .timeline .tl-step{display:flex;flex-direction:column;align-items:center;gap:8px;position:relative;color:var(--ink-3)}.admin-app .timeline .tl-step:not(:last-child):after{content:"";position:absolute;top:5px;left:calc(50% + 8px);right:calc(-50% + 8px);height:1px;background:var(--line-2)}.admin-app .timeline .tl-step.on:not(:last-child):after{background:var(--accent)}.admin-app .timeline .tl-step .dot{width:11px;height:11px;border-radius:50%;background:#fff;border:2px solid var(--line-2);z-index:1}.admin-app .timeline .tl-step.on .dot{background:var(--accent);border-color:var(--accent);box-shadow:0 0 0 3px #1f5ba826}.admin-app .timeline .tl-step .lbl{font-family:var(--font-mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.08em}.admin-app .timeline .tl-step.on .lbl{color:var(--ink)}.admin-app .od-dl{margin:0;display:grid;grid-template-columns:1fr 1fr;gap:10px 18px}.admin-app .od-dl>div{min-width:0}.admin-app .od-dl>div.wide{grid-column:1 / -1}.admin-app .od-dl dt{font-family:var(--font-mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-3);margin-bottom:4px}.admin-app .od-dl dd{margin:0;font-size:13.5px;color:var(--ink);line-height:1.5}.admin-app .od-dl dd.mono{font-family:var(--font-mono);font-weight:500}.admin-app .summary-row{display:flex;justify-content:space-between;padding:6px 0;font-size:13.5px}.admin-app .summary-row.total{border-top:1px solid var(--line);margin-top:8px;padding-top:12px;font-family:var(--font-mono);font-size:20px;font-weight:500}.admin-app .toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);background:var(--ink);color:#fff;padding:12px 22px;border-radius:100px;box-shadow:0 16px 32px -12px #0a162873;font-size:13px;z-index:200;display:flex;align-items:center;gap:10px;animation:toast-in .25s cubic-bezier(.16,1.16,.5,1)}@keyframes toast-in{0%{transform:translate(-50%,8px);opacity:0}to{transform:translate(-50%);opacity:1}}.admin-app .toast svg{color:var(--accent-2)}@media (max-width: 1000px){.admin-app .app{grid-template-columns:1fr}.admin-app .sidebar{position:static;height:auto}.admin-app .stats{grid-template-columns:repeat(2,1fr)}.admin-app .detail-grid{grid-template-columns:1fr}.admin-app .detail-grid>.side{position:static}.admin-app .cm-grid,.admin-app .form-row.two,.admin-app .form-row.three,.admin-app .form-row.four{grid-template-columns:1fr}}@media (max-width: 768px){.admin-app .topbar{padding:12px 16px;flex-wrap:wrap;gap:10px}.admin-app .topbar-right{flex-wrap:wrap;gap:8px}.admin-app .topbar-search{width:100%;flex:1 0 100%;order:-1}.admin-app .crumbs{font-size:10px}.admin-app .content{padding:20px 16px 56px}.admin-app .page-head{flex-direction:column;align-items:flex-start;gap:12px}.admin-app .page-head h1{font-size:22px}.admin-app .stats{grid-template-columns:1fr;gap:10px}.admin-app .card{padding:18px 16px}.admin-app .card-head{flex-direction:column;align-items:flex-start;gap:8px}.admin-app .table-wrap{overflow-x:auto}.admin-app .tbl{min-width:640px}.admin-app .product-image-field{grid-template-columns:1fr;gap:14px}.admin-app .gallery-images{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:10px}.admin-app .filter-bar{width:100%;overflow-x:auto}.admin-app .timeline{grid-template-columns:1fr 1fr;gap:14px;padding:14px 16px}.admin-app .timeline .tl-step:not(:last-child):after{display:none}.admin-app .od-dl{grid-template-columns:1fr}.admin-app .sidebar{padding:16px 0}.admin-app .sidebar .brand{padding:0 16px 16px}.admin-app .sidebar nav button{padding:10px 16px;font-size:13px}.admin-app .sidebar-footer{padding:16px}}@media (max-width: 480px){.admin-app .stats{grid-template-columns:1fr}.admin-app .user-chip span:not(.avatar){display:none}.admin-app .user-chip{padding:5px}}.sparkline[data-v-4579b857],.barchart[data-v-cc625c8b]{display:block;width:100%;height:100%}.muted[data-v-ef694903]{color:var(--ink-3, #5A6A82)}.topseller-list[data-v-ef694903]{list-style:none;margin:0;padding:0;display:grid;gap:8px}.topseller-list li[data-v-ef694903]{display:grid;grid-template-columns:28px 1fr auto auto;gap:12px;align-items:center;padding:10px 12px;border:1px solid var(--line, #DCE5F0);border-radius:6px;background:#fff}.topseller-list .rank[data-v-ef694903]{font-family:var(--font-mono);font-size:11px;color:var(--ink-3, #5A6A82)}.topseller-list .name[data-v-ef694903]{font-size:13.5px;font-weight:500;color:var(--ink, #0E1A2B);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topseller-list .qty[data-v-ef694903]{color:var(--ink-3);font-size:12px}.topseller-list .rev[data-v-ef694903]{font-weight:600;font-size:13px}.filter-bar[data-v-2c2a9885]{display:grid;grid-template-columns:1fr 200px 140px 180px;gap:10px;margin-bottom:16px}.filter-bar input[data-v-2c2a9885],.filter-bar select[data-v-2c2a9885]{width:100%;padding:9px 12px;border:1px solid var(--line-2, #BFCEE0);border-radius:4px;background:#fff;font-size:13px;font-family:inherit}.prod-row[data-v-2c2a9885]{display:flex;gap:12px;align-items:center}.prod-row img[data-v-2c2a9885]{width:44px;height:44px;object-fit:cover;border-radius:4px;border:1px solid var(--line);background:var(--bg-2)}.prod-row-title[data-v-2c2a9885]{font-weight:500;font-size:13.5px}.cat-line[data-v-2c2a9885]{font-family:var(--font-mono);font-size:11px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:2px}.pagination[data-v-2c2a9885]{display:flex;gap:12px;justify-content:center;align-items:center;padding:18px 0 8px}.pagination button[data-v-2c2a9885]{padding:7px 14px;border:1px solid var(--line-2);border-radius:4px;background:#fff;font-size:12px}.pagination button[data-v-2c2a9885]:disabled{opacity:.4;cursor:not-allowed}.row-link.danger[data-v-2c2a9885]{color:var(--crit, #B5232F)}.edit-grid[data-v-95a89363]{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.field-grid[data-v-95a89363]{display:grid;grid-template-columns:1fr 1fr;gap:14px 16px}.field-grid .span-2[data-v-95a89363]{grid-column:span 2}.field label[data-v-95a89363]{display:block;font-size:11px;color:var(--ink-3, #5A6A82);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;margin-bottom:4px}.field input[data-v-95a89363],.field select[data-v-95a89363],.field textarea[data-v-95a89363]{width:100%;padding:9px 12px;border:1px solid var(--line-2, #BFCEE0);border-radius:4px;font-size:13px;font-family:inherit;background:#fff}.field textarea[data-v-95a89363]{resize:vertical;min-height:80px}.checkrow[data-v-95a89363]{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--ink, #0E1A2B)}.muted[data-v-95a89363]{color:var(--ink-3, #5A6A82)}.image-edit[data-v-95a89363]{display:grid;grid-template-columns:180px 1fr;gap:18px;align-items:start}.image-edit-preview[data-v-95a89363]{width:180px;height:180px;border:1px solid var(--line);border-radius:6px;overflow:hidden;background:var(--bg-2, #eef2f8);display:flex;align-items:center;justify-content:center}.image-edit-preview img[data-v-95a89363]{width:100%;height:100%;object-fit:cover}.image-edit-empty[data-v-95a89363]{color:var(--ink-3);font-size:12px}.image-edit-controls[data-v-95a89363]{display:grid;gap:10px}.upload-btn[data-v-95a89363]{display:inline-flex;align-items:center;gap:6px;padding:9px 14px;border:1px dashed var(--line-2);border-radius:4px;cursor:pointer;font-size:13px;background:var(--bg, #F4F8FD)}.upload-btn input[type=file][data-v-95a89363]{display:none}.taglist[data-v-95a89363]{display:flex;flex-wrap:wrap;gap:8px}.tag-chip[data-v-95a89363]{padding:5px 10px;border-radius:14px;background:var(--bg-2);font-size:12px}.tag-chip .tag-x[data-v-95a89363]{background:none;border:0;color:inherit;cursor:pointer;margin-left:6px;opacity:.6}.tag-add[data-v-95a89363]{display:flex;gap:8px;flex:1;min-width:200px}.tag-add input[data-v-95a89363]{flex:1;padding:7px 10px;border:1px solid var(--line-2);border-radius:4px;font-size:13px}.spec-add[data-v-95a89363]{display:grid;grid-template-columns:1fr 1fr auto;gap:8px;margin-top:12px}.spec-add input[data-v-95a89363]{padding:8px 12px;border:1px solid var(--line-2);border-radius:4px;font-size:13px}.tab-toggle[data-v-95a89363]{display:flex;gap:6px}.tab-toggle button[data-v-95a89363]{padding:5px 12px;border:1px solid var(--line);border-radius:14px;background:#fff;font-size:11.5px;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;cursor:pointer}.tab-toggle button.on[data-v-95a89363]{background:var(--ink);color:#fff;border-color:var(--ink)}.row-link.danger[data-v-95a89363]{color:var(--crit, #B5232F)}.filter-bar[data-v-30a87ba0]{display:grid;grid-template-columns:1fr 220px;gap:10px;margin-bottom:16px}.filter-bar input[data-v-30a87ba0],.filter-bar select[data-v-30a87ba0]{width:100%;padding:9px 12px;border:1px solid var(--line-2, #BFCEE0);border-radius:4px;background:#fff;font-size:13px;font-family:inherit}.muted[data-v-30a87ba0]{color:var(--ink-3, #5A6A82)}.order-items-preview[data-v-30a87ba0]{display:flex;align-items:center;gap:6px}.order-items-preview img[data-v-30a87ba0]{width:32px;height:32px;border-radius:4px;border:1px solid var(--line);object-fit:cover;background:var(--bg-2)}.order-items-preview .more[data-v-30a87ba0]{font-size:11px;padding:2px 8px;background:var(--bg-2);border-radius:10px;color:var(--ink-3)}.pagination[data-v-30a87ba0]{display:flex;gap:12px;justify-content:center;align-items:center;padding:18px 0 8px}.pagination button[data-v-30a87ba0]{padding:7px 14px;border:1px solid var(--line-2);border-radius:4px;background:#fff;font-size:12px}.pagination button[data-v-30a87ba0]:disabled{opacity:.4;cursor:not-allowed}.edit-grid[data-v-0e7f3a76]{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.order-actions-bar[data-v-0e7f3a76]{display:flex;gap:10px;align-items:center;padding:12px 16px;border:1px solid var(--line);border-radius:6px;background:#fff;margin-bottom:20px}.muted[data-v-0e7f3a76]{color:var(--ink-3, #5A6A82)}.summary-row[data-v-0e7f3a76]{display:flex;justify-content:space-between;padding:6px 0}.summary-row.total[data-v-0e7f3a76]{font-weight:600;border-top:1px solid var(--line);padding-top:10px;margin-top:4px}.od-dl[data-v-0e7f3a76]{display:grid;grid-template-columns:1fr;gap:8px;margin:0}.od-dl>div[data-v-0e7f3a76]{display:grid;grid-template-columns:120px 1fr;gap:12px;align-items:baseline}.od-dl dt[data-v-0e7f3a76]{color:var(--ink-3);font-size:11.5px;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;margin:0}.od-dl dd[data-v-0e7f3a76]{margin:0;font-size:13px}.audit[data-v-0e7f3a76]{list-style:none;padding:0;margin:0;display:grid;gap:8px}.audit li[data-v-0e7f3a76]{display:flex;gap:10px;font-size:12.5px;align-items:baseline;padding-bottom:8px;border-bottom:1px dashed var(--line)}.prod-row[data-v-0e7f3a76]{display:flex;gap:12px;align-items:center}.prod-row img[data-v-0e7f3a76]{width:44px;height:44px;object-fit:cover;border-radius:4px;border:1px solid var(--line);background:var(--bg-2)}.cat-line[data-v-0e7f3a76]{font-family:var(--font-mono);font-size:11px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:2px}.field label[data-v-0e7f3a76]{display:block;font-size:11px;color:var(--ink-3);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;margin-bottom:4px}.field input[data-v-0e7f3a76],.field textarea[data-v-0e7f3a76]{width:100%;padding:9px 12px;border:1px solid var(--line-2);border-radius:4px;font-size:13px;font-family:inherit;background:#fff}.field textarea[data-v-0e7f3a76]{resize:vertical;min-height:70px}.filter-bar[data-v-83b29ba6]{display:grid;grid-template-columns:1fr 200px;gap:10px;margin-bottom:16px}.filter-bar input[data-v-83b29ba6],.filter-bar select[data-v-83b29ba6]{width:100%;padding:9px 12px;border:1px solid var(--line-2);border-radius:4px;background:#fff;font-size:13px;font-family:inherit}.edit-grid[data-v-83b29ba6]{display:grid;grid-template-columns:1fr 1fr;gap:22px}.muted[data-v-83b29ba6]{color:var(--ink-3, #5A6A82)}.od-dl[data-v-83b29ba6]{display:grid;gap:8px;margin:0}.od-dl>div[data-v-83b29ba6]{display:grid;grid-template-columns:100px 1fr;gap:12px;align-items:baseline}.od-dl dt[data-v-83b29ba6]{color:var(--ink-3);font-size:11.5px;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;margin:0}.od-dl dd[data-v-83b29ba6]{margin:0;font-size:13px}.pagination[data-v-83b29ba6]{display:flex;gap:12px;justify-content:center;align-items:center;padding:18px 0 8px}.pagination button[data-v-83b29ba6]{padding:7px 14px;border:1px solid var(--line-2);border-radius:4px;background:#fff;font-size:12px}.pagination button[data-v-83b29ba6]:disabled{opacity:.4;cursor:not-allowed}.content-layout[data-v-c2283228]{display:grid;grid-template-columns:220px 1fr;gap:20px}.content-side[data-v-c2283228]{border:1px solid var(--line);border-radius:8px;background:#fff;padding:14px;height:fit-content}.content-side h4[data-v-c2283228]{margin:6px 0 8px;font-size:11px;color:var(--ink-3);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em}.content-side button[data-v-c2283228]{display:flex;justify-content:space-between;gap:8px;align-items:center;width:100%;padding:7px 10px;background:transparent;border:0;text-align:left;font-size:13px;border-radius:4px;cursor:pointer;color:var(--ink-2)}.content-side button.on[data-v-c2283228]{background:var(--accent-soft, #DCE9F7);color:var(--accent, #0B5FA8)}.content-side button[data-v-c2283228]:hover{background:var(--bg, #F4F8FD)}.muted[data-v-c2283228]{color:var(--ink-3, #5A6A82);font-size:12px}.json-editor[data-v-c2283228]{width:100%;min-height:360px;padding:14px;font-family:var(--font-mono, ui-monospace, monospace);font-size:12.5px;line-height:1.55;border:1px solid var(--line-2);border-radius:6px;background:#fcfdff;color:var(--ink);resize:vertical}.json-editor.invalid[data-v-c2283228]{border-color:var(--crit, #B5232F);background:#fff7f7}.tab-toggle[data-v-c2283228]{display:flex;gap:6px}.tab-toggle button[data-v-c2283228]{padding:5px 12px;border:1px solid var(--line);border-radius:14px;background:#fff;font-size:11px;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;cursor:pointer}.tab-toggle button.on[data-v-c2283228]{background:var(--ink);color:#fff;border-color:var(--ink)}.content-layout[data-v-cb803031]{display:grid;grid-template-columns:240px 1fr;gap:20px}.content-side[data-v-cb803031]{border:1px solid var(--line);border-radius:8px;background:#fff;padding:14px;height:fit-content}.content-side h4[data-v-cb803031]{margin:6px 0 8px;font-size:11px;color:var(--ink-3);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em}.content-side button[data-v-cb803031]{display:flex;align-items:center;width:100%;padding:8px 10px;background:transparent;border:0;text-align:left;font-size:13px;border-radius:4px;cursor:pointer;color:var(--ink-2)}.content-side button.on[data-v-cb803031]{background:var(--accent-soft, #DCE9F7);color:var(--accent, #0B5FA8)}.content-side button[data-v-cb803031]:hover{background:var(--bg, #F4F8FD)}.muted[data-v-cb803031]{color:var(--ink-3, #5A6A82);font-size:12px}.field-grid[data-v-cb803031]{display:grid;grid-template-columns:1fr 1fr;gap:14px 16px}.field-grid .span-2[data-v-cb803031]{grid-column:span 2}.field label[data-v-cb803031]{display:block;font-size:11px;color:var(--ink-3);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;margin-bottom:4px}.field input[data-v-cb803031],.field select[data-v-cb803031],.field textarea[data-v-cb803031]{width:100%;padding:9px 12px;border:1px solid var(--line-2);border-radius:4px;font-size:13px;font-family:inherit;background:#fff}.field textarea[data-v-cb803031]{resize:vertical;min-height:80px}.field-grid[data-v-37feb746]{display:grid;grid-template-columns:1fr 1fr;gap:14px 16px}.field-grid .span-2[data-v-37feb746]{grid-column:span 2}.field label[data-v-37feb746]{display:block;font-size:11px;color:var(--ink-3, #5A6A82);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;margin-bottom:4px}.field input[data-v-37feb746]{width:100%;padding:9px 12px;border:1px solid var(--line-2, #BFCEE0);border-radius:4px;font-size:13px;font-family:inherit;background:#fff}.field input[data-v-37feb746]:disabled{background:var(--bg, #F4F8FD);color:var(--ink-3);cursor:not-allowed}.muted[data-v-37feb746]{color:var(--ink-3, #5A6A82)}
