[hidden]{display:none!important}
:root{--ink:#24332c;--muted:#69766e;--green:#247657;--green-dark:#185c42;--pale:#edf5f0;--bg:#f6f7f6;--line:#e5e9e6;--red:#b64e45;--shadow:0 2px 8px #20362908}
*{box-sizing:border-box}body{margin:0;font:14px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft Yahei",sans-serif;color:var(--ink);background:var(--bg)}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:3px}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin-top:0}h2{font-size:25px;letter-spacing:-.5px}
input,select,textarea{width:100%;border:1px solid #dce5df;border-radius:9px;padding:11px 12px;background:#fff;color:var(--ink);transition:.15s}input:focus,select:focus,textarea:focus{outline:2px solid #a0cbb4;border-color:var(--green)}textarea{min-height:100px;resize:vertical}label{display:block;font-size:13px;font-weight:600;margin-bottom:18px}label>input,label>select,label>textarea{margin-top:7px;font-weight:400}.muted{color:var(--muted)}
.btn{border:1px solid var(--line);border-radius:8px;background:white;padding:9px 16px;color:var(--ink);font-weight:600;white-space:nowrap}.btn:hover{background:var(--pale)}.btn.primary{background:var(--green);color:white;border-color:var(--green)}.btn.primary:hover{background:var(--green-dark)}.btn.danger{color:var(--red);border-color:#efcfcc}.btn.small{font-size:12px;padding:5px 9px}.btn.large{padding:13px 18px}.text-btn{border:0;background:transparent;color:var(--green);padding:5px 8px;border-radius:5px}.text-btn:hover{background:var(--pale)}.icon-button{border:0;background:transparent;font-size:24px;color:var(--muted);width:36px;height:36px}
.brand{display:flex;align-items:center;gap:12px;font-size:20px;font-weight:700;line-height:1.35}.brand-mark{background:var(--green);color:#fff;display:grid;place-items:center;width:44px;height:44px;border-radius:10px;font-size:25px;font-weight:700}.brand-sub{display:block;font-size:12px;font-weight:400;color:var(--muted);letter-spacing:1.8px;margin-top:4px}
.login-screen{min-height:100vh;display:grid;grid-template-columns:.95fr 1fr}.login-intro{background:#f0f5f1;padding:60px 11%;position:relative;overflow:hidden}.intro-copy{margin-top:100px;position:relative;z-index:1;max-width:400px}.eyebrow{font-size:13px;color:var(--green);letter-spacing:2px}.intro-copy h1{font-size:38px;line-height:1.5;letter-spacing:-.5px;margin:22px 0;color:#173a2b}.intro-copy p{color:#698173;line-height:2}.intro-footer{position:absolute;bottom:35px;color:#718077;font-size:12px;letter-spacing:2px}.login-panel{min-width:0;display:flex;justify-content:center;align-items:center;padding:50px}.login-panel form{width:360px;max-width:100%}.small-mark{color:var(--green);font-size:12px;letter-spacing:2px;margin-bottom:16px}.login-panel h2{font-size:28px;margin-bottom:8px}.login-panel .muted{margin-bottom:35px}.login-panel .btn{width:100%;display:flex;justify-content:space-between;margin-top:28px}.login-tip{font-size:12px;color:#718077;text-align:center;margin-top:28px;line-height:1.9}.form-error{color:var(--red);font-size:12px;min-height:20px;margin:12px 0}
.sidebar{width:228px;position:fixed;inset:0 auto 0 0;background:#fff;border-right:1px solid var(--line);padding:30px 18px 22px;display:flex;flex-direction:column;z-index:20}.sidebar>.brand{padding-left:11px;margin-bottom:35px;font-size:19px}.workspace-label{font-size:12px;letter-spacing:2px;color:#718077;padding-left:17px;margin-bottom:12px}.sidebar nav{flex:1;overflow:auto;scrollbar-width:thin}.nav-section{font-size:12px;letter-spacing:1px;color:#718077;padding:16px 16px 6px}.nav-link{display:flex;gap:11px;align-items:center;padding:10px 15px;margin:3px 0;border-radius:8px;color:#728077;font-size:13px}.nav-link:hover{background:#f5f8f6}.nav-link.active{background:var(--pale);color:var(--green);font-weight:600}.nav-icon{font-size:15px;width:19px;text-align:center}.sidebar-bottom{font-size:12px;color:#718077;padding:18px 10px 0;border-top:1px solid var(--line)}.online-dot{display:inline-block;width:6px;height:6px;background:#74b58a;border-radius:50%;margin-right:6px}
.main{margin-left:228px;min-height:100vh;display:flex;flex-direction:column}.topbar{height:76px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 40px}.topbar-left{display:flex;gap:12px;align-items:center}#breadcrumb{color:#718077;font-size:12px}.account{display:flex;align-items:center;gap:10px}.account b{font-size:12px;font-weight:600;display:block}.account div>span{font-size:12px;color:#718077;display:block}.avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#e6eee9;color:var(--green);font-size:13px}.account .text-btn{font-size:12px;margin-left:10px}#menu-toggle{display:none}.content{padding:34px 40px;max-width:1500px;width:100%;margin:0 auto;flex:1;min-width:0}.page-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;gap:15px}.page-title h1{font-size:26px;font-weight:650;margin:0 0 5px}.page-title p{color:#718077;font-size:12px;margin:0}.date-pill{background:white;border:1px solid var(--line);border-radius:7px;padding:7px 12px;font-size:12px;color:#718077}
.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-bottom:24px}.stat-card{background:white;border:1px solid var(--line);border-radius:10px;padding:22px 24px;box-shadow:none;position:relative}.stat-card small{color:#718077;font-size:12px}.stat-card strong{display:block;font-size:30px;font-weight:650;margin:12px 0 4px;letter-spacing:-1px}.stat-card span{color:#718077;font-size:12px}.stat-card .stat-symbol{position:absolute;right:20px;top:20px;background:#eff7f2;width:33px;height:33px;border-radius:10px;display:grid;place-items:center;color:#57a57d;font-size:15px}.stat-card.green{background:#f0f7f3;color:var(--green-dark);border-color:#d7e7dd}.stat-card.green small,.stat-card.green span{color:#607a6a}.stat-card.green .stat-symbol{background:#e0eee5;color:var(--green)}
.dashboard-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:22px;margin-bottom:24px}.panel{background:white;border:1px solid var(--line);border-radius:10px;box-shadow:none;overflow:hidden}.panel-head{padding:21px 24px;border-bottom:1px solid #f0f3f1;display:flex;align-items:center;justify-content:space-between}.panel-head h3{font-size:15px;margin:0;font-weight:650}.panel-head .muted{font-size:12px}.panel-body{padding:20px 24px}.trend-chart{height:178px;display:flex;align-items:flex-end;justify-content:space-around;gap:14px;padding:22px 10px 0}.chart-item{height:100%;display:flex;flex:1;align-items:center;justify-content:flex-end;flex-direction:column;gap:5px}.chart-bar{background:#a9d5bb;width:100%;max-width:37px;border-radius:5px 5px 0 0;min-height:3px}.chart-item:last-child .chart-bar{background:var(--green)}.chart-value{font-size:12px;color:#6b8b79}.chart-label{font-size:12px;color:#718077}.quick-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.quick-link{background:#f6f9f7;padding:17px;border-radius:9px;display:flex;align-items:center;gap:10px}.quick-link b{font-size:12px;font-weight:500}.quick-link small{display:block;font-size:12px;color:#718077}.quick-link .bubble{background:#e8f3ec;color:#46956a;border-radius:8px;width:33px;height:33px;display:grid;place-items:center}
.notice{font-size:12px;background:#f0f6f2;color:#6f8a78;border:1px solid #e3eee7;border-radius:8px;padding:12px 15px;margin-bottom:20px}.notice.warning{background:#fff9ee;color:#a17b3c;border-color:#f0e4cb}.toolbar{display:flex;justify-content:space-between;gap:12px;padding:18px 22px;align-items:center;flex-wrap:wrap}.filters{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.filters input{width:240px;padding:8px 11px;font-size:12px}.filters select{width:150px;padding:8px 11px;font-size:12px}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;text-align:left;white-space:nowrap}th{background:#f8faf9;color:#718077;font-size:12px;font-weight:500;padding:13px 17px;border-bottom:1px solid var(--line)}td{padding:16px 17px;border-bottom:1px solid #f0f3f1;font-size:13px;color:#607168;max-width:230px;overflow:hidden;text-overflow:ellipsis}tbody tr:hover{background:#fbfdfb}tbody tr:last-child td{border-bottom:0}.badge{display:inline-flex;align-items:center;font-size:12px;padding:3px 8px;border-radius:4px;background:#eef4ef;color:#648573}.badge.green{background:#e7f5ec;color:#448e61}.badge.orange{background:#fff2de;color:#b48135}.badge.red{background:#fbece9;color:#be7165}.badge.gray{background:#f0f2f1;color:#8c9690}.row-actions{display:flex;gap:5px}.row-actions .text-btn{font-size:12px;padding:2px 4px}.pager{border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:16px 22px;font-size:12px;color:#718077}.pager-controls{display:flex;gap:8px;align-items:center}.empty{padding:70px 20px;text-align:center;color:#718077}.empty .empty-icon{font-size:30px;opacity:.55;margin-bottom:10px}.empty b{font-size:14px;color:#7b8c81;display:block;margin-bottom:5px}.loading{padding:70px;text-align:center;color:#8a9d90}.footer{padding:14px 40px 25px;display:flex;justify-content:space-between;color:#718077;font-size:12px}
.toast{position:fixed;z-index:100;top:25px;left:50%;transform:translateX(-50%);background:#244835;color:white;padding:12px 23px;border-radius:8px;box-shadow:0 6px 30px #0002;max-width:90vw;font-size:13px}.toast.error{background:#a35248}dialog{border:1px solid var(--line);border-radius:12px;padding:0;width:min(800px,95vw);max-height:90vh;box-shadow:0 18px 50px #162a2026;color:var(--ink)}dialog::backdrop{background:#15231c55}.dialog-head{padding:20px 25px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;background:white;z-index:2}.dialog-head h2{font-size:19px;margin:0}#dialog-content{padding:24px 25px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.form-grid label.wide{grid-column:1/-1}.form-footer{display:flex;justify-content:flex-end;gap:10px;padding-top:16px;border-top:1px solid var(--line);margin-top:10px}.hint{font-size:12px;color:#718077;font-weight:400;display:block;margin-top:4px}.upload-control{display:flex;gap:8px;margin-top:7px}.upload-control input{margin:0}.image-preview{height:60px;width:80px;object-fit:cover;margin-top:8px;border:1px solid var(--line);border-radius:5px}.sku-editor{grid-column:1/-1;margin-bottom:20px;border:1px solid var(--line);border-radius:8px;padding:15px}.sku-editor h4{margin:0 0 10px;font-size:13px}.sku-row{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 70px 28px;gap:7px;margin:8px 0;align-items:center}.sku-row input,.sku-row select{font-size:12px;padding:7px}.sku-labels{font-size:12px;color:#718077}
.details{display:grid;grid-template-columns:1fr 1fr;gap:12px}.detail-item{background:#f7faf8;border-radius:6px;padding:12px}.detail-item.wide{grid-column:1/-1}.detail-item small{display:block;color:#718077;font-size:12px;margin-bottom:3px}.detail-item div{font-size:12px;white-space:pre-wrap;word-break:break-word}.detail-item pre{font-size:12px;max-height:200px;overflow:auto;margin:0;white-space:pre-wrap}.chat-list{height:340px;overflow:auto;background:#f6f9f7;border-radius:9px;padding:16px;margin-bottom:18px}.chat-message{max-width:80%;margin:12px 0}.chat-message.staff{margin-left:auto;text-align:right}.chat-message small{font-size:12px;color:#718077}.chat-bubble{background:white;border:1px solid var(--line);border-radius:10px;padding:10px 13px;margin-top:4px;font-size:12px;white-space:pre-wrap;text-align:left}.chat-message.staff .chat-bubble{background:#e3f2e8;border-color:#d4e7db}.chat-bubble img{max-width:100%;max-height:200px}.settings-form{padding:24px}.setting-row{padding:17px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:20px}.setting-row label{margin:0;font-size:12px}.setting-row input{max-width:400px}.setting-row input[type=checkbox]{width:20px;height:20px;accent-color:var(--green)}.error-box{padding:25px;color:var(--red);background:#fdf5f3;border:1px solid #f1d7d2;border-radius:9px}
@media(min-width:1500px){.content{padding:42px 55px}.topbar{padding:0 55px}}@media(max-width:1150px){.sidebar{width:210px}.main{margin-left:210px}.topbar{padding:0 25px}.content{padding:25px}.cards{gap:12px}.stat-card{padding:18px}.stat-card strong{font-size:25px}.stat-card .stat-symbol{right:15px;top:16px}.dashboard-grid{grid-template-columns:1fr}.login-intro{padding:45px 10%}.intro-copy h1{font-size:36px}}@media(max-width:800px){.login-screen{grid-template-columns:1fr}.login-intro{display:none}.login-panel{min-height:100vh;padding:30px}.sidebar{transform:translateX(-100%);transition:.2s;width:240px;box-shadow:var(--shadow)}body.menu-open .sidebar{transform:translateX(0)}.main{margin-left:0}.topbar{height:70px;padding:0 18px}#menu-toggle{display:inline-block}.content{padding:22px 16px}.cards{grid-template-columns:repeat(2,1fr)}.stat-card strong{font-size:25px}.stat-card .stat-symbol{display:none}.date-pill{display:none}.page-title h1{font-size:23px}.footer{padding:20px 16px}.footer span{display:none}.filters input{width:180px}.form-grid,.details{grid-template-columns:1fr}.form-grid label.wide,.detail-item.wide{grid-column:auto}.sku-row{grid-template-columns:1.5fr 1fr 1fr 1fr 65px 20px;gap:4px}.sku-row input{min-width:0}#dialog-content{padding:18px}.setting-row{grid-template-columns:1fr;gap:8px}.account .text-btn{margin:0}.panel-head,.panel-body{padding:18px}.toolbar{padding:15px}.table-wrap td,.table-wrap th{padding:13px}.pager{padding:13px}.login-panel h2{font-size:30px}}
.editor-panel{padding:28px;max-width:1100px}.editor-panel .form-footer{position:sticky;bottom:0;background:#fff;padding-bottom:12px}.required-mark{color:var(--red)}.picture-control{margin-top:8px}.picture-list{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:10px}.picture-card{border:1px solid var(--line);border-radius:9px;padding:7px;background:#f8faf9;width:140px}.picture-card>button{display:block;border:0;padding:0;background:transparent;width:100%;height:100px}.picture-card img{width:100%;height:100%;object-fit:contain}.picture-card>div{display:flex;justify-content:space-between}.full-preview{display:block;max-width:100%;max-height:68vh;object-fit:contain;margin:auto}.image-preview{width:110px;height:85px;object-fit:contain}.table-image{width:36px;height:36px;object-fit:contain;vertical-align:middle;margin-right:8px;border-radius:5px}.todo-dot{margin-left:auto;background:#ec795f;color:#fff;min-width:18px;border-radius:10px;padding:0 5px;font-size:12px;text-align:center}.batch-bar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:8px 22px 16px;font-size:12px}.batch-bar small{font-size:12px}input[type=checkbox]{width:16px;height:16px;accent-color:var(--green)}.page-jump{margin:0;display:flex;align-items:center;gap:5px;font-size:12px;font-weight:400}.page-jump input{width:55px;padding:3px;margin:0}.chat-pager{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12px;margin-bottom:12px}.detail-toolbar{margin-bottom:14px}.detail-item{user-select:text}.pager{gap:12px;flex-wrap:wrap}.pager-controls{flex-wrap:wrap}.relation-search{display:flex;gap:6px;margin-top:6px}.relation-search input{min-width:0;font-weight:400}.relation-search button{font-size:12px}.relation-pages{display:flex;gap:8px;align-items:center;font-size:12px;font-weight:400;margin-top:5px}.sublist-pager{display:flex;gap:8px;align-items:center;margin-top:8px}.stat-card[data-link]{cursor:pointer}.stat-card[data-link]:hover{filter:brightness(.98)}
@media(max-width:800px){.editor-panel{padding:18px}.batch-bar{padding:6px 15px 14px}.picture-card{width:120px}.picture-card>button{height:85px}.editor-panel .sku-editor{overflow:auto}.sku-row{min-width:520px}.pager-controls{gap:5px}.page-jump,#jump-page{display:none}}

/* Shared controls and narrow screens. */
button,a,input,select,textarea{touch-action:manipulation}
a:focus-visible,button:focus-visible,[role=link]:focus-visible{outline:2px solid var(--green);outline-offset:3px}
.btn{min-height:36px}.btn.small{min-height:30px}.btn.large{min-height:46px}
.nav-link{min-height:42px}.table-wrap{scrollbar-width:thin}.table-wrap td:last-child{overflow:visible}
.row-actions{flex-wrap:wrap;min-width:120px}.row-actions .text-btn{min-height:30px;padding:3px 6px}
.panel-head{gap:12px;flex-wrap:wrap}.quick-link{border:1px solid #edf1ee}.quick-link:hover{background:var(--pale)}
.stat-card strong{overflow-wrap:anywhere;line-height:1.3}.stat-card small{padding-right:35px;display:block}
.page-title>div,.account>div{min-width:0}.account b{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.form-error{overflow-wrap:anywhere}.error-box p{margin:12px 0 0}.picture-card .text-btn{min-height:32px}
@media(max-width:800px){.topbar-left{min-width:0}#breadcrumb{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(100vw - 210px)}.account b{max-width:90px}.login-panel h2{font-size:28px}.filters{width:100%}.filters input{flex:1;min-width:140px}.filters select{flex:1;min-width:120px}.stat-card small{padding-right:0}.stat-card strong{font-size:24px}.relation-search{flex-wrap:wrap}.relation-search input{flex:1;min-width:100px}}
@media(max-width:420px){.cards{gap:10px}.stat-card{padding:16px 14px}.stat-card strong{font-size:22px}.quick-grid{grid-template-columns:1fr}.page-title{align-items:flex-start}.page-title h1{font-size:22px}.account .avatar{display:none}.panel-head .muted{width:100%}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;scroll-behavior:auto!important}}
