.period-toolbar,.material-toolbar,.import-toolbar{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin:18px 0}.period-toolbar label,.material-toolbar label{display:flex;align-items:center;gap:8px}.period-switcher{display:flex;gap:4px;padding:4px;background:#eaf0ec;border-radius:8px}.period-switcher .active{background:#fff;color:#226046;box-shadow:0 1px 4px #20382918}.calendar{display:grid!important;gap:0}.calendar-week,.calendar-month{grid-template-columns:repeat(7,minmax(130px,1fr));overflow:auto}.calendar-day{grid-template-columns:1fr}.calendar .day{min-width:0;min-height:140px;border-right:1px solid #e5ebe7;border-bottom:1px solid #e5ebe7;padding:12px}.calendar .event{display:block;width:100%;text-align:left;white-space:normal;margin:8px 0;line-height:1.7;font-weight:400;height:auto}.calendar-month .day{min-height:155px}.calendar-month{max-height:620px}.form-grid textarea{min-height:100px}.form-error,.overdue{color:#a13d2e}.form-error{background:#fff0eb;padding:12px;border-radius:6px}.form-error[hidden]{display:none}.choice-row{display:flex;align-items:center;gap:8px;padding:10px}.choice-row input{width:auto}.rate{display:inline-block;min-width:22px;text-align:center;border-radius:4px;font-size:12px;font-weight:600;padding:2px 6px}
.rate-1{background:#e8f3ed;color:#126144}
.rate-0{background:#f0f2f3;color:#8b9790}
.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:8px;overflow:hidden;margin:16px 0}
.detail-grid>div{background:#fff;padding:10px 14px;display:flex;flex-direction:column;gap:3px}
.detail-grid span{font-size:11px;color:#8b9790}
.detail-grid strong{font-size:13px;font-weight:600;overflow-wrap:anywhere}
@media(max-width:700px){.detail-grid{grid-template-columns:1fr}}
.upload-box{display:flex;flex-direction:column;gap:12px}
.upload-box input[type="file"]{padding:9px;font-size:12px;height:auto}
.upload-list{display:flex;flex-wrap:wrap;gap:10px}
.upload-list .sub{width:100%}
.thumb{position:relative;margin:0;width:96px;border:1px solid #e2e9e5;border-radius:7px;overflow:hidden;background:#fafcfb}
.thumb img{display:block;width:100%;height:72px;object-fit:cover}
.thumb figcaption{font-size:10px;color:#7d8a83;padding:5px 6px;line-height:1.4;word-break:break-all}
.thumb figcaption small{display:block;color:#9aa49f}
.thumb-x{position:absolute;top:3px;right:3px;width:20px;height:20px;padding:0;line-height:1;border-radius:50%;border:0;background:#1f3a30cc;color:#fff;font-size:13px}
.thumb-x:hover{background:#8c2f22}
.card-thumbs{display:flex;flex-wrap:wrap;gap:7px;margin:12px 0}
.card-thumbs img{width:76px;height:58px;object-fit:cover;border-radius:5px;border:1px solid #e2e9e5}
.mini-thumbs{display:flex;gap:4px}
.mini-thumbs img{width:34px;height:34px;object-fit:cover;border-radius:4px;border:1px solid #e2e9e5}
.table-block{position:relative}
.table-tools{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:9px 20px 0;flex-wrap:wrap}
.tools-right{display:flex;gap:4px;margin-left:auto}
.batch-bar{display:flex;align-items:center;gap:5px;flex-wrap:wrap}
.batch-hint{font-size:12px;color:#9aa49f}
.batch-count{font-size:12px;font-weight:600;color:#126144}
.tool.batch{border:1px solid #dce5df;background:#fff;color:#126144;border-radius:6px;padding:4px 9px;font-size:12px}
.tool.batch:hover{background:#eef5f1}
.pick-cell{width:44px;text-align:center;padding-left:14px;padding-right:4px}
.pick-col{width:44px}
td.pick-cell input,.pick-cell input[type="checkbox"]{width:15px;height:15px;min-width:0;padding:0;margin:0;vertical-align:middle;accent-color:#167455}
.table-tools .tool{border:0;background:none;color:#8b9790;font-size:12px;padding:4px 8px;border-radius:5px}
.table-tools .tool:hover{background:#f1f6f3;color:#126144}
/* 「批量导入」是个动作，不是一个设置项 —— 跟「列设置」长一样就等于没有。
   边框 + 绿字，跟勾选后的批量操作按钮同一套观感。 */
.table-tools .tool.batch{border:1px solid #cfe0d6;background:#fff;color:#126144;font-weight:500;padding:5px 11px}
.table-tools .tool.batch:hover{background:#eef5f1;border-color:#a9ccba}
/* 凭据列：打码值 + 眼睛（看明文）+ 复制 */
.cred{display:inline-flex;align-items:center;gap:3px}
.cred-val{font-variant-numeric:tabular-nums}
.cred-btn{border:0;background:none;padding:3px;border-radius:5px;color:#87948d;display:inline-flex;align-items:center;line-height:1}
.cred-btn:hover{background:#eef5f1;color:#126144}
.cred-btn svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
/* 列设置：每列一个芯片，点名字切显示、箭头调顺序 */
.col-chips{display:flex;flex-wrap:wrap;gap:8px}
.col-chip{display:inline-flex;align-items:stretch;border:1px solid #dce5df;border-radius:7px;overflow:hidden;background:#fff}
.col-chip.off{opacity:.55}
.col-chip.off .col-name{text-decoration:line-through;color:#8b9790}
.col-chip .col-name{border:0;border-radius:0;background:none;padding:7px 10px;font-size:13px;color:#21332f}
.col-chip .col-name:hover{background:#eef5f1}
.col-chip .col-move{display:inline-flex;border-left:1px solid #e7eee9}
.col-chip .col-move button{border:0;border-radius:0;background:none;padding:0 7px;color:#5b7a6b;font-size:12px}
.col-chip .col-move button:hover:not(:disabled){background:#eef5f1;color:#126144}
.col-chip .col-move button:disabled{opacity:.28;cursor:not-allowed}
/* 页头的次要动作：有边框但不是主色块，跟主按钮并排不抢焦点 */
button.ghost{border:1px solid #cfe0d6;background:#fff;color:#126144}
button.ghost:hover{background:#eef5f1;border-color:#a9ccba}
table.fixed{table-layout:fixed}
table.fixed td{overflow:hidden;text-overflow:ellipsis}
th{position:relative}
.col-resize{position:absolute;top:0;right:-4px;width:9px;height:100%;cursor:col-resize;z-index:2;touch-action:none}
.col-resize:hover,.col-resize:active{background:#bcd9c9}
.identity-group{margin:18px 0 10px;font-size:13px;color:#7d8a83}
.identity-group:first-of-type{margin-top:8px}
.perm-on,.perm-off{border:1px solid #dce5df;background:#fff;border-radius:6px;padding:5px 11px;font-size:12px;min-width:52px}
.perm-on{background:#e8f3ed;border-color:#bcd9c9;color:#126144;font-weight:600}
.perm-off{color:#a8b2ac}
.identity-list{display:flex;gap:12px;flex-wrap:wrap}.identity-list button{padding:12px 18px;border:1px solid #d9e4dc;border-radius:8px}.profile .link{white-space:normal;text-align:left}.mapping-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:16px 0}.mapping-grid label{display:grid;gap:6px}.mapping-grid select{max-width:100%}.file-label{display:grid;gap:8px}.file-label input{height:auto;max-width:100%;padding:10px}.import-summary{font-weight:600;color:#226046;background:#eff6f1;padding:12px}.modal-body .table-wrap{max-height:300px;overflow:auto}.footnote{margin-top:16px;line-height:1.8}.integration-grid{display:flex;flex-wrap:wrap;gap:16px}.integration-grid>div{display:grid;gap:10px;padding:16px;background:#f3f7f4}.timeline{overflow-wrap:anywhere}details{margin:18px 0}summary{cursor:pointer;color:#356950}button:disabled{opacity:.45;cursor:not-allowed}.message{white-space:pre-wrap;overflow-wrap:anywhere}td{max-width:320px;overflow-wrap:anywhere}.modal-foot{gap:12px}.form-grid label.full{grid-column:1/-1}.notice{line-height:1.8}button:focus-visible,a:focus-visible{outline:3px solid #599c78;outline-offset:3px}@media(max-width:700px){.mapping-grid{grid-template-columns:1fr}.calendar-week,.calendar-month{grid-template-columns:repeat(7,145px)}.period-toolbar,.material-toolbar{gap:10px}.date{display:none}.header-right{gap:8px}}
/* 广告户分配：可勾选的广告系列列表（能选，也能看清每个系列当前属于谁） */
.pick-list{display:flex;flex-direction:column;max-height:340px;overflow-y:auto;border:1px solid #e3e9e5;border-radius:8px;margin-top:14px}
.pick-row{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;cursor:pointer;border-bottom:1px solid #eef2ef}
.pick-row:last-child{border-bottom:0}
.pick-row:hover{background:#f6f9f7}
.pick-row input{margin-top:3px;flex:0 0 auto}
.pick-row>span{display:flex;flex-direction:column;gap:2px;min-width:0}
.pick-row strong{font-size:13px;font-weight:600;word-break:break-all}
.pick-row small{color:#6b7671;font-size:12px;line-height:1.5}
/* 多值字段：勾选已有值 + 手动加新值（国家、平台这类不该挤在一个格里） */
.multi-box{display:flex;flex-wrap:wrap;gap:6px;padding:8px 0 4px}
.multi-item{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border:1px solid #dde5e0;border-radius:999px;font-size:12.5px;cursor:pointer;background:#fff}
.multi-item:hover{border-color:#b9cbc2;background:#f6f9f7}
.multi-item input{margin:0}
