*{box-sizing:border-box}body{margin:0;font:14px/1.6 -apple-system,"PingFang SC","Microsoft YaHei",sans-serif;color:#222;background:#f4f5f7}
.hidden{display:none!important}
.login{display:flex;align-items:center;justify-content:center;height:100vh}
.login .card{width:340px;display:flex;flex-direction:column;gap:12px}
.card{background:#fff;border-radius:8px;padding:20px;box-shadow:0 1px 3px rgba(0,0,0,.06);margin-bottom:16px}
#main{display:flex;min-height:100vh}
aside{width:190px;background:#000;color:#fff;display:flex;flex-direction:column;padding:16px 0;position:sticky;top:0;height:100vh}
aside .logo{font-size:18px;font-weight:700;padding:0 16px 16px;display:flex;align-items:center;gap:10px;letter-spacing:1px}aside .logo img{width:36px;height:36px;border-radius:50%;background:#fff}
aside .company{color:#666;font-size:11px;padding:8px 20px}
aside nav{flex:1;display:flex;flex-direction:column}
aside nav a{color:#c9cdd4;text-decoration:none;padding:10px 20px}
aside nav a.active,aside nav a:hover{background:#1a1a1a;color:#fff;box-shadow:inset 3px 0 0 #2147D9}
section{flex:1;padding:20px 24px;min-width:0}
h2{margin:0 0 16px;font-size:20px}
input,select,textarea{font:inherit;padding:6px 10px;border:1px solid #d0d3d9;border-radius:4px;background:#fff}
textarea{width:100%;min-height:90px}
.btn{font:inherit;border:1px solid #d0d3d9;background:#fff;padding:6px 14px;border-radius:4px;cursor:pointer}
.btn.primary{background:#2147D9;border-color:#2147D9;color:#fff}
.btn.danger{color:#cf1322;border-color:#ffa39e}
.btn.link{border:none;background:none;color:#8a919c}
.btn.sm{padding:2px 8px;font-size:12px}
table{width:100%;border-collapse:collapse;background:#fff}
th,td{padding:8px 10px;border-bottom:1px solid #eef0f3;text-align:left;vertical-align:top}
th{background:#fafbfc;font-weight:500;color:#555}
.toolbar{display:flex;gap:8px;align-items:center;margin-bottom:12px;flex-wrap:wrap}
.grid4{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px}
.stat .n{font-size:26px;font-weight:600}.stat .l{color:#888}
.tag{display:inline-block;padding:0 8px;border-radius:10px;font-size:12px;background:#eef0f3}
.tag.pending{background:#fff4e5;color:#b76e00}.tag.paid{background:#e8edfc;color:#2147D9}.tag.shipped{background:#e6f4ff;color:#0958d9}
.tag.completed{background:#e8f7ee;color:#1a7f37}.tag.cancelled,.tag.refunded{background:#eee;color:#888}
.tag.as-pending{background:#fff4e5;color:#b76e00}.tag.as-approved,.tag.as-refunding{background:#e8edfc;color:#2147D9}.tag.as-refunded{background:#e8f7ee;color:#1a7f37}.tag.as-rejected,.tag.as-cancelled{background:#eee;color:#888}
.thumb{width:48px;height:48px;object-fit:cover;border-radius:4px;background:#eee}
.imgs{display:flex;gap:8px;flex-wrap:wrap}.imgs .im{position:relative}.imgs img{width:90px;height:90px;object-fit:cover;border-radius:4px}
.imgs .im button{position:absolute;top:2px;right:2px}
.form-row{display:flex;gap:12px;margin-bottom:12px;align-items:center}.form-row label{width:90px;color:#555;flex-shrink:0}
.sku-table input{width:100%}
.mode-banner{background:#fff4e5;color:#8a5300;border:1px solid #ffd591;padding:8px 12px;border-radius:6px;margin-bottom:16px}
.toast{position:fixed;top:20px;left:50%;transform:translateX(-50%);background:rgba(0,0,0,.8);color:#fff;padding:8px 18px;border-radius:6px;z-index:99}
.err{color:#cf1322;min-height:1em;margin:0}
.muted{color:#999;font-size:12px}
.bar{display:flex;align-items:flex-end;gap:6px;height:140px;padding-top:10px}
.bar div{flex:1;background:#2147D9;opacity:.8;min-height:2px;position:relative}
.bar div span{position:absolute;bottom:-20px;left:50%;transform:translateX(-50%);font-size:10px;color:#888;white-space:nowrap}
.pager{display:flex;gap:8px;align-items:center;margin-top:12px}
.modal-mask{position:fixed;inset:0;background:rgba(0,0,0,.35);display:flex;align-items:center;justify-content:center;z-index:50}
.modal{background:#fff;border-radius:8px;padding:20px;width:420px}
.note{background:#fff1f0;border:1px solid #ffccc7;color:#a8071a;padding:6px 10px;border-radius:4px;margin:8px 0}
.login-logo{width:96px;height:96px;border-radius:50%;align-self:center;border:1px solid #eee}
.login h2{text-align:center;margin:0}
.badge{display:inline-block;min-width:18px;padding:0 5px;border-radius:9px;background:#2147D9;color:#fff;font-size:11px;line-height:18px;text-align:center;margin-left:4px}
.ok{color:#1a7f37}.warn{color:#cf1322}
.kv p{margin:4px 0}
a.btn{text-decoration:none;display:inline-block}
aside .logo img{border-radius:6px;object-fit:contain;background:#000}
.login-logo{border-radius:12px;object-fit:contain}
