@charset "UTF-8";
.analysis-filters{margin:0 0 24px;padding:16px;background:#fff;border:1px solid #e9ecf3;border-radius:10px}.analysis-filters .text-button{align-self:end;margin-bottom:10px}.metric-card h2{font-size:29px;margin:15px 0 10px}.dialog-form form,#task-form,#user-form{display:flex;flex-direction:column;gap:18px}.pill.success{background:#eaf7f1;color:#399878}.pill.warning{background:#fcf5e8;color:#b58a3e}.task-content h3{margin-top:8px}
:root{--bg:#f5f6fa;--card:#fff;--ink:#202944;--muted:#81899d;--line:#e9ecf3;--blue:#3456dc;--blue-light:#edf1ff;--sidebar:#fff;--radius:14px;--shadow:0 6px 30px #22335b05;font-family:Inter,"Segoe UI","Microsoft YaHei",sans-serif;color:var(--ink);font-synthesis:none}
*{box-sizing:border-box}body{margin:0;background:var(--bg);font-size:14px}a{color:var(--blue);text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}button:focus-visible,a:focus-visible{outline:3px solid #7691f6;outline-offset:3px}h1,h2,h3,h4,p{margin:0}h1{font-size:29px;letter-spacing:-.8px;font-weight:650;line-height:1.4}h2{font-size:16px;font-weight:650}h3{font-size:15px}p{line-height:1.75}small,.small{font-size:12px}strong{font-weight:600}svg{width:20px;height:20px;flex-shrink:0}.muted{color:var(--muted)}.blue{color:var(--blue)}.nowrap{white-space:nowrap}.full{width:100%}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid #dce1ed;border-radius:8px;padding:10px 17px;background:#fff;min-height:39px;color:#49526a;white-space:nowrap;font-size:13px;font-weight:550;transition:background .15s,box-shadow .15s}.button:hover{background:#f6f8ff}.button.primary{background:var(--blue);border-color:var(--blue);color:#fff}.button.primary:hover{background:#2445c7;box-shadow:0 4px 12px #3456dc30}.button.danger{color:#cd4e50;border-color:#efcfd0}.text-button{background:none;border:0;color:var(--blue);padding:4px;white-space:nowrap;font-size:13px}.text-button:hover{text-decoration:underline}.icon-button{background:none;border:0;color:#8290ad;border-radius:6px;font-size:22px;line-height:1;padding:8px}.icon-button:hover{background:var(--blue-light)}
.workspace{display:flex;min-height:100vh}.sidebar{width:242px;flex-shrink:0;position:fixed;top:0;bottom:0;background:var(--sidebar);border-right:1px solid var(--line);padding:30px 20px;display:flex;flex-direction:column;z-index:10}.brand{display:flex;align-items:center;gap:11px;color:var(--ink);font-weight:650;font-size:17px;letter-spacing:-.5px}.brand-mark{display:flex;align-items:center;justify-content:center;background:var(--blue);color:#fff;width:38px;height:38px;border-radius:11px;font-size:21px;box-shadow:0 4px 12px #3456dc22}.brand small{display:block;font-size:8px;font-weight:500;letter-spacing:1.2px;margin-top:5px;color:#939aaf}.nav-caption{color:#a2a8b7;font-size:11px;letter-spacing:1px;padding:0 15px;margin:22px 0 12px}.nav-item{display:flex;align-items:center;gap:13px;color:#70798e;border-radius:9px;margin-bottom:6px;padding:13px 14px;font-size:13px}.nav-item:hover{background:#f7f8fc}.nav-item.active{color:var(--blue);background:var(--blue-light);font-weight:600}.tiny-tag{font-size:8px;letter-spacing:.3px;margin-left:auto}.sidebar-bottom{margin-top:auto;padding:25px 14px 0}.local-status{display:flex;align-items:center;gap:7px;color:#7a869b;font-size:11px}.local-status i{width:6px;height:6px;border-radius:100%;background:#48b699}.sidebar-note{line-height:1.9;color:#a2a8b7;font-size:10px;margin-top:17px}.main-column{margin-left:242px;flex:1;min-width:0;display:flex;flex-direction:column}.topbar{height:77px;display:flex;align-items:center;justify-content:space-between;padding:0 40px;background:#fff;border-bottom:1px solid var(--line)}.breadcrumb{font-size:12px;color:#9097a7;display:flex;gap:13px}.breadcrumb strong{font-weight:500;color:#4c5771}.topbar-right{display:flex;align-items:center;gap:12px}.version-tag{color:#818ba2;font-size:10px;border:1px solid #e8ebf2;background:#fafbfe;padding:5px 9px;border-radius:5px;margin-right:10px}.user-avatar{width:29px;height:29px;display:grid;place-items:center;background:#e9edfc;color:#5169b2;font-size:11px;border-radius:50%}.username{font-size:12px;color:#647088}.mobile-menu{display:none}#page{padding:34px 40px 32px;max-width:1670px;width:100%;margin:0 auto;flex:1}footer{display:flex;justify-content:space-between;color:#a5abba;font-size:10px;padding:18px 40px;border-top:1px solid var(--line);margin:0 40px}footer span{font-size:10px}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:27px}.eyebrow{display:block;color:#909ab2;letter-spacing:1.7px;font-size:9px;font-weight:600;margin-bottom:8px}.page-heading p{color:#8991a4;margin-top:7px;font-size:12px}.heading-right{display:flex;align-items:center;gap:12px}.date-label{color:#939aad;font-size:11px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:23px;margin-bottom:22px;min-width:0}.card-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:21px}.card-heading p{font-size:11px;color:#9199a9;margin-top:5px}.card-footnote,.page-note{color:#8e98ad;font-size:11px;line-height:1.8}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-bottom:23px}.metric-card{background:#fff;border:1px solid var(--line);padding:23px 25px;border-radius:var(--radius);box-shadow:var(--shadow)}.metric-card strong{display:block;margin:15px 0 10px;font-size:30px;font-weight:600;letter-spacing:-.6px;white-space:nowrap}.metric-card span{font-size:10px;color:#98a0b2}.metric-label{font-size:12px;color:#7d889f}.metric-card.accent{background:#edf1ff;border-color:#e1e7fe}.metric-card.accent strong{color:#3356cf}.grid-two{display:grid;grid-template-columns:1fr 1fr;gap:22px}.grid-two.wide-left{grid-template-columns:1.65fr 1fr}.notice{display:flex;align-items:center;gap:13px;background:#eef2ff;border:1px solid #e3e9fc;border-radius:10px;padding:15px 18px;color:#5a6da7;margin-bottom:23px}.notice strong{font-size:12px}.notice p{font-size:11px;margin-top:3px;color:#7c89ac}.notice a{font-size:11px;margin-left:auto;white-space:nowrap}.notice-icon{font-size:20px;color:#667fc7}.demo-notice{background:#fff9eb;border-color:#f4ebd3;color:#977941}.demo-notice p{color:#ab997a}.demo-notice .notice-icon{color:#bea568}.error-notice{background:#fff0f0;border-color:#efd8d8;color:#b94545;display:block}.error-notice .button{margin-top:12px}.bar-chart{height:213px;display:flex;gap:10px;padding:5px 3px 0;border-bottom:1px solid #edf0f7;overflow:auto;align-items:stretch}.bar-column{flex:1;min-width:30px;display:flex;flex-direction:column;align-items:center;gap:10px;font-size:10px}.bar-column>span{font-size:10px;color:#8290ad}.bar-column small{font-size:9px;color:#9aA4b9;padding:7px 0}.bar-track{height:150px;width:100%;max-width:37px;display:flex;align-items:end;border-radius:5px;background:repeating-linear-gradient(to top,transparent 0,transparent 49px,#f7f8fc 49px,#f7f8fc 50px)}.bar{width:100%;background:linear-gradient(#6182ef,#3456dc);border-radius:5px 5px 0 0;min-height:2px}.platform{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;color:#6d7489;font-size:11px}.platform-tile{width:20px;height:20px;border-radius:6px;background:#eef1f7;color:#77839b;font-style:normal;font-size:11px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;flex:none}.platform.meituan .platform-tile{background:#ffc500;color:#1b1d21}.platform.jd .platform-tile{background:#e5463a;color:#fff}.platform.taobao .platform-tile{background:#ff8a3d;color:#fff}.platform-dot{width:7px;height:7px;background:#818ba7;border-radius:50%}.progress-track i.meituan{background:#e4b342}.progress-track i.taobao{background:#fa884e}.progress-track i.jd{background:#e26a75}.platform-row{margin-bottom:20px}.platform-row>div:first-child{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.platform-row strong{font-size:15px}.platform-row strong small{color:#adb4c4;font-size:10px;font-weight:400}.platform-row>span{display:block;font-size:10px;color:#9aa3b7;margin-top:7px;text-align:right}.progress-track{height:6px;background:#f3f5fa;border-radius:8px}.progress-track i{display:block;height:100%;border-radius:8px}.product-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid #f2f4f8;font-size:12px}.product-row:last-child{border:0}.product-row strong{font-weight:500;flex:1}.product-row>span:last-child{color:#536078;font-size:12px}.product-row small{font-size:10px;color:#a0a9bb}.rank{font-size:10px;color:#9ba5bc;width:23px}.rank.top{color:var(--blue);font-weight:600}.insight{display:flex;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid #f1f3f7}.insight>div{flex:1}.insight strong{font-size:11px;font-weight:500}.insight p{font-size:10px;color:#99a3b8;margin-top:4px}.insight a{font-size:10px}.insight-icon{height:30px;width:30px;display:grid;place-items:center;border-radius:8px;background:var(--blue-light);color:var(--blue);font-size:16px;flex-shrink:0}.insight-icon.amber{background:#fcf5e6;color:#b69243}.insight-icon.green{background:#eaf7f3;color:#5baf9e}.settlement-note{background:#f8f9fc;border-radius:8px;padding:11px 13px;margin-top:15px;font-size:11px;color:#8490a7}.settlement-note strong{font-size:12px;color:#4f607d}.settlement-note small{display:block;font-size:9px;margin-top:5px;color:#9ca7bb}.onboarding{display:flex;align-items:center;justify-content:space-between;gap:20px}.onboarding p{font-size:12px;color:#8c98ad;margin-top:6px}.pill{display:inline-block;font-size:10px;padding:5px 9px;border-radius:5px;background:#eff2f7;color:#8390a7;white-space:nowrap}.pill.completed,.pill.done,.pill.enabled{background:#eaf7f1;color:#399878}.pill.preparing,.pill.ready,.pill.delivering{background:#edf2fe;color:#5178ce}.pill.cancelled,.pill.refunded,.pill.disabled{background:#fceff0;color:#c16870}.pill.new,.pill.pending,.pill.refunding,.pill.amber{background:#fcf5e8;color:#b58a3e}.pill.subtle{background:#f5f7fb;color:#929fb7}.loading-screen,.page-loading{padding:100px 30px;color:#8d98b0;text-align:center}.empty-state{text-align:center;padding:44px 16px;color:#8c98ad;grid-column:1/-1}.empty-state h3{font-size:14px;color:#596986;margin-bottom:8px}.empty-state p{font-size:12px;margin-bottom:17px}.empty-symbol{width:43px;height:43px;display:grid;place-items:center;background:#f0f3fb;border-radius:12px;margin:0 auto 16px;color:#8b9bc2;font-size:25px}.table-wrap{overflow-x:auto}.data-table{width:100%;border-collapse:collapse;font-size:11px;text-align:left}.data-table th{font-weight:500;color:#8d98ae;padding:13px 12px;background:#f8f9fc;border-bottom:1px solid var(--line);white-space:nowrap}.data-table td{padding:18px 12px;border-bottom:1px solid #f0f2f7;color:#697691}.data-table tbody tr:hover{background:#fafbfe}.data-table td strong{color:#4b5974;font-size:11px;font-weight:550}.data-table td small{display:block;color:#a2acc0;font-size:10px;margin-top:5px;max-width:320px;line-height:1.7}.data-table tr:last-child td{border-bottom:0}.items-cell{min-width:160px;max-width:290px;line-height:1.8}.money-cell{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600;color:#495975!important}.filter-bar{display:flex;align-items:end;gap:10px;flex-wrap:wrap;padding-bottom:21px;border-bottom:1px solid var(--line)}label{display:flex;flex-direction:column;gap:8px;color:#59687d;font-size:12px}input,select,textarea{background:#fff;border:1px solid #e0e5ef;border-radius:7px;min-height:39px;color:#4c5b78;padding:9px 11px;outline:none;max-width:100%}input::placeholder,textarea::placeholder{color:#b0b7c7;font-size:12px}input:focus,select:focus,textarea:focus{border-color:#96a8ee;box-shadow:0 0 0 3px #dce4ff5c}.filter-bar label{font-size:10px;color:#8e99ad}.filter-bar select{min-width:106px;font-size:11px}.filter-bar input{font-size:11px}.search-field{flex:1;min-width:130px}.filter-bar input[type=date]{width:137px;padding:9px 7px}.table-summary{display:flex;justify-content:space-between;padding:19px 0;font-size:11px;color:#939eb3}.table-summary strong{color:#4663b8}.source-tag{font-size:9px;color:#8293b2}.source-tag.demo{color:#b99a64}.orders-card{padding:23px 23px 10px}.stores-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.store-card{padding:21px}.store-top{display:flex;justify-content:space-between;gap:10px}.connection-status{font-size:10px;color:#9ca6b9;display:flex;align-items:center;gap:5px}.connection-status i{width:5px;height:5px;border-radius:50%;background:#b0b7c8}.connection-status.connected{color:#5ba895}.connection-status.connected i{background:#5ba895}.connection-status.error,.connection-status.expired{color:#c57579}.store-identity{display:flex;align-items:center;gap:12px;margin:25px 0}.store-avatar{height:43px;width:43px;display:grid;place-items:center;background:#edf1ff;border-radius:10px;color:#7d94cc;font-size:17px}.store-avatar.meituan{background:#fcf6e6;color:#bd9b4d}.store-avatar.taobao{background:#fff1e8;color:#d49370}.store-avatar.jd{background:#fceff0;color:#c5828a}.store-identity h2{font-size:14px}.store-identity p{font-size:10px;margin-top:6px;color:#a2abc0}.store-meta{display:flex;justify-content:space-between;padding:12px 0;border-top:1px solid #f1f3f8;font-size:10px;color:#9ea8bc}.store-meta strong{color:#8795af;font-weight:400}.store-actions{display:flex;gap:8px;margin:16px 0}.store-actions .button{padding:8px 10px;font-size:11px;flex:1}.store-error{padding:9px 10px;background:#fff4f3;color:#b57c7c;border-radius:6px;font-size:10px;line-height:1.7}.integration-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.integration-item{padding:7px 18px 6px;border-right:1px solid var(--line)}.integration-item:first-child{padding-left:0}.integration-item:last-child{border:0}.integration-item strong{display:block;font-size:12px;margin:13px 0 8px}.integration-item p{color:#99a3b7;font-size:11px}.integration-item small{color:#abb3c3;font-size:9px;display:block;margin-top:13px}.catalog-table code{font-size:9px;overflow-wrap:anywhere;color:#8996ae}.catalog-table td{vertical-align:top}.catalog-table th:nth-child(3){width:35%}.task-row{display:flex;align-items:center;gap:15px;border-bottom:1px solid var(--line);padding:18px 0}.task-row:last-child{border:0}.task-content{flex:1;min-width:0}.task-content h3,.task-content strong{font-size:13px;overflow-wrap:anywhere}.task-content p,.task-content small{font-size:11px;color:#929eb3;display:block;margin-top:5px}.task-row.done .task-content h3,.task-row.done .task-content strong{text-decoration:line-through;color:#96a3b8}.task-row .button{padding:8px 11px;font-size:11px}.task-meta{font-size:11px;color:#9aa6bb}.toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;gap:12px}.field{display:flex;flex-direction:column;gap:8px}.grid-three{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.form-error{color:#c76767;font-size:12px;min-height:15px}.task-checkbox{appearance:none;width:19px;height:19px;min-height:0;padding:0;border:1px solid #cbd4e5;border-radius:5px;cursor:pointer}.task-checkbox:checked{background:var(--blue);border-color:var(--blue)}.task-checkbox:checked:after{content:'✓';display:block;text-align:center;color:#fff;line-height:17px;font-size:12px}.status-dot{width:6px;height:6px;background:#51ae92;border-radius:100%;display:inline-block;margin-right:5px}hr{border:0;border-top:1px solid var(--line);margin:10px 0}dl{display:grid;grid-template-columns:90px 1fr;gap:12px;line-height:1.6;font-size:12px}dt{color:#9aa5b9}dd{margin:0;color:#53647f;overflow-wrap:anywhere}.order-detail h3{margin:18px 0}.order-detail h4{margin:24px 0 12px;font-size:12px}.detail-item{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:10px 0;font-size:12px}.order-detail{padding:6px 0}.dialog-form{display:flex;flex-direction:column;gap:18px}.dialog-form label{font-size:12px}.dialog-form p{font-size:12px}.dialog-form .full{margin-top:4px}dialog{border:1px solid #e0e6f0;border-radius:17px;box-shadow:0 30px 120px #14245533;padding:28px;width:460px;max-width:calc(100% - 32px);color:var(--ink);max-height:calc(100vh - 50px);overflow-y:auto;overscroll-behavior:contain}dialog::backdrop{background:#18254457;backdrop-filter:blur(3px)}.modal-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.modal-heading h2{font-size:17px}.modal-heading button{font-size:23px;padding:4px}#toast{position:fixed;bottom:27px;left:50%;transform:translateX(-50%) translateY(20px);opacity:0;pointer-events:none;max-width:calc(100% - 30px);border-radius:10px;background:#233452;color:#fff;padding:13px 21px;font-size:12px;box-shadow:0 10px 35px #15213930;transition:opacity .18s,transform .18s;z-index:99;line-height:1.7}#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}#toast.error{background:#a14f56}
.auth-layout{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.auth-brand{background:#edf1ff;display:flex;flex-direction:column;padding:52px 64px;position:relative;overflow:hidden}.auth-brand:after{content:'';position:absolute;border:1px solid #d6def9;border-radius:50%;height:550px;width:550px;left:-100px;bottom:-350px;box-shadow:0 0 0 80px #e5ebfc,0 0 0 81px #d9e2fb,0 0 0 160px #eaf0ff,0 0 0 161px #dce4f9}.auth-brand .brand{color:#344c9b}.auth-copy{position:relative;z-index:1;margin:auto 0}.auth-copy .eyebrow{color:#7185bb;font-size:11px;letter-spacing:1px}.auth-copy h1{font-size:49px;line-height:1.55;letter-spacing:-2px;font-weight:600;margin:21px 0;color:#304987}.auth-copy p{color:#8598c0;font-size:14px;margin-top:25px}.auth-platforms{display:flex;gap:11px;margin-top:35px}.auth-platforms span{background:#ffffff75;border:1px solid #dfe6fa;border-radius:6px;font-size:11px;padding:8px 13px;color:#7d90b9}.auth-brand>small{color:#9aaad0;position:relative;z-index:1;font-size:11px}.auth-panel{display:flex;align-items:center;justify-content:center;padding:40px;background:#fff}.auth-form{width:340px;max-width:100%;display:flex;flex-direction:column;gap:20px}.auth-form .eyebrow{font-size:9px;color:#5974cf;letter-spacing:1.4px;margin-bottom:0}.auth-form h2{font-size:27px;font-weight:600;letter-spacing:-.5px;margin-top:2px}.auth-form>p{font-size:12px;color:#99a4b8;margin-top:-10px}.auth-form label{font-size:12px;color:#7c89a3}.auth-form input{height:44px;border-radius:8px}.auth-form .button{height:45px;justify-content:space-between;padding:0 18px;font-size:13px}.auth-form .form-error{color:#c2676b}.auth-form>p.auth-footnote{font-size:10px;text-align:center;margin:5px 0 0;line-height:1.9}.auth-form>p.form-error{margin:0;min-height:4px}
@media(min-width:1550px){#page{padding:40px 50px}.topbar{padding:0 50px}.metrics{gap:23px}.metric-card{padding:28px}.bar-chart{height:235px}.bar-track{height:175px}}
/* 全屏看板：顶栏（面包屑/账号/退出）与页脚收起，页面留边也压到最小，整屏用来显示订单 */
body.board-fullscreen .topbar,body.board-fullscreen footer{display:none}
body.board-fullscreen #page{padding:10px 14px;max-width:none}
@media(max-width:1200px){.sidebar{width:212px;padding:27px 16px}.main-column{margin-left:212px}#page{padding:28px}.topbar{padding:0 28px}.metrics{gap:12px}.metric-card{padding:20px 17px}.metric-card strong{font-size:25px}.stores-grid{grid-template-columns:repeat(2,1fr)}.date-label{display:none}.auth-brand{padding:45px}.auth-copy h1{font-size:42px}}
@media(max-width:960px){.grid-two.wide-left{grid-template-columns:1fr}.metrics{grid-template-columns:repeat(2,1fr)}.grid-two{gap:16px}.card{padding:20px}.stores-grid{grid-template-columns:1fr}.integration-grid{grid-template-columns:1fr}.integration-item{padding:16px 0;border-right:0;border-bottom:1px solid var(--line)}.integration-item:last-child{border:0}.auth-layout{grid-template-columns:.9fr 1.1fr}.auth-brand{padding:38px 27px}.auth-copy h1{font-size:32px}.auth-platforms{gap:5px;flex-wrap:wrap}}
@media(max-width:760px){.sidebar{transform:translateX(-100%);transition:transform .2s;width:240px;box-shadow:10px 0 50px #223b5920}.sidebar.expanded{transform:translateX(0)}.main-column{margin-left:0}.mobile-menu{display:block;margin-right:12px}.topbar{padding:0 18px;height:65px}.breadcrumb{margin-right:auto;gap:8px;font-size:11px}.topbar-right{gap:7px}.username,.version-tag{display:none}#page{padding:25px 18px}.page-heading{flex-wrap:wrap;align-items:start;margin-bottom:21px}.heading-right{margin-top:5px}.page-heading h1{font-size:25px}.page-heading p{font-size:11px}.eyebrow{font-size:8px}.grid-two{grid-template-columns:1fr}.metrics{gap:11px}.metric-card{padding:18px 15px}.metric-card strong{font-size:24px}.metric-card span{font-size:9px}.notice{padding:13px;align-items:start;gap:10px}.notice a{display:none}.card{padding:19px;margin-bottom:18px}.onboarding{flex-direction:column;align-items:start}.filter-bar{gap:10px}.filter-bar label{flex:1;min-width:calc(50% - 10px)}.filter-bar select,.filter-bar input[type=date]{width:100%}.filter-bar .button{align-self:end}.data-table{font-size:10px}.data-table td{padding:15px 9px}footer{margin:0 18px;padding:18px 0;font-size:9px}footer span{font-size:8px}.auth-layout{display:block}.auth-brand{min-height:220px;padding:26px}.auth-copy{margin:26px 0 0}.auth-copy h1{font-size:29px;margin:8px 0;line-height:1.45}.auth-copy .eyebrow,.auth-copy p,.auth-platforms,.auth-brand>small{display:none}.auth-brand:after{height:300px;width:300px;bottom:-230px;left:150px}.auth-panel{padding:35px 28px}.auth-form{width:400px}.task-row{gap:10px}.task-row .button{padding:8px 9px}.task-row .task-meta{display:none}}
.store-avatar img{width:100%;height:100%;object-fit:cover;border-radius:10px}.store-actions{flex-wrap:wrap}.store-actions .icon-button{margin-left:auto}
/* 全屏看板：侧边栏收成窄条（只剩图标），鼠标移上去自动展开；展开是浮层，不挤压订单内容 */
@media(min-width:761px){
.workspace.nav-collapsed .sidebar{width:76px;padding:26px 12px;transition:width .18s ease,padding .18s ease,box-shadow .18s ease;z-index:60}
.workspace.nav-collapsed .main-column{margin-left:76px}
.workspace.nav-collapsed .sidebar .brand{justify-content:center}
.workspace.nav-collapsed .sidebar .brand>span:last-child,
.workspace.nav-collapsed .sidebar .nav-caption,
.workspace.nav-collapsed .sidebar .sidebar-bottom,
.workspace.nav-collapsed .sidebar .nav-item>span{display:none}
.workspace.nav-collapsed .sidebar .nav-item{justify-content:center;padding:13px 0}
.workspace.nav-collapsed .sidebar .nav-item svg{width:21px;height:21px;flex-shrink:0}
.workspace.nav-collapsed .sidebar:hover{width:252px;padding:30px 20px;box-shadow:10px 0 40px #223b5926}
.workspace.nav-collapsed .sidebar:hover .brand{justify-content:flex-start}
.workspace.nav-collapsed .sidebar:hover .brand>span:last-child,
.workspace.nav-collapsed .sidebar:hover .nav-caption,
.workspace.nav-collapsed .sidebar:hover .sidebar-bottom,
.workspace.nav-collapsed .sidebar:hover .nav-item>span{display:block}
.workspace.nav-collapsed .sidebar:hover .nav-item{justify-content:flex-start;padding:13px 14px}
}
.helper-card{display:flex;align-items:center;justify-content:space-between;gap:18px}.helper-summary{display:flex;align-items:center;gap:14px}.helper-summary h2{font-size:14px}.helper-summary p{font-size:12px;color:var(--muted);margin-top:6px}.helper-indicator{width:12px;height:12px;border-radius:50%;background:#b4bdcd;flex-shrink:0}.helper-indicator.online{background:#48b699;box-shadow:0 0 0 5px #eaf7f1}@media(max-width:760px){.helper-card{align-items:start;flex-direction:column}.helper-card .button{margin-left:26px}}
.connection-status.logged_in{color:#5ba895}.connection-status.logged_in i{background:#5ba895}.connection-status.expired{color:#c57579}.connection-status.expired i{background:#c57579}

.helper-device-card{padding:24px}.helper-device-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}.helper-device-heading .helper-summary{align-items:flex-start}.helper-device-heading .helper-indicator{margin-top:5px}.helper-device-heading h2{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:15px}.helper-state{font-size:10px;font-weight:500;padding:4px 8px;border-radius:5px;color:#8a93a8;background:#f2f4f8}.helper-state.is-online{color:#38967a;background:#edf8f2}.helper-summary p.helper-device-name{font-size:11px;color:#6c7b94}.helper-device-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:20px 0 0 26px}.helper-device-actions .text-button{font-size:11px;margin-left:4px}.helper-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;padding:18px 0 0;margin:18px 0 0 26px;list-style:none;border-top:1px solid var(--line)}.helper-steps li{display:flex;gap:10px;align-items:flex-start}.helper-steps li>span{width:23px;height:23px;display:grid;place-items:center;background:#eef2ff;color:#6179bd;border-radius:50%;font-size:11px;flex-shrink:0}.helper-steps strong{font-size:12px;font-weight:550}.helper-steps p{font-size:11px;color:var(--muted);margin-top:5px;line-height:1.8}.helper-device-footnote,.helper-server-message{font-size:11px;line-height:1.8;color:var(--muted);margin:16px 0 0 26px}.helper-server-message{color:#9b7b58;margin-top:8px}.helper-dialog-actions{display:flex;gap:10px;flex-wrap:wrap}.helper-setup-list{list-style:none;counter-reset:helper-step;padding:0;margin:0;display:flex;flex-direction:column;gap:18px}.helper-setup-list li{counter-increment:helper-step;position:relative;padding-left:30px}.helper-setup-list li:before{content:counter(helper-step);position:absolute;top:1px;left:0;width:21px;height:21px;display:grid;place-items:center;border-radius:50%;background:#eef2ff;color:#6179bd;font-size:11px}.helper-setup-list strong{font-size:12px;font-weight:600}.helper-setup-list p{color:var(--muted);margin-top:5px;line-height:1.8}.helper-setup-list .button{margin-top:10px;font-size:12px}.helper-setup-list p.small{font-size:10px}.helper-pairing .pair-output{display:flex;flex-direction:column;gap:14px;padding:16px;background:#f7f9fe;border:1px solid #e7ecf7;border-radius:9px}.helper-pairing .pair-output[hidden]{display:none}.pair-copy-row{display:flex;gap:8px;align-items:center}.pair-copy-row input{flex:1;min-width:0;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:11px}.pair-copy-row .button{padding:8px 11px;font-size:11px;flex-shrink:0}.helper-pair-feedback{padding:11px 13px;background:#eef2ff;border-radius:8px;color:#6379ad;line-height:1.8;overflow-wrap:anywhere}.helper-pairing .helper-admin-note{padding:10px 12px;background:#fff9eb;color:#977941;border-radius:8px;font-size:11px}.store-helper-hint{font-size:10px;color:#9b8d71;line-height:1.8;margin-top:8px}.store-identity p.store-owner{color:#7786a0;overflow-wrap:anywhere}.store-identity>div{min-width:0}.store-avatar{flex-shrink:0}.store-identity h2,.store-identity p{overflow-wrap:anywhere}
@media(max-width:960px){.helper-steps{gap:12px}.helper-device-heading{align-items:flex-start}.helper-device-heading>button{flex-shrink:0}}
@media(max-width:760px){.helper-device-card{padding:19px}.helper-device-heading{flex-direction:column;gap:15px}.helper-device-heading>button{margin-left:26px}.helper-device-actions{gap:9px}.helper-device-actions .button{font-size:11px;padding:9px 12px}.helper-device-actions .text-button{width:100%;text-align:left;margin:3px 0 0}.helper-steps{grid-template-columns:1fr;gap:14px}.helper-dialog-actions .button{flex:1;font-size:12px;padding:9px}.pair-copy-row{gap:6px}.helper-pairing .pair-output{padding:12px}}

.quick-range{display:flex;align-items:center;gap:10px;padding:14px 0 0;font-size:11px}.quick-range .text-button{margin:0}
.pager{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:16px 0 18px;font-size:11px;color:#939eb3}
.pager-actions{display:flex;align-items:center;gap:10px}.pager .text-button{margin:0}.pager .text-button[disabled]{color:#b9c0cf;cursor:not-allowed;text-decoration:none;pointer-events:none}
.pager .inline-label{flex-direction:row;align-items:center;gap:6px;font-size:11px;color:#939eb3}.pager select{min-height:30px;padding:4px 8px;font-size:11px;min-width:64px}
.item-lines{font-size:12.5px;font-weight:600;color:#3f4d68;line-height:1.85;overflow-wrap:anywhere}
.order-remark{display:inline-block;max-width:100%;margin-top:7px;padding:4px 8px;border-radius:6px;background:#fdf7e8;color:#b07c22;font-size:12.5px;font-weight:600;line-height:1.7;overflow-wrap:anywhere}
#order-results.orders-large .item-lines,#order-results.orders-large .order-remark{font-size:14.5px;font-weight:700}
#order-results.orders-large .order-remark{color:#96660f;background:#fbf1da}
/* 平台订单标签（京东无备注时后台显示的 【JD…】）：跟后台一致地原样显示，但弱化成浅灰小字 */
.order-remark.is-tag{background:#f3f4f6;color:#6b7280;font-weight:600;letter-spacing:.02em}
#order-results.orders-large .order-remark.is-tag{color:#6b7280;background:#f3f4f6}
.table-summary .text-button{margin:0}
.metrics.metrics-five{grid-template-columns:repeat(5,minmax(0,1fr))}
.metrics-five .metric-card.accent{box-shadow:0 10px 28px #3456dc14;border-color:#dbe3fe}
.metrics-five .metric-card.accent .metric-label{color:#4d6bd0}
.metrics-five .metric-card span{line-height:1.7}
.metric-card[data-metric="settlement"] strong{letter-spacing:-.8px}
@media(max-width:1180px){.metrics.metrics-five{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:960px){.metrics.metrics-five{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.metrics.metrics-five{grid-template-columns:1fr 1fr}}
.analysis-filters{border-bottom:0;padding-bottom:16px}
.analysis-filters .quick-range{flex-basis:100%;padding-top:15px;border-top:1px solid var(--line)}
@media(max-width:760px){.analysis-filters .quick-range{flex-wrap:wrap;gap:4px 10px}}
.pill.awaiting{background:#fff2df;color:#b8730f;border:1px solid #ffd9a6;font-weight:600}
.data-table tbody tr.row-awaiting td{background:#fffdf6}
.data-table tbody tr.row-awaiting td:first-child{box-shadow:inset 3px 0 0 #f0a63c}
.data-table tbody tr.row-awaiting:hover td{background:#fff9ec}
/* 预定单（预约送达）：紫色标签与左侧细线，和「待出餐」的橙色分开，一眼分清预约单与即时单。 */
.pill.book{background:#f0eefe;color:#5b52b8;border:1px solid #d8d3fb;font-weight:600}
.data-table tbody tr.row-book td:first-child{box-shadow:inset 3px 0 0 #7f76e0}
.data-table tbody tr.row-awaiting.row-book td:first-child{box-shadow:inset 3px 0 0 #f0a63c,inset 6px 0 0 #7f76e0}
.meal-timer-static{margin-top:7px;font-size:10px;line-height:1.75}
/* 出餐计时：整行文案长度恒定（倒计时固定写成 MM:SS）+ 数字等宽，换行位置每秒都一样，
   所以表格列宽不再一宽一窄地抖；不强制 nowrap，避免长文案把整张表撑横。 */
.meal-timer{margin-top:7px;font-size:10px;line-height:1.75;font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}
.meal-timer-static{margin-top:7px;font-size:10px;line-height:1.75;white-space:nowrap;font-variant-numeric:tabular-nums}
/* 出餐用时（平台口径）：已出餐的订单在状态后面直接写「出餐用时 5 分 18 秒 · 12:05 出餐」 */
.meal-used{margin-top:6px;font-size:11px;line-height:1.7;font-weight:600;color:#2f7d4f;white-space:nowrap}
.metric-card.warn strong{color:#c1684f}
.income-cell{color:#399878!important}
.field-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.field-grid label{font-size:12px}
@media(max-width:760px){.field-grid{grid-template-columns:1fr 1fr}}
/* ===== 侧边栏菜单不再被截断（老板：下面还有好几项，看不见也滑动不了）=====
   侧边栏是固定 100vh 的盒子，菜单有 10 项，窗口一矮底部几项就被切掉。
   现在只让「菜单区」自己滚：品牌、当前范围、底部状态都钉住不动。 */
.sidebar{overflow:hidden}
.sidebar nav{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;padding-right:3px;scrollbar-width:thin}
.sidebar nav::-webkit-scrollbar{width:6px}
.sidebar nav::-webkit-scrollbar-thumb{background:#dadeea;border-radius:3px}
.sidebar nav::-webkit-scrollbar-thumb:hover{background:#c4cbd9}
.sidebar nav::-webkit-scrollbar-track{background:transparent}
/* 管理范围只留顶栏右侧那一处（原来侧边栏那块提示已按老板要求删除） */
/* 窗口更矮时先把侧边栏底部那句标语收起来，把高度让给菜单 */
@media (max-height:820px){.sidebar .sidebar-note{display:none}}
/* 再矮一档：菜单行距收紧一档（约 40px 一行），700px 高的窗口里 10 项也能一次全看到、不用滚；
   真到更矮（600px 左右）才需要滚动，滚动条只作用在菜单区。 */
@media (max-height:820px){.sidebar .nav-item{padding:10px 14px;margin-bottom:4px}.sidebar .nav-caption{margin-bottom:8px}}
/* 营销抽奖里的顾客截图（订单截图 / 收款图）：表格里只放小缩略图，点开才是大图。
   之前这两个类一点样式都没有，img 按原始像素铺开（手机截图 1000+ px），整个表格被撑爆。 */
.thumb-button{display:block;width:64px;height:64px;padding:0;border:1px solid var(--line);border-radius:9px;background:#f8f9fc;overflow:hidden;cursor:zoom-in;transition:border-color .15s,box-shadow .15s}
.thumb-button:hover{border-color:#b9c6f0;box-shadow:0 4px 14px #3456dc1f}
.thumb-button img{width:100%;height:100%;object-fit:cover;display:block}
/* 一张表里可能有订单截图 + 用餐体验截图两类、每类好几张：分两行摆，每行横向排。 */
.thumb-group{display:flex;flex-direction:column;gap:5px}
.thumb-group+.thumb-group{margin-top:7px}
.thumb-row{display:flex;flex-wrap:wrap;gap:6px}
.shot-view{display:flex;justify-content:center;align-items:center;background:#f5f6fa;border:1px solid var(--line);border-radius:12px;padding:8px;margin:0 0 6px}
.shot-view img{max-width:100%;max-height:64vh;width:auto;height:auto;object-fit:contain;border-radius:8px;display:block}
@media(max-width:760px){.thumb-button{width:52px;height:52px}.shot-view img{max-height:56vh}}

/* 弹窗标题栏吸顶：弹窗内容长了自己滚的时候，右上角那个 × 不能跟着滚走。
   左右上下补满弹窗的内边距（dialog padding 28px），滚上来的内容从它底下过去、不会露在缝里。 */
dialog>.modal-heading{position:sticky;top:0;z-index:3;background:#fff;padding:28px 28px 14px;margin:-28px -28px 10px;border-radius:17px 17px 0 0}
/* 勾选框：全局那条 input 样式（min-height:39px + 白底圆角 + 内边距）会把复选框撑成一个大方块，
   后面的文字也会被 label 的竖排顶到下一行。这里统一还原成 17px 小方框：未选白底描边，选中蓝底白勾。 */
input[type=checkbox]{appearance:none;-webkit-appearance:none;width:17px;height:17px;min-height:0;padding:0;margin:0;flex:none;border:1px solid #cbd4e5;border-radius:5px;background:#fff;cursor:pointer;position:relative}
input[type=checkbox]:checked{background:var(--blue);border-color:var(--blue)}
input[type=checkbox]:checked::after{content:'✓';position:absolute;inset:0;display:grid;place-items:center;color:#fff;font-size:11px;line-height:1}
input[type=checkbox]:disabled{opacity:.45;cursor:not-allowed}
label.checkbox{flex-direction:row;align-items:center;gap:9px;font-size:12.5px}
/* 必填项：红 * 跟着 required 属性自动出现（不用每处手写，以后也不会漏标）。
   PC 表单有两种写法——文字包在 <span> 里（新弹窗），或直接写在 label 上（老表单），两种都覆盖。 */
label:has(>span:first-child):has(input[required])>span:first-child::before,
label:has(>span:first-child):has(select[required])>span:first-child::before,
label:has(>span:first-child):has(textarea[required])>span:first-child::before{content:'* ';color:#d9433f;font-weight:700}
label:not(:has(>span:first-child)):has(input[required]),
label:not(:has(>span:first-child)):has(select[required]),
label:not(:has(>span:first-child)):has(textarea[required]){position:relative}
label:not(:has(>span:first-child)):has(input[required])::before,
label:not(:has(>span:first-child)):has(select[required])::before,
label:not(:has(>span:first-child)):has(textarea[required])::before{content:'*';position:absolute;top:2px;left:-9px;color:#d9433f;font-weight:700;font-size:13px;line-height:1}
/* 抽奖弹窗：奖池列表自己滚（表头钉住），表单两列排，弹窗就不用上下翻半天 */
.mono{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}
.danger-text{color:#cd4e50}
.mk-prize-list{max-height:min(34vh,300px);overflow:auto;border:1px solid var(--line);border-radius:10px}
.mk-prize-list thead th{position:sticky;top:0;z-index:1;background:#f8f9fc}
.mk-prize-list tbody tr.row-editing{background:#fffaf0}
.mk-prize-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.mk-prize-editing{display:flex;align-items:center;gap:6px;padding:9px 12px;border-radius:9px;background:#eef2ff;color:#4358a8;font-size:12px;margin-bottom:14px}
.mk-prize-editing b{color:#2f47a0}
.mk-hint{grid-column:1/-1;font-size:12px;line-height:1.6;color:var(--muted)}
#modal.prize-dialog{width:min(660px,calc(100% - 32px))}
@media(max-width:760px){.mk-prize-grid{grid-template-columns:1fr}.mk-prize-list{max-height:42vh}}
/* 窄屏时弹窗内边距收到 18px（见各页面的 @media），吸顶标题栏跟着收，别错位 */
@media(max-width:760px){dialog>.modal-heading{padding:18px 18px 12px;margin:-18px -18px 8px;border-radius:14px 14px 0 0}}

/* 扫码有礼（电脑端）：列表一行一条，点开弹窗看详情 */
.mk-row-click{cursor:pointer}
.mk-row-click>td{transition:background .15s}
.mk-row-click:hover>td{background:#fffaf0}
.mk-detail-dialog{width:min(660px,calc(100% - 32px))}
.mk-kv-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 20px;margin:2px 0}
.mk-kv{display:flex;flex-direction:column;gap:2px;min-width:0}
.mk-kv span{font-size:12px;color:var(--muted);font-weight:700}
.mk-kv b{font-size:14px;font-weight:600;overflow-wrap:anywhere;line-height:1.5}
.mk-block{margin-top:12px}
.mk-block-label{font-size:12px;font-weight:700;color:var(--muted);margin-bottom:5px}
.mk-block-text{font-size:13.5px;line-height:1.65;white-space:pre-wrap;overflow-wrap:anywhere;background:#f7f9fc;border:1px solid var(--line);border-radius:11px;padding:9px 11px}
.mk-code-row{display:flex;align-items:center;gap:12px;background:#fff9e8;border:1px solid #ffe6ae;border-radius:12px;padding:9px 12px}
.mk-code-row b{font-size:17px;letter-spacing:.08em}
.mk-dialog-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.mk-detail-dialog .thumb-button{width:78px;height:78px}
/* 扫码有礼页顶部的两个跳转按钮：审核（#review）与发奖（#draws）已经各自成页，
   活动页只留一条快捷入口，不再把三块表格堆在一页里。 */
.jump-row { margin: 0 0 16px; }
.jump-row .button { text-decoration: none; }
/* Workspace modes keep merchant operations and administrator controls distinct. */
.mode-switch{display:inline-flex;align-items:center;gap:3px;padding:3px;background:#f1f3fa;border:1px solid #e4e8f2;border-radius:9px}.mode-option{border:0;background:transparent;color:#7a849a;padding:6px 10px;border-radius:7px;font-size:12px;font-weight:600;white-space:nowrap}.mode-option:hover{color:var(--blue);background:#fff}.mode-option.active{background:#fff;color:var(--blue);box-shadow:0 2px 8px #25386c12}.topbar-scope,.scope-inline{font-size:12px}.admin-nav-group{margin:14px 0;border:1px solid #e7eaf3;border-radius:10px;background:#fbfcff}.admin-nav-group summary{cursor:pointer;list-style:none;padding:11px 14px;color:#56617a;font-size:12px;font-weight:700}.admin-nav-group summary::-webkit-details-marker{display:none}.admin-nav-group .nav-item{margin:3px 7px}.nav-section-label{color:#a3acc0;font-size:10px;letter-spacing:1.2px;text-transform:uppercase;padding:16px 14px 8px;font-weight:700}.workspace .sidebar nav{padding-top:4px}.main-column{background:#f5f6fa}.page-loading{min-height:280px;display:grid;place-items:center;color:#9aa4b7;background:#fff;border:1px solid var(--line);border-radius:16px}.card,.panel,.table-wrap,.metric-card{border-radius:16px;box-shadow:0 8px 28px #2638610a}.topbar{backdrop-filter:blur(12px);background:#ffffffed}.topbar-right{gap:14px}.version-tag{background:#eef2ff;color:#5369b3;padding:5px 9px;border-radius:7px;font-size:11px;font-weight:700}
@media(max-width:1050px){.sidebar{width:220px}.main-column{margin-left:220px}.topbar-right .version-tag{display:none}.mode-option{padding:6px 7px}}
@media(max-width:760px){.sidebar{transform:translateX(-100%);transition:transform .2s}.sidebar.expanded{transform:translateX(0);box-shadow:12px 0 30px #1c29452b}.main-column{margin-left:0}.topbar{padding:10px 14px}.breadcrumb{font-size:12px}.topbar-right .username{display:none}.mode-switch{display:none}.content,.page{padding:16px}.nav-section-label{padding-top:12px}}
.ai-answer p{margin:0 0 10px}.ai-answer p:last-child{margin-bottom:0}.ai-answer h1,.ai-answer h2,.ai-answer h3{margin:0 0 10px;color:var(--ink)}.ai-answer h1{font-size:18px}.ai-answer h2{font-size:16px}.ai-answer h3{font-size:14px}.ai-answer ul,.ai-answer ol{margin:6px 0 12px 22px;padding:0}.ai-answer li{margin:4px 0}.ai-answer code{padding:2px 5px;border-radius:4px;background:#eef1f7;color:#4f5e78;font-size:.92em}
/* Appeal management uses the same compact, scrollable table pattern for every store and case. */
.appeal-policy-table{min-width:1100px}.appeal-queue-table{min-width:1400px}
.appeal-policy-table th,.appeal-policy-table td,.appeal-queue-table th,.appeal-queue-table td{padding:14px 16px;vertical-align:top}
.appeal-policy-table th:first-child,.appeal-policy-table td:first-child{min-width:220px}
.appeal-policy-table td:nth-child(4){min-width:160px}.appeal-policy-table td:nth-child(5){max-width:255px;min-width:220px}
.appeal-policy-table td small,.appeal-queue-table td small{display:block;line-height:1.6;margin-top:6px;white-space:normal;overflow-wrap:anywhere}
.appeal-policy-table .table-pills{display:flex;flex-direction:column;gap:10px}.appeal-policy-table .checkbox{white-space:nowrap;font-size:12px}
.appeal-policy-table .button,.appeal-queue-table .button{min-height:31px;padding:6px 10px;font-size:12px}
.appeal-policy-table .row-actions,.appeal-queue-table .row-actions{display:flex;gap:7px;flex-wrap:wrap;margin:0}
.appeal-policy-table .table-footnote,.table-footnote{color:var(--muted);font-size:12px;line-height:1.7;margin-top:14px}
.appeal-queue-table td:first-child{min-width:210px}.appeal-queue-table td:nth-child(2){min-width:220px;max-width:260px}.appeal-queue-table td:nth-child(3){min-width:175px}
.appeal-queue-table td:nth-child(4){min-width:300px}.appeal-queue-table td:nth-child(5){min-width:150px}.appeal-queue-table td:nth-child(6){min-width:180px;max-width:230px;line-height:1.7;font-size:12px}
.appeal-queue-table td:last-child{min-width:135px}.appeal-queue-table textarea{width:100%;min-height:86px;padding:9px 11px;font-size:12px;line-height:1.6;resize:vertical}
.appeal-queue-card .card-heading{flex-wrap:wrap}.appeal-queue-card .toolbar{gap:10px}.appeal-queue-card .toolbar label{min-width:150px}.appeal-queue-card .toolbar input{max-width:230px}
.appeal-create-card details summary{cursor:pointer;font-weight:600;display:flex;gap:16px;align-items:center}.appeal-create-card details summary span{font-weight:400;font-size:12px}.appeal-create-form{display:flex;flex-direction:column;gap:18px;padding-top:22px}.appeal-create-form .toolbar{gap:20px;flex-wrap:wrap}
@media(max-width:760px){.appeal-create-card details summary{display:block}.appeal-create-card details summary span{display:block;margin-top:6px}.appeal-queue-card .toolbar{width:100%;flex-wrap:wrap}.appeal-queue-card .toolbar input{max-width:none;flex:1;min-width:180px}}
.appeal-queue-table td:nth-child(2)>small{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.appeal-policy-table thead th,.appeal-queue-table thead th{white-space:nowrap;background:#f8f9fc}.appeal-policy-table [data-policy-status]{max-width:190px;white-space:normal;line-height:1.6}
.food-safety-record-table{min-width:1500px}.food-safety-record-table th,.food-safety-record-table td{padding:13px 15px;vertical-align:top}.food-safety-record-table th{white-space:nowrap;background:#f8f9fc}.food-safety-record-table small{display:block;line-height:1.6;margin-top:5px;color:var(--muted)}.food-safety-record-table td:first-child{min-width:180px}.food-safety-record-table td:nth-child(2){min-width:190px}.food-safety-record-table td:nth-child(3){min-width:180px}.food-safety-record-table td:nth-child(5){min-width:180px}.food-safety-record-table .food-safety-reason{min-width:300px;max-width:360px;line-height:1.7;white-space:normal;overflow-wrap:anywhere}.food-safety-record-table td:nth-child(7){min-width:140px}.food-safety-record-table td:last-child{min-width:150px}
/* ===== 统一后台列表表格（CPAMC 风格） =====
   所有业务列表共用这套密度、筛选区、状态标签、横向滚动和分页视觉。 */
.card:has(> .table-wrap),.card:has(> .user-table-wrap){padding:20px 20px 0}
.card:has(> .table-wrap)>.card-heading{padding:2px 0 0;margin-bottom:16px}
.card:has(> .table-wrap)>.card-heading h2{font-size:16px;color:#263755}
.card:has(> .table-wrap)>.card-heading p{font-size:11px;color:#8a96aa}
.table-wrap,.user-table-wrap{position:relative;overflow:auto;background:#fff;border:1px solid #e4e8f1;border-radius:13px;box-shadow:0 2px 8px #26386108;scrollbar-color:#aeb8c8 #f3f5f9;scrollbar-width:thin}
.table-wrap::-webkit-scrollbar,.user-table-wrap::-webkit-scrollbar{height:9px;width:9px}
.table-wrap::-webkit-scrollbar-track,.user-table-wrap::-webkit-scrollbar-track{background:#f3f5f9;border-radius:8px}
.table-wrap::-webkit-scrollbar-thumb,.user-table-wrap::-webkit-scrollbar-thumb{background:#aeb8c8;border-radius:8px;border:2px solid #f3f5f9}
.data-table.admin-list-table{width:100%;min-width:900px;border:0;border-collapse:separate;border-spacing:0;font-size:12px;text-align:left;color:#536078;background:#fff}
.data-table.admin-list-table thead th{height:44px;padding:0 14px;background:#f7f8fb;color:#61708a;border-bottom:1px solid #e4e8f1;font-size:11px;font-weight:650;line-height:1.3;white-space:nowrap;text-align:left;position:sticky;top:0;z-index:2}
.data-table.admin-list-table tbody td{padding:13px 14px;min-height:52px;border-bottom:1px solid #edf0f5;vertical-align:middle;line-height:1.55;background:#fff;white-space:normal}
.data-table.admin-list-table tbody tr:last-child td{border-bottom:0}
.data-table.admin-list-table tbody tr:hover td{background:#f9fbff}
.data-table.admin-list-table td strong{display:inline-block;color:#3e4e6c;font-size:12px;font-weight:650;line-height:1.45}
.data-table.admin-list-table td small{display:block;max-width:340px;margin-top:4px;color:#95a1b4;font-size:10px;line-height:1.55;overflow-wrap:anywhere}
.data-table.admin-list-table thead th:first-child,.data-table.admin-list-table tbody td:first-child{position:sticky;left:0}
.data-table.admin-list-table thead th:first-child{z-index:5;background:#f7f8fb}
.data-table.admin-list-table tbody td:first-child{z-index:3;background:#fff;box-shadow:6px 0 10px -9px #2d416c55}
.data-table.admin-list-table tbody tr:hover td:first-child{background:#f9fbff}
.data-table.admin-list-table thead th:last-child,.data-table.admin-list-table tbody td:last-child{position:sticky;right:0}
.data-table.admin-list-table thead th:last-child{z-index:5;background:#f7f8fb}
.data-table.admin-list-table tbody td:last-child{z-index:3;background:#fff;box-shadow:-6px 0 10px -9px #2d416c55}
.data-table.admin-list-table tbody tr:hover td:last-child{background:#f9fbff}
.data-table.admin-list-table .pill{display:inline-flex;align-items:center;min-height:22px;padding:4px 9px;border-radius:999px;line-height:1.2;white-space:nowrap;font-size:10px;font-weight:600}
.data-table.admin-list-table .button{min-height:31px;padding:6px 11px;border-radius:7px;font-size:11px}
.data-table.admin-list-table .text-button{font-size:11px;padding:4px 7px}
.data-table.admin-list-table .row-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.data-table.admin-list-table textarea{min-width:220px;min-height:70px;font-size:11px}
.data-table.admin-list-table .money-cell{font-size:12px;font-variant-numeric:tabular-nums}
.table-caption,.user-table-caption{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 10px;background:#eefaf7;border:1px solid #e1f1ed;border-bottom:0;border-radius:10px 10px 0 0;color:#3e8f83;font-size:11px}
.table-caption strong,.user-table-caption strong{font-weight:650;color:#388d7e}
.user-table-wrap{border-radius:0 0 10px 10px}
.user-data-table{min-width:1220px}
.food-safety-record-table,.appeal-queue-table{min-width:1400px}
.appeal-policy-table{min-width:1100px}
.list-toolbar,.filter-bar,.user-filter-bar{display:flex;align-items:end;gap:10px;flex-wrap:wrap;padding:13px 0;margin-bottom:12px}
.list-toolbar input,.list-toolbar select,.filter-bar input,.filter-bar select,.user-filter-bar input,.user-filter-bar select{height:36px;min-height:36px;border:1px solid #dfe5ef;border-radius:8px;background:#fff;color:#536078;padding:0 11px;font-size:12px}
.list-toolbar input:focus,.list-toolbar select:focus,.filter-bar input:focus,.filter-bar select:focus,.user-filter-bar input:focus,.user-filter-bar select:focus{border-color:#8fa5ed;box-shadow:0 0 0 3px #3456dc14;outline:0}
.list-toolbar .button,.filter-bar .button,.user-filter-bar .button{min-height:36px;padding:7px 13px;font-size:12px}
.list-toolbar .button.primary,.filter-bar .button.primary,.user-filter-bar .button.primary{background:#10b7a6;border-color:#10b7a6}
.user-filter-bar{align-items:center;padding:0 0 17px;margin-bottom:13px;border-bottom:1px solid #edf0f5}
.user-filter-bar label{display:flex;flex-direction:column;gap:0}
.user-filter-bar .user-search-label{flex:1;min-width:230px}
.user-filter-bar input,.user-filter-bar select{height:37px;min-height:37px}
.user-filter-bar .button{min-height:37px}
.user-table-caption{margin:0 0 10px}
.user-table-caption .table-summary{padding:0}
.table-summary{font-size:11px;color:#8c98ad}
.pager,.user-table-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;min-height:60px;padding:14px 2px 16px;border-top:1px solid #edf0f5;color:#8793a8;font-size:11px}
.user-table-pagination{margin:0}
.pager-actions,.user-pagination-buttons{display:flex;align-items:center;gap:7px}
.pager .button,.user-pagination-buttons .button{min-width:32px;min-height:32px;padding:5px 9px;font-size:11px}
.pager select,.user-table-pagination select{height:32px;min-height:32px;border:1px solid #dfe5ef;border-radius:7px;background:#fff;padding:0 8px;color:#536078;font-size:11px}
.user-table-pagination>label{flex-direction:row;align-items:center;gap:7px;color:#8793a8;font-size:11px}
.user-pagination-buttons [data-user-page-current]{min-width:24px;text-align:center;color:#4964b6;font-weight:600}
.card>.table-wrap:last-child{margin-bottom:0}
@media(max-width:760px){
  .card:has(> .table-wrap),.card:has(> .user-table-wrap){padding:16px 14px 0}
  .data-table.admin-list-table{min-width:720px;font-size:11px}
  .data-table.admin-list-table thead th{height:40px;padding:0 10px}
  .data-table.admin-list-table tbody td{padding:11px 10px}
  .data-table.admin-list-table td small{max-width:250px}
  .list-toolbar,.filter-bar,.user-filter-bar{align-items:stretch}
  .list-toolbar input,.list-toolbar select,.filter-bar input,.filter-bar select,.user-filter-bar input,.user-filter-bar select{flex:1;min-width:140px}
  .user-filter-bar .user-search-label{min-width:100%;flex-basis:100%}
  .user-filter-bar .button{flex:1}
  .pager,.user-table-pagination{align-items:flex-start;flex-direction:column;padding-bottom:4px}
}

/* 过滤器也使用统一的后台工具栏密度；带标题的普通 toolbar 保持原布局。 */
.card>.toolbar:has(label),.card>form.toolbar,.card-heading>.toolbar:has(label){display:flex;align-items:end;gap:10px;flex-wrap:wrap;padding:0 0 14px;margin:0 0 12px;border-bottom:1px solid #edf0f5}
.card>.toolbar:has(label) input,.card>.toolbar:has(label) select,.card>form.toolbar input,.card>form.toolbar select,.card-heading>.toolbar:has(label) input,.card-heading>.toolbar:has(label) select{height:36px;min-height:36px;padding:0 11px;border-radius:8px;font-size:12px}
.card>.toolbar:has(label) .button,.card>form.toolbar .button,.card-heading>.toolbar:has(label) .button{min-height:36px;padding:7px 13px;font-size:12px}

/* 门店授权列表与其他管理列表保持相同的行式布局。 */
.stores-table{min-width:1320px!important}
.store-table-name{display:flex;align-items:center;gap:10px;min-width:230px}
.store-table-name>div{min-width:0}
.store-table-name .store-avatar{width:32px;height:32px;min-width:32px;font-size:13px;border-radius:8px}
.store-table-name .store-avatar img{width:100%;height:100%;object-fit:cover;border-radius:8px}
.store-table-name strong{display:block;white-space:nowrap}
.store-table-name small{margin-top:4px}
.stores-table .store-address{min-width:220px;max-width:300px;color:#71809a;line-height:1.6}
.stores-table .connection-status{font-size:10px;line-height:1.5}
.stores-table .store-error-inline{max-width:230px;color:#b56d72;background:#fff3f2;border-radius:5px;padding:3px 6px}
.stores-table .row-actions{min-width:280px}

/* 订单页筛选区保持在一行，减少顶部空白；其它页面的筛选区保持原布局。 */
.orders-card{padding:14px 20px 8px}
.orders-card>#order-filters.filter-bar{
  display:grid;
  grid-template-columns:
    minmax(90px,.75fr)
    minmax(180px,1.8fr)
    minmax(90px,.75fr)
    minmax(90px,.75fr)
    minmax(120px,1fr)
    minmax(120px,1fr)
    minmax(245px,2.2fr)
    auto;
  align-items:end;
  gap:7px 8px;
  padding:0 0 11px;
  margin:0;
}
.orders-card>#order-filters.filter-bar label{min-width:0;gap:4px;font-size:10px}
.orders-card>#order-filters.filter-bar select,
.orders-card>#order-filters.filter-bar input{
  width:100%;
  min-width:0;
  height:35px;
  min-height:35px;
  padding:7px 9px;
  font-size:11px;
}
.orders-card>#order-filters.filter-bar input[type=date]{width:100%;padding:7px 6px}
.orders-card>#order-filters.filter-bar .search-field{min-width:0;flex:none}
.orders-card>#order-filters.filter-bar>.button{align-self:end;min-height:35px;padding:7px 13px;font-size:12px}
.orders-card>.quick-range{padding:8px 0 0;gap:9px}
.orders-card>.table-summary{padding:10px 0 11px}

@media(max-width:1400px) and (min-width:761px){
  .orders-card>#order-filters.filter-bar{
    grid-template-columns:repeat(6,minmax(0,1fr));
  }
  .orders-card>#order-filters.filter-bar .search-field{grid-column:1 / span 5}
  .orders-card>#order-filters.filter-bar>.button{grid-column:6}
}

@media(max-width:760px){
  .orders-card{padding:14px 14px 7px}
  .orders-card>#order-filters.filter-bar{display:flex;gap:8px;padding-bottom:10px}
  .orders-card>#order-filters.filter-bar label{flex:1;min-width:calc(50% - 8px)}
  .orders-card>#order-filters.filter-bar .search-field{flex-basis:100%;min-width:100%}
  .orders-card>#order-filters.filter-bar>.button{align-self:end;flex:1;min-width:calc(50% - 8px)}
  .orders-card>.quick-range{padding-top:7px;gap:5px 9px;flex-wrap:wrap}
  .orders-card>.table-summary{padding:9px 0 10px;gap:8px;align-items:flex-start}
}



/* 页面已经在全局顶栏显示当前位置，正文不再重复占用一整行标题；操作按钮保留。 */
.page-heading > div:first-child { display: none; }
.page-heading:has(> div:first-child):not(:has(.heading-right)):not(:has(.row-actions)):not(:has(> button)) { display: none; }
.page-heading:has(.heading-right),
.page-heading:has(.row-actions),
.page-heading:has(> button) { min-height: 0; margin: 0 0 12px; padding: 0; align-items: center; }
.page-heading .heading-right,
.page-heading .row-actions,
.page-heading > button { margin-left: auto; }

/* 出餐日志：压缩首屏顶部，优先露出记录表格。 */
.meallog-page .meallog-heading{margin-bottom:13px;align-items:flex-end}
.meallog-page .meallog-heading h1{font-size:29px;line-height:1.18;margin:0}
.meallog-page .meallog-heading p{margin-top:5px;font-size:11px;line-height:1.5}
.meallog-page .meallog-heading .heading-right{align-self:flex-start}
.meallog-page .meallog-filters{display:grid;grid-template-columns:minmax(130px,.8fr) minmax(240px,1.8fr) auto auto;align-items:end;gap:8px 10px;margin:0 0 13px;padding:13px 18px 9px;background:#fff;border:1px solid #e4e8f1;border-radius:14px;box-shadow:0 5px 18px #26386108}
.meallog-page .meallog-filters label{gap:4px;font-size:10px;color:#8793a8;min-width:0}
.meallog-page .meallog-filters select{height:35px;min-height:35px;width:100%;min-width:0;padding:6px 9px;font-size:11px}
.meallog-page .meallog-filters>.button{align-self:end;min-height:35px;padding:7px 13px;font-size:11px;white-space:nowrap}
.meallog-page .meallog-filters>.text-button{align-self:end;min-height:35px;padding:7px 10px;font-size:11px}
.meallog-page .meallog-filters .quick-range{grid-column:1/-1;display:flex;align-items:center;gap:4px;padding:8px 0 0;border-top:1px solid #edf0f5}
.meallog-page .meallog-filters .quick-range .muted{margin-right:6px;font-size:10px}
.meallog-page .meallog-filters .quick-range .text-button{padding:4px 8px;font-size:11px;border-radius:6px}
.meallog-page .meallog-filters .quick-range .text-button.active{background:#edf1ff;color:#4d68c0;font-weight:600}
.meallog-page .meallog-metrics{gap:12px;margin:0 0 14px}
.meallog-page .meallog-metric{min-height:122px;padding:16px 18px;border-radius:14px}
.meallog-page .meallog-metric strong{margin:10px 0 6px;font-size:27px;line-height:1.1}
.meallog-page .meallog-metric span{display:block;line-height:1.45;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.meallog-page .meallog-records{padding:15px 18px 0;margin-bottom:14px}
.meallog-page .meallog-records>.card-heading{margin-bottom:12px}
.meallog-page .meallog-records>.card-heading h2{font-size:16px}
.meallog-page .meallog-records>.card-heading p{margin-top:3px;font-size:10px}
.meallog-page .meallog-records .data-table.admin-list-table thead th{height:40px}
.meallog-page .meallog-records .data-table.admin-list-table tbody td{padding:11px 12px}
.meallog-page .meallog-definitions{margin:0 0 12px;color:#8c98ad;font-size:10px;line-height:1.7}
.meallog-page .meallog-definitions summary{cursor:pointer;color:#75839b;font-size:10px;padding:2px 0;list-style:none}
.meallog-page .meallog-definitions summary::-webkit-details-marker{display:none}
.meallog-page .meallog-definitions summary:before{content:'▸';margin-right:5px;color:#9aa6ba}
.meallog-page .meallog-definitions[open] summary:before{content:'▾'}
.meallog-page .meallog-definitions .page-note{margin:4px 0 0;font-size:10px;line-height:1.65}
@media(max-width:1050px) and (min-width:761px){
  .meallog-page .meallog-filters{grid-template-columns:minmax(120px,1fr) minmax(200px,1.6fr) auto auto}
  .meallog-page .meallog-metric{padding:14px 13px}
  .meallog-page .meallog-metric strong{font-size:24px}
}
@media(max-width:760px){
  .meallog-page .meallog-heading{margin-bottom:11px}
  .meallog-page .meallog-heading h1{font-size:25px}
  .meallog-page .meallog-heading p{font-size:10px}
  .meallog-page .meallog-filters{display:flex;align-items:stretch;gap:8px;padding:12px 13px 8px;margin-bottom:11px}
  .meallog-page .meallog-filters label{flex:1;min-width:calc(50% - 8px)}
  .meallog-page .meallog-filters>.button,.meallog-page .meallog-filters>.text-button{align-self:end;flex:1;min-width:calc(50% - 8px)}
  .meallog-page .meallog-filters .quick-range{flex-basis:100%;flex-wrap:wrap;gap:3px 4px}
  .meallog-page .meallog-filters .quick-range .muted{flex-basis:100%;margin:0 0 2px}
  .meallog-page .meallog-metrics{gap:8px;margin-bottom:11px}
  .meallog-page .meallog-metric{min-height:104px;padding:13px 12px}
  .meallog-page .meallog-metric strong{font-size:22px;margin:8px 0 5px}
  .meallog-page .meallog-metric span{font-size:9px}
  .meallog-page .meallog-records{padding:13px 13px 0;margin-bottom:10px}
}
/* 顶部工作区菜单固定，页面滚动时始终保留面包屑、模式和管理范围。 */
.topbar{position:sticky;top:0;z-index:30;}
.site-announcement{position:sticky;top:0;z-index:31;}

/* Keep the official store logo above a stable fallback, including failed CDN loads. */
.store-profile-avatar{position:relative;overflow:hidden;background:#f4f6fa;color:#8795aa;border:1px solid #e8edf4}.store-profile-avatar .store-logo-fallback{display:grid;place-items:center;width:100%;height:100%}.store-profile-avatar .store-logo-fallback svg{width:21px;height:21px}.store-profile-avatar img{position:absolute;inset:0;display:block;background:#fff}.store-profile-avatar img[hidden]{display:none}.store-profile-avatar.meituan{background:#fff7d9;color:#b88c12}.store-profile-avatar.taobao{background:#fff0e6;color:#e87e31}.store-profile-avatar.jd{background:#fff0ef;color:#d66960}

/* Platform-provided order labels are distinct from order status. */
.order-platform-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}.order-platform-tag{display:inline-flex;align-items:center;max-width:100%;padding:3px 7px;border:1px solid #e5e9ef;border-radius:5px;background:#f5f7fa;color:#768397;font-size:11px;line-height:1.5;overflow-wrap:anywhere}.order-platform-tag.source{background:#fff4db;border-color:#f1dfb4;color:#9b6e20;font-weight:650}.order-platform-tag.guarantee{background:#edf7f0;border-color:#d1e8d8;color:#4a8567}.order-platform-tag.customer{background:#f3f5f8;color:#718097}.board-card .order-platform-tags{margin:0 0 calc(12px * var(--board-scale))}.board-card .order-platform-tag{font-size:calc(12px * var(--board-scale));padding:.18em .55em}
