:root{--ink:#253b53;--muted:#59718a;--line:#d8e5f3;--line-strong:#c5d7ea;--card:#ffffff;--page:#f1f6fc;--accent:#306eb1;--accent-strong:#2e66a7;--accent-soft:#e8f2ff;--danger:#b42318;--danger-soft:#fef3f2;--ok:#027a48;--ok-soft:#ecfdf3;--warn:#b54708;--warn-soft:#fffaeb;--radius:14px;--radius-sm:10px;--shadow:0 8px 30px #3240640d;--shadow-lg:0 16px 40px rgba(32,57,80,0.16);--primary-fill:linear-gradient(145deg,#3d7fc4,#2e66a7);--glow-violet:#dce9fc;--glow-blue:#e3f2ff}*{box-sizing:border-box}body,html{min-height:100%}body{margin:0;color:var(--ink);font-family:Microsoft YaHei,PingFang SC,system-ui,sans-serif;background:radial-gradient(ellipse at 5% 5%,var(--glow-violet) 0,transparent 45%),radial-gradient(ellipse at 95% 40%,var(--glow-blue) 0,transparent 45%),var(--page);background-attachment:fixed}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}h1{font-size:22px;line-height:30px}h1,h2{margin:0;font-weight:650}h2{font-size:14px;line-height:20px}p{margin:0}.shell{min-height:100vh;display:grid;grid-template-columns:216px minmax(0,1fr);grid-gap:18px;gap:18px;padding:16px;background:transparent}.topbar{display:none}.account,.brand{display:flex;align-items:center;gap:10px;min-width:0}.brand img{width:40px;height:40px;object-fit:contain}.account span,.brand span{display:grid;grid-gap:2px;gap:2px;min-width:0}.brand strong{font-size:16px;line-height:1.15}.account small,.brand small,.muted{color:var(--muted);font-size:12px;line-height:18px}.avatar{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:linear-gradient(145deg,#d8eaff,#aacffb);color:#205da9;font-size:12px;font-weight:700}.sidebar{position:-webkit-sticky;position:sticky;top:16px;height:calc(100dvh - 32px);display:flex;flex-direction:column;overflow:hidden;padding:16px 12px 12px;border:1px solid var(--line);border-radius:18px;background:color-mix(in srgb,var(--card) 74%,transparent);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:var(--shadow);color:var(--ink)}.sidebar .brand{padding:2px 8px 16px;border-bottom:1px solid var(--line);margin-bottom:12px}.nav{display:grid;align-content:start;grid-gap:5px;gap:5px;flex:1 1 auto;min-height:0;overflow:auto}.nav a{min-height:44px;display:flex;align-items:center;padding:0 12px;border-radius:12px;color:var(--muted);font-size:14px;line-height:20px;transition:background .16s ease,color .12s ease}.nav a:focus-visible,.nav a:hover{background:color-mix(in srgb,var(--card) 92%,transparent);color:var(--ink)}.nav a[aria-current=page]{background:var(--accent);color:#fff;font-weight:650}.nav-group{display:grid;grid-gap:4px;gap:4px}.nav-group-toggle{min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;padding:0 12px;border:0;border-radius:12px;background:transparent;color:var(--muted);font-size:14px;line-height:20px;font-weight:650;text-align:left}.nav-group-toggle:focus-visible,.nav-group-toggle:hover{background:color-mix(in srgb,var(--card) 92%,transparent);color:var(--ink)}.nav-caret{font-size:12px;line-height:1;opacity:.8}.nav-sub{display:grid;grid-gap:2px;gap:2px;padding:0 0 4px 10px;margin-left:8px;border-left:2px solid var(--line)}.nav-sub-link{min-height:38px!important;padding:0 10px!important;font-size:13px!important;border-radius:10px!important}.shop-split{display:grid;grid-template-columns:minmax(220px,280px) minmax(0,1fr);grid-gap:12px;gap:12px;align-items:start}@media (max-width:960px){.shop-split{grid-template-columns:1fr}}.shop-list{display:grid;grid-gap:6px;gap:6px;max-height:min(70vh,720px);overflow:auto;padding:10px}.shop-list-item{display:grid;grid-gap:2px;gap:2px;width:100%;text-align:left;border:1px solid var(--line);border-radius:10px;background:var(--card);padding:10px 12px;color:var(--ink)}.shop-list-item:focus-visible,.shop-list-item:hover{border-color:var(--line-strong);background:var(--accent-soft)}.shop-list-item[aria-current=true]{border-color:var(--accent);background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent)}.side-foot{flex-shrink:0;margin-top:auto;display:grid;grid-gap:10px;gap:10px;padding-top:12px;border-top:1px solid var(--line);background:transparent}.danger,.ghost,.link-btn,.primary,.text-button,a.ghost,a.link-btn,a.primary{min-height:40px;border-radius:var(--radius-sm);padding:0 12px;font-size:13px;line-height:20px;font-weight:600}.text-button{width:100%;border:0;background:transparent;color:var(--muted);text-align:left}.text-button:hover{background:var(--card);color:var(--ink)}.workspace{min-width:0;display:grid;align-content:start;grid-gap:12px;gap:12px;padding:4px 4px 8px}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}.page-head .desc{margin-top:4px;color:var(--muted);font-size:13px;line-height:20px}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius);background:color-mix(in srgb,var(--card) 86%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:var(--shadow)}.toolbar-filters{align-items:end}.toolbar-actions,.toolbar-filters{display:flex;gap:8px;flex-wrap:wrap}.auth-card,.metric-card,.panel{border:1px solid var(--line);border-radius:var(--radius);background:color-mix(in srgb,var(--card) 92%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:var(--shadow)}.panel{padding:0;overflow:hidden;background:var(--card)}.panel-pad{padding:16px}.auth-stage{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(ellipse at 5% 5%,var(--glow-violet) 0,transparent 45%),radial-gradient(ellipse at 95% 40%,var(--glow-blue) 0,transparent 45%),var(--page)}.auth-card{width:min(420px,100%);display:grid;grid-gap:12px;gap:12px;padding:20px;background:var(--card)}.auth-card .brand{margin-bottom:4px}.captcha-row{display:grid;grid-template-columns:minmax(0,1fr) 140px;grid-gap:8px;gap:8px;align-items:stretch}.captcha-image{min-height:40px;padding:0;border:1px solid var(--line);border-radius:var(--radius-sm);background:#e8f2ff;cursor:pointer;overflow:hidden;display:grid;place-items:center;color:var(--muted);font-size:12px}.captcha-image img{display:block;width:140px;height:48px}.captcha-image:hover{outline:2px solid #88c4ff;outline-offset:0}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:12px;gap:12px}.metric-card{min-height:104px;padding:14px 16px;display:grid;align-content:space-between;background:var(--card)}.metric-card strong{font-size:28px;line-height:34px;font-weight:650}.metric-card span{color:var(--muted);font-size:13px}.stack{display:grid;grid-gap:12px;gap:12px}.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.row input{width:200px}label{display:grid;grid-gap:6px;gap:6px;font-size:13px;line-height:20px;color:var(--ink)}input,select,textarea{width:100%;min-height:40px;border:1px solid var(--line);border-radius:var(--radius-sm);padding:8px 12px;background:white}textarea{min-height:88px;resize:vertical}input:focus,select:focus,textarea:focus{outline:2px solid #88c4ff;border-color:#52a5f7}.primary,a.primary{display:inline-flex;align-items:center;justify-content:center;border:0;background:var(--primary-fill);color:white}.primary:hover,a.primary:hover{background:var(--accent-strong)}.danger{border:0;background:var(--danger);color:white}.ghost,a.ghost{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);background:white;color:var(--ink)}.link-btn,a.link-btn{border:0;background:transparent;color:var(--accent);padding:0 6px;min-height:28px;line-height:28px;text-decoration:none}.link-btn:hover,a.link-btn:hover{text-decoration:underline}.link-btn.danger-text{color:var(--danger)}.danger:disabled,.ghost:disabled,.link-btn:disabled,.primary:disabled{opacity:.55;cursor:default}.message{color:var(--danger)}.message,.ok{font-size:13px}.ok{color:var(--ok)}.loading{color:var(--muted);font-size:13px}.table-wrap{overflow-x:auto}.detail-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:12px}.detail-title{margin:0;font-size:20px;line-height:28px;font-weight:650}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px 0}.panel-head h2{margin:0;font-size:16px;line-height:24px;font-weight:650}table.data-table{width:100%;border-collapse:collapse;background:white}.data-table td,.data-table th{border-bottom:1px solid var(--line);padding:11px 12px;text-align:left;vertical-align:middle;font-size:13px;line-height:20px}.data-table th{background:#f5f9fd;color:var(--muted);font-size:12px;font-weight:650;white-space:nowrap}.data-table tbody tr:hover{background:#f7fbff}.data-table .cell-main{display:grid;grid-gap:2px;gap:2px}.data-table .ops{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end;white-space:nowrap}.badge{display:inline-flex;align-items:center;min-height:22px;padding:0 8px;border-radius:999px;font-size:12px;font-weight:650}.badge-ok{background:var(--ok-soft);color:var(--ok)}.badge-off{background:#eef3f8;color:var(--muted)}.badge-pending{background:#fff4df;color:#9a6b00}.badge-warn{background:var(--warn-soft);color:var(--warn)}.checks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:8px;gap:8px;padding:10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--accent-soft)}.checks label,label.check{width:auto;grid-auto-flow:column;justify-content:start;align-items:center;font-size:13px}.checks input,label.check input{width:auto;min-height:0}.dialog-backdrop{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:20px;background:rgba(37,59,83,.36)}.dialog{width:min(520px,100%);max-height:min(86vh,760px);overflow:auto;border:1px solid var(--line);border-radius:18px;background:white;box-shadow:var(--shadow-lg)}.dialog-wide{width:min(720px,100%)}.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid var(--line);position:-webkit-sticky;position:sticky;top:0;background:color-mix(in srgb,white 92%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.dialog-close{min-height:32px}.dialog-body{padding:16px;display:grid;grid-gap:12px;gap:12px}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;padding-top:4px}.empty{padding:36px 16px;text-align:center;color:var(--muted);font-size:13px}@media (max-width:960px){.shell{grid-template-columns:1fr}.sidebar{position:static;height:auto}.nav,.sidebar{overflow:visible}.nav{flex:none;min-height:unset}.checks,.metric-grid{grid-template-columns:1fr 1fr}}@media (max-width:640px){.checks,.metric-grid{grid-template-columns:1fr}.shell{padding:10px;gap:12px}}.async-feedback-spinner,[role=status][data-loading-feedback=true]:before,button[data-loading-feedback=true]:after,button[data-request-loading=true]:after{content:"";display:inline-block;width:14px;height:14px;flex:0 0 14px;border:2px solid;border-right:2px solid transparent;border-radius:50%;animation:async-feedback-spin var(--s25-motion-loading-spin,.8s) var(--s25-easing-loading-spin,linear) infinite;vertical-align:middle}button[data-loading-feedback=true]:after,button[data-request-loading=true]:after{position:absolute;right:3px;top:3px;width:10px;height:10px;pointer-events:none}button[data-loading-feedback=true],button[data-request-loading=true]{position:relative}[role=status]:has(.async-feedback-spinner):before,button:has(.async-feedback-spinner,.ds-spinner):after{display:none}[role=status][data-loading-feedback=true]:before{margin-right:8px}.async-feedback-loading,.async-feedback-notice{position:fixed;z-index:var(--layer-toast,1100);display:flex;align-items:center;gap:8px;padding:10px 14px;border:1px solid var(--line,#a8c8eb);border-radius:12px;background:var(--card,#f7fbff);color:var(--ink,#253853);box-shadow:0 6px 24px #1769e022;font-size:13px;pointer-events:none}.async-feedback-loading{left:50%;top:82px;transform:translateX(-50%)}.async-feedback-notice{right:18px;bottom:24px;max-width:calc(100vw - 24px);flex-wrap:wrap;pointer-events:auto}.async-feedback-notice button{min-height:36px}.async-feedback-flight{position:fixed;z-index:var(--layer-toast,1100);display:grid;place-items:center;width:28px;height:28px;margin:-14px;border-radius:50%;background:var(--accent-soft,#dceeff);color:var(--accent,#1769e0);box-shadow:0 0 18px #52a5f780;pointer-events:none;animation:async-feedback-fly var(--s25-motion-background-flight,.85s) var(--s25-easing-background-flight,cubic-bezier(.22,.68,.2,1)) both}[data-feedback-highlight=true]{outline:2px solid #52a5f7!important;outline-offset:3px;box-shadow:0 0 18px #52a5f755!important}[data-feedback-island][data-feedback-highlight=true]{animation:async-feedback-island var(--s25-motion-task-arrival,.9s) var(--s25-easing-task-arrival,ease-out)!important}[data-feedback-task-center][data-feedback-highlight=true]{animation:async-feedback-glow var(--s25-motion-task-glow,1.6s) var(--s25-easing-task-glow,ease-in-out) 3!important}@keyframes async-feedback-spin{to{transform:rotate(1turn)}}@keyframes async-feedback-fly{0%{opacity:0;transform:translate(0) scale(.6)}12%{opacity:1;transform:translateY(-18px) scale(1.1)}85%{opacity:1}to{opacity:0;transform:translate(var(--flight-x),var(--flight-y)) scale(.3)}}@keyframes async-feedback-island{40%{transform:translateY(-4px) scale(1.04)}}@keyframes async-feedback-glow{50%{box-shadow:0 0 26px #52a5f7aa}}@media (prefers-reduced-motion:reduce){.async-feedback-flight{display:none}.async-feedback-spinner,[data-feedback-highlight=true],[data-loading-feedback=true]:after,[data-loading-feedback=true]:before,[data-request-loading=true]:after{animation:none!important}}