/* 主题、基础控件、登录页、工作台布局与通用列表、弹窗的基础样式。 */
:root{font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;color:#223238;background:#f4f7f6;font-size:14px;line-height:1.5}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}.login-shell{min-height:100vh;display:grid;grid-template-columns:minmax(390px,500px) 1fr;background:#fff}.login-panel{padding:clamp(50px,10vw,130px) clamp(30px,8vw,112px)}.brand-mark{width:44px;height:44px;display:grid;place-items:center;background:#16766e;color:#fff;font-weight:800;letter-spacing:0;border-radius:8px}.eyebrow,.resource-kicker{margin:0;color:#16766e;font-size:11px;letter-spacing:0;text-transform:uppercase}.login-panel .eyebrow{margin-top:24px}.login-panel h1{margin:10px 0 13px;font-size:34px;line-height:1.22;font-weight:700}.muted{margin:0 0 38px;color:#75858a}.login-panel form{display:grid;gap:17px}.login-panel label,.field{display:grid;gap:7px;color:#52636a;font-size:13px}.login-panel input,.field input,.field select,.field textarea{width:100%;border:1px solid #d8e1e1;border-radius:5px;background:#fff;padding:10px 12px;outline:none;color:#24363b}.login-panel input{height:44px}.field textarea{resize:vertical}.login-panel input:focus,.field input:focus,.field select:focus,.field textarea:focus{border-color:#27877e;box-shadow:0 0 0 3px #27877e1a}.api-label{font-size:11px!important;color:#869297!important}.api-label input{height:35px;font-size:12px}.primary{border:0;border-radius:5px;background:#16766e;color:#fff;height:44px;padding:0 18px;font-weight:600;display:inline-flex;gap:8px;align-items:center;justify-content:center}.primary:hover{background:#11645e}.primary.small{height:35px;padding:0 14px;font-size:12px}.secondary{height:35px;border:1px solid #d6e0df;background:#fff;border-radius:5px;color:#486269;padding:0 14px}.secondary:hover{background:#f2f7f6}.error{min-height:20px;margin:0;color:#bd4c45;font-size:13px}.login-aside{position:relative;overflow:hidden;background:#123f43;color:#e8f4f0;padding:clamp(50px,10vw,150px);display:flex;flex-direction:column;justify-content:center}.login-aside:after{content:"";position:absolute;width:52vw;height:52vw;border:1px solid #b4ddd333;border-radius:50%;right:-25vw;bottom:-25vw}.aside-kicker{color:#8cc6bb;font-size:12px;letter-spacing:0}.login-aside strong{position:relative;z-index:1;margin:26px 0 84px;font-size:clamp(34px,4vw,64px);font-weight:500;line-height:1.15}.aside-meta{display:flex;gap:23px;color:#8eb9b2;font-size:12px}.app-shell{min-height:100vh;display:flex}.sidebar{width:244px;flex:0 0 244px;background:#153e40;color:#dceee9;padding:25px 13px 17px;display:flex;flex-direction:column}.side-brand{display:flex;align-items:baseline;gap:10px;padding:0 16px 24px}.side-brand span{font-weight:800;font-size:22px;letter-spacing:0;color:#fff}.side-brand small{font-size:11px;color:#91bcb4}.workspace-switch{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin:0 8px 18px;padding:3px;background:#0f3335;border-radius:6px}.workspace-tab{height:31px;border:0;background:transparent;border-radius:4px;color:#8eb5ae;font-size:12px}.workspace-tab.active{background:#2a6864;color:#fff}.nav-groups{display:grid;gap:3px;overflow:auto}.nav-caption{padding:4px 16px 7px;color:#79a59e;font-size:10px;letter-spacing:0;text-transform:uppercase}.nav-item{height:40px;border:0;border-radius:5px;background:transparent;color:#a9c9c3;text-align:left;display:flex;align-items:center;gap:11px;padding:0 14px}.nav-item i{width:20px;color:#82b9ad;text-align:center;font-style:normal;font-size:16px}.nav-item:hover,.nav-item.active{background:#245e5b;color:#fff}.nav-item.active{box-shadow:inset 3px 0 #77c9b4}.nav-item.active i{color:#b9eee0}.workspace{min-width:0;flex:1}.topbar{height:103px;background:#fff;border-bottom:1px solid #e1e9e8;padding:0 clamp(22px,4vw,58px);display:flex;align-items:center;justify-content:space-between}.crumb{margin:0 0 6px;color:#92a0a4;font-size:12px}.topbar h1{margin:0;font-size:25px;font-weight:650}.top-actions{display:flex;align-items:center;gap:18px}.admin-name{color:#53656b;font-size:13px}.icon-btn{width:35px;height:35px;border:1px solid #d8e2e1;border-radius:5px;background:#fff;color:#27776f;font-size:20px}.content{max-width:1540px;padding:30px clamp(22px,4vw,58px)}.hero-strip{min-height:150px;border-left:4px solid #2d857c;border-radius:6px;background:#e3f0ed;padding:24px 28px;display:flex;justify-content:space-between;align-items:flex-end}.hero-strip h2{margin:8px 0 8px;font-size:24px;line-height:1.3;font-weight:650}.hero-strip p{margin:0;color:#63817c}.hero-date{color:#4e827a;font-size:12px}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:12px;margin:19px 0}.metric{min-height:112px;border:1px solid #e1e9e8;border-radius:6px;background:#fff;padding:17px}.metric span,.metric small{display:block;color:#819096;font-size:12px}.metric strong{display:block;margin:8px 0 4px;color:#1d3d40;font-size:28px;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dashboard-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:16px}.quick-panel{border:1px solid #e1e9e8;border-radius:6px;background:#fff;padding:20px}.section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.section-head h3{margin:0;font-size:15px}.section-head span{color:#879499;font-size:12px}.queue{width:100%;height:52px;border:0;border-top:1px solid #edf1f1;background:transparent;color:#45585e;display:flex;align-items:center;text-align:left}.queue b{margin-left:auto;margin-right:18px;color:#1b7b72;font-size:18px}.queue em{color:#a1afb1;font-size:21px;font-style:normal}.scope-note{display:flex;gap:14px;align-items:flex-start;padding:14px;background:#f5f8f7;border-radius:5px}.scope-mark{display:grid;place-items:center;width:45px;height:45px;border-radius:5px;background:#d9ece8;color:#1d756c;font-size:12px}.scope-note strong{display:block;color:#30494d;font-size:14px}.scope-note p{margin:3px 0 0;color:#809094;font-size:12px}.resource-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:19px}.resource-head h2{margin:4px 0 0;font-size:22px}.toolbar{display:flex;align-items:center;gap:11px;margin-bottom:16px}.search{height:38px;max-width:520px;flex:1;display:flex;align-items:center;border:1px solid #d9e3e2;border-radius:5px;background:#fff}.search>span{padding:0 10px;color:#77908d;font-size:19px}.search input{min-width:0;flex:1;border:0;outline:0;background:transparent}.search button{height:100%;border:0;border-left:1px solid #e1e9e8;background:#f9fbfb;color:#27776f;padding:0 16px;font-size:12px}.toolbar select{height:38px;border:1px solid #d9e3e2;border-radius:5px;background:#fff;padding:0 11px;color:#53656b}.result-count{margin-left:auto;color:#879499;font-size:12px}.table-wrap{border:1px solid #e0e8e7;border-radius:6px;background:#fff;overflow:auto}table{width:100%;min-width:860px;border-collapse:collapse}th,td{padding:14px 15px;border-bottom:1px solid #edf1f1;text-align:left;white-space:nowrap}th{background:#f7faf9;color:#7d8c91;font-size:11px;font-weight:500}td{color:#52636a;font-size:13px}td strong{display:block;color:#293f44;font-weight:600}td small{display:block;margin-top:4px;color:#9aa6aa;font-size:11px}.id-cell{width:75px;color:#92a0a4}.info-cell{max-width:390px;color:#7b898d;overflow:hidden;text-overflow:ellipsis}.pill{display:inline-flex;align-items:center;padding:4px 9px;border-radius:15px;font-size:11px}.pill.good{background:#e3f4ec;color:#257565}.pill.pending{background:#fff2d6;color:#9a6f25}.pill.bad{background:#fbecea;color:#b14f4b}.row-actions{display:flex;gap:10px}.row-actions button{border:0;background:transparent;padding:3px 0;color:#237a71;font-size:12px}.row-actions .danger-link{color:#b95750}.row-actions .ghost-link{color:#7e8d91}.actions-col{width:190px}.pager{display:flex;align-items:center;justify-content:flex-end;gap:9px;padding:15px 0;color:#879499;font-size:12px}.pager button{height:30px;border:1px solid #d5e0de;border-radius:4px;background:#fff;color:#4c656b;padding:0 11px;font-size:12px}.empty{display:flex;flex-direction:column;align-items:center;gap:4px;padding:62px;color:#9aa6aa}.empty strong{font-weight:500;color:#687a7f}.state-panel{border:1px solid #e2e9e8;border-radius:6px;background:#fff;padding:70px 30px;text-align:center}.state-icon{margin:auto;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#fff0d8;color:#a16f21;font-weight:700}.state-panel h2{margin:15px 0 5px;font-size:18px}.state-panel p{margin:0 auto 20px;max-width:560px;color:#849196}.state-actions{display:flex;align-items:center;justify-content:center;gap:18px}.loading{text-align:center;color:#8e9b9e;padding:90px}.spinner{display:inline-block;width:16px;height:16px;margin-right:8px;border:2px solid #b8d8d1;border-top-color:#21776e;border-radius:50%;vertical-align:-3px;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.modal-backdrop,.drawer-backdrop{position:fixed;z-index:20;inset:0;background:#173d4038;display:flex;align-items:center;justify-content:center;padding:20px}.modal{width:min(670px,100%);max-height:calc(100vh - 40px);overflow:auto;border-radius:7px;background:#fff;box-shadow:0 20px 60px #173d4030}.modal.compact{width:min(420px,100%)}.modal-head,.drawer-head{display:flex;align-items:flex-start;justify-content:space-between;padding:22px 24px;border-bottom:1px solid #e7eeed}.modal-head h2,.drawer-head h2{margin:4px 0 0;font-size:20px}.close{width:30px;height:30px;border:0;background:transparent;color:#879497;font-size:23px;line-height:1}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:22px 24px}.form-grid .full{grid-column:1/-1}.modal-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:9px;padding-top:8px}.detail-drawer{width:min(560px,100%);height:100%;margin-left:auto;background:#fff;display:flex;flex-direction:column;box-shadow:-15px 0 45px #173d4024}.drawer-backdrop{justify-content:flex-end;padding:0}.detail-body{padding:22px 24px;overflow:auto;display:grid;grid-template-columns:1fr 1fr;gap:14px}.detail-field{padding-bottom:10px;border-bottom:1px solid #edf1f0}.detail-field span{display:block;color:#8b999d;font-size:11px;margin-bottom:3px}.detail-field strong{display:block;color:#30484c;font-size:13px;word-break:break-word}.drawer-foot{margin-top:auto;padding:17px 24px;border-top:1px solid #e7eeed;display:flex;justify-content:flex-end;gap:9px}.toast{position:fixed;z-index:50;right:25px;bottom:25px;max-width:360px;padding:12px 17px;border-radius:5px;background:#173f41;color:#fff;box-shadow:0 8px 25px #173f4130;font-size:13px}.toast.error{background:#a74e49}@media(max-width:1100px){.sidebar{width:210px;flex-basis:210px}.metric-grid{grid-template-columns:repeat(3,1fr)}.dashboard-grid{grid-template-columns:1fr}}@media(max-width:700px){.login-shell{grid-template-columns:1fr}.login-aside{display:none}.sidebar{width:64px;flex-basis:64px;padding:19px 7px}.side-brand{justify-content:center;padding:0 0 21px}.side-brand small,.workspace-switch,.nav-caption,.nav-item span{display:none}.side-brand span{font-size:17px}.nav-item{justify-content:center;padding:0}.nav-item i{font-size:17px}.topbar{height:88px;padding:0 16px}.topbar h1{font-size:21px}.admin-name{max-width:100px;overflow:hidden;text-overflow:ellipsis}.content{padding:20px 14px}.hero-strip{display:block;padding:19px}.hero-strip h2{font-size:20px}.hero-date{margin-top:17px}.metric-grid{grid-template-columns:repeat(2,1fr);gap:9px}.metric{min-height:94px;padding:13px}.metric strong{font-size:22px}.resource-head h2{font-size:20px}.toolbar{flex-wrap:wrap}.search{max-width:none;width:100%;order:0}.toolbar select{flex:1}.result-count{margin-left:0}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:1}.detail-body{grid-template-columns:1fr}.modal-backdrop{padding:10px}.modal-head,.drawer-head{padding:18px}.form-grid{padding:18px}.toast{right:12px;bottom:12px;left:12px;max-width:none}}
/* 资源页头部操作、高级筛选以及详情信息分组。 */
.head-actions{display:flex;align-items:center;gap:9px}.detail-group{grid-column:1/-1;border:1px solid #e5eceb;border-radius:5px;padding:12px;background:#f8fbfa}.detail-group>span{display:block;color:#7c8d91;font-size:11px;margin-bottom:8px}.detail-group .detail-field{background:#fff;padding:8px}.detail-object{margin-top:8px;padding:8px;border-top:1px solid #e5eceb}.detail-object>b{display:block;color:#8a999c;font-size:11px;margin-bottom:6px}.permission-list{display:grid;grid-template-columns:1fr 1fr;gap:1px;padding:18px 24px}.permission-list label{display:flex;gap:9px;align-items:flex-start;padding:11px;border:1px solid #edf1f0;background:#fbfdfc}.permission-list label:has(input:checked){background:#e4f3ef;border-color:#b8dcd3}.permission-list input{margin-top:3px}.permission-list strong,.permission-list small{display:block}.permission-list strong{color:#30484c;font-size:12px}.permission-list small{color:#8a999d;font-size:10px;margin-top:3px}.permission-list .modal-actions{grid-column:1/-1}@media(max-width:700px){.permission-list{grid-template-columns:1fr;padding:18px}.head-actions{gap:5px}}
/* 统计看板的周期切换按钮及右侧摘要布局。 */
.hero-meta{display:flex;flex-direction:column;align-items:flex-end;gap:16px}.period-switch{display:grid;grid-template-columns:1fr 1fr;padding:3px;border:1px solid #bdd8d3;border-radius:6px;background:#f5faf8}.period-switch button{min-width:64px;height:30px;border:0;border-radius:4px;background:transparent;color:#547a74;font-size:12px}.period-switch button.active{background:#16766e;color:#fff}.metric-link{font:inherit;text-align:left;cursor:pointer}.metric-link:hover{border-color:#9fc9c1;box-shadow:0 5px 16px #245e5b12}.metric-link small{display:flex;justify-content:space-between;gap:8px}.metric-link em{color:#2d857c;font-size:16px;font-style:normal;line-height:12px}.advanced-filters{display:grid;grid-template-columns:repeat(5,minmax(130px,1fr)) auto;gap:10px;align-items:end;margin:-5px 0 16px;padding:14px;border:1px solid #e0e8e7;border-radius:6px;background:#fff}.filter-field{display:grid;gap:5px;min-width:0;color:#718288;font-size:11px}.filter-field input,.filter-field select{width:100%;height:36px;min-width:0;border:1px solid #d9e3e2;border-radius:5px;background:#fff;padding:0 10px;color:#40575d;outline:none}.filter-field input:focus,.filter-field select:focus{border-color:#27877e;box-shadow:0 0 0 3px #27877e1a}.filter-reset{height:36px;white-space:nowrap}@media(max-width:1100px){.advanced-filters{grid-template-columns:repeat(3,minmax(140px,1fr))}}@media(max-width:700px){.hero-meta{margin-top:17px;align-items:flex-start}.hero-meta .hero-date{margin-top:0}.advanced-filters{grid-template-columns:1fr 1fr;margin-top:0}.filter-reset{width:100%}}@media(max-width:440px){.advanced-filters{grid-template-columns:1fr}}
/* 模块内子页面切换，窄屏下按可用宽度排列。 */
.resource-tabs{display:inline-grid;grid-auto-flow:column;grid-template-columns:none;margin-bottom:18px}.resource-tabs button{min-width:92px}@media(max-width:560px){.resource-tabs{display:grid;grid-auto-flow:row;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.resource-tabs button{min-width:0}}
/* 商家门店详情与分集排序输入。 */
.store-list{display:block}.store-list .detail-group{margin-bottom:12px}.store-list .row-actions{margin-top:10px}.sort-number{width:72px;height:34px;margin-left:auto!important;border:1px solid #d8e1e1;border-radius:5px;padding:0 8px;color:#24363b}
/* 详情中的图片与视频预览，限制高度并保持素材比例。 */
.detail-media-field{grid-column:1/-1}.detail-media{display:block;width:100%;max-height:320px;object-fit:contain;border:1px solid #dfe8e6;border-radius:5px;background:#f5f8f7}.detail-media-field a{display:inline-block;margin-top:7px;color:#237a71;font-size:12px}
/* 订单日趋势与履约状态统计，条形长度由页面计算的变量控制。 */
.trend-panel{display:grid;grid-template-columns:1.4fr 1fr;gap:24px;margin:0 0 16px;padding:20px;border:1px solid #e1e9e8;border-radius:6px;background:#fff}.trend-row{display:grid;grid-template-columns:72px 1fr 44px;align-items:center;gap:9px;min-height:28px;color:#75868a;font-size:11px}.trend-row i{display:block;width:var(--bar);height:7px;border-radius:3px;background:#2d857c}.trend-row b{text-align:right;color:#30484c}.status-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px}.status-stat{display:flex;justify-content:space-between;border:1px solid #e3eae9;border-radius:5px;background:#f8fbfa;padding:10px;color:#52666a}.status-stat b{color:#16766e}.compact-empty{padding:22px}@media(max-width:900px){.trend-panel{grid-template-columns:1fr}}
/* 平台收入趋势和转化漏斗，宽度随各阶段数据的相对比例变化。 */
.growth-panel{display:grid;grid-template-columns:1.3fr 1fr;gap:24px;margin:0 0 16px;padding:20px;border:1px solid #e1e9e8;border-radius:6px;background:#fff}.revenue-row{grid-template-columns:72px 1fr 76px}.revenue-row i{background:#c5963a}.funnel-list{display:grid;gap:8px}.funnel-stage{display:grid;grid-template-columns:110px 1fr 52px 50px;align-items:center;gap:8px;color:#63757a;font-size:11px}.funnel-stage i{display:block;width:var(--funnel);height:12px;border-radius:3px;background:#2d857c}.funnel-stage b{text-align:right;color:#29474b}.funnel-stage small{text-align:right;color:#879699}.latest-panel{margin:0 0 16px}.latest-panel>.section-head{margin:0;padding:16px 18px;border:1px solid #e1e9e8;border-bottom:0;border-radius:6px 6px 0 0;background:#fff}.latest-panel .table-wrap{border-radius:0 0 6px 6px}.dashboard-more{border:0;background:transparent;color:#16766e;font-size:12px}@media(max-width:900px){.growth-panel{grid-template-columns:1fr}.funnel-stage{grid-template-columns:95px 1fr 45px 42px}}
/* 运营参数摘要和代理财务金额卡片。 */
.config-summary{display:grid;grid-template-columns:repeat(3,minmax(160px,1fr));gap:10px;margin:0 0 18px}.config-summary article{padding:14px 16px;border-left:3px solid #2d857c;border-radius:5px;background:#fff}.config-summary span{display:block;color:#829196;font-size:11px}.config-summary strong{display:block;margin-top:5px;color:#29474b;font-size:16px}@media(max-width:900px){.config-summary{grid-template-columns:repeat(2,minmax(140px,1fr))}}
/* 登录图形验证码输入和可点击刷新的图片按钮。 */
.captcha-field{display:grid;gap:7px;color:#52636a;font-size:13px}.captcha-row{display:grid;grid-template-columns:minmax(0,1fr) 118px;gap:11px}.captcha-image{width:118px;height:44px;padding:0;overflow:hidden;border:1px solid #69b35a;border-radius:3px;background:#f5f8f6;color:#667878}.captcha-image:hover{border-color:#27877e}.captcha-image:focus-visible{outline:3px solid #27877e33;outline-offset:1px}.captcha-image img{display:block;width:100%;height:100%;object-fit:cover}.captcha-image img[hidden]{display:none}.captcha-image span{display:grid;height:100%;place-items:center;font-size:12px}@media(max-width:380px){.captcha-row{grid-template-columns:minmax(0,1fr) 104px}.captcha-image{width:104px}}
/* 订单字段分组、履约时间线与操作区。 */
.order-detail{grid-column:1/-1}.order-section+.order-section{margin-top:26px;padding-top:22px;border-top:1px solid #dfe8e6}.detail-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:14px;margin-bottom:15px}.detail-section-head h3{margin:0;color:#2b4448;font-size:15px}.detail-section-head span{color:#89979b;font-size:11px}.order-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px 18px}.order-field{min-width:0;padding-bottom:10px;border-bottom:1px solid #edf1f0}.order-field.wide{grid-column:1/-1}.order-field span{display:block;margin-bottom:3px;color:#8b999d;font-size:11px}.order-field strong{display:block;color:#30484c;font-size:13px;word-break:break-word}.order-timeline{position:relative;padding-left:20px}.order-timeline:before{content:"";position:absolute;top:7px;bottom:7px;left:5px;width:1px;background:#c9dcd8}.timeline-item{position:relative;padding:0 0 20px}.timeline-item:last-child{padding-bottom:0}.timeline-item>i{position:absolute;top:5px;left:-19px;width:9px;height:9px;border:2px solid #fff;border-radius:50%;background:#2d857c;box-shadow:0 0 0 1px #8dbeb5}.timeline-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.timeline-head strong{color:#2b4448;font-size:13px}.timeline-head time{color:#8b999d;font-size:11px;white-space:nowrap}.timeline-item p{margin:3px 0 0;color:#607378;font-size:12px}.timeline-item small{display:block;margin-top:5px;color:#859397;line-height:1.55}@media(max-width:700px){.order-fields{grid-template-columns:1fr}.order-field.wide{grid-column:1}.timeline-head{align-items:flex-start;flex-direction:column;gap:2px}}
/* 媒体上传、图片视频预览和真实上传进度。 */
.media-upload{display:grid;grid-template-columns:132px minmax(0,1fr) auto;align-items:center;gap:14px;padding:12px;border:1px solid #d8e1e1;border-radius:5px;background:#f8fbfa}.media-upload-preview{width:132px;height:92px;display:grid;place-items:center;overflow:hidden;border:1px solid #dfe8e6;border-radius:4px;background:#fff;color:#93a09f;font-size:12px}.media-upload-preview img,.media-upload-preview video{display:block;width:100%;height:100%;object-fit:contain;background:#fff}.media-upload-info{min-width:0;display:grid;gap:5px}.media-upload-info strong{overflow:hidden;color:#30484c;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.media-upload-info small{color:#819095;font-size:11px;line-height:1.5}.media-upload-info em{min-height:18px;color:#27776f;font-size:11px;font-style:normal}.upload-pick{min-width:96px;white-space:nowrap}.upload-progress{height:5px;overflow:hidden;border-radius:3px;background:#dfe9e7}.upload-progress[hidden]{display:none}.upload-progress i{display:block;width:0;height:100%;border-radius:3px;background:#27877e;transition:width .18s ease}.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}@media(max-width:700px){.media-upload{grid-template-columns:96px minmax(0,1fr)}.media-upload-preview{width:96px;height:74px}.upload-pick{grid-column:1/-1;width:100%}}
/* 代理辖区交易趋势、商家经营排行及商家概览。 */
.agent-insight-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,.8fr);gap:16px;margin:16px 0}.agent-insight-grid>div{min-width:0;padding:18px;border:1px solid #e1e9e8;background:#fff;border-radius:6px}.agent-trend-row{grid-template-columns:72px minmax(80px,1fr) 54px 72px}.agent-trend-row small{text-align:right;color:#879699}.merchant-ranking{list-style:none;margin:0;padding:0}.merchant-ranking li{display:grid;grid-template-columns:32px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:48px;border-bottom:1px solid #edf1f1}.merchant-ranking li>b{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#edf2f1;color:#7b898d}.merchant-ranking li.ranking-top>b{background:#f5d66f;color:#5d4600}.merchant-ranking li span,.merchant-ranking li span strong,.merchant-ranking li span small{display:block;min-width:0}.merchant-ranking li span small{color:#8a999d;font-size:11px}.merchant-ranking li em{color:#16766e;font-style:normal;font-weight:700}@media(max-width:900px){.agent-insight-grid{grid-template-columns:1fr}}@media(max-width:520px){.agent-trend-row{grid-template-columns:60px minmax(60px,1fr) 50px}.agent-trend-row small{display:none}}
/* 商品图标与可配置展示色。 */
.product-symbol{display:inline-grid;place-items:center;width:28px;height:28px;margin-right:8px;border-radius:5px;background:var(--symbol-color);color:#fff;font-size:14px;vertical-align:middle}

/* 侧栏按业务域分组，菜单较多时只滚动导航区域。 */
.sidebar{position:sticky;top:0;height:100vh}
.nav-groups{display:grid;flex:1;min-height:0;align-content:start;gap:14px;overflow-y:auto;padding-bottom:8px;scrollbar-width:thin;scrollbar-color:#3d716e transparent}
.nav-section{display:grid;gap:3px;align-content:start}

/* 顶栏在长列表滚动时保持可见，账号操作统一收在右上角。 */
.topbar{position:sticky;top:0;z-index:15;box-shadow:0 1px 0 #e1e9e8}
.top-actions{gap:10px}
.account-menu-wrap{position:relative}
.account-menu-toggle{height:40px;display:flex;align-items:center;gap:8px;padding:3px 8px 3px 4px;border:1px solid transparent;border-radius:5px;background:transparent;color:#53656b}
.account-menu-toggle .admin-name{max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.account-menu-toggle:hover,.account-menu-toggle[aria-expanded="true"]{border-color:#d8e2e1;background:#f5f8f7}
.account-menu-toggle:focus-visible{outline:3px solid #27877e33;outline-offset:1px}
/* 默认头像作为底层，已设置头像覆盖其上；头像加载失败隐藏后仍显示默认图。 */
.account-avatar{position:relative;width:31px;height:31px;display:block;flex:0 0 31px;overflow:hidden;border-radius:50%;background:#dbece8}
.account-avatar img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:#dbece8}
.account-avatar-fallback{display:block}
.account-avatar img[hidden]{display:none}
.entity-with-avatar{display:flex;align-items:center;gap:10px}.entity-with-avatar>span:last-child{min-width:0}.entity-avatar,.entity-cover{width:38px;height:38px;flex:0 0 38px;display:grid;place-items:center;overflow:hidden;border-radius:50%;background:#e3f0ed;color:#26776f;font-weight:700}.entity-cover{width:48px;height:48px;flex-basis:48px;border-radius:5px}.entity-avatar img,.entity-cover img{width:100%;height:100%;object-fit:cover}.number-emphasis{color:#b96d16}.resource-filter-tabs{display:inline-grid;grid-auto-flow:column;grid-template-columns:none;margin:0 0 18px}.resource-filter-tabs button{min-width:82px}
/* 账号下拉箭头由边框绘制，展开时按 aria-expanded 状态旋转。 */
.account-chevron{position:relative;width:12px;height:12px;flex:0 0 12px;color:#829196}
.account-chevron:before{content:"";position:absolute;top:2px;left:3px;width:5px;height:5px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);transition:transform .16s ease,top .16s ease}
.account-menu-toggle[aria-expanded="true"] .account-chevron:before{top:5px;transform:rotate(225deg)}
.account-dropdown{position:absolute;top:calc(100% + 8px);right:0;z-index:30;width:132px;padding:5px;border:1px solid #dce5e4;border-radius:5px;background:#fff;box-shadow:0 10px 28px #173d4026}
.account-dropdown[hidden]{display:none}
.account-dropdown button{width:100%;height:38px;border:0;border-radius:4px;background:transparent;color:#4c6066;text-align:left;padding:0 13px;font-size:13px}
.account-dropdown button:hover,.account-dropdown button:focus-visible{background:#edf5f3;color:#176f67;outline:0}
@media(max-width:700px){.account-menu-toggle{padding-right:5px}.account-menu-toggle .admin-name{display:none}.account-dropdown{right:0}}
/* 列表主体名称、缩略图与补充资料的排列和文本省略。 */
.entity-cell{display:flex;align-items:center;gap:10px;min-width:180px}.entity-cell>span:last-child{display:grid;gap:2px}.list-thumbnail{width:40px;height:40px;flex:0 0 40px;display:grid;place-items:center;overflow:hidden;border:1px solid #d8e1e1;border-radius:5px;background:#edf4f2;color:#16766e;font-size:12px;font-style:normal}.list-thumbnail img{width:100%;height:100%;display:block;object-fit:cover}.list-thumbnail i{font-style:normal}.credential-result{margin:18px 0 4px;padding:16px;border:1px solid #d8e1e1;border-radius:6px;background:#f7faf9}.credential-result>p{margin:0 0 14px;color:#6f7f84}.credential-result dl{margin:0;display:grid;gap:10px}.credential-result dl>div{display:grid;grid-template-columns:90px 1fr;align-items:center;gap:12px}.credential-result dt{color:#728288}.credential-result dd{margin:0;font-weight:700;overflow-wrap:anywhere}.credential-actions{justify-content:flex-end}.field>small{color:#829096;font-size:12px}
/* 运营配置按业务分组展示，使用独立区块容纳字段。 */
.config-form{display:grid;gap:16px}
.config-section{padding:18px;border:1px solid #dbe4e3;border-radius:6px;background:#fff}
.config-section .section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:14px}
.config-section .section-head h3{margin:0;color:#2b4448;font-size:15px}
.config-section .section-head span{color:#8a989c;font-size:11px}
.config-section .form-grid{margin:0}

/* 多选筛选使用下拉勾选菜单，避免原生 multiple select 被固定高度裁切。 */
.multi-select-filter{position:relative;z-index:2}
.multi-select-menu{position:relative;min-width:220px}
.multi-select-menu summary{position:relative;height:36px;display:flex;align-items:center;padding:0 34px 0 10px;overflow:hidden;border:1px solid #d9e3e2;border-radius:5px;background:#fff;color:#40575d;cursor:pointer;list-style:none;outline:0}
.multi-select-menu summary::-webkit-details-marker{display:none}
.multi-select-menu summary span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.multi-select-menu summary:after{content:"";position:absolute;top:13px;right:13px;width:6px;height:6px;border-right:1.5px solid #718288;border-bottom:1.5px solid #718288;transform:rotate(45deg);transition:transform .16s ease,top .16s ease}
.multi-select-menu[open] summary{border-color:#27877e;box-shadow:0 0 0 3px #27877e1a}
.multi-select-menu[open] summary:after{top:16px;transform:rotate(225deg)}
.multi-select-options{position:absolute;top:calc(100% + 6px);left:0;z-index:20;width:max(100%,280px);max-height:260px;padding:6px;overflow:auto;border:1px solid #dce5e4;border-radius:5px;background:#fff;box-shadow:0 12px 28px #173d4024}
.multi-select-options label{min-height:36px;display:flex;align-items:center;gap:9px;padding:7px 9px;border-radius:4px;color:#43585e;font-size:12px;cursor:pointer}
.multi-select-options label:hover{background:#edf5f3}
.multi-select-options input{width:15px;height:15px;flex:0 0 15px;margin:0;accent-color:#16766e}
.multi-select-options p{margin:0;padding:10px;color:#8a989c;font-size:12px;text-align:center}
@media(max-width:700px){.multi-select-menu{min-width:0}.multi-select-options{width:100%;min-width:240px}}

/* 资源表单的条件字段必须服从 hidden，避免 .field 的 grid 声明将其重新显示。 */
.form-grid [hidden]{display:none!important}
/* 短剧批量上传沿用拖拽区、可编辑文件表格和固定底部操作区。 */
.episode-batch-modal{width:min(980px,100%);max-height:calc(100vh - 40px);display:flex;flex-direction:column;overflow:hidden}
.episode-batch-modal .modal-head{flex:0 0 auto}
.episode-batch-options{display:grid;grid-template-columns:1fr;gap:10px;margin:18px 24px;flex:0 0 auto}
.episode-batch-access{margin:0;color:#63817c;font-size:12px;line-height:1.6}
.episode-batch-drop{min-height:180px;margin:0 24px;flex:0 0 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:22px 16px;border:1px dashed #27877e;border-radius:6px;background:#fff;color:#7c8b90;font-weight:400;text-align:center}
.episode-batch-drop svg{width:64px;height:48px;color:#b7c3c6;margin-bottom:8px}
.episode-batch-drop strong{margin-left:3px;color:#16766e;font-weight:500}
.episode-batch-drop small{font-size:11px;color:#8b999d}
.episode-batch-drop:hover,.episode-batch-drop.dragging{border-color:#16766e;background:#f0f8f5}
.episode-batch-drop:focus-visible{outline:3px solid #27877e33;outline-offset:2px}
.episode-batch-drop:disabled{opacity:.6;background:#f7f9f8}
.episode-batch-table{margin:16px 24px 0;min-height:140px;max-height:320px;overflow:auto;flex:1 1 auto}
.episode-batch-table table{min-width:850px;table-layout:fixed}
.episode-batch-table th{position:sticky;top:0;z-index:1;background:#f5f8f7}
.episode-batch-table th:nth-child(1){width:170px}.episode-batch-table th:nth-child(2){width:180px}.episode-batch-table th:nth-child(3){width:90px}.episode-batch-table th:nth-child(4){width:100px}.episode-batch-table th:nth-child(5){width:100px}.episode-batch-table th:nth-child(6){width:150px}.episode-batch-table th:nth-child(7){width:60px}
.episode-batch-table td,.episode-batch-table th{padding:10px}
.episode-batch-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.episode-batch-table input{width:100%;min-width:0;padding:6px 8px;border:1px solid #d8e1e1;border-radius:4px;background:#fff;color:#30484c;font-size:12px}
.episode-batch-table input:focus{outline:2px solid #27877e33;border-color:#27877e}
.episode-batch-table input:disabled{background:#f5f8f7;color:#829096}
.episode-batch-table .error{display:block;min-height:0;margin-top:4px;font-size:11px;white-space:normal;overflow-wrap:anywhere}
.episode-batch-table progress{display:block;width:100%;height:5px;margin-top:6px;accent-color:#16766e}
.episode-batch-table [hidden]{display:none!important}
.episode-batch-table button{padding:0;border:0;background:transparent;font-size:12px}
.episode-batch-message{min-height:18px;flex:0 0 auto;margin:12px 24px 0;color:#829096;font-size:12px;overflow-wrap:anywhere}
.episode-batch-footer{flex:0 0 auto;align-items:center;margin-top:16px;padding:16px 24px 22px;border-top:1px solid #e7eeed}
.episode-batch-footer>span{margin-right:auto;color:#829096;font-size:12px}
@media(max-height:700px){.episode-batch-modal{overflow:auto}.episode-batch-options{margin-top:12px;margin-bottom:12px}.episode-batch-drop{min-height:120px;padding:12px}.episode-batch-drop svg{width:48px;height:36px;margin-bottom:0}.episode-batch-table{min-height:90px}}
@media(max-width:700px){.episode-batch-modal{max-height:calc(100vh - 24px)}.episode-batch-drop{min-height:140px;padding:14px}.episode-batch-footer{flex-wrap:wrap;gap:8px}.episode-batch-footer>span{flex-basis:100%}}
.video-preview-link{border:0;background:transparent;padding:3px 0;color:#237a71;font-size:13px}
.episode-video-modal{width:min(880px,100%)}
.episode-video-modal .modal-head h2{overflow-wrap:anywhere}
.episode-video-modal .close{flex:0 0 auto}
.episode-video-body{padding:20px 24px}
.episode-video-body video{display:block;width:100%;max-height:calc(100vh - 220px);background:#000}
.episode-video-body .error{margin:12px 0 0}
.episode-video-body [hidden]{display:none}
@media(max-width:700px){.episode-video-body{padding:16px}.episode-video-body video{max-height:calc(100vh - 190px)}}
/* 资源表单的单选类型和按商家联动的门店多选控件。 */
.radio-field,.store-multi-select{min-width:0;margin:0;padding:0;border:0}
.radio-field legend,.store-multi-select legend{margin:0 0 7px;padding:0;color:#52636a;font-size:13px}
.radio-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.radio-options label{min-height:42px;display:flex;align-items:center;gap:9px;padding:9px 12px;border:1px solid #d8e1e1;border-radius:5px;background:#fff;color:#40575d;cursor:pointer}
.radio-options label:has(input:checked){border-color:#27877e;background:#edf6f4;color:#176f67;box-shadow:0 0 0 2px #27877e14}
.radio-options input{width:16px;height:16px;flex:0 0 16px;margin:0;padding:0;accent-color:#16766e;box-shadow:none!important}
.radio-options label:focus-within{outline:3px solid #27877e1a;outline-offset:1px}
.store-select-summary{min-height:34px;display:flex;align-items:center;padding:7px 10px;border:1px solid #d8e1e1;border-radius:5px 5px 0 0;background:#f7faf9;color:#52666b;font-size:12px}
.store-select-options{max-height:230px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;overflow:auto;border:1px solid #d8e1e1;border-top:0;border-radius:0 0 5px 5px;background:#e6eceb}
.store-select-options label{min-width:0;min-height:58px;display:flex;align-items:flex-start;gap:10px;padding:10px 12px;background:#fff;cursor:pointer}
.store-select-options label:hover,.store-select-options label:focus-within{background:#f0f7f5}
.store-select-options label:has(input:checked){background:#e4f3ef}
.store-select-options input{width:16px;height:16px;flex:0 0 16px;margin:3px 0 0;padding:0;accent-color:#16766e;box-shadow:none!important}
.store-select-options span,.store-select-options strong,.store-select-options small{display:block;min-width:0}
.store-select-options strong{overflow:hidden;color:#30484c;font-size:12px;text-overflow:ellipsis;white-space:nowrap}
.store-select-options small{margin-top:3px;overflow:hidden;color:#829096;font-size:11px;text-overflow:ellipsis;white-space:nowrap}
.store-select-empty{margin:0;padding:18px;border:1px solid #d8e1e1;border-top:0;border-radius:0 0 5px 5px;color:#829096;text-align:center}
/* 门店地图位置摘要与选点入口，已确认位置使用明确的选中样式。 */
.map-location-control{min-height:54px;display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:10px;padding:9px 10px;border:1px solid #d8e1e1;border-radius:5px;background:#f8fbfa}
.map-location-control>span{min-width:0;overflow:hidden;color:#738589;text-overflow:ellipsis;white-space:nowrap}
.map-location.has-location .map-location-control>span{color:#30484c}
.map-pin{width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:#dcece8;color:#16766e;font-size:18px}
/* 地图弹层覆盖表单，标题、地图与确认区按三行布局。 */
.map-picker-backdrop{position:fixed;z-index:40;inset:0;display:flex;align-items:center;justify-content:center;padding:20px;background:#173d406b}
.map-picker-dialog{width:min(900px,100%);height:min(720px,calc(100vh - 40px));display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden;border-radius:7px;background:#fff;box-shadow:0 20px 60px #173d4050}
.map-picker-dialog iframe{width:100%;height:100%;border:0;background:#f4f7f6}
/* 确认区独占地图弹层底部一行，不随地图内容滚动，保留取消和确认入口。 */
.map-picker-footer{min-height:62px;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:10px 14px 10px 18px;border-top:1px solid #e1e9e8;background:#fff}
.map-picker-status{min-width:0;color:#65777c;font-size:12px;overflow-wrap:anywhere}
.map-picker-actions{display:flex;flex:0 0 auto;gap:8px}
@media(max-width:700px){.radio-options,.store-select-options{grid-template-columns:1fr}.map-location-control{grid-template-columns:28px minmax(0,1fr)}.map-location-control button{grid-column:1/-1;width:100%}.map-picker-backdrop{padding:8px}.map-picker-dialog{height:calc(100vh - 16px)}.map-picker-footer{align-items:stretch;flex-direction:column;gap:8px}.map-picker-actions{justify-content:flex-end}}
