:root{font-family:Inter,"Microsoft YaHei",sans-serif;color:#172033;background:#f4f6f9}*{box-sizing:border-box}body{margin:0;display:flex;min-height:100vh}aside{width:230px;background:#13223a;color:#fff;padding:26px 18px;position:fixed;inset:0 auto 0 0}.brand{display:flex;gap:12px;align-items:center;font-size:18px;font-weight:700;padding:4px 10px 30px}.brand>span{width:40px;height:40px;border-radius:11px;background:#2677ed;display:grid;place-items:center}.brand small{display:block;color:#93a4bd;font-size:11px;margin-top:3px}nav button{display:block;width:100%;border:0;background:transparent;color:#aab8cc;text-align:left;padding:13px 16px;border-radius:9px;margin:6px 0;cursor:pointer;font-size:14px}nav button.active{background:#2677ed;color:#fff}main{margin-left:230px;width:calc(100% - 230px);padding:0 34px 50px}header{height:108px;display:flex;justify-content:space-between;align-items:center}h1{font-size:26px;margin:0}header p{margin:8px 0 0;color:#7d8797;font-size:13px}.admin{background:#fff;padding:11px 17px;border-radius:20px}.view{display:none}.view.active{display:block}.toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.toolbar>input{width:320px}.panel,.type-grid>article{background:#fff;border-radius:14px;box-shadow:0 5px 25px rgba(35,50,75,.05)}input,textarea,select{border:1px solid #dce2ea;border-radius:8px;padding:10px 12px;font:inherit;background:#fff}button{font:inherit;cursor:pointer}.primary{border:0;background:#1769e0;color:#fff;border-radius:8px;padding:11px 18px}.ghost{border:0;background:#edf4ff;color:#1769e0;border-radius:7px;padding:7px 10px}.danger-btn{border:0;background:#fff0f0;color:#d64242;border-radius:7px;padding:7px 10px}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;color:#667085;background:#f8fafc;padding:14px 16px}td{padding:15px 16px;border-top:1px solid #edf0f4;vertical-align:middle}.product-cell{display:flex;gap:12px;align-items:center}.thumb{width:46px;height:46px;border-radius:9px;background:#eaf2ff;color:#4d77b7;display:grid;place-items:center;font-size:10px;overflow:hidden}.thumb img{width:100%;height:100%;object-fit:cover}.sub{color:#8a94a5;font-size:11px;margin-top:4px}.pill{display:inline-block;background:#edf4ff;color:#346bb8;padding:4px 7px;border-radius:5px;margin:2px;font-size:11px}.enabled{color:#16805f}.disabled{color:#999}.type-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.type-grid article{padding:22px}.type-grid h3{margin:0 0 8px}.type-actions{display:flex;gap:8px;margin-top:20px}.count{color:#1769e0;font-size:28px;font-weight:700;margin-top:18px}.empty-row{text-align:center;color:#9aa3b1;padding:55px}dialog{border:0;border-radius:15px;width:min(760px,92vw);padding:0;box-shadow:0 25px 80px rgba(0,0,0,.25)}dialog::backdrop{background:rgba(18,28,45,.55)}dialog form{padding:24px}.dialog-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.dialog-head h2{margin:0}.close{font-size:25px;border:0;background:transparent}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-grid label,.typeDialog label{display:block}.form-grid label input,.form-grid label textarea,.form-grid label select,#typeForm>label input,#typeForm>label textarea{display:block;width:100%;margin-top:7px}.full{grid-column:1/-1}fieldset{border:1px solid #dce2ea;border-radius:9px}.checks{display:flex;gap:18px;flex-wrap:wrap}.checks label{display:flex;gap:6px;align-items:center}.checks input{margin:0}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}.cancel{border:1px solid #dce2ea;background:#fff;border-radius:8px;padding:10px 18px}#typeForm>label{display:block;margin-top:16px}#toast{position:fixed;right:25px;bottom:25px;background:#172033;color:#fff;padding:12px 18px;border-radius:8px;opacity:0;transform:translateY(10px);transition:.2s;pointer-events:none}#toast.show{opacity:1;transform:none}.status-select{padding:6px}.order-products{max-width:260px}@media(max-width:900px){aside{width:180px}main{margin-left:180px;width:calc(100% - 180px);padding:0 18px}.type-grid{grid-template-columns:1fr}table{min-width:900px}.panel{overflow:auto}}
#accountForm>label{display:block;margin-top:16px}#accountForm>label input,#accountForm>label select{display:block;width:100%;margin-top:7px}#accountDialog{width:min(520px,92vw)}.price-grid{margin-top:8px}.price-grid label{font-size:13px}
.order-summary{margin-top:10px;padding-top:8px;border-top:1px dashed #d8dee8}.order-total{color:#d9482f;font-weight:700}.order-weight{color:#48627f;font-weight:600;margin-top:5px;font-size:12px}
.order-actions{white-space:nowrap}.order-actions button+button{margin-left:6px}#orderDialog{width:min(820px,94vw)}.order-customer-card{display:grid;grid-template-columns:1fr 1fr;gap:12px;background:#f5f8fc;border-radius:10px;padding:14px 16px;margin-bottom:18px}.order-customer-card div{display:flex;flex-direction:column;gap:5px}.order-customer-card span{font-size:12px;color:#7d8797}.order-items-fieldset{margin-top:18px;padding:12px 16px 16px}.order-edit-row{display:grid;grid-template-columns:minmax(220px,1fr) 110px 100px 110px;gap:12px;align-items:center;padding:11px 0;border-bottom:1px solid #edf0f4}.order-edit-row:last-child{border-bottom:0}.order-edit-row input{width:100%}.order-edit-price,.order-edit-amount{text-align:right}.order-edit-total{text-align:right;color:#d9482f;font-size:17px;font-weight:700;margin-top:12px}.order-edit-weight-total{color:#48627f;font-size:14px;margin-top:6px}@media(max-width:700px){.order-customer-card{grid-template-columns:1fr}.order-edit-row{grid-template-columns:1fr 80px}.order-edit-price,.order-edit-amount{text-align:left}.order-edit-row .sub{grid-column:1/-1}}
.toolbar-group,.toolbar-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.toolbar-actions{justify-content:flex-end}.refresh-info{color:#8a94a5;font-size:12px}.batch-select,.type-check-label{display:flex;align-items:center;gap:6px;color:#667085;font-size:13px}.batch-select input,.type-check-label input{margin:0}.type-check-label{justify-content:flex-end;margin-bottom:6px}@media(max-width:1100px){.toolbar{align-items:flex-start;gap:12px;flex-wrap:wrap}.toolbar-actions{justify-content:flex-start}}
.admin-login{position:fixed;inset:0;z-index:1000;display:grid;place-content:center;background:radial-gradient(circle at 20% 20%,#e8f1ff 0,transparent 36%),linear-gradient(135deg,#f7f9fc,#eaf1fb);padding:24px}.admin-login[hidden]{display:none}.login-brand{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:22px}.login-brand>span{width:48px;height:48px;border-radius:13px;background:#1769e0;color:#fff;display:grid;place-items:center;font-size:25px;font-weight:700}.login-brand b{display:block;font-size:21px}.login-brand small{display:block;color:#7d8797;margin-top:3px}.login-card{width:min(420px,calc(100vw - 32px));background:#fff;border-radius:18px;padding:34px;box-shadow:0 24px 70px rgba(33,58,95,.16)}.login-card h1{font-size:26px}.login-card>p{color:#8a94a5;margin:8px 0 26px}.login-card label{display:block;font-weight:600;margin-top:16px}.login-card label input{display:block;width:100%;margin-top:8px}.login-error{min-height:20px;color:#d64242;font-size:13px;margin-top:12px}.login-submit{width:100%;margin-top:8px}.admin-locked aside,.admin-locked main{display:none}.admin{display:flex;align-items:center;gap:12px}.admin #logoutAdmin{border:0;background:transparent;color:#1769e0;padding:0;font-size:12px}
.brand{flex-direction:column;align-items:flex-start;gap:8px;padding:4px 2px 26px}.brand>img{width:176px;height:68px;object-fit:contain;border-radius:10px;background:#fff;display:block}.brand>small{padding-left:5px;color:#93a4bd;font-size:11px;letter-spacing:2px}.login-brand>img{width:190px;height:82px;object-fit:contain;border-radius:12px;background:#fff;box-shadow:0 10px 28px rgba(33,58,95,.1)}
.password-cell{min-width:175px}.masked-password{color:#637083;font-family:monospace;font-size:18px;letter-spacing:2px}.visible-password{display:flex;align-items:center;gap:5px}.visible-password code{padding:6px 8px;border-radius:6px;background:#eef5ff;color:#1259bd;font-size:13px;font-weight:700}.visible-password .ghost{padding:5px 7px;font-size:12px}.password-reset-link{display:inline-block;margin-top:6px;padding:0;border:0;background:transparent;color:#1769e0;cursor:pointer}.password-notice{padding:11px 13px;border-radius:8px;background:#fff7e6;color:#7c5814;font-size:13px;line-height:1.6}#passwordDialog{width:min(520px,92vw)}#passwordForm>label{display:block;margin-top:16px}.password-edit-row{display:flex;gap:8px;margin-top:7px}.password-edit-row input{flex:1;min-width:0}.password-edit-row button{white-space:nowrap}
.wechat-cell{min-width:145px}.wechat-bound{color:#13805c;font-weight:700}.wechat-unbound{color:#8993a3;font-weight:600}
.service-role [data-admin-only],.service-role .admin-only-action{display:none!important}#staffForm>label,#logisticsForm>label{display:block;margin-top:16px}#staffForm>label input,#staffForm>label select,#logisticsForm>label input{display:block;width:100%;margin-top:7px}#staffDialog,#logisticsDialog{width:min(520px,92vw)}.audit-approved{color:#13805c;font-weight:700}.audit-pending{display:inline-block;padding:5px 9px;border-radius:6px;background:#fff4df;color:#a36600;font-weight:700}.logistics-cell{min-width:190px;line-height:1.7}.received-time{margin-top:5px;color:#13805c;font-size:12px;font-weight:700}.order-actions{min-width:150px}.order-actions button{margin:3px}.service-role #selectAllAccounts,.service-role #selectAllOrders{visibility:hidden}
.fee-amount{color:#d9482f;font-size:16px;font-weight:800}#logisticsFeeDialog{width:min(520px,92vw)}#logisticsFeeForm>label{display:block;margin-top:16px}#logisticsFeeForm>label input{display:block;width:100%;margin-top:7px}.order-fee{margin-top:5px;color:#80631b;font-weight:650}.order-payable{margin-top:5px;color:#1769e0;font-weight:800}.payment-split{margin-top:7px;color:#52647c;font-size:12px}.invoice-cell{min-width:150px}.invoice-status{display:inline-block;padding:4px 8px;border-radius:6px;font-weight:700}.invoice-status.pending{background:#fff4df;color:#a36600}.invoice-status.issued{background:#e7f8f1;color:#13805c}.invoice-amount{margin-top:7px;color:#1769e0;font-weight:700}.invoice-link{display:inline-block;margin-top:7px;color:#1769e0}.invoice-upload{display:block;margin-top:7px}.locked-order-note{margin-bottom:10px;padding:10px 12px;border-radius:8px;background:#fff7e6;color:#7c5814;font-size:12px;line-height:1.6}
.log-source{display:inline-block;padding:5px 9px;border-radius:7px;font-size:12px;font-weight:700}.log-source.frontend{background:#e7f8f1;color:#13805c}.log-source.backend{background:#edf4ff;color:#1769e0}.log-time{min-width:145px}.log-detail{min-width:360px;max-width:620px;white-space:normal;word-break:break-word;line-height:1.65;color:#526071}#operationLogs .toolbar-group>input{width:360px}
.pagination-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:14px;padding:12px 16px;background:#fff;border:1px solid #e3e9f2;border-radius:12px;color:#64748b;font-size:14px}.pagination-bar>div{display:flex;align-items:center;gap:8px}.pagination-bar button{min-width:76px}.pagination-bar button:disabled{opacity:.45;cursor:not-allowed}.pagination-size{height:36px;padding:0 30px 0 10px;border:1px solid #d9e1ec;border-radius:8px;background:#fff;color:#40516a}
.order-amount-cell{min-width:150px}.order-amount-cell .order-total{font-size:18px;color:#1769e0}.order-amount-cell .payment-split{line-height:1.7}
.announcement-title-cell{display:flex;align-items:center;gap:8px;min-width:180px}.announcement-pinned{display:inline-block;padding:3px 7px;border-radius:5px;background:#fff0e7;color:#df432e;font-size:11px;font-weight:700}.announcement-content-cell{max-width:420px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#526071}.announcement-status{display:inline-block;padding:5px 9px;border-radius:6px;font-size:12px;font-weight:700}.announcement-status.published{background:#e7f8f1;color:#13805c}.announcement-status.draft{background:#f1f3f6;color:#7d8797}#announcementDialog{width:min(680px,92vw)}#announcementForm>label{display:block;margin-top:16px}#announcementForm>label input,#announcementForm>label textarea,#announcementForm .form-grid select{display:block;width:100%;margin-top:7px}#announcementForm textarea{resize:vertical;line-height:1.7}
