:root{color-scheme:light;--orange:#ee4d2d;--orange2:#ff864f;--ink:#232431;--sub:#777b88;--border:#e9eaf0;--bg:#f5f6fa;--paper:#fff;--soft:#fff1eb;--success:#178461;--danger:#df4351;--shadow:0 14px 35px rgba(22,24,44,.06)}
*{box-sizing:border-box}body{margin:0;background:var(--bg);font:14px/1.55 ui-sans-serif,system-ui,-apple-system,'Segoe UI',sans-serif;color:var(--ink);-webkit-font-smoothing:antialiased}button,input,textarea,select{font:inherit}a{color:inherit;text-decoration:none}button{cursor:pointer}button:disabled{opacity:.55;cursor:not-allowed}img{display:block;max-width:100%}[hidden]{display:none!important}h1,h2,h3,p{margin-top:0}input,textarea,select{background:#fff;border:1px solid #dde0e8;border-radius:12px;padding:12px 13px;width:100%;outline:none;transition:border .15s,box-shadow .15s}input:focus,textarea:focus,select:focus{border-color:#f38c6b;box-shadow:0 0 0 3px #ffceb74d}input[type=file]{background:#fff;max-width:100%}input[type=checkbox]{width:auto;accent-color:var(--orange)}label{display:grid;gap:7px;color:#515565;font-weight:700;font-size:12px}label span.help{color:#8a8e99;font-weight:500;font-size:11px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:12px;padding:12px 17px;font-weight:800;border:1px solid transparent;min-height:42px}.btn-main{background:linear-gradient(115deg,#e84329,#ff7844);color:#fff;box-shadow:0 9px 20px #ee4d2d26}.btn-ghost{background:#fff;color:var(--ink);border-color:var(--border)}.btn-danger{background:#fff0f0;color:#ba233a;border-color:#ffd7db}.btn:hover:not(:disabled){filter:brightness(.97)}.muted{color:var(--sub)}.pill{display:inline-flex;align-items:center;gap:6px;padding:4px 9px;background:#eef8f4;color:#13805b;border-radius:99px;font-size:10px;font-weight:850}.pill.off{background:#fff3e5;color:#aa6615}.pill b{display:block;width:6px;height:6px;border-radius:50%;background:currentColor}
.logo{display:inline-flex;align-items:center;gap:10px;font-weight:950;letter-spacing:-.45px}.mark{display:grid;place-items:center;border-radius:13px;width:41px;height:41px;flex:none;background:linear-gradient(150deg,#ffb065,#ee4d2d 70%);color:#fff;font-size:20px;box-shadow:0 10px 20px #ef6e4438}.logo small{display:block;letter-spacing:.14em;font-size:9px;color:var(--orange);margin-top:-2px}.login-body{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.login-art{background:radial-gradient(550px 450px at 75% 23%,#ff9e523a,transparent 70%),linear-gradient(150deg,#262634,#101016);color:#fff;position:relative;overflow:hidden;padding:46px 56px;display:flex;flex-direction:column;justify-content:space-between}.login-art:after{content:'';position:absolute;width:360px;height:360px;right:-50px;bottom:8%;border-radius:50%;background:radial-gradient(circle at 28% 25%,#ffc08a,#ff7a3e 50%,#d43b22 95%);box-shadow:0 0 100px #f46d4d65}.login-art h1{font-size:clamp(38px,4.1vw,69px);max-width:550px;letter-spacing:-.065em;line-height:1.07;position:relative;z-index:1}.login-art h1 span{color:#ff9c6a}.login-art p{position:relative;z-index:2;max-width:410px;color:#d2d1d5}.login-art .logo small{color:#ffb18a}.login-panel{display:grid;place-items:center;padding:30px}.login-card{width:min(420px,100%);background:#fff;border:1px solid #e9eaf0;border-radius:27px;box-shadow:var(--shadow);padding:36px}.login-card h2{font-size:29px;letter-spacing:-.045em;margin:0 0 6px}.login-card p{font-size:13px;line-height:1.7}.login-form{display:grid;gap:17px;margin-top:22px}.notice{padding:12px 14px;border-radius:12px;background:#fff3e8;color:#985317;font-size:12px;line-height:1.6}.notice.error{background:#fff0f1;color:#ac2340}.notice.ok{background:#eaf8ef;color:#16704d}.login-bottom{margin-top:26px;display:flex;justify-content:space-between;gap:14px;font-size:12px;color:#8c90a0}.login-bottom a{color:var(--orange);font-weight:750}.login-card .btn{width:100%}
.app{min-height:100vh;display:grid;grid-template-columns:248px minmax(0,1fr)}.sidebar{background:#171923;color:#f7f7fc;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:30px 18px 22px}.sidebar .logo{margin:0 8px 42px}.sidebar .logo small{color:#ff9a74}.nav-label{color:#838998;letter-spacing:.15em;font-size:10px;font-weight:850;margin:0 13px 13px}.menu{display:grid;gap:7px}.menu a,.menu button{display:flex;align-items:center;gap:11px;padding:13px 14px;border-radius:13px;border:0;color:#b9bdc9;background:transparent;text-align:left;font-size:13px;font-weight:750;width:100%}.menu svg{width:19px;height:19px;stroke:currentColor;fill:none;stroke-width:1.8}.menu .active{background:linear-gradient(110deg,#f16a40,#ed492d);color:#fff}.sidebar-foot{margin-top:auto;background:#252935;border:1px solid #373b47;padding:15px;border-radius:16px;font-size:11px;color:#bfc3ce;overflow-wrap:anywhere}.sidebar-foot b{display:block;color:#fff;font-size:13px;margin-bottom:5px}.sidebar-foot button{background:none;border:0;color:#ff9c7b;font-weight:800;padding:8px 0 0}
.main{min-width:0}.topbar{height:86px;border-bottom:1px solid var(--border);background:#ffffffdb;backdrop-filter:blur(15px);display:flex;align-items:center;justify-content:space-between;padding:0 36px;gap:16px}.crumb{font-size:12px;color:#8c909a}.crumb b{color:#252633}.top-actions{display:flex;align-items:center;gap:14px}.avatar{width:39px;height:39px;display:grid;place-items:center;border-radius:13px;background:#ffe5db;color:#e65330;font-weight:950}.main-body{max-width:1330px;margin:0 auto;padding:36px}.heading{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin-bottom:24px}.heading h1{font-size:clamp(29px,3.4vw,42px);letter-spacing:-.06em;margin:5px 0}.heading p{margin:0;color:var(--sub);font-size:13px}.overline{color:#ec6039;letter-spacing:.16em;font-size:10px;font-weight:900}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;margin-bottom:23px}.stat{background:var(--paper);border:1px solid var(--border);border-radius:18px;padding:19px 23px;box-shadow:var(--shadow)}.stat small{font-size:11px;color:#818594;font-weight:700}.stat strong{display:block;font-size:33px;letter-spacing:-.065em;margin-top:7px;line-height:1.2}.stat.orange{background:#fff3ed;border-color:#ffdfd3}.stat.orange strong{color:var(--orange)}.panel{background:var(--paper);border:1px solid var(--border);border-radius:22px;box-shadow:var(--shadow);overflow:hidden}.panel-head{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:22px 25px;border-bottom:1px solid var(--border)}.panel-head h2{font-size:18px;letter-spacing:-.035em;margin:0}.panel-head p{font-size:11px;color:var(--sub);margin:4px 0 0}.search{max-width:250px}.product-list{padding:8px 22px 15px}.product-row{display:grid;grid-template-columns:70px minmax(0,1fr) auto;gap:15px;align-items:center;padding:17px 3px;border-bottom:1px solid #f0f0f3}.product-row:last-child{border-bottom:0}.thumb{width:70px;height:70px;object-fit:cover;border-radius:14px;background:#f9eae4;border:1px solid var(--border)}.product-row b{display:block;font-size:13px;margin-bottom:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.product-row small{color:var(--sub);display:block;font-size:11px;overflow-wrap:anywhere}.product-row .row-tools{display:flex;gap:7px;align-items:center}.tiny{border:1px solid var(--border);border-radius:10px;padding:8px 11px;background:#fff;font-size:11px;font-weight:800;min-height:34px}.tiny.remove{color:#bd3e49}.empty{text-align:center;padding:55px 16px;color:#8c90a0}.empty strong{display:block;font-size:17px;color:#343744;margin:12px 0 6px}.editor-wrap{max-width:1040px;margin:0 auto}.editor-top{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:21px}.editor-top h2{font-size:27px;letter-spacing:-.05em;margin:0}.editor{padding:26px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}.span2{grid-column:1/-1}textarea{min-height:89px;resize:vertical}.image-layout{display:grid;grid-template-columns:180px minmax(0,1fr);gap:18px;align-items:start}.image-preview{width:180px;height:180px;object-fit:contain;border-radius:19px;background:#f9f1ed;border:1px dashed #f8baa4;padding:12px}.image-help{font-size:11px;color:#8e91a0;margin:10px 0 0}.switchline{display:flex;align-items:center;gap:12px;padding:15px;border-radius:15px;background:#fff9f4;border:1px solid #ffeadf}.switchline input{width:20px;height:20px}.switchline strong{font-size:12px}.switchline small{display:block;font-size:11px;color:#858899}.editor-actions{display:flex;gap:10px;justify-content:flex-end;padding-top:25px;border-top:1px solid var(--border);margin-top:24px;flex-wrap:wrap}.warnbox{background:#fff9e8;border:1px solid #ffe7aa;border-radius:13px;padding:12px 14px;font-size:12px;color:#8c641f;margin-bottom:17px}.result-status{font-size:12px;color:var(--sub)}
@media(max-width:1050px){.sidebar{width:210px}.app{grid-template-columns:210px minmax(0,1fr)}.main-body{padding:24px}.topbar{padding:0 24px}}@media(max-width:760px){.login-body{grid-template-columns:1fr}.login-art{display:none}.login-panel{padding:20px;align-items:start;padding-top:12vh}.login-card{padding:27px 23px}.app{display:block}.sidebar{position:static;width:100%;height:auto;padding:15px 17px;flex-direction:row;align-items:center;justify-content:space-between}.sidebar .logo{margin:0}.sidebar .nav-label,.sidebar .menu,.sidebar .sidebar-foot{display:none}.topbar{height:58px;padding:0 18px}.crumb{font-size:11px}.main-body{padding:22px 15px}.heading{align-items:stretch}.heading h1{font-size:30px}.heading .btn{font-size:12px;padding:10px 12px;white-space:nowrap}.stats{gap:8px}.stat{padding:14px 13px;border-radius:15px}.stat strong{font-size:26px}.stat small{font-size:10px}.panel-head{padding:17px;flex-wrap:wrap}.panel-head .search{max-width:none}.product-list{padding:3px 14px}.product-row{grid-template-columns:56px minmax(0,1fr);gap:12px}.thumb{width:56px;height:56px}.product-row .row-tools{grid-column:2;justify-content:flex-start}.editor{padding:17px}.form-grid{grid-template-columns:1fr}.span2{grid-column:auto}.image-layout{grid-template-columns:1fr}.image-preview{width:100%;height:185px}.editor-top h2{font-size:24px}.top-actions .tiny{display:none}.login-bottom{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}}
