:root{--bg:#f4f6f8;--surface:#fff;--ink:#17211b;--muted:#6e7872;--line:#e4e9e6;--green:#176b4d;--green2:#e8f3ee;--red:#b63c3c;--red2:#fbeeee;--amber:#9a6518;--amber2:#fff5df;--shadow:0 12px 32px rgba(28,48,37,.07);--radius:18px}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,"Segoe UI","Microsoft YaHei",sans-serif;font-size:16px}.app-shell{min-height:100vh;display:grid;grid-template-columns:240px 1fr}.sidebar{position:sticky;top:0;height:100vh;background:#102a21;color:#fff;padding:28px 18px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:12px;padding:0 8px 28px}.brand-mark{width:38px;height:38px;border-radius:12px;background:#d9f2e7;color:#135f45;display:grid;place-items:center;font-weight:800}.brand strong,.brand small{display:block}.brand small{color:#9fb7ae;font-size:12px;margin-top:3px}.sidebar nav{display:grid;gap:7px}.nav-item{border:0;background:transparent;color:#acc1b9;text-align:left;padding:12px 14px;border-radius:12px;font-size:14px;cursor:pointer;display:flex;align-items:center;gap:11px;min-height:46px}.nav-item span{font-size:19px;width:20px}.nav-item:hover,.nav-item.active{background:rgba(255,255,255,.1);color:#fff}.nav-badge{margin-left:auto;background:#d7ede4;color:#0f573e;padding:2px 7px;border-radius:10px;font-size:11px}.sidebar-foot{margin-top:auto;border-top:1px solid rgba(255,255,255,.1);padding:18px 8px 0;color:#94aca3;font-size:12px;display:flex;gap:8px;align-items:center}.storage-dot{width:7px;height:7px;border-radius:50%;background:#65d1a2;box-shadow:0 0 0 4px rgba(101,209,162,.12)}main{min-width:0;padding:32px 40px 60px}.topbar{display:flex;justify-content:space-between;align-items:end;margin-bottom:26px}.topbar p{font-size:11px;letter-spacing:.18em;color:var(--green);font-weight:800;margin:0 0 7px}.topbar h1{font-size:28px;margin:0;letter-spacing:-.03em}.primary,.ghost,.danger,.small-btn{border:0;border-radius:11px;min-height:42px;padding:0 17px;font:inherit;font-size:14px;font-weight:650;cursor:pointer}.primary{background:var(--green);color:#fff;box-shadow:0 8px 20px rgba(23,107,77,.16)}.primary:hover{background:#105d42}.ghost{background:#f1f4f2;color:var(--ink)}.danger{background:var(--red);color:#fff}.summary{display:grid;grid-template-columns:1.4fr repeat(4,1fr);gap:12px;margin-bottom:24px}.metric{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:18px;min-height:104px}.metric.date-card{background:#17382c;color:#fff;border:0}.metric small{display:block;color:var(--muted);font-size:13px;margin-bottom:10px}.date-card small{color:#acc7bd}.metric strong{font-size:28px;line-height:1}.metric .unit{font-size:13px;margin-left:4px;color:var(--muted)}.date-card strong{font-size:22px}.date-card p{color:#b7cec5;margin:8px 0 0;font-size:13px}.section{margin-top:26px}.section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.section-head h2{font-size:18px;margin:0}.section-head p{margin:4px 0 0;color:var(--muted);font-size:13px}.section-head .count{font-size:12px;background:#e9eeeb;padding:5px 9px;border-radius:20px;color:#58635d}.focus-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.focus-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:19px;box-shadow:var(--shadow);position:relative;min-height:170px;display:flex;flex-direction:column}.rank{position:absolute;right:16px;top:15px;color:#d7ddd9;font-size:34px;font-weight:800}.focus-card h3{font-size:16px;max-width:80%;margin:12px 0 10px}.tag-row{display:flex;gap:6px;flex-wrap:wrap}.tag{font-size:12px;padding:4px 8px;border-radius:20px;background:#edf1ef;color:#5b665f}.tag.high,.tag.overdue,.tag.blocked{background:var(--red2);color:var(--red)}.tag.medium,.tag.near,.tag.waiting{background:var(--amber2);color:var(--amber)}.tag.low,.tag.normal,.tag.done{background:var(--green2);color:var(--green)}.focus-actions{margin-top:auto;display:flex;gap:8px}.small-btn{min-height:34px;padding:0 11px;background:#eff3f1;color:#34443c;font-size:12px}.small-btn.complete{background:var(--green2);color:var(--green)}.dashboard-columns{display:grid;grid-template-columns:1fr 1fr;gap:18px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px}.task-list{display:grid;gap:8px}.task-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:11px;padding:12px;border:1px solid var(--line);border-radius:13px;background:#fff}.task-row:hover{border-color:#cdd7d1}.task-row.done-row{opacity:.62}.task-row.done-row h4{text-decoration:line-through}.complete-check{width:23px;height:23px;border:2px solid #bdc8c2;border-radius:8px;background:white;cursor:pointer;color:#fff}.complete-check.checked{background:var(--green);border-color:var(--green)}.task-copy{min-width:0}.task-copy h4{font-size:14px;margin:0 0 5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.task-meta{display:flex;gap:8px;align-items:center;color:var(--muted);font-size:12px;flex-wrap:wrap}.row-actions{display:flex;gap:3px}.icon-btn{width:34px;height:34px;border:0;border-radius:9px;background:transparent;color:#707a74;font-size:18px;cursor:pointer}.icon-btn:hover{background:#eef2ef;color:var(--ink)}.empty{padding:28px 15px;text-align:center;color:var(--muted);border:1px dashed #d5dcd8;border-radius:14px}.toolbar{display:flex;gap:10px;align-items:center;margin-bottom:16px;flex-wrap:wrap}.toolbar input,.toolbar select{height:42px;border:1px solid var(--line);border-radius:11px;padding:0 12px;background:#fff;font:inherit;font-size:14px}.toolbar input{min-width:220px;flex:1}.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.project-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}.project-card-head{display:flex;justify-content:space-between;gap:10px}.project-card h3{font-size:17px;margin:0}.project-desc{color:var(--muted);font-size:13px;line-height:1.55;min-height:40px}.progress-track{height:7px;background:#edf1ef;border-radius:10px;overflow:hidden;margin:15px 0 8px}.progress-fill{height:100%;background:var(--green);border-radius:10px}.project-numbers{display:flex;justify-content:space-between;color:var(--muted);font-size:12px}.next-action{margin:15px 0;padding:11px 12px;background:#f5f7f6;border-radius:11px;font-size:13px}.next-action strong{display:block;font-size:11px;color:var(--green);margin-bottom:4px;text-transform:uppercase}.card-foot{display:flex;justify-content:space-between;align-items:center;margin-top:12px}.risk-list{display:grid;gap:10px}.risk-item{display:grid;grid-template-columns:8px minmax(0,1fr) auto;gap:13px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:15px;padding:16px}.risk-bar{width:8px;height:100%;min-height:54px;border-radius:8px;background:var(--amber)}.risk-item.severe .risk-bar{background:var(--red)}.risk-item.normal .risk-bar{background:var(--green)}.risk-item h3{font-size:15px;margin:0 0 5px}.risk-item p{font-size:13px;color:var(--muted);margin:0}.review-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.review-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px}.review-card strong{font-size:26px}.review-card small{display:block;color:var(--muted);margin-bottom:9px}.review-lists{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:18px}.data-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:22px;margin-bottom:14px}.data-card h3{margin:0 0 6px}.data-card p{color:var(--muted);font-size:14px;line-height:1.6}.data-actions{display:flex;gap:10px;flex-wrap:wrap}.modal,.confirm{border:0;border-radius:20px;padding:0;box-shadow:0 30px 90px rgba(20,35,27,.25);width:min(680px,calc(100vw - 28px));max-height:calc(100vh - 28px);overflow:auto}.modal::backdrop,.confirm::backdrop{background:rgba(10,24,17,.55);backdrop-filter:blur(3px)}.modal form{padding:24px}.modal-head{display:flex;justify-content:space-between;align-items:start;margin-bottom:20px}.modal-head small{font-size:11px;color:var(--green);font-weight:800;letter-spacing:.15em}.modal-head h2{margin:4px 0 0;font-size:22px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.modal label{display:grid;gap:7px;font-size:13px;font-weight:650;color:#4d5952}.modal label span{color:var(--red)}.modal input,.modal select,.modal textarea{width:100%;border:1px solid #d8dfdb;border-radius:11px;padding:10px 12px;font:inherit;font-size:14px;background:#fff;color:var(--ink)}.modal textarea{resize:vertical}.modal .wide{margin-bottom:15px}.modal .check-label{display:flex;align-items:center;gap:8px;align-self:end;min-height:42px}.modal .check-label input{width:18px}.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:22px}.confirm{width:min(420px,calc(100vw - 28px));text-align:center}.confirm form{padding:28px}.confirm-icon{margin:auto;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:var(--red2);color:var(--red);font-weight:800}.confirm h2{font-size:19px}.confirm p{color:var(--muted);line-height:1.6}.confirm .modal-actions{justify-content:center}.report-modal textarea{min-height:380px;line-height:1.7;background:#f7f9f8}.toast{position:fixed;z-index:100;right:24px;top:22px;background:#17382c;color:#fff;padding:12px 17px;border-radius:11px;box-shadow:var(--shadow);transform:translateY(-80px);opacity:0;transition:.25s}.toast.show{transform:none;opacity:1}
@media(max-width:1050px){.project-grid{grid-template-columns:1fr 1fr}.summary{grid-template-columns:1.5fr repeat(2,1fr)}.focus-grid{grid-template-columns:1fr}.focus-card{min-height:145px}.review-grid{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.app-shell{display:block}.sidebar{position:fixed;z-index:20;left:0;right:0;bottom:0;top:auto;height:72px;padding:8px 3px;background:#102a21}.brand,.sidebar-foot{display:none}.sidebar nav{display:flex;justify-content:space-around;gap:0}.nav-item{font-size:9px;padding:7px 2px;display:grid;place-items:center;gap:1px;min-width:0;min-height:56px;flex:1}.nav-item span{font-size:18px;width:auto}.nav-badge{position:absolute;margin:-27px 0 0 22px}.nav-item:last-child{display:grid}main{padding:22px 16px 95px}.topbar{align-items:center}.topbar h1{font-size:23px}.topbar .primary{width:46px;padding:0;font-size:0}.topbar .primary:first-letter{font-size:20px}.summary{grid-template-columns:1fr 1fr}.metric.date-card{grid-column:1/-1}.metric{min-height:92px}.dashboard-columns,.review-lists{grid-template-columns:1fr}.project-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.review-grid{grid-template-columns:1fr 1fr}.row-actions .icon-btn{width:38px;height:38px}.task-row{padding:11px 8px}.panel{padding:14px}.risk-item{grid-template-columns:7px 1fr}.risk-item>span:last-child{grid-column:2}.toolbar input{min-width:100%}}

/* 校企招聘管理 */
.nav-group{display:grid;gap:4px}.nav-group-toggle{width:100%}.nav-group-toggle .chevron{margin-left:auto;font-size:12px;transition:.2s}.nav-group:not(.open) .chevron{transform:rotate(180deg)}.nav-submenu{display:grid;gap:3px;max-height:160px;overflow:hidden;transition:max-height .22s ease}.nav-group:not(.open) .nav-submenu{max-height:0}.sub-item{padding-left:29px;min-height:39px;font-size:13px}.sub-item span{font-size:15px}.sidebar nav{overflow-y:auto;scrollbar-width:thin}.wide-modal{width:min(900px,calc(100vw - 28px))}.form-grid.three{grid-template-columns:repeat(3,1fr)}
.recruit-flow{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:20px}.flow-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px;display:flex;gap:12px;align-items:center}.flow-num{width:34px;height:34px;flex:0 0 34px;border-radius:11px;background:var(--green2);color:var(--green);display:grid;place-items:center;font-weight:800}.flow-card strong,.flow-card small{display:block}.flow-card small{color:var(--muted);margin-top:4px;line-height:1.4}.notice-strip{background:var(--amber2);color:#6f4c17;border:1px solid #f0dab1;border-radius:15px;padding:14px 16px;margin:18px 0}.notice-strip strong{display:block;margin-bottom:5px}.table-wrap{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:16px}.data-table{border-collapse:collapse;width:100%;min-width:980px}.data-table th{position:sticky;top:0;background:#f6f8f7;color:#66716b;text-align:left;font-size:12px;padding:12px;border-bottom:1px solid var(--line);white-space:nowrap}.data-table td{padding:12px;border-bottom:1px solid #edf0ee;font-size:13px;vertical-align:top}.data-table tr:last-child td{border-bottom:0}.data-table tr.reminder td{background:#fffaf0}.data-table tr.completed{opacity:.55}.cell-main{font-weight:650;margin-bottom:4px}.cell-sub{color:var(--muted);font-size:12px;line-height:1.45}.date-alert{color:var(--amber);font-weight:700}.switch{width:42px;height:24px;border:0;border-radius:20px;background:#ccd4cf;padding:3px;cursor:pointer}.switch::before{content:"";display:block;width:18px;height:18px;background:#fff;border-radius:50%;transition:.18s}.switch.on{background:var(--green)}.switch.on::before{transform:translateX(18px)}.password-cell{display:flex;align-items:center;gap:8px;max-width:260px}.password-text{font-family:ui-monospace,Consolas,monospace;word-break:break-all}.link-btn{color:var(--green);font-weight:700;text-decoration:none}.link-btn:hover{text-decoration:underline}.mini-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:16px}.mini-stat{background:#fff;border:1px solid var(--line);border-radius:14px;padding:15px}.mini-stat small{display:block;color:var(--muted);font-size:12px;margin-bottom:7px}.mini-stat strong{font-size:22px}.toolbar .compact{min-width:140px;flex:0 1 180px}.recruit-alerts{display:grid;grid-template-columns:1fr 1fr;gap:12px}.recruit-alert{background:#fff;border:1px solid var(--line);border-left:4px solid var(--amber);border-radius:14px;padding:14px}.recruit-alert h4{margin:0 0 6px;font-size:14px}.recruit-alert p{margin:0;color:var(--muted);font-size:12px;line-height:1.5}.channel-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.channel-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px}.channel-card h3{margin:0 0 7px;font-size:16px}.channel-card .channel-url{min-height:38px;color:var(--muted);font-size:12px;word-break:break-all}.channel-card .card-foot{border-top:1px solid var(--line);padding-top:12px}.muted-note{font-size:12px;color:var(--muted)}
@media(max-width:1050px){.channel-grid{grid-template-columns:1fr 1fr}.form-grid.three{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.sidebar{height:76px;padding:7px 3px}.sidebar nav{display:flex;justify-content:flex-start;overflow-x:auto;overflow-y:hidden}.sidebar nav>.nav-item,.sidebar nav>.nav-group{flex:0 0 72px}.nav-group{display:block}.nav-group-toggle{display:grid!important;width:72px}.nav-submenu{position:fixed;left:8px;right:8px;bottom:76px;z-index:30;background:#17382c;border-radius:14px;padding:8px;display:grid;grid-template-columns:repeat(3,1fr);box-shadow:0 -12px 32px rgba(0,0,0,.18);max-height:100px}.nav-group:not(.open) .nav-submenu{display:none}.sub-item{padding:6px 3px;min-height:58px}.nav-group-toggle .chevron{position:absolute;margin:27px 0 0 35px}.form-grid.three{grid-template-columns:1fr}.recruit-flow,.recruit-alerts{grid-template-columns:1fr}.mini-stats{grid-template-columns:1fr 1fr}.channel-grid{grid-template-columns:1fr}.table-wrap{border-radius:13px}.data-table{min-width:940px}}
@media(max-width:760px){.nav-group-toggle .chevron{margin:27px 0 0 35px!important}}

/* Recurring tasks and editable intern ledger */
.recruit-page .data-table th{position:static;top:auto}
.editable-cell{cursor:text;min-width:90px;transition:background .15s}
.editable-cell:hover{background:#eef6f2!important;box-shadow:inset 0 0 0 1px #bfd8cc}
.editable-cell input,.editable-cell select{width:100%;min-width:90px;border:1px solid var(--green);border-radius:8px;padding:8px;background:#fff;font:inherit}
.intern-table{min-width:1900px}
.intern-table th:first-child,.intern-table td:first-child{width:46px;text-align:center}
.intern-table input[type=checkbox]{width:19px;height:19px;accent-color:var(--green);cursor:pointer}
.inline-tip{color:var(--muted);font-size:13px;margin:-6px 0 12px}
.option-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:4px}
button:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}
.repeat-setting[hidden]{display:none}
.repeat-row{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:15px;align-items:start}
@media(max-width:760px){.editable-cell{min-width:110px}.intern-table{min-width:2050px}.option-actions .small-btn{min-height:42px}}

/* Searchable store/address dropdowns */
.search-combo{position:relative;width:100%;min-width:140px}
.combo-trigger{width:100%;height:42px;border:1px solid var(--line);border-radius:11px;padding:0 34px 0 12px;background:#fff;color:var(--ink);font:inherit;font-size:14px;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;position:relative}
.combo-trigger::after{content:"⌄";position:absolute;right:12px;top:50%;transform:translateY(calc(-54% - 7px));color:var(--muted);font-size:17px;line-height:1}
.combo-trigger:focus{outline:2px solid rgba(23,107,77,.2);border-color:var(--green)}
.combo-panel{position:fixed;z-index:2000;height:300px;max-height:min(300px,calc(100vh - 16px));display:flex;flex-direction:column;background:#fff;border:1px solid #cfd9d3;border-radius:12px;box-shadow:0 18px 50px rgba(20,35,27,.22);padding:8px}
.combo-search{flex:0 0 42px;width:100%;height:42px;border:1px solid #d4ddd8;border-radius:9px;padding:0 11px;font:inherit;font-size:14px;outline:none}
.combo-search:focus{border-color:var(--green);box-shadow:0 0 0 2px rgba(23,107,77,.12)}
.combo-options{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;margin-top:6px;scrollbar-width:thin}
.combo-option{display:block;width:100%;min-height:38px;border:0;border-radius:8px;padding:8px 10px;background:#fff;color:var(--ink);font:inherit;font-size:13px;text-align:left;line-height:1.45;cursor:pointer}
.combo-option:hover,.combo-option.active{background:var(--green2);color:var(--green)}
.combo-empty{display:grid;place-items:center;height:100%;min-height:90px;color:var(--muted);font-size:13px}
.editable-cell .search-combo{min-width:150px}.editable-cell .combo-trigger{border-color:var(--green)}
.intern-table input[type=checkbox]{appearance:none;display:inline-grid;place-content:center;border:1.5px solid #87958d;border-radius:3px;background:#fff}
.intern-table input[type=checkbox]::before{content:"✓";color:#fff;font-size:15px;font-weight:800;line-height:1;transform:scale(0)}
.intern-table input[type=checkbox]:checked,.intern-table input[type=checkbox]:indeterminate{background:var(--green);border-color:var(--green)}
.intern-table input[type=checkbox]:checked::before{transform:scale(1)}
.intern-table input[type=checkbox]:indeterminate::before{content:"−";transform:scale(1)}
@media(max-width:760px){.combo-panel{height:min(300px,calc(100vh - 16px));left:8px!important;right:8px;width:auto!important}.combo-option{min-height:44px}}

.combo-option-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;min-height:40px;border-radius:8px;padding:2px 4px 2px 8px}
.combo-option-row:hover,.combo-option-row.active{background:var(--green2)}
.combo-option-label{border:0;background:transparent;color:var(--ink);font:inherit;font-size:13px;text-align:left;line-height:1.45;padding:7px 2px;cursor:pointer;white-space:normal}
.combo-option-row:hover .combo-option-label,.combo-option-row.active .combo-option-label{color:var(--green)}
.combo-option-tools{display:flex;opacity:0;pointer-events:auto;transition:opacity .12s}
.combo-option-tools:hover{opacity:1}
.combo-option-tools button{width:30px;height:30px;border:0;border-radius:7px;background:transparent;color:var(--muted);cursor:pointer;font-size:15px}
.combo-option-tools button:hover{background:#fff;color:var(--green)}
.combo-option-tools .combo-delete:hover{color:var(--red);background:var(--red2)}
.suggest-panel{position:fixed;z-index:2100;max-height:220px;overflow-y:auto;background:#fff;border:1px solid #cfd9d3;border-radius:10px;padding:6px;box-shadow:0 14px 36px rgba(20,35,27,.18)}
.suggest-panel button{display:block;width:100%;min-height:38px;border:0;border-radius:7px;background:#fff;padding:7px 10px;text-align:left;font:inherit;font-size:13px;cursor:pointer}
.suggest-panel button:hover,.suggest-panel button:focus{background:var(--green2);color:var(--green)}
.intern-table td[data-field="seq"]{cursor:default;color:var(--muted);font-weight:700}

/* 2026-09-10 intern form, compact filters and typography */
html,body,button,input,select,textarea{font-family:"PingFang SC","HarmonyOS Sans SC","HarmonyOS Sans","Microsoft YaHei UI","Microsoft YaHei","Segoe UI",Arial,sans-serif}
body{font-size:15px;line-height:1.55;font-weight:400;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
.data-table th{font-size:12px;font-weight:600;line-height:1.35;letter-spacing:.01em}
.data-table td{font-size:13px;font-weight:400;line-height:1.45}
#internDialog.wide-modal{width:min(560px,calc(100vw - 28px))}
#internDialog .form-grid.three{grid-template-columns:1fr!important;gap:13px}
#internDialog .form-grid.three>label{width:100%;min-width:0}
#internDialog .form-grid.three input,#internDialog .form-grid.three select,#internDialog .form-grid.three .search-combo{width:100%;min-width:0}
#internDialog .modal-actions{position:sticky;bottom:0;background:#fff;padding-top:12px}
.recruit-page .toolbar{gap:8px;align-items:center}
.recruit-page .toolbar>input#internSearch{flex:0 0 170px!important;width:170px!important;min-width:140px!important}
.recruit-page .toolbar>.compact{flex:0 0 145px!important;width:145px!important;min-width:125px!important}
.recruit-page .toolbar>.search-combo{flex:0 0 145px;width:145px;min-width:125px}
.intern-table{table-layout:fixed;min-width:1760px}
.intern-table th,.intern-table td{height:54px;vertical-align:middle;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.intern-table th:nth-child(1),.intern-table td:nth-child(1){width:46px}
.intern-table th:nth-child(2),.intern-table td:nth-child(2){width:58px}
.intern-table th:nth-child(3),.intern-table td:nth-child(3){width:95px}
.intern-table th:nth-child(4),.intern-table td:nth-child(4){width:90px}
.intern-table th:nth-child(5),.intern-table td:nth-child(5){width:150px}
.intern-table th:nth-child(6),.intern-table td:nth-child(6){width:66px}
.intern-table th:nth-child(7),.intern-table td:nth-child(7){width:90px}
.intern-table th:nth-child(8),.intern-table td:nth-child(8),.intern-table th:nth-child(9),.intern-table td:nth-child(9){width:72px}
.intern-table th:nth-child(10),.intern-table td:nth-child(10){width:160px}
.intern-table th:nth-child(11),.intern-table td:nth-child(11){width:105px}
.intern-table th:nth-child(12),.intern-table td:nth-child(12){width:310px}
.intern-table th:nth-child(13),.intern-table td:nth-child(13),.intern-table th:nth-child(14),.intern-table td:nth-child(14){width:112px}
.intern-table th:nth-child(15),.intern-table td:nth-child(15){width:180px}
.editable-cell input,.editable-cell select,.editable-cell .search-combo,.editable-cell .combo-trigger{width:100%;min-width:0;max-width:100%;height:36px}
.intern-table .editable-cell{min-width:0}
.editable-cell input,.editable-cell select{padding:5px 7px}
@media(max-width:760px){.recruit-page .toolbar>input#internSearch,.recruit-page .toolbar>.compact,.recruit-page .toolbar>.search-combo{flex:1 1 140px!important;width:auto!important;min-width:130px!important}#internDialog.wide-modal{width:calc(100vw - 20px)}}

/* JM SPACE — Apple-inspired glacier theme */
:root{--bg:#f5f8fa;--surface:rgba(255,255,255,.86);--ink:#10243e;--muted:#7d8fa3;--line:rgba(91,125,153,.14);--green:#3a8fef;--green2:#e8f4fe;--red:#c95d68;--red2:#fceff1;--amber:#b9823b;--amber2:#fff6e8;--shadow:0 12px 34px rgba(51,91,122,.075);--radius:22px}
html{background:#f5f8fa}body{background:linear-gradient(145deg,#f8fbfd 0%,#f3f8fb 48%,#eef5f9 100%);color:var(--ink);min-height:100vh}
body::before{content:"";position:fixed;inset:0;z-index:-2;pointer-events:none;background:radial-gradient(circle at 76% 8%,rgba(190,228,247,.44),transparent 30%),radial-gradient(circle at 18% 82%,rgba(216,235,244,.52),transparent 34%),linear-gradient(180deg,rgba(255,255,255,.72),rgba(245,248,250,.58))}
body::after{content:"";position:fixed;left:240px;right:0;bottom:0;height:34vh;z-index:-1;pointer-events:none;opacity:.22;background:linear-gradient(165deg,transparent 0 45%,rgba(154,190,211,.26) 45.3% 52%,transparent 52.3%),linear-gradient(195deg,transparent 0 48%,rgba(122,166,193,.2) 48.3% 56%,transparent 56.3%);filter:blur(16px)}
.app-shell{grid-template-columns:246px 1fr}
.sidebar{background:rgba(250,253,255,.78);color:var(--ink);border-right:1px solid rgba(116,153,181,.13);box-shadow:10px 0 40px rgba(70,109,137,.045);backdrop-filter:blur(22px) saturate(135%);-webkit-backdrop-filter:blur(22px) saturate(135%);padding:25px 17px}
.brand{gap:13px;padding:0 7px 27px}.brand-mark{width:52px;height:52px;border-radius:17px;background:linear-gradient(145deg,#edfaff,#cceeff);box-shadow:0 8px 22px rgba(58,143,239,.15),inset 0 1px 0 rgba(255,255,255,.95);overflow:hidden;border:1px solid rgba(115,195,235,.2)}
.brand-mark img{width:100%;height:100%;object-fit:contain;transform:none;display:block}
.brand strong{font-size:16px;letter-spacing:.08em;font-weight:720;color:#10243e}.brand small{font-size:8px;letter-spacing:.18em;color:#8da0b5;margin-top:5px;white-space:nowrap}
.sidebar nav{gap:6px}.sidebar nav::-webkit-scrollbar{width:4px}.sidebar nav::-webkit-scrollbar-thumb{background:#d9e6ee;border-radius:8px}
.nav-item{color:#617b94;border-radius:14px;padding:11px 13px;font-size:13px;font-weight:520;transition:background .2s,color .2s,transform .2s;min-height:44px}
.nav-item span{width:27px;height:27px;border-radius:9px;display:grid;place-items:center;font-size:15px;color:#557b9b;background:rgba(224,238,247,.72);transition:.2s}
.nav-item:hover{background:rgba(232,244,252,.82);color:#285f88;transform:translateX(2px)}
.nav-item.active{background:linear-gradient(100deg,rgba(221,243,252,.96),rgba(235,247,253,.78));color:#257bd4;box-shadow:inset 3px 0 #3a8fef}
.nav-item.active span{color:#2686e8;background:#fff;box-shadow:0 5px 14px rgba(58,143,239,.13)}
.nav-badge{background:#ddecfb;color:#347ebc}.sub-item{padding-left:24px}.sub-item span{background:transparent;box-shadow:none}.sidebar-foot{border-top:1px solid rgba(89,127,157,.12);color:#8da0b5}.storage-dot{background:#5eb89b;box-shadow:0 0 0 4px rgba(94,184,155,.12)}
main{padding:30px 38px 64px}.topbar{margin-bottom:25px;align-items:center}.topbar p{color:#4f8fbd;font-size:10px;letter-spacing:.22em}.topbar h1{font-size:29px;font-weight:720;color:#10243e;letter-spacing:-.025em}
.primary,.ghost,.danger,.small-btn{border-radius:13px;transition:transform .18s,box-shadow .18s,background .18s}.primary{background:linear-gradient(145deg,#459af1,#2f82dd);box-shadow:0 8px 20px rgba(58,143,239,.2)}.primary:hover{background:linear-gradient(145deg,#398fe9,#2678cf);transform:translateY(-1px);box-shadow:0 10px 24px rgba(58,143,239,.25)}.ghost,.small-btn{background:rgba(239,245,249,.9);color:#48657d}.ghost:hover,.small-btn:hover{background:#e6f1f8;color:#2f75aa}.danger{background:#c95d68;box-shadow:0 7px 18px rgba(201,93,104,.14)}
.metric,.panel,.focus-card,.project-card,.review-card,.data-card,.channel-card,.mini-stat,.risk-item,.flow-card,.recruit-alert,.table-wrap{background:rgba(255,255,255,.84);border:1px solid rgba(109,145,173,.13);box-shadow:var(--shadow);backdrop-filter:blur(16px) saturate(118%);-webkit-backdrop-filter:blur(16px) saturate(118%)}
.metric,.mini-stat,.review-card{border-radius:19px}.panel,.focus-card,.project-card,.data-card,.channel-card,.table-wrap{border-radius:22px}
.metric{padding:19px;min-height:106px}.metric small,.mini-stat small,.review-card small{color:#8193a7}.metric strong,.mini-stat strong,.review-card strong{color:#10243e;font-weight:690}.metric.date-card{background:linear-gradient(120deg,rgba(221,243,252,.94),rgba(241,249,253,.9) 57%,rgba(205,229,242,.78));color:#173a57;position:relative;overflow:hidden}.metric.date-card::after{content:"";position:absolute;right:-24px;bottom:-24px;width:150px;height:90px;border-radius:50%;background:linear-gradient(150deg,rgba(80,143,180,.12),rgba(255,255,255,.06));filter:blur(7px)}.date-card small,.date-card p{color:#66869e}.date-card strong{color:#173a57}
.section{margin-top:27px}.section-head h2{color:#142b45;font-weight:690}.section-head p{color:#8394a6}.section-head .count{background:#eaf2f7;color:#637d93}
.focus-card{min-height:172px;padding:20px}.rank{color:#d9e9f2}.focus-card h3,.project-card h3,.risk-item h3,.channel-card h3{color:#152c46;font-weight:650}
.task-row{border-color:rgba(100,139,168,.12);border-radius:15px;background:rgba(255,255,255,.76);transition:background .18s,border-color .18s,transform .18s}.task-row:hover{border-color:rgba(58,143,239,.25);background:#fff;transform:translateY(-1px)}
/* 20260923z42: 任务 Inbox 全部任务列表——✎/× 默认隐藏，悬停行（或键盘聚焦）才显示，其他视图不动 */
.inbox-panel .task-row .row-actions{opacity:0;pointer-events:none;transition:opacity .15s}
.inbox-panel .task-row:hover .row-actions,.inbox-panel .task-row:focus-within .row-actions{opacity:1;pointer-events:auto}
.complete-check{border-color:#b9cad7;border-radius:50%}.complete-check.checked{background:#4fa88b;border-color:#4fa88b}
.tag{background:#edf3f7;color:#63798d}.tag.high,.tag.overdue,.tag.blocked{background:#fceff1;color:#b6535e}.tag.medium,.tag.near,.tag.waiting{background:#fff4e4;color:#a87535}.tag.low,.tag.normal,.tag.done{background:#e9f5f1;color:#448e78}
.toolbar input,.toolbar select,.combo-trigger{border-color:rgba(103,139,167,.17);background:rgba(255,255,255,.88);color:#17304b;box-shadow:inset 0 1px 0 rgba(255,255,255,.9)}.toolbar input:focus,.toolbar select:focus,.combo-trigger:focus{outline:none;border-color:rgba(58,143,239,.45);box-shadow:0 0 0 3px rgba(58,143,239,.1)}
.project-desc,.project-numbers,.risk-item p,.muted-note,.cell-sub,.task-meta{color:#7d8fa3}.progress-track{background:#e9f0f5}.progress-fill{background:linear-gradient(90deg,#67b7ee,#3a8fef)}.next-action{background:#f3f7fa}.next-action strong{color:#437da6}
.risk-item{border-radius:18px}.risk-bar{background:#d6a057}.risk-item.severe .risk-bar{background:#c95d68}.risk-item.normal .risk-bar{background:#5eae91}
.notice-strip{background:rgba(255,247,233,.88);color:#8b6739;border-color:rgba(213,172,108,.22)}
.data-table th{background:rgba(244,248,251,.94);color:#668097;border-bottom-color:rgba(103,139,167,.13)}.data-table td{border-bottom-color:rgba(103,139,167,.1);color:#20364d}.data-table tr.reminder td{background:rgba(255,248,235,.74)}.editable-cell:hover{background:#edf7fd!important;box-shadow:inset 0 0 0 1px rgba(58,143,239,.24)}
.modal,.confirm{border-radius:24px;background:rgba(252,254,255,.94);box-shadow:0 32px 90px rgba(27,61,89,.22);border:1px solid rgba(255,255,255,.85);backdrop-filter:blur(28px) saturate(125%);-webkit-backdrop-filter:blur(28px) saturate(125%)}.modal::backdrop,.confirm::backdrop{background:rgba(31,54,73,.32);backdrop-filter:blur(8px)}.modal-head small{color:#4e8dbb}.modal-head h2{color:#10243e}.modal label{color:#51687d}.modal input,.modal select,.modal textarea{border-color:rgba(103,139,167,.2);background:rgba(255,255,255,.9);color:#18304a}.modal input:focus,.modal select:focus,.modal textarea:focus{outline:none;border-color:#6ba9df;box-shadow:0 0 0 3px rgba(58,143,239,.1)}
.combo-panel,.suggest-panel{border-color:rgba(94,132,160,.18);border-radius:16px;box-shadow:0 22px 60px rgba(41,76,104,.2);background:rgba(255,255,255,.97);backdrop-filter:blur(20px)}.combo-option-row:hover,.combo-option-row.active,.suggest-panel button:hover{background:#eaf5fc}.combo-option-row:hover .combo-option-label,.combo-option-row.active .combo-option-label{color:#317db7}.combo-search:focus{border-color:#66a7dc;box-shadow:0 0 0 3px rgba(58,143,239,.1)}
.toast{background:rgba(25,54,78,.94);border:1px solid rgba(255,255,255,.16);backdrop-filter:blur(16px);border-radius:14px;box-shadow:0 14px 34px rgba(25,54,78,.18)}
@media(max-width:1050px){.app-shell{grid-template-columns:220px 1fr}main{padding:27px 26px 62px}.brand strong{font-size:14px}.brand small{letter-spacing:.11em}}
@media(max-width:760px){body::after{left:0}.sidebar{background:rgba(248,252,255,.92);border-top:1px solid rgba(94,132,160,.14);border-right:0;box-shadow:0 -10px 32px rgba(45,84,114,.09);backdrop-filter:blur(24px)}.nav-item{color:#6e8295}.nav-item:hover{transform:none}.nav-item.active{color:#287fd6;box-shadow:inset 0 2px #3a8fef}.nav-item span{background:transparent}.nav-submenu{background:rgba(249,252,255,.97);box-shadow:0 -12px 32px rgba(45,84,114,.13);border:1px solid rgba(94,132,160,.14)}main{padding:22px 15px 96px}.topbar h1{font-size:24px}.metric,.panel,.focus-card,.project-card,.data-card,.channel-card,.table-wrap{border-radius:18px}}

/* JM SPACE typography tokens and hierarchy */
:root {
  --font-ui: -apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", "PingFang SC", "Microsoft YaHei", sans-serif;
  --text-primary: #10243e;
  --text-secondary: #526a83;
  --text-tertiary: #607a96;
  --text-muted: #8a9bb0;
  --text-helper: #7d8fa3;
  --brand-blue-text: #2f8fef;
  --brand-blue-soft: rgba(58, 143, 239, 0.1);
}

html, body, button, input, select, textarea { font-family: var(--font-ui); }
body {
  color: var(--text-primary);
  font-weight: 400;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}
.brand strong {
  color: var(--text-primary);
  font-size: 21px !important;
  font-weight: 700;
  letter-spacing: 1px;
  line-height: 1.1;
}
.brand small {
  color: var(--text-muted);
  font-size: 10.5px;
  font-weight: 500;
  letter-spacing: 1.4px;
  line-height: 1.2;
}
.nav-item, .nav-group-toggle {
  color: var(--text-secondary);
  font-size: 15.5px;
  font-weight: 450;
}
.nav-item.active, .nav-group-toggle.active {
  color: var(--brand-blue-text);
  font-size: 15.5px;
  font-weight: 600;
  background: var(--brand-blue-soft);
}
.sub-item {
  color: var(--text-tertiary);
  font-size: 14.5px;
  font-weight: 400;
}
.sub-item.active {
  color: var(--brand-blue-text);
  font-size: 14.5px;
  font-weight: 550;
  background: var(--brand-blue-soft);
}
.nav-badge {
  color: #378bd8;
  background: rgba(58, 143, 239, 0.1);
  font-size: 12px;
  font-weight: 600;
}
.sidebar-foot { color: #8b9db0; font-size: 12px; font-weight: 400; }
.topbar h1, .section-head h2, .focus-card h3, .panel h3, .project-card h3, .stat-value { color: var(--text-primary); }
.topbar h1, .section-head h2 { font-weight: 700; }
.focus-card h3, .panel h3, .project-card h3 { font-weight: 600; }
.section-head p, .task-meta, .project-meta, .empty-state, .hint, .muted { color: var(--text-helper); font-weight: 400; }
label, .field-label, table th { color: var(--text-secondary); font-weight: 600; }
table td, .task-copy, .project-card p { color: #20364d; font-weight: 400; }
button, .btn { font-weight: 550; }

/* JM SPACE sidebar system */
:root {
  --sidebar-bg: #f8fbfd;
  --sidebar-border: rgba(83, 107, 132, 0.1);
  --sidebar-text: #536b84;
  --sidebar-subtext: #607a96;
  --sidebar-icon: #58738f;
  --sidebar-icon-bg: #eef6fa;
  --sidebar-hover: rgba(58, 143, 239, 0.05);
  --sidebar-active: rgba(47, 143, 239, 0.1);
  --sidebar-active-text: #2488e8;
  --sidebar-item-radius: 15px;
  --sidebar-icon-radius: 10px;
  --sidebar-item-height: 50px;
  --sidebar-icon-size: 18px;
}

.sidebar {
  background: rgba(248, 251, 253, 0.96);
  border-right: 1px solid var(--sidebar-border);
  box-shadow: 8px 0 30px rgba(53, 107, 145, 0.035);
  padding: 24px 14px;
  backdrop-filter: blur(20px) saturate(108%);
  -webkit-backdrop-filter: blur(20px) saturate(108%);
}

.brand {
  align-items: center;
  gap: 14px;
  padding: 3px 7px 30px;
}

.brand-mark {
  width: 64px;
  height: 64px;
  min-width: 64px;
  min-height: 64px;
  aspect-ratio: 1 / 1;
  flex: 0 0 64px;
  border: 0;
  border-radius: 18px;
  background: transparent;
  box-shadow: none;
  overflow: visible;
}

.brand-mark img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: contain;
  transform: none;
  border-radius: inherit;
}

.brand > div { min-width: 0; }
.brand strong { display: block; white-space: nowrap; }
.brand small { display: block; white-space: nowrap; margin-top: 6px; }

.sidebar nav { gap: 5px; }

.nav-item,
.nav-group-toggle {
  position: relative;
  min-height: var(--sidebar-item-height);
  padding: 9px 12px;
  gap: 13px;
  border-radius: var(--sidebar-item-radius);
  color: var(--sidebar-text);
  font-family: var(--font-ui);
  font-size: 15.5px;
  font-weight: 450;
  transition: background-color 200ms ease, color 200ms ease;
}

.nav-item .nav-icon {
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  flex: 0 0 32px;
  border-radius: var(--sidebar-icon-radius);
  color: var(--sidebar-icon);
  background: var(--sidebar-icon-bg);
  box-shadow: none;
  transition: background-color 200ms ease, color 200ms ease;
}

.nav-icon svg {
  display: block;
  width: var(--sidebar-icon-size);
  height: var(--sidebar-icon-size);
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.nav-item:hover,
.nav-group-toggle:hover {
  color: #395d7d;
  background: var(--sidebar-hover);
  transform: none;
}

.nav-item:hover .nav-icon,
.nav-group-toggle:hover .nav-icon { color: #3f6687; }

.nav-item.active,
.nav-item.active:hover {
  color: var(--sidebar-active-text);
  background: var(--sidebar-active);
  box-shadow: none;
  font-weight: 600;
}

.nav-item.active::before {
  content: "";
  position: absolute;
  left: 0;
  top: 9px;
  bottom: 9px;
  width: 3px;
  border-radius: 999px;
  background: var(--sidebar-active-text);
}

.nav-item.active .nav-icon {
  color: var(--sidebar-active-text);
  background: rgba(255, 255, 255, 0.8);
  box-shadow: none;
}

.nav-group { gap: 3px; }
.nav-submenu { gap: 2px; }

.sub-item {
  min-height: 43px;
  padding: 6px 12px 6px 43px;
  gap: 10px;
  border-radius: 14px;
  color: var(--sidebar-subtext);
  font-size: 14.5px;
  font-weight: 400;
}

.sub-item .nav-icon {
  width: 20px;
  height: 20px;
  flex-basis: 20px;
  border-radius: 0;
  color: #6a849e;
  background: transparent;
}

.sub-item .nav-icon svg { width: 16px; height: 16px; stroke-width: 1.7; }
.sub-item.active .nav-icon { color: var(--sidebar-active-text); background: transparent; }
.sub-item.active::before { top: 7px; bottom: 7px; }

.nav-group-toggle .chevron {
  color: #70879e;
  font-size: 12px;
  font-weight: 600;
}

.nav-badge {
  min-width: 22px;
  height: 22px;
  padding: 0 6px;
  border: 0;
  border-radius: 999px;
  color: #378bd8;
  background: rgba(58, 143, 239, 0.1);
  box-shadow: none;
  font-size: 12px;
  font-weight: 600;
}

.sidebar-foot {
  color: #8b9db0;
  border-top-color: rgba(83, 107, 132, 0.11);
  font-size: 12px;
  font-weight: 400;
}

@media (max-width: 1050px) and (min-width: 761px) {
  .brand { gap: 10px; padding-left: 4px; padding-right: 4px; }
  .brand-mark { width: 58px; height: 58px; min-width: 58px; min-height: 58px; flex-basis: 58px; }
  .brand strong { font-size: 19px !important; }
  .brand small { font-size: 9px; letter-spacing: 1px; }
  .nav-item, .nav-group-toggle { gap: 10px; padding-left: 9px; padding-right: 9px; }
  .sub-item { padding-left: 35px; }
}

@media (max-width: 760px) {
  .sidebar { padding: 7px 3px; background: rgba(248, 251, 253, 0.96); }
  .nav-item, .nav-group-toggle { min-height: 56px; padding: 6px 3px; gap: 1px; border-radius: 12px; font-size: 10px; }
  .nav-item .nav-icon { width: 27px; height: 27px; flex-basis: 27px; background: transparent; }
  .nav-icon svg { width: 18px; height: 18px; }
  .nav-item.active::before { left: 10px; right: 10px; top: 0; bottom: auto; width: auto; height: 2px; }
  .sub-item { min-height: 58px; padding: 6px 3px; font-size: 10px; }
  .sub-item .nav-icon { width: 24px; height: 24px; flex-basis: 24px; }
}

/* Brand cleanup and stable inline gender editor */
.brand-mark {
  border: 0;
  outline: 0;
  background: transparent;
  box-shadow: none;
}
.brand-mark img {
  object-fit: contain;
  object-position: center;
  transform: none;
  filter: none;
}
.brand > div {
  display: flex;
  align-items: center;
}
.intern-table th:nth-child(6),
.intern-table td:nth-child(6) {
  width: 78px;
}
.intern-table td[data-field="gender"] {
  padding-left: 8px;
  padding-right: 8px;
  overflow: visible;
}
.intern-table td[data-field="gender"] select {
  display: block;
  width: 62px;
  min-width: 62px;
  max-width: 62px;
  height: 36px;
  margin: 0 auto;
  padding: 4px 26px 4px 10px;
  border-radius: 9px;
  font-size: 14px;
  line-height: 26px;
}

/* Stable table geometry and floating inline dropdowns */
.intern-table th,
.intern-table td {
  padding-left: 8px;
  padding-right: 8px;
  padding-top: 0;
  padding-bottom: 0;
  height: 54px;
}
.intern-table .editable-cell {
  position: relative;
  font-size: 13px;
  line-height: 1.45;
}
.intern-table .editable-cell .search-combo {
  width: 100%;
  min-width: 0;
  max-width: 100%;
}
.intern-table .editable-cell .combo-trigger {
  width: 100%;
  min-width: 0;
  max-width: 100%;
  height: 36px;
  font-size: 13px;
  line-height: 1.45;
}
.intern-table td[data-field="gender"] .gender-combo {
  width: 62px;
  margin: 0 auto;
}
.intern-table td[data-field="gender"] .combo-trigger {
  padding-left: 10px;
  padding-right: 25px;
}
.combo-panel {
  position: fixed;
  min-width: 96px;
  contain: layout paint;
}
.combo-panel.gender-options-panel {
  width: 96px !important;
  min-width: 96px;
  height: auto;
  max-height: 180px;
  right: auto !important;
}
.combo-panel.gender-options-panel .combo-options {
  flex: 0 1 auto;
  max-height: 92px;
}

/* Intern dropdown refinements */
.intern-table .combo-trigger::after {
  display: none;
}
.intern-table .combo-trigger {
  padding-right: 8px;
}
.intern-table td[data-field="gender"] .combo-trigger {
  padding-left: 9px;
  padding-right: 9px;
}
.intern-table td[data-field="role"] {
  line-height: 1.35;
}
.intern-table td[data-field="role"] .search-combo,
.intern-table td[data-field="role"] .combo-trigger {
  height: 32px;
}
.intern-table td[data-field="role"] .combo-trigger {
  padding-top: 3px;
  padding-bottom: 3px;
  line-height: 24px;
}
.combo-panel.gender-options-panel {
  padding-top: 6px;
  padding-bottom: 6px;
}
.combo-panel.gender-options-panel .combo-search {
  display: none;
}
.combo-panel.gender-options-panel .combo-options {
  margin-top: 0;
}

/* Six confirmed refinements */
.sidebar {
  background: #ffffff;
}

.combo-panel {
  height: auto !important;
  max-height: 300px;
}
.combo-panel .combo-options {
  flex: 0 1 auto;
  max-height: 238px;
  overflow-y: auto;
}
.combo-panel.gender-options-panel .combo-options {
  max-height: 92px;
}

.recruit-page .toolbar .search-combo .combo-trigger::after {
  content: "⌄";
  display: block;
  top: 50%;
  transform: translateY(calc(-54% - 7px));
  right: 12px;
  color: #607a96;
  font-size: 16px;
  line-height: 1;
}
.recruit-page .toolbar .filter-combo-slot {
  display: block;
  flex: 0 0 145px;
  width: 145px;
  min-width: 125px;
}
.recruit-page .toolbar .filter-combo-slot > .search-combo {
  width: 100%;
  min-width: 0;
}

.metric,
.mini-stat,
.review-card,
.focus-card,
.project-card,
.channel-card,
.flow-card {
  transition: transform 200ms ease, box-shadow 200ms ease;
}
.metric:hover,
.mini-stat:hover,
.review-card:hover,
.focus-card:hover,
.project-card:hover,
.channel-card:hover,
.flow-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(37, 72, 110, 0.1);
}

@media (max-width: 760px) {
  .recruit-page .toolbar .filter-combo-slot {
    flex: 1 1 140px;
    width: auto;
    min-width: 130px;
  }
}

/* 2026-09-10 global blue-gray surface palette */
:root {
  --bg: #edf1f7;
  --surface: #ffffff;
  --ink: #10243e;
  --muted: #7d8fa3;
  --line: rgba(71, 94, 122, 0.12);
  --green: #3b82f6;
  --green2: #eaf2fe;
  --shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
  --radius: 16px;
  --sidebar-bg: #f7f9fc;
  --sidebar-icon-bg: #eaf2fe;
  --sidebar-hover: rgba(59, 130, 246, 0.055);
  --sidebar-active: #e3edfb;
  --sidebar-active-text: #2563eb;
  --brand-blue-text: #2563eb;
  --brand-blue-soft: #e3edfb;
}

html,
body {
  background: #edf1f7;
}

body {
  background: #edf1f7;
}

body::before,
body::after {
  display: none;
}


.sidebar {
  background: #f7f9fc;
  border-right-color: rgba(71, 94, 122, 0.1);
  box-shadow: 2px 0 8px rgba(0, 0, 0, 0.025);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

.nav-item .nav-icon {
  color: #4f74a0;
  background: #eaf2fe;
}

.nav-item:hover,
.nav-group-toggle:hover {
  background: rgba(59, 130, 246, 0.055);
}

.nav-item.active,
.nav-item.active:hover {
  color: #2563eb;
  background: #e3edfb;
}

.nav-item.active::before {
  background: #2563eb;
}

.nav-item.active .nav-icon {
  color: #2563eb;
  background: rgba(255, 255, 255, 0.72);
}

.sub-item .nav-icon {
  color: #607a96;
  background: transparent;
}

.sub-item.active .nav-icon {
  color: #2563eb;
}

.nav-badge {
  color: #2563eb;
  background: #eaf2fe;
}

.metric,
.panel,
.focus-card,
.project-card,
.review-card,
.data-card,
.channel-card,
.mini-stat,
.risk-item,
.flow-card,
.recruit-alert,
.table-wrap,
.task-row {
  background: #ffffff;
  border-color: rgba(71, 94, 122, 0.1);
  border-radius: 16px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

.metric,
.mini-stat,
.review-card,
.task-row,
.risk-item {
  border-radius: 14px;
}

.metric.date-card {
  background: #ffffff;
  color: #10243e;
  border: 1px solid rgba(71, 94, 122, 0.1);
}

.metric.date-card::after {
  display: none;
}

.date-card small,
.date-card p {
  color: #7d8fa3;
}

.date-card strong {
  color: #10243e;
}

.data-table {
  background: #ffffff;
}

.data-table th {
  background: #f7f9fc;
  color: #58708a;
  border-bottom-color: rgba(71, 94, 122, 0.11);
}

.data-table td {
  background: #ffffff;
  border-bottom-color: rgba(71, 94, 122, 0.085);
}

.data-table tr.reminder td {
  background: #fff9ed;
}

.primary {
  background: #3b82f6;
  box-shadow: 0 2px 7px rgba(37, 99, 235, 0.16);
}

.primary:hover {
  background: #2563eb;
  box-shadow: 0 3px 9px rgba(37, 99, 235, 0.2);
}

.ghost,
.small-btn {
  background: #f3f6fa;
  color: #49637d;
}

.ghost:hover,
.small-btn:hover {
  background: #eaf2fe;
  color: #2563eb;
}

.progress-track {
  background: #e8edf4;
}

.progress-fill {
  background: #3b82f6;
}

.next-action {
  background: #f7f9fc;
}

.next-action strong,
.modal-head small,
.topbar p {
  color: #3b82f6;
}

.toolbar input,
.toolbar select,
.combo-trigger,
.modal input,
.modal select,
.modal textarea {
  background: #ffffff;
  border-color: rgba(71, 94, 122, 0.16);
  box-shadow: none;
}

.toolbar input:focus,
.toolbar select:focus,
.combo-trigger:focus,
.modal input:focus,
.modal select:focus,
.modal textarea:focus {
  border-color: #60a5fa;
  box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
}

.modal,
.confirm {
  background: #ffffff;
  border: 1px solid rgba(71, 94, 122, 0.1);
  border-radius: 16px;
  box-shadow: 0 18px 48px rgba(30, 55, 85, 0.14);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

.modal::backdrop,
.confirm::backdrop {
  background: rgba(30, 45, 65, 0.28);
  backdrop-filter: blur(3px);
}

#internDialog .modal-actions {
  background: #ffffff;
}

.combo-panel,
.suggest-panel {
  background: #ffffff;
  border-color: rgba(71, 94, 122, 0.14);
  box-shadow: 0 8px 24px rgba(30, 55, 85, 0.1);
  backdrop-filter: none;
}

.combo-option-row:hover,
.combo-option-row.active,
.suggest-panel button:hover,
.suggest-panel button:focus {
  background: #eaf2fe;
}

.complete-check.checked,
.intern-table input[type=checkbox]:checked,
.intern-table input[type=checkbox]:indeterminate {
  background: #3b82f6;
  border-color: #3b82f6;
}

@media (max-width: 760px) {
  .sidebar {
    background: #f7f9fc;
    border-top-color: rgba(71, 94, 122, 0.1);
    box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.035);
  }
  .nav-submenu {
    background: #ffffff;
    border-color: rgba(71, 94, 122, 0.1);
    box-shadow: 0 -4px 16px rgba(30, 55, 85, 0.08);
  }
}

/* Final confirmed sidebar color override */
.sidebar {
  background: #ffffff;
}
@media (max-width: 760px) {
  .sidebar {
    background: #ffffff;
  }
}




/* Requested 2026-09-10 refinements */
.intern-table td[data-field="height"] input[type="number"],
.intern-table td[data-field="weight"] input[type="number"] {
  appearance: textfield;
  -moz-appearance: textfield;
}
.intern-table td[data-field="height"] input[type="number"]::-webkit-inner-spin-button,
.intern-table td[data-field="height"] input[type="number"]::-webkit-outer-spin-button,
.intern-table td[data-field="weight"] input[type="number"]::-webkit-inner-spin-button,
.intern-table td[data-field="weight"] input[type="number"]::-webkit-outer-spin-button {
  -webkit-appearance: none;
  appearance: none;
  margin: 0;
}

.combo-panel.store-options-panel .combo-options {
  display: flex;
  flex-wrap: wrap;
  align-content: flex-start;
  gap: 6px;
  padding: 4px;
}
.combo-panel.store-options-panel .combo-option-row {
  display: inline-flex;
  flex: 0 0 auto;
  width: max-content;
  min-width: 0;
  max-width: 100%;
  min-height: 32px;
  padding: 0 8px;
  border-radius: 8px;
}
.combo-panel.store-options-panel .combo-option-label {
  width: auto;
  padding: 0;
  white-space: nowrap;
}
.combo-panel.store-options-panel .combo-option-tools {
  margin-left: 4px;
}


.sidebar .nav-item,
.sidebar .nav-group-toggle {
  transition: background-color 200ms ease, color 200ms ease, transform 200ms ease, box-shadow 200ms ease;
}
.sidebar .nav-item:not(.active):hover,
.sidebar .nav-group-toggle:not(.active):hover {
  transform: translateY(-2px);
  background: rgba(59, 130, 246, 0.065);
  box-shadow: 0 5px 12px rgba(37, 99, 235, 0.08);
}
.sidebar .nav-item.active:hover,
.sidebar .nav-group-toggle.active:hover {
  transform: none;
}

.workbench-calendar {
  position: fixed;
  z-index: 5000;
  width: 316px;
  padding: 12px;
  color: #10243e;
  background: #fff;
  border: 1px solid rgba(71, 94, 122, 0.14);
  border-radius: 14px;
  box-shadow: 0 14px 34px rgba(30, 55, 85, 0.16);
  font: 500 14px/1.3 -apple-system, BlinkMacSystemFont, "SF Pro Text", "PingFang SC", "Microsoft YaHei", sans-serif;
}
.workbench-calendar[hidden] { display: none; }
.calendar-head {
  display: grid;
  grid-template-columns: 36px 36px 1fr 36px 36px;
  align-items: center;
  gap: 3px;
  padding-bottom: 10px;
  border-bottom: 1px solid rgba(71, 94, 122, 0.1);
}
.calendar-head button,
.calendar-days button {
  border: 0;
  color: inherit;
  background: transparent;
  cursor: pointer;
}
.calendar-head button {
  height: 34px;
  border-radius: 8px;
  font-size: 21px;
  line-height: 1;
}
.calendar-head button:hover { background: #eaf2fe; color: #2563eb; }
.calendar-title { text-align: center; font-size: 15px; font-weight: 650; }
.calendar-week,
.calendar-days {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 3px;
}
.calendar-week { padding: 10px 0 5px; color: #7d8fa3; text-align: center; font-size: 12px; }
.calendar-days button {
  aspect-ratio: 1;
  min-width: 0;
  border-radius: 8px;
  font-size: 13px;
}
.calendar-days button:hover { background: #eaf2fe; color: #2563eb; }
.calendar-days button.outside { color: #b5c0cc; font-weight: 400; }
.calendar-days button.selected { color: #fff; background: #3b82f6; }

/* Dropdown option spacing, hover lift and managed-option room. */
.combo-panel .combo-option,
.combo-panel .combo-option-row {
  transition: transform 190ms ease, background-color 190ms ease, box-shadow 190ms ease, color 190ms ease;
}
.combo-panel .combo-option:hover,
.combo-panel .combo-option:focus-visible,
.combo-panel .combo-option-row:hover,
.combo-panel .combo-option-row:focus-within {
  transform: translateY(-2px);
  background: #eaf2fe;
  box-shadow: 0 4px 10px rgba(37, 99, 235, 0.10);
}
.combo-panel .combo-option {
  padding: 7px 10px;
}
.combo-panel .combo-option-row {
  min-height: 40px;
  padding: 6px 6px 6px 10px;
  margin: 2px 0;
}
.combo-panel .combo-option-label {
  padding: 2px 4px;
}
.combo-panel.store-options-panel .combo-options {
  gap: 6px;
  padding: 4px;
}
.combo-panel.store-options-panel .combo-option-row {
  min-height: 38px;
  padding: 6px 7px 6px 10px;
  margin: 0;
}
.combo-panel.store-options-panel .combo-option-label {
  padding: 2px 3px;
}
.intern-table .combo-trigger {
  padding-left: 10px;
  padding-right: 10px;
}
/* Unified module surfaces and per-view header actions. */
.topbar {
  min-height: 70px;
  align-items: center;
  margin-bottom: 24px;
}
.topbar > div:first-child { min-width: 0; }
.topbar #eyebrow {
  margin: 0 0 8px;
  color: #3b82f6;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .2em;
}
.topbar #viewTitle {
  color: #10243e;
  font-size: 30px;
  font-weight: 750;
  line-height: 1.15;
}
.view-add-button {
  flex: 0 0 auto;
  min-height: 46px;
  padding: 0 20px;
  border-radius: 13px;
  color: #fff;
  background: #3b82f6;
  box-shadow: 0 6px 15px rgba(37, 99, 235, .18);
}
#app[data-view="projects"] > .toolbar [data-action="new-project"],
#app[data-view="interns"] .toolbar [data-action="new-intern"],
#app[data-view="campus"] .toolbar [data-action="new-campus"] {
  display: none;
}

/* One visual language across all first-level modules. */
#app .toolbar {
  gap: 10px;
  margin-bottom: 18px;
  padding: 0;
}
#app .toolbar input,
#app .toolbar select,
#app .toolbar .combo-trigger {
  min-height: 46px;
  border: 1px solid rgba(71, 94, 122, .14);
  border-radius: 12px;
  color: #29445f;
  background: #fff;
  font-size: 14px;
}
#app .panel,
#app .focus-card,
#app .project-card,
#app .review-card,
#app .data-card,
#app .channel-card,
#app .mini-stat,
#app .table-wrap,
#app .notice-strip {
  border: 1px solid rgba(71, 94, 122, .10);
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 2px 8px rgba(0, 0, 0, .04);
}
#app .panel,
#app .focus-card,
#app .project-card,
#app .review-card,
#app .data-card,
#app .channel-card {
  padding: 20px;
}
#app .section-head h2,
#app .project-card h3,
#app .channel-card h3,
#app .data-card h3 {
  color: #10243e;
  font-size: 17px;
  font-weight: 650;
}
#app .section-head p,
#app .task-meta,
#app .project-desc,
#app .muted-note,
#app .data-card p,
#app .empty {
  color: #7d8fa3;
  font-size: 13px;
  line-height: 1.55;
}
#app .task-row,
#app .risk-item {
  min-height: 64px;
  padding: 12px 14px;
  border: 1px solid rgba(71, 94, 122, .10);
  border-radius: 14px;
  background: #fff;
}
#app .task-copy h4,
#app .risk-item h3 {
  color: #10243e;
  font-size: 14px;
  font-weight: 600;
}
#app .icon-btn {
  color: #607a96;
  border-radius: 9px;
}
#app .icon-btn:hover { color: #2563eb; background: #eaf2fe; }
#app .empty {
  padding: 30px 16px;
  border-color: rgba(71, 94, 122, .16);
  border-radius: 14px;
  background: rgba(247, 249, 252, .65);
}
.modal,
.confirm {
  width: min(680px, calc(100vw - 28px));
  padding: 0;
  border: 1px solid rgba(71, 94, 122, .10);
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 20px 56px rgba(30, 55, 85, .16);
}
.modal form { padding: 24px; }
.modal-head { margin-bottom: 20px; }
.modal-head h2 { color: #10243e; font-size: 24px; font-weight: 700; }
.modal label { color: #36536e; font-size: 14px; font-weight: 550; }
.modal label[hidden], .modal .check-label[hidden] { display: none !important; }
.modal input,
.modal select,
.modal textarea { min-height: 46px; border-radius: 12px; }

.rename-dialog { width: min(420px, calc(100vw - 28px)); padding: 0; }
.rename-dialog .modal-head { margin-bottom: 14px; }
.rename-dialog .modal-head h2 { color: #10243e; font-size: 22px; font-weight: 700; word-break: break-all; }
.rename-field { display: flex; flex-direction: column; gap: 8px; color: #36536e; font-size: 13px; font-weight: 550; margin-bottom: 18px; }
.rename-input { width: 100%; min-height: 46px; padding: 10px 14px; border: 1px solid rgba(71,94,122,.22); border-radius: 12px; font-size: 15px; color: #10243e; background: #fff; box-sizing: border-box; }
.rename-input:focus { outline: none; border-color: #2f6df0; box-shadow: 0 0 0 3px rgba(47,109,240,.15); }

@media (max-width: 760px) {
  .topbar { min-height: 60px; align-items: center; }
  .topbar #viewTitle { font-size: 25px; }
  .view-add-button { min-height: 42px; padding: 0 14px; font-size: 13px; }
  #app .panel,
  #app .focus-card,
  #app .project-card,
  #app .review-card,
  #app .data-card,
  #app .channel-card { padding: 16px; }
}
/* Final brand sizing requested for the sidebar header. */
.brand {
  justify-content: flex-start;
  gap: 12px;
  padding-left: 7px;
}
.brand-mark {
  width: 52px;
  height: 52px;
  min-width: 52px;
  min-height: 52px;
  flex: 0 0 52px;
  aspect-ratio: 1 / 1;
}
.brand-mark img {
  width: 100%;
  height: 100%;
  aspect-ratio: 1 / 1;
  object-fit: contain;
}
/* Shared 15-minute time dropdown. */
.workbench-time-picker {
  position: fixed;
  z-index: 5100;
  max-height: 286px;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 7px;
  border: 1px solid rgba(71, 94, 122, .14);
  border-radius: 13px;
  background: #fff;
  box-shadow: 0 14px 34px rgba(30, 55, 85, .16);
  scrollbar-width: thin;
}
.workbench-time-picker[hidden] { display: none; }
.workbench-time-picker button {
  display: block;
  width: 100%;
  min-height: 38px;
  padding: 7px 10px;
  border: 0;
  border-radius: 8px;
  color: #29445f;
  background: transparent;
  font: 500 14px/1.25 -apple-system, BlinkMacSystemFont, "SF Pro Text", "PingFang SC", "Microsoft YaHei", sans-serif;
  text-align: left;
  cursor: pointer;
  transition: background-color 180ms ease, color 180ms ease, transform 180ms ease, box-shadow 180ms ease;
}
.workbench-time-picker button:hover,
.workbench-time-picker button.active {
  color: #2563eb;
  background: #eaf2fe;
}
.workbench-time-picker button:hover {
  transform: translateY(-1px);
  box-shadow: 0 3px 8px rgba(37, 99, 235, .08);
}
#taskForm input[data-time-picker],
#taskForm input[data-picker="date"] {
  cursor: pointer;
  background-color: #fff;
}

/* Slightly larger sidebar brand mark. */
.brand-mark {
  width: 60px;
  height: 60px;
  min-width: 60px;
  min-height: 60px;
  flex: 0 0 60px;
}
/* Clear form semantics and manual-number feedback. */
.modal .field-help {
  display: block;
  margin-top: -2px;
  color: #8a9bb0;
  font-size: 11px;
  font-weight: 400;
  line-height: 1.4;
}
.modal input[data-numeric="manual"] {
  appearance: textfield;
  -moz-appearance: textfield;
}
.modal input[data-numeric="manual"]::-webkit-inner-spin-button,
.modal input[data-numeric="manual"]::-webkit-outer-spin-button,
.modal input[type="number"]::-webkit-inner-spin-button,
.modal input[type="number"]::-webkit-outer-spin-button {
  -webkit-appearance: none;
  appearance: none;
  margin: 0;
}
.modal input.soft-invalid {
  border-color: #df7f86;
  background: #fff8f8;
  box-shadow: 0 0 0 3px rgba(194, 65, 72, .08);
}
.modal .invalid-text { color: #c24148; }

/* Social recruitment reuses the intern ledger visual language. */
#socialRecruitNavGroup .nav-icon svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.social-page .toolbar { align-items: center; }
.social-stats.three { grid-template-columns: repeat(3,minmax(0,1fr)); }
.social-stats .mini-stat span { display:block; margin-top:4px; color:#7890a8; font-size:12px; font-weight:500; }
.social-table { min-width: max-content; table-layout: auto; }
.social-table th,.social-table td { padding-left:9px; padding-right:9px; white-space:nowrap; }
.social-table td[data-field="notes"] { min-width:180px; max-width:300px; white-space:normal; }
.social-table td[data-field="role"],.social-table td[data-field="progress"],.social-table td[data-field="trialResult"],.social-table td[data-field="finalResult"] { min-width:108px; }
.social-table .social-cell input,.social-table .social-cell .search-combo { min-width:96px; width:100%; }
.social-table .numeric-cell input,.social-table td[data-type="number"] input { appearance:textfield; -moz-appearance:textfield; }
.social-table input::-webkit-inner-spin-button,.social-table input::-webkit-outer-spin-button { -webkit-appearance:none; margin:0; }
.combo-panel { position:fixed!important; z-index:9000!important; overflow:hidden; }
.combo-panel .combo-options { overflow:auto; max-height:282px; }
@media(max-width:900px){.social-stats.three{grid-template-columns:1fr}.social-page .toolbar{align-items:stretch}}

/* Social recruitment usability fixes (2026-09-14). */
@media (min-width:761px){.app-shell{grid-template-columns:276px minmax(0,1fr)!important}.sidebar{width:276px!important;min-width:276px!important}}
#socialRecruitNavGroup,#socialRecruitNavGroup .nav-submenu{width:100%;min-width:0}
#socialRecruitNavGroup .sub-item{display:flex!important;align-items:center!important;width:100%!important;min-width:0!important;padding-left:43px!important;writing-mode:horizontal-tb!important;white-space:nowrap!important;word-break:keep-all!important}
#socialRecruitNavGroup .sub-item .nav-icon{display:grid!important;flex:0 0 20px!important}
#socialRecruitNavGroup .sub-item>span:last-child{display:block!important;min-width:0!important;white-space:nowrap!important;writing-mode:horizontal-tb!important}
.social-store-card{font:inherit;text-align:left;border:0;cursor:pointer;color:inherit}.social-store-card:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(30,75,125,.1)}
.social-table th,.social-table td{height:54px!important;min-height:54px!important;padding:8px 12px!important;white-space:nowrap}.social-table td[data-field="notes"]{white-space:normal;min-width:220px}
.social-table input,.social-table .combo-trigger{min-height:36px!important;height:36px!important;padding:6px 10px!important}
.social-status-tag{display:inline-flex;align-items:center;min-height:28px;padding:4px 10px;border-radius:999px;background:#edf5ff;color:#236fc9;font-weight:600}
.social-page .toolbar>input#socialSearch,.toolbar>input[placeholder*="搜索姓名"],.toolbar>input[placeholder*="搜索姓名或关键字"]{flex:0 0 320px!important;width:320px!important;max-width:320px!important}
.table-wrap{max-height:calc(100vh - 350px);overflow:auto!important;position:relative}.data-table thead th,.intern-table thead th{position:sticky!important;top:0!important;z-index:24!important;background:#f5f8fc!important}
/* 20260928z64: 筛选零跳动——表格框高度恒定（筛选后行数变少页面总高不变，scrollY 不被夹到 0）+ 滚动条空间常驻（出现/消失不再引起内容宽度横移） */
@media (min-width:761px){html{scrollbar-gutter:stable}.table-wrap{min-height:calc(100vh - 350px);scrollbar-gutter:stable}}
.combo-panel{position:fixed!important;z-index:10000!important;overflow:hidden!important;max-width:calc(100vw - 16px)!important}.combo-panel .combo-options{overflow:auto!important;max-height:300px}
.social-range-picker{position:fixed;z-index:11000;padding:16px;background:#fff;border:1px solid rgba(71,94,122,.16);border-radius:20px;box-shadow:0 18px 44px rgba(30,55,85,.22);color:#10243e;width:348px;box-sizing:border-box}.social-range-picker[hidden]{display:none}
.rp-fields{display:flex;align-items:center;gap:10px;margin-bottom:12px}.rp-field{flex:1;min-width:0;border:1.5px solid #347ff0;border-radius:12px;padding:7px 12px;background:#fff}.rp-field small{display:block;font-size:11px;color:#7a8da4;line-height:1.3}.rp-field strong{display:block;font-size:15px;line-height:1.4;color:#17304d;font-variant-numeric:tabular-nums}.rp-field strong.rp-empty{color:#b7c2ce;font-weight:500}.rp-arrow{color:#347ff0;font-size:18px;flex:0 0 auto}
.rp-cal-head{display:flex;align-items:center;justify-content:space-between;margin:2px 2px 8px}.rp-cal-head strong{font-size:16px;color:#17304d}.rp-nav{display:flex;gap:6px}.rp-nav button{border:0;background:#eef5ff;color:#2175df;width:30px;height:30px;border-radius:999px;cursor:pointer;font-size:15px;line-height:1}.rp-nav button:hover{background:#dbe9ff}.range-week,.range-days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;text-align:center}.range-week span{color:#7a8da4;padding:5px 0;font-size:12px}
.range-days button{border:0;background:transparent;border-radius:10px;min-height:36px;color:#17304d;cursor:pointer;font-size:13px}.range-days button:hover{background:#eaf3ff}.range-days button.muted{color:#b7c2ce}.range-days button.inside{background:#dbe9ff}.range-days button.selected{background:#347ff0;color:#fff;font-weight:600}.rp-foot{margin-top:10px;text-align:right}.rp-clear{border:0;background:#fdecec;color:#e5484d;cursor:pointer;font-size:13px;font-weight:600;padding:6px 14px;border-radius:999px}.rp-clear:hover{background:#f9d8d8}

@media(max-width:760px){.social-range-picker{width:calc(100vw - 16px)!important}.social-page .toolbar>input#socialSearch{width:100%!important;max-width:none!important}}

/* Social tables aligned with the intern ledger (2026-09-15). */
.social-table input[type="checkbox"]{width:19px!important;height:19px!important;min-width:19px!important;min-height:19px!important;padding:0!important;border-radius:3px!important}
.social-table .social-cell{position:relative;min-width:88px}
.social-table .social-cell>input:not([type="checkbox"]),.social-table .social-cell>.search-combo{position:absolute!important;z-index:3;inset:50% 6px auto 6px!important;transform:translateY(-50%);width:calc(100% - 12px)!important;min-width:0!important;margin:0!important}
.social-table .social-cell>.search-combo .combo-trigger{width:100%!important}
.social-table th,.social-table td{height:50px!important;min-height:50px!important;padding:7px 9px!important}
.social-table td[data-field="notes"]{min-width:180px!important;max-width:260px!important}
.combo-panel.social-store-vertical .combo-options{display:block!important;padding:4px!important}
.combo-panel.social-store-vertical .combo-option-row{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;width:100%!important;min-height:36px!important;margin:0 0 3px!important;padding:6px 8px!important}
.combo-panel.social-store-vertical .combo-option-label{display:block!important;width:100%!important;white-space:nowrap!important}
.combo-panel.social-role-options{width:max-content!important;min-width:128px!important;max-width:320px!important}
.combo-panel.social-role-options .combo-option-row{display:flex!important;width:max-content!important;min-width:100%!important;padding:6px 10px!important}
.combo-panel.social-role-options .combo-option-label{width:auto!important;white-space:nowrap!important}
#socialRecruitNavGroup>.nav-group-toggle{display:flex!important;align-items:center!important;white-space:nowrap!important;word-break:keep-all!important;padding-left:10px!important;padding-right:10px!important}
#socialRecruitNavGroup>.nav-group-toggle>span:not(.nav-icon):not(.chevron){white-space:nowrap!important;writing-mode:horizontal-tb!important;word-break:keep-all!important}

/* Social recruitment follows the intern ledger without separate table sizing. */
.social-table th,
.social-table td {
  height: 54px !important;
  min-height: 54px !important;
  padding: 0 8px !important;
  font-size: 13px !important;
  line-height: 1.45 !important;
  vertical-align: middle !important;
  white-space: nowrap !important;
}
.social-table .social-cell {
  position: relative !important;
  min-width: 90px;
  cursor: default;
  transition: background .15s;
}
.social-table .social-cell:hover {
  background: #edf7fd !important;
  box-shadow: inset 0 0 0 1px rgba(58,143,239,.24);
}
.social-table .social-cell > input:not([type="checkbox"]),
.social-table .social-cell > .search-combo {
  position: absolute !important;
  z-index: 3;
  inset: 50% 6px auto 6px !important;
  transform: translateY(-50%) !important;
  width: calc(100% - 12px) !important;
  min-width: 90px !important;
  margin: 0 !important;
}
.social-table .social-cell input,
.social-table .social-cell .combo-trigger {
  min-height: 36px !important;
  height: 36px !important;
  border-radius: 8px !important;
  padding: 8px !important;
  font: inherit !important;
}
.social-table td[data-field="notes"] {
  white-space: nowrap !important;
  overflow: hidden;
  text-overflow: ellipsis;
}
#socialRecruitNavGroup > .nav-group-toggle .nav-label {
  display: block !important;
  flex: 1 1 auto !important;
  width: auto !important;
  min-width: max-content !important;
  height: auto !important;
  padding: 0 !important;
  background: transparent !important;
  white-space: nowrap !important;
  word-break: keep-all !important;
  writing-mode: horizontal-tb !important;
}
#socialRecruitNavGroup > .nav-group-toggle .nav-caret {
  flex: 0 0 auto !important;
  width: auto !important;
  height: auto !important;
  margin-left: auto !important;
  padding: 0 !important;
  background: transparent !important;
}
.brand {
  gap: 14px !important;
  padding-bottom: 28px !important;
}
.brand-mark {
  width: 64px !important;
  height: 64px !important;
  min-width: 64px !important;
  min-height: 64px !important;
  flex: 0 0 64px !important;
}
.brand strong {
  font-size: 20px !important;
  font-weight: 750 !important;
  line-height: 1.15 !important;
  white-space: nowrap !important;
}

/* Requested compact columns, single-column choices and matching group arrows. */
.data-table { width: max-content; min-width: 100%; table-layout: auto; }
.data-table th, .data-table td { padding-left: 8px; padding-right: 8px; }
.data-table.intern-table th, .data-table.intern-table td { width: auto; }
.data-table.intern-table th:first-child, .data-table.intern-table td:first-child { width: 42px; min-width: 42px; }
.social-table .social-cell { min-width: 72px; }
.social-table td[data-field="interviewDate"] { min-width: 108px; }
.social-table td[data-field="interviewTime"] { min-width: 84px; }
.social-table td[data-field="seq"] { min-width: 42px; }
.social-table .social-cell > input:not([type="checkbox"]), .social-table .social-cell > .search-combo { min-width: 0 !important; }
#socialDialog.interview-form { width: min(520px, calc(100vw - 28px)); }
#socialDialog.interview-form .form-grid { grid-template-columns: minmax(0, 1fr); }
.combo-panel .combo-options, .combo-panel.store-options-panel .combo-options, .combo-panel.gender-options-panel .combo-options { display: flex !important; flex-direction: column !important; flex-wrap: nowrap !important; gap: 4px; overflow-y: auto !important; max-height: 300px; }
.combo-panel .combo-options > .combo-option-row, .combo-panel .combo-options > .combo-option { display: flex !important; flex: 0 0 auto !important; width: 100% !important; min-width: 0 !important; box-sizing: border-box; margin: 0 !important; }
.combo-panel .combo-option-label { flex: 1; min-width: 0; text-align: left; }
.sidebar .nav-group-toggle > .chevron { display: inline-flex !important; align-items: center; justify-content: center; position: static !important; flex: 0 0 16px !important; width: 16px !important; height: 16px !important; margin: 0 0 0 auto !important; padding: 0 !important; background: transparent !important; font: 700 14px/1 Arial,sans-serif !important; transform: rotate(0deg); }
.sidebar .nav-group:not(.open) > .nav-group-toggle > .chevron { transform: rotate(180deg); }

.sidebar #recruitNavGroup > .nav-group-toggle, .sidebar #socialRecruitNavGroup > .nav-group-toggle { padding-right: 10px !important; }

/* Final shared table spacing and brand dimensions, 2026-09-15. */
.data-table, .data-table.intern-table, .data-table.social-table { table-layout: auto !important; width: max-content; min-width: 100%; }
.data-table th, .data-table td, .data-table.intern-table th, .data-table.intern-table td { padding: 0 14px !important; height: 54px !important; vertical-align: middle !important; white-space: nowrap !important; text-align: left; width: auto; min-width: 76px; box-sizing: border-box; }
.data-table th:first-child, .data-table td:first-child { min-width: 48px !important; width: 48px !important; }
.data-table td[data-field="seq"] { min-width: 60px; }
.data-table td[data-field="name"], .data-table td[data-field="channel"], .data-table td[data-field="store"], .data-table td[data-field="trainingStore"] { min-width: 100px; }
.data-table td[data-field="role"], .data-table td[data-field="school"] { min-width: 116px; }
.data-table td[data-field="notes"], .data-table td[data-field="address"] { min-width: 180px !important; max-width: 300px !important; overflow: hidden; text-overflow: ellipsis; }
.data-table .editable-cell > input:not([type="checkbox"]), .data-table .editable-cell > .search-combo { max-width: 100%; min-width: 0 !important; box-sizing: border-box; }
.social-table .social-cell > input:not([type="checkbox"]), .social-table .social-cell > .search-combo { inset: 50% 10px auto 10px !important; width: calc(100% - 20px) !important; }
.sidebar .nav-item, .sidebar .nav-item:focus, .sidebar .nav-item:focus-visible, .sidebar .nav-item:active, .sidebar .nav-item * { outline: none !important; box-shadow: none !important; filter: none !important; }
.sidebar .nav-item::before, .sidebar .nav-item::after { content: none !important; display: none !important; }
.sidebar .nav-item.active span { background: transparent !important; }
.sidebar .nav-item > span:not(.nav-icon):not(.nav-badge):not(.nav-label) { width: auto; height: auto; background: transparent !important; border-radius: 0; }
.brand { align-items: center !important; gap: 14px !important; }
.brand-mark { width: 72px !important; height: 72px !important; min-width: 72px !important; min-height: 72px !important; flex: 0 0 72px !important; }
.brand strong { font-size: 27px !important; font-weight: 760 !important; }
.combo-panel .combo-option-tools { flex: 0 0 auto; opacity: 0 !important; pointer-events: none; }
.combo-panel .combo-option-tools { opacity: 0 !important; pointer-events: auto; }
.combo-panel .combo-option-tools:hover { opacity: 1 !important; }

/* Inline editors never participate in table sizing. */
.data-table td.editable-cell { position: relative; overflow: hidden; text-overflow: ellipsis; }
.data-table td.editable-cell > input:not([type="checkbox"]), .data-table td.editable-cell > select, .data-table td.editable-cell > .search-combo { position: absolute !important; inset: 50% 10px auto 10px !important; transform: translateY(-50%) !important; width: calc(100% - 20px) !important; min-width: 0 !important; max-width: calc(100% - 20px) !important; height: 36px !important; margin: 0 !important; box-sizing: border-box; }
.unified-suggestions { position:fixed; z-index:10000; overflow-y:auto; padding:8px; box-sizing:border-box; }
.unified-suggestions .combo-option-row { display:flex; align-items:center; width:100%; }
.unified-suggestions .combo-option-label { flex:1; min-width:0; text-align:left; }
.unified-suggestions .combo-option-tools { display:flex; flex:0 0 auto; }
.duplicate-note { color:#946514; font-size:12px; padding:6px 8px; line-height:1.5; }

[data-status-tone="positive"] { color:#24775d !important; background:#e6f4ed !important; }
[data-status-tone="negative"] { color:#b25160 !important; background:#fbecee !important; }
[data-status-tone="pending"] { color:#946d25 !important; background:#fff3dc !important; }
[data-status-tone="progress"] { color:#386faf !important; background:#eaf2fc !important; }
.combo-option-label[data-status-tone], .combo-option[data-status-tone] { border-radius:8px; }

/* 门店统一在单元格内搜索或直接新增，工具栏不再保留单独入口。 */
[data-action="add-store"], [data-action="social-new-store"], [data-action="add-address"] { display:none !important; }
[data-action="social-new-option"] { display:none !important; }

/* 门店与带训门店沿用门店地址的输入焦点及选项配色。 */
.data-table td.editable-cell > input.address-style-input {
  border: 1px solid #3b82f6 !important;
  border-radius: 9px !important;
  background: #fff !important;
  color: #10243e !important;
  caret-color: #10243e !important;
  outline: none !important;
  box-shadow: 0 0 0 2px rgba(59,130,246,.12) !important;
  cursor: text !important;
}
.address-style-options {
  border-color: rgba(71,94,122,.14) !important;
  border-radius: 16px !important;
  background: #fff !important;
  box-shadow: 0 8px 24px rgba(30,55,85,.10) !important;
}

/* 社招单元格文本编辑框统一蓝色边框，与下拉触发器一致。 */
.data-table td.social-cell > input:not([type="checkbox"]) {
  border: 1px solid #3b82f6 !important;
  border-radius: 9px !important;
  background: #fff !important;
  color: #10243e !important;
  caret-color: #10243e !important;
  outline: none !important;
  box-shadow: 0 0 0 2px rgba(59,130,246,.12) !important;
  cursor: text !important;
}
.data-table td.social-cell > input:not([type="checkbox"]):focus {
  border-color: #2563eb !important;
  box-shadow: 0 0 0 3px rgba(59,130,246,.16) !important;
}

/* 禁用按钮给出明显不可点的视觉，避免「点了没反应」。 */
.toolbar button:disabled { opacity: .45 !important; cursor: not-allowed !important; filter: grayscale(.35); }
.address-style-options .combo-option-row {
  display: grid !important;
  grid-template-columns: minmax(0,1fr) auto !important;
  align-items: center !important;
  width: 100% !important;
  min-height: 40px !important;
  margin: 2px 0 !important;
  padding: 6px 6px 6px 10px !important;
  border-radius: 8px !important;
  cursor: pointer !important;
}
.address-style-options .combo-option-row:hover,
.address-style-options .combo-option-row:focus-within { background: #eaf2fe !important; }
.address-style-options .combo-option-label {
  width: auto !important;
  max-width: none !important;
  min-height: 0 !important;
  padding: 2px 4px !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: #10243e !important;
  cursor: pointer !important;
  white-space: nowrap !important;
  word-break: keep-all !important;
}
.address-style-options .combo-option-row:hover .combo-option-label,
.address-style-options .combo-option-row:focus-within .combo-option-label {
  background: transparent !important;
  color: #317db7 !important;
}
.address-style-options .combo-option-tools { gap: 2px; }
.address-style-options .combo-option-tools { margin-left: 6px; }
.address-style-options .combo-option-tools button {
  display: grid !important;
  place-items: center !important;
  width: 30px !important;
  min-width: 30px !important;
  height: 30px !important;
  min-height: 30px !important;
  padding: 0 !important;
  border-radius: 7px !important;
  background: transparent !important;
  color: #7b91aa !important;
  cursor: pointer !important;
}
.address-style-options .combo-option-tools button:hover { color: #317db7 !important; background: #fff !important; }
.address-style-options .combo-option-tools .combo-delete:hover { color: #cf5c67 !important; background: #fbecee !important; }

/* 所有门店下拉的选项名称保持横向单行。 */
.combo-panel.store-options-panel .combo-option-label,
.combo-panel.social-store-vertical .combo-option-label {
  width: auto !important;
  max-width: none !important;
  white-space: nowrap !important;
  word-break: keep-all !important;
}

/* 修改1：固定选项、看板、导出按钮及选择反馈。 */
.combo-panel.no-search-options { height:auto !important; max-height:300px !important; }
.combo-panel.no-search-options .combo-search { display:none !important; }
.combo-panel.no-search-options .combo-options { margin-top:0 !important; }
.combo-panel.no-search-options .combo-option-label,
.social-table td[data-field="role"] { white-space:nowrap !important; word-break:keep-all !important; }
.combo-option,
.combo-option-row { transform-origin:center; }
.combo-option:hover,
.combo-option:focus-visible,
.combo-option-row:hover,
.combo-option-row:focus-within { transform:scale(1.025) !important; }
[data-action="intern-export"],
[data-action="social-export"],
[data-action="campus-export"] { min-height:42px !important; padding:0 17px !important; border-radius:13px !important; background:#3b82f6 !important; color:#fff !important; font-size:14px !important; font-weight:650 !important; box-shadow:0 8px 20px rgba(59,130,246,.18) !important; }
[data-action="intern-export"]:hover,
[data-action="social-export"]:hover,
[data-action="campus-export"]:hover { background:#2563eb !important; color:#fff !important; box-shadow:0 8px 20px rgba(59,130,246,.24) !important; }
[data-action="intern-export"]:disabled,
[data-action="social-export"]:disabled,
[data-action="campus-export"]:disabled { display:inline-flex !important; }
.reserve-stats { grid-template-columns:repeat(5,minmax(0,1fr)) !important; }
.interview-stats { grid-template-columns:minmax(180px,260px) !important; }

/* 表格适配可视宽度，只在数据较多时保留纵向滚动。 */
#app .table-wrap { overflow:auto !important; }
#app .data-table,
#app .intern-table,
#app .social-table { width:max-content !important; min-width:100% !important; table-layout:auto !important; }
#app .data-table th,
#app .data-table td { overflow:visible; text-overflow:clip; }
.combo-panel .combo-options,
.unified-suggestions { overflow-x:hidden !important; }

/* 恢复主要业务列的可读宽度，空间不足时仍可滚动查看。 */
#app .data-table td[data-field="notes"] { min-width:220px !important; max-width:none !important; white-space:nowrap; }
#app .data-table td[data-field="address"] { min-width:320px !important; max-width:none !important; white-space:nowrap; }
#app .data-table td[data-field="store"],
#app .data-table td[data-field="trainingStore"] { min-width:120px !important; white-space:nowrap; }
#app .data-table td[data-field="reportDate"],
#app .data-table td[data-field="entryDate"],
#app .data-table td[data-field="trialDate"],
#app .data-table td[data-field="trialTime"],
#app .data-table td[data-field="interviewDate"] { min-width:118px !important; white-space:nowrap; }

/* 勾选框单元格只显示勾选框，隐藏任何残留字符占位。 */
#app .data-table th:first-child,
#app .data-table td:first-child { font-size:0 !important; line-height:0 !important; }
#app .data-table th:first-child input,
#app .data-table td:first-child input { font-size:initial !important; line-height:normal !important; }

/* 保留滚动能力，但统一隐藏粗滚动条。 */
* { scrollbar-width:none; -ms-overflow-style:none; }
*::-webkit-scrollbar { width:0; height:0; }

/* 1：提醒行不再使用黄色，表格保持统一白底。 */
#app .data-table tr.reminder td { background:#fff !important; }

/* 2：导出按钮与删除按钮使用相同的盒模型和垂直居中方式，仅颜色不同。 */
.toolbar [data-action="intern-export"],
.toolbar [data-action="social-export"],
.toolbar [data-action="campus-export"] { display:inline-flex !important; align-items:center !important; justify-content:center !important; line-height:1 !important; }

/* 3：仅下拉选项面板隐藏滚动条，滚轮滚动仍可用。 */
.combo-panel,
.combo-panel .combo-options,
.suggest-panel,
.unified-suggestions { scrollbar-width:none !important; -ms-overflow-style:none !important; }
.combo-panel::-webkit-scrollbar,
.combo-panel .combo-options::-webkit-scrollbar,
.suggest-panel::-webkit-scrollbar,
.unified-suggestions::-webkit-scrollbar { width:0 !important; height:0 !important; }

/* 4：恢复页面、侧栏和表格原有滚动条。 */
html,
body,
.sidebar nav,
#app .table-wrap { scrollbar-width:auto !important; -ms-overflow-style:auto !important; }
html::-webkit-scrollbar,
body::-webkit-scrollbar,
.sidebar nav::-webkit-scrollbar,
#app .table-wrap::-webkit-scrollbar { width:10px !important; height:10px !important; }
html::-webkit-scrollbar-thumb,
body::-webkit-scrollbar-thumb,
.sidebar nav::-webkit-scrollbar-thumb,
#app .table-wrap::-webkit-scrollbar-thumb { background:rgba(104,121,137,.55) !important; border-radius:999px !important; }
html::-webkit-scrollbar-track,
body::-webkit-scrollbar-track,
.sidebar nav::-webkit-scrollbar-track,
#app .table-wrap::-webkit-scrollbar-track { background:rgba(220,228,235,.55) !important; }

/* 6：下拉选项单行完整展示，面板宽度由脚本按最长选项计算。 */
.combo-panel .combo-option-label,
.combo-panel .combo-option { min-width:max-content !important; max-width:none !important; white-space:nowrap !important; overflow:visible !important; text-overflow:clip !important; }
.combo-panel .combo-options { overflow-y:auto !important; overflow-x:hidden !important; }

/* 下拉框由最长选项撑开，同时受视口边界限制。 */
#app .combo-panel { width:max-content !important; min-width:160px !important; max-width:calc(100vw - 16px) !important; }

/* 单元格下拉的清空入口：固定置顶并与普通选项区分。 */
.combo-option-row.combo-clear-option { position:sticky !important; top:0 !important; z-index:2 !important; margin:-2px -2px 5px !important; padding:2px !important; background:#fff !important; border-bottom:1px solid #edf1f6 !important; }
.combo-option-row.combo-clear-option .combo-option-label { width:100% !important; color:#8a96a7 !important; background:#f4f6f8 !important; font-weight:600 !important; }
.combo-option-row.combo-clear-option:hover .combo-option-label { color:#5e6e83 !important; background:#edf1f5 !important; }

/* 学校行程保存后不保留浏览器焦点描边。 */
.campus-cell:focus { outline:0 !important; box-shadow:none !important; background:inherit !important; }
.combo-panel .combo-search[placeholder="搜索当前进度"] { display:none !important; }
.combo-panel:has(.combo-search[placeholder="搜索当前进度"]) .combo-options { margin-top:0 !important; }

.calendar-actions { display:flex; justify-content:flex-end; padding:8px 10px 10px; border-top:1px solid #edf2f7; }
.calendar-actions button { border:0; border-radius:8px; background:#fff0f0; color:#d94f5c; padding:6px 12px; cursor:pointer; font:inherit; }
.calendar-actions button:hover { background:#ffe4e7; }
.social-demand-card { margin:-8px 0 18px; padding:16px 18px; background:#fff; border:1px solid rgba(71,94,122,.10); border-radius:18px; box-shadow:0 8px 24px rgba(30,55,85,.07); }
.social-demand-head,.social-demand-foot,.social-demand-inputs { display:flex; align-items:center; justify-content:space-between; gap:18px; }
.social-demand-head span,.social-demand-foot { color:#7890a8; font-size:12px; }
.social-demand-inputs { justify-content:flex-start; margin-top:12px; }
.social-demand-inputs label { display:flex; align-items:center; gap:7px; color:#526d86; font-size:13px; }
.social-demand-inputs input { width:64px; height:34px; padding:0 9px; border:1px solid #cbd9e7; border-radius:9px; color:#17304b; font:inherit; text-align:center; outline:none; }
.social-demand-inputs input:focus { border-color:#3b82f6; box-shadow:0 0 0 3px rgba(59,130,246,.10); }
.social-demand-card .progress-track { height:8px; margin:14px 0 8px; position:relative; border-radius:4px; overflow:hidden; }
.social-demand-card .progress-seg { height:100%; float:left; }
.social-demand-card .progress-seg-service { background:#185fa5; }
.social-demand-card .progress-seg-product { background:#b5d4f4; }
.social-demand-card .progress-tick { position:absolute; top:0; height:100%; width:2px; background:#fff; opacity:.9; }
.social-demand-foot .dseg::before { content:''; display:inline-block; width:8px; height:8px; border-radius:2px; margin-right:5px; vertical-align:-1px; }
.social-demand-foot .dseg-service::before { background:#185fa5; }
.social-demand-foot .dseg-product::before { background:#b5d4f4; }
.social-demand-foot .dgap { margin-left:auto; color:#9aa7b5; }
@media(max-width:1050px){.reserve-stats{grid-template-columns:repeat(3,minmax(0,1fr))!important}}

/* 学校行程编辑结束后不保留焦点框；日历触发框保持普通单元格视觉。 */
.campus-direct-cell:not(:focus-within){outline:0!important;box-shadow:none!important}.campus-date-trigger{border:0!important;outline:0!important;box-shadow:none!important;background:transparent!important;width:100%;padding:0!important;color:inherit!important;font:inherit!important}


/* 学校行程筛选只作筛选，不显示状态标签色。 */

/* 任务弹窗：下拉触发框与普通输入框同高同圆角，视觉与全站调性一致。 */
.modal .combo-trigger { height:46px; min-height:46px; border-radius:12px; }
.modal .combo-trigger::after { top:50%; transform:translateY(calc(-54% - 7px)); }

/* 弹窗复选框跟随全站主题色，且勾选后不残留浏览器默认的浅蓝焦点外框。 */
.modal .check-label input[type="checkbox"] { width:18px; height:18px; margin:0; accent-color:var(--green); cursor:pointer; }
.modal .check-label input[type="checkbox"]:focus,
.modal .check-label input[type="checkbox"]:focus-visible { outline:none; box-shadow:none; }

/* 重复模式下"计划日期"由周期自动安排：置灰显示，不隐藏，保证各栏框左右始终对齐。 */
#taskForm label[data-due-field].is-dim input { background:#f2f5f3; color:#8a968f; cursor:default; pointer-events:none; }

/* 任务弹窗内日期/时间输入框与其他输入框同高（46px），避免栏框高低不一。 */
#taskForm input[data-picker="date"], #taskForm input[data-time-picker] { height:46px; min-height:46px; }

/* 任务弹窗内的小选项下拉：隐藏搜索框、按内容自适应高度（与"新店筹备当前进度"同一处理方式）。 */
.combo-panel .combo-search[placeholder="选择项目"],
.combo-panel .combo-search[placeholder="选择优先级"],
.combo-panel .combo-search[placeholder="选择状态"],
.combo-panel .combo-search[placeholder="选择重复周期"],
.combo-panel .combo-search[placeholder="选择星期几"] { display:none !important; }
.combo-panel:has(.combo-search[placeholder="选择项目"]) .combo-options,
.combo-panel:has(.combo-search[placeholder="选择优先级"]) .combo-options,
.combo-panel:has(.combo-search[placeholder="选择状态"]) .combo-options,
.combo-panel:has(.combo-search[placeholder="选择重复周期"]) .combo-options,
.combo-panel:has(.combo-search[placeholder="选择星期几"]) .combo-options { margin-top:0 !important; }
.combo-panel:has(.combo-search[placeholder="选择项目"]),
.combo-panel:has(.combo-search[placeholder="选择优先级"]),
.combo-panel:has(.combo-search[placeholder="选择状态"]),
.combo-panel:has(.combo-search[placeholder="选择重复周期"]),
.combo-panel:has(.combo-search[placeholder="选择星期几"]) { height:auto !important; max-height:min(300px,calc(100vh - 16px)) !important; }
.combo-panel.campus-filter-panel [data-status-tone]{color:inherit!important;background:transparent!important;border-radius:0!important}

/* 学校行程的可管理选项始终显示操作按钮，便于直接编辑或删除。 */

/* 管理型下拉：完整保留改名与删除两个按钮，避免窄面板只显示其中一个。 */
.combo-panel .combo-option-row:has(.combo-option-tools){grid-template-columns:minmax(0,1fr) auto!important;overflow:visible!important}
.combo-panel .combo-option-tools{display:flex!important;gap:2px!important;overflow:visible!important}
.combo-panel .combo-option-tools .combo-rename,.combo-panel .combo-option-tools .combo-delete{display:grid!important;place-items:center!important;flex:0 0 30px!important;width:30px!important;min-width:30px!important;visibility:visible!important}

/* 删除入口沿用选项面板样式：默认低调，仅鼠标碰到 X 按钮本身才显示浅红底和红色 ×。 */
.combo-delete,.icon-btn[aria-label="删除"],button[data-action^="delete-"]{background:transparent!important;color:#7b91aa!important}
.combo-delete:hover,.icon-btn[aria-label="删除"]:hover,button[data-action^="delete-"]:hover{background:#fbecee!important;color:#cf5c67!important}

/* 地址和门店的长选项最多两行，右侧固定保留改名、删除操作位。 */
.address-style-options .combo-option-row,.combo-panel.store-options-panel .combo-option-row{grid-template-columns:minmax(0,1fr) auto!important;align-items:center!important}
.address-style-options .combo-option-label{min-width:0!important;max-width:none!important;white-space:normal!important;word-break:break-all!important;overflow:hidden!important;display:-webkit-box!important;-webkit-box-orient:vertical!important;-webkit-line-clamp:2!important;text-overflow:ellipsis!important}

/* 学校行程城市选项与其他可管理选项一致：仅悬停时显示操作键。 */
.combo-panel.campus-managed-panel .combo-option-tools{opacity:0!important;pointer-events:none!important}
.combo-panel.campus-managed-panel .combo-option-tools{opacity:0!important;pointer-events:auto!important}
.combo-panel.campus-managed-panel .combo-option-tools:hover{opacity:1!important}

/* 储备招聘岗位：扩大文字区并固定操作位，长岗位名不再被遮挡。 */
.combo-panel.social-role-options .combo-option-row{grid-template-columns:minmax(0,1fr) auto!important;align-items:center!important}
.combo-panel.social-role-options .combo-option-label{min-width:0!important;max-width:none!important;white-space:normal!important;word-break:break-word!important;overflow:visible!important}

/* 旧组合框补出的地址/门店操作键：始终可见，文字至多两行。 */
.combo-panel.managed-option-panel .combo-option-row{grid-template-columns:minmax(0,1fr) auto!important;align-items:center!important}
.combo-panel.force-managed-tools .combo-option-tools{opacity:0!important;pointer-events:none!important}
.combo-panel.force-managed-tools .combo-option-label{min-width:0!important;max-width:none!important;white-space:normal!important;word-break:break-all!important;overflow:hidden!important;display:-webkit-box!important;-webkit-box-orient:vertical!important;-webkit-line-clamp:2!important;text-overflow:ellipsis!important}
.combo-panel.address-direct-panel .combo-option-row,.combo-panel.store-direct-panel .combo-option-row{grid-template-columns:minmax(0,1fr) auto!important;align-items:center!important;min-height:40px!important}
.combo-panel.address-direct-panel .combo-option-label,.combo-panel.store-direct-panel .combo-option-label{min-width:0!important;max-width:none!important;white-space:normal!important;word-break:break-all!important;overflow:hidden!important;display:-webkit-box!important;-webkit-box-orient:vertical!important;-webkit-line-clamp:2!important;text-overflow:ellipsis!important}
.combo-panel.address-direct-panel .combo-option-tools,.combo-panel.store-direct-panel .combo-option-tools{display:flex!important;opacity:0!important;pointer-events:none!important;gap:2px!important}

/* 地址/门店实际使用的建议面板：文字可占两行，右侧操作区始终固定。 */
.suggest-panel.address-style-options .combo-option-row{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:center!important;gap:4px!important;min-height:40px!important;padding:6px 6px 6px 10px!important}
.suggest-panel.address-style-options .combo-option-label{display:-webkit-box!important;-webkit-box-orient:vertical!important;-webkit-line-clamp:2!important;overflow:hidden!important;width:auto!important;min-width:0!important;max-width:none!important;min-height:0!important;padding:2px 4px!important;white-space:normal!important;word-break:break-all!important;text-align:left!important;line-height:1.45!important}
.suggest-panel.address-style-options .combo-option-tools{display:flex!important;opacity:0!important;pointer-events:none!important;margin:0!important;gap:2px!important}
.suggest-panel.address-style-options .combo-option-tools button{display:grid!important;place-items:center!important;flex:0 0 30px!important;width:30px!important;min-width:30px!important;height:30px!important;min-height:30px!important;padding:0!important}

/* 统一收紧下拉高度，选项过多时在面板内滚动，不再纵向拉长页面。 */

/* 状态筛选只显示普通文本，不应用完成/通过的绿色状态色。 */
.combo-panel:has(.combo-search[aria-label="搜索状态"]) [data-status-tone]{color:inherit!important;background:transparent!important;border-radius:0!important}

/* 学校行程单元格编辑控件以浮层方式覆盖，不参与表格列宽和行高计算。 */
#app .campus-direct-cell { position:relative; }
#app .campus-direct-cell .search-combo {
  position:absolute !important;
  top:50% !important;
  bottom:auto !important;
  left:9px !important;
  right:9px !important;
  transform:translateY(-50%) !important;
  display:block !important;
  min-width:0 !important;
  width:auto !important;
  height:36px !important;
  z-index:3;
}
#app .campus-direct-cell .search-combo .combo-trigger {
  display:block !important;
  width:100% !important;
  min-width:0 !important;
  max-width:100% !important;
  height:34px !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
}
#app .campus-direct-cell:has(.search-combo) { overflow:visible !important; }

/* 所有组合下拉的空值入口；表格内已有“✕ 清空”的入口仍保持不变。 */
.combo-panel .combo-blank-option {
  position:sticky !important;
  top:0 !important;
  z-index:3 !important;
  display:block !important;
  width:100% !important;
  margin:0 0 5px !important;
  padding:8px 12px !important;
  border:0 !important;
  border-bottom:1px solid #edf1f6 !important;
  border-radius:8px !important;
  background:#f3f5f7 !important;
  color:#8995a5 !important;
  text-align:left !important;
  font:inherit !important;
}

/* 2026-09-17 面板宽度收紧 + 按钮/文字排版统一：
   1) 文字区撑满剩余宽度，✏️/✕ 统一贴面板右缘（不再字少偏左、字多偏右）；
   2) 选项文字最多两行，长文本换行不截断；
   3) 面板宽度由 JS 按最长选项自适应（下限 140px、单行上限 264px，超出折两行）。 */
.combo-panel .combo-options > .combo-option-row { width:100% !important; }
.combo-panel .combo-options > .combo-option-row .combo-option-label {
  flex:1 1 auto !important;
  width:auto !important;
  min-width:0 !important;
  max-width:none !important;
  text-align:left !important;
  white-space:nowrap !important;
  word-break:keep-all !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}
/* 例外：地址/门店类长文本面板保留最多两行折行。 */
.combo-panel.address-options-panel .combo-options > .combo-option-row .combo-option-label,
.combo-panel.address-direct-panel .combo-options > .combo-option-row .combo-option-label,
.combo-panel.store-direct-panel .combo-options > .combo-option-row .combo-option-label,
.combo-panel.force-managed-tools .combo-options > .combo-option-row .combo-option-label,
.combo-panel.address-style-options .combo-options > .combo-option-row .combo-option-label {
  white-space:normal !important;
  word-break:break-all !important;
  display:-webkit-box !important;
  -webkit-box-orient:vertical !important;
  -webkit-line-clamp:2 !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}
.combo-panel .combo-options > .combo-option-row .combo-option-tools {
  flex:0 0 auto !important;
  margin-left:4px !important;
}
.combo-panel .combo-options > .combo-option-row .combo-option-tools button {
  flex:0 0 30px !important;
  width:30px !important;
  min-width:30px !important;
}
.combo-panel .combo-blank-option:hover { background:#e9eef3 !important; color:#627188 !important; }
.inline-add-button { margin-left:8px; }

/* 2026-09-17d 建议面板文字一律横排：单元格建议（姓名/渠道/学校/门店等）单行不换行，
   杜绝面板被挤窄时一字一行竖排；仅真地址面板（address-wrap）保留最多两行。 */
.unified-suggestions:not(.address-wrap) .combo-option-label { white-space:nowrap !important; word-break:keep-all !important; overflow:hidden !important; text-overflow:ellipsis !important; }
.unified-suggestions.address-wrap .combo-option-label { white-space:normal !important; word-break:break-all !important; display:-webkit-box !important; -webkit-box-orient:vertical !important; -webkit-line-clamp:2 !important; overflow:hidden !important; }

/* 招聘网站渠道卡片：✎/× 默认隐藏，悬停卡片才显示（与下拉选项按钮同口径）。 */
#app .channel-card .card-foot .icon-btn { opacity:0; pointer-events:auto; transition:opacity .12s; }
#app .channel-card .card-foot:hover .icon-btn, #app .channel-card .card-foot:focus-within .icon-btn { opacity:1; }
/* 20260917g: 组合面板选项默认单行横排，面板宽度贴文字；仅地址/门店类长文本保留两行折行。 */
.combo-panel .combo-option-label { white-space:nowrap !important; word-break:keep-all !important; overflow:hidden !important; text-overflow:ellipsis !important; }
.combo-panel.address-options-panel .combo-option-label,.combo-panel.address-direct-panel .combo-option-label,.combo-panel.store-direct-panel .combo-option-label,.combo-panel.force-managed-tools .combo-option-label,.combo-panel.address-style-options .combo-option-label { white-space:normal !important; word-break:break-all !important; display:-webkit-box !important; -webkit-box-orient:vertical !important; -webkit-line-clamp:2 !important; overflow:hidden !important; text-overflow:ellipsis !important; }

/* 20260917n: suggest-panel 内的编辑/删除按钮与 combo-panel 行为统一——光标碰到按钮才显示 */
.suggest-panel.address-style-options .combo-option-tools{pointer-events:auto!important}
.suggest-panel.address-style-options .combo-option-tools:hover{opacity:1!important}
/* 20260923z38: 门店下拉选项文字一律单行横排（用户要求完全一行，不折行） */
.combo-panel.store-options-panel .combo-option-label{white-space:nowrap!important;word-break:keep-all!important;overflow:hidden!important;text-overflow:ellipsis!important;display:block!important;-webkit-line-clamp:unset!important;-webkit-box-orient:horizontal!important}
/* 20260917zc: 今日工作台排版微调（仅今日视图使用，不影响其他界面） */
.today-tri{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;align-items:start}
.recruit-head-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
@media(max-width:1100px){.today-tri{grid-template-columns:1fr}}
/* 钉钉同步状态徽章（顶栏右侧）与离职时间列配色 */
#cloudBadge,#dingSyncBadge{display:none!important/*z61 用户要求所有界面不显示同步徽标,逻辑保留*/}
.da-refresh{position:relative}
.da-spin{width:13px;height:13px;border:2px solid #bcd4f2;border-top-color:#347ff0;border-radius:50%;display:inline-block;vertical-align:-2px;margin-right:6px;animation:da-spin .8s linear infinite}
@keyframes da-spin{to{transform:rotate(360deg)}}
.da-refresh.is-loading{cursor:not-allowed;color:#9aa7b4;border-color:#cdd9e6;background:#f3f6f9}
.da-refresh.is-cooling{cursor:not-allowed;color:#a9781a;border-color:#e2c98f;background:#fdf6e7}
.da-tip{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);background:#20364d;color:#fff;font-size:12px;line-height:1;white-space:nowrap;padding:8px 11px;border-radius:8px;opacity:0;visibility:hidden;transition:opacity .12s;pointer-events:none;z-index:50}
.da-tip:after{content:'';position:absolute;top:100%;left:50%;transform:translateX(-50%);border:5px solid transparent;border-top-color:#20364d;border-bottom:0}
.da-refresh.is-cooling:hover .da-tip{opacity:1;visibility:visible}
.ding-sync{display:inline-flex;align-items:center;gap:7px;margin-left:auto;padding:6px 13px;border-radius:999px;font-size:12.5px;font-weight:600;background:var(--green2);color:var(--green);white-space:nowrap;cursor:default}
.ding-sync .ds-dot{width:7px;height:7px;border-radius:50%;background:currentColor;flex:none}
.ding-sync.off{background:var(--red2);color:var(--red)}
.ding-sync.load{background:var(--amber2);color:var(--amber)}
.data-table td.left-cell{color:var(--red);font-weight:600}
.cloud-sync{display:inline-flex;align-items:center;gap:7px;margin-left:10px;padding:6px 13px;border-radius:999px;font-size:12.5px;font-weight:600;background:var(--green2);color:var(--green);white-space:nowrap;cursor:pointer;user-select:none}
.cloud-sync .cs-dot{width:7px;height:7px;border-radius:50%;background:currentColor;flex:none}
.cloud-sync.load{background:var(--amber2);color:var(--amber)}
.cloud-sync.bad{background:var(--red2);color:var(--red)}
.cloud-sync.warn{background:var(--amber2);color:var(--amber)}
.cloud-sync.off{background:var(--red2);color:var(--red)}
#pkanLoginMask{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(16,36,62,.42);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
.pkan-card{width:min(92vw,384px);background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 24px 64px rgba(16,36,62,.24);padding:28px 26px 20px}
.pkan-logo{font-size:18px;font-weight:600;color:var(--ink);text-align:center;letter-spacing:.5px}
.pkan-sub{margin-top:8px;font-size:12.5px;color:var(--muted);text-align:center;line-height:1.6}
.pkan-lb{display:block;margin:18px 0 7px;font-size:12.5px;font-weight:600;color:var(--ink)}
.pkan-hint{font-weight:400;color:var(--muted)}
.pkan-card input{width:100%;height:42px;padding:0 13px;border:1px solid var(--line);border-radius:10px;background:#fbfdfd;font-size:13.5px;color:var(--ink);outline:none;box-sizing:border-box}
.pkan-card input:focus{border-color:var(--green);box-shadow:0 0 0 3px var(--green2)}
.pkan-err{min-height:18px;margin-top:9px;font-size:12.5px;color:var(--red);text-align:center}
.pkan-card button{width:100%;height:44px;margin-top:12px;border:none;border-radius:11px;background:var(--green);color:#fff;font-size:14px;font-weight:600;cursor:pointer}
.pkan-card button:disabled{opacity:.6;cursor:default}
.pkan-card button.pkan-ghost{background:transparent;color:var(--muted);font-weight:400;font-size:12.5px;height:38px}

/* ===== 列头筛选（实习生分配明细） ===== */
.filterable-th{white-space:nowrap}
.col-filter-btn{border:0;background:transparent;display:inline-flex;align-items:center;justify-content:center;gap:3px;min-width:22px;height:22px;padding:0 4px;border-radius:8px;cursor:pointer;vertical-align:middle;margin-left:4px;opacity:.5;transition:opacity .15s,background .15s}
.col-filter-btn .cff-funnel{width:13px;height:13px;fill:#8ca1b4;flex:none}
.col-filter-btn .cff-count{color:#fff;font-size:11px;line-height:1}
.col-filter-btn:hover{background:transparent;opacity:1}
.col-filter-btn:hover .cff-funnel{fill:#347ff0}
.filterable-th:hover .col-filter-btn{opacity:1}
.filterable-th.filtered .th-label{color:#347ff0}
.filterable-th.filtered .col-filter-btn{background:#347ff0;opacity:1}
.filterable-th.filtered .col-filter-btn .cff-funnel{fill:#fff}
.col-filter-panel{position:fixed;z-index:2200;width:max-content;min-width:240px;max-width:min(320px,calc(100vw - 16px));background:rgba(255,255,255,.97);border:1px solid rgba(94,132,160,.18);border-radius:16px;box-shadow:0 22px 60px rgba(41,76,104,.2);backdrop-filter:blur(20px) saturate(118%);-webkit-backdrop-filter:blur(20px) saturate(118%);display:flex;flex-direction:column;overflow:hidden}
.col-filter-panel .cff-head{padding:10px 12px 8px}
.cff-search{width:100%;box-sizing:border-box;height:34px;padding:0 12px;border:1px solid rgba(94,132,160,.24);border-radius:10px;background:#f7fafd;font:inherit;font-size:13px;color:var(--ink);outline:none}
.cff-search:focus{border-color:#66a7dc;box-shadow:0 0 0 3px rgba(58,143,239,.12)}
.cff-meta{display:flex;align-items:center;gap:8px;padding:0 12px 8px;font-size:12px;color:var(--muted)}
.cff-meta input{width:15px;height:15px;accent-color:#347ff0;cursor:pointer;flex:none}
.cff-all{display:flex;align-items:center;gap:6px;cursor:pointer;color:#20364d;font-weight:400}
.cff-count-num{margin-left:auto}
.cff-clear{border:0;background:transparent;color:#e5484d;font:inherit;font-size:12px;cursor:pointer;padding:3px 6px;border-radius:8px}
.cff-clear:hover{background:#fdecec}
.col-filter-panel .cff-list{max-height:280px;overflow:auto;padding:6px;border-top:1px solid rgba(94,132,160,.15)}
.cff-item{display:flex;align-items:center;gap:9px;padding:7px 10px;border-radius:10px;font-size:13px;font-weight:400;line-height:1.45;color:#20364d;cursor:pointer}
.cff-item:hover{background:#eaf5fc}
.cff-item input{width:15px;height:15px;accent-color:#347ff0;cursor:pointer;flex:none}
.cff-item span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cff-empty{padding:16px 10px;font-size:12px;color:var(--muted);text-align:center}
.cff-hint{display:flex;justify-content:space-between;padding:7px 12px;border-top:1px solid rgba(94,132,160,.15);font-size:11px;color:#9aaebf}

/* ============================================================
   主题覆写：深藏青侧栏 + 冷灰蓝内容底 + 蓝色强调（v20260918j）
   仅换配色与字体，不改结构与功能；logo 保持原样
   ============================================================ */
:root{
  --bg:#f4f7fa;--surface:#fff;--ink:#16202b;--muted:#6b7d92;--line:#e6ebf2;
  --green:#2563eb;--green2:#eaf1ff;
  --amber:#9a6518;--amber2:#fff5df;--red:#c0392f;--red2:#fdeceb;
  --shadow:0 14px 36px rgba(20,35,60,.07);--radius:18px;
  --font-ui:"Inter","SF Pro Display","SF Pro Text","PingFang SC","HarmonyOS Sans SC","Microsoft YaHei",sans-serif;
  --text-primary:#16202b;--text-secondary:#526a83;--text-tertiary:#6b7d92;
  --brand-blue-text:#2563eb;--brand-blue-soft:rgba(37,99,235,.1);
  --sidebar-bg:#1b2432;--sidebar-border:rgba(255,255,255,.07);
  --sidebar-text:rgba(226,234,243,.74);--sidebar-subtext:rgba(219,229,240,.62);
  --sidebar-icon:#9fb1c6;--sidebar-icon-bg:rgba(255,255,255,.06);
  --sidebar-hover:rgba(255,255,255,.07);
  --sidebar-active:rgba(59,130,246,.22);--sidebar-active-text:#ffffff;
}
body{font-family:var(--font-ui)!important;background:linear-gradient(145deg,#f8fafc 0%,#f4f7fa 48%,#eef2f7 100%);color:var(--ink);letter-spacing:.1px}
h1,h2,h3,strong,.nav-item,.mini-stat strong{font-family:var(--font-ui)!important}
.mini-stat strong,.stat strong{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}
.data-table td,.data-table th{font-variant-numeric:tabular-nums}

/* 侧栏：深藏青渐变 */
.sidebar{
  background:linear-gradient(180deg,#1d2734 0%,#1a2330 55%,#161e2a 100%)!important;
  color:#e8eef6!important;border-right:1px solid rgba(255,255,255,.06)!important;
  box-shadow:18px 0 48px rgba(15,23,42,.10)!important;
  backdrop-filter:none!important;-webkit-backdrop-filter:none!important
}
.sidebar .brand strong{color:#f3f7fb;font-weight:650;letter-spacing:.6px}
.nav-item{color:var(--sidebar-text)!important}
.nav-item:hover,.nav-group-toggle:hover{background:var(--sidebar-hover)!important;color:#fff!important}
.nav-item.active,.nav-item.active:hover{
  background:linear-gradient(96deg,rgba(59,130,246,.28),rgba(59,130,246,.12))!important;
  color:#fff!important;font-weight:600;box-shadow:none!important
}
.nav-item.active::before{background:#60a5fa!important}
.nav-icon{color:var(--sidebar-icon)!important;background:var(--sidebar-icon-bg)!important;box-shadow:none!important}
.nav-item.active .nav-icon,.sub-item.active .nav-icon{
  color:#fff!important;background:linear-gradient(145deg,#3b82f6,#2563eb)!important;
  box-shadow:0 4px 12px rgba(37,99,235,.35)!important
}
.sub-item{color:var(--sidebar-subtext)!important}
.sub-item.active{color:#fff!important}
.nav-badge{color:#cfe0fb!important;background:rgba(96,165,250,.18)!important}
.chevron{color:rgba(226,234,243,.5)!important}

/* 移动端底栏同样用深藏青 */
@media(max-width:1050px){
  .sidebar{background:linear-gradient(180deg,#1d2734,#161e2a)!important;color:#e8eef6!important;border-right:0!important;border-top:1px solid rgba(255,255,255,.07)!important;box-shadow:0 -12px 32px rgba(15,23,42,.18)!important}
}
@media(max-width:900px){
  .sidebar{background:linear-gradient(180deg,#1d2734,#161e2a)!important;color:#e8eef6!important}
  .nav-submenu{background:#1f2937!important;border-color:rgba(255,255,255,.08)!important;box-shadow:0 -12px 32px rgba(0,0,0,.28)!important}
}
@media(max-width:760px){
  .sidebar{background:linear-gradient(180deg,#1d2734,#161e2a)!important;color:#e8eef6!important}
  .nav-item{color:rgba(226,234,243,.8)!important}
}

/* ============================================================
   主题覆写二：菜单图标（v20260918l 改低调简约风）
   去掉彩色磁贴：透明微底 + 素色线条图标，仅选中项淡蓝高亮
   ============================================================ */
.sidebar .nav-icon{
  background:rgba(255,255,255,.05)!important;
  border-radius:8px!important;color:#8ea3ba!important;box-shadow:none!important
}
.sidebar .nav-icon svg{stroke-width:1.8}
.sidebar .nav-item:hover .nav-icon,
.sidebar .nav-group-toggle:hover .nav-icon{color:#cfe0fb!important;background:rgba(255,255,255,.08)!important}
.sidebar .nav-item.active .nav-icon,
.sidebar .sub-item.active .nav-icon{
  background:rgba(59,130,246,.2)!important;color:#cfe0fb!important;box-shadow:none!important
}

/* 子项图标略小 */
.sidebar .sub-item .nav-icon{width:23px;height:23px;flex-basis:23px;border-radius:7px!important}
.sidebar .sub-item .nav-icon svg{width:15px;height:15px}

/* 侧栏文字：调大调亮 */
.sidebar .nav-item{font-size:14.8px!important;font-weight:500!important;color:rgba(236,242,249,.93)!important}
.sidebar .sub-item{font-size:14.8px!important;color:rgba(230,238,247,.9)!important;font-weight:480!important}
.sidebar .nav-item:hover,.sidebar .nav-group-toggle:hover{color:#fff!important}
.sidebar .nav-item.active,.sidebar .sub-item.active{color:#fff!important;font-weight:600!important}
.sidebar .nav-subtext,.sidebar .nav-label{color:rgba(236,242,249,.93)}
.sidebar .brand strong{font-size:17px}

/* 品牌签名（个人工台下方小字）：字号加大到 14px（原 11.5px），保证在侧栏 276px 内不换行不溢出（20260920z6） */
.sidebar .brand-text{display:flex;flex-direction:column;line-height:1.25;min-width:0}
.sidebar .brand-sign{
  font-size:14px;font-weight:400;color:rgba(214,226,240,.42);
  letter-spacing:1.5px;margin-top:3px;white-space:nowrap
}

/* 移动端 */
@media(max-width:1050px){
  .sidebar .sub-item .nav-icon{width:21px;height:21px;flex-basis:21px}
  .sidebar .brand-sign{font-size:13px;letter-spacing:1px}
}

/* ============================================================
   主题覆写三：emoji 彩色图标 + 子项字体对等（v20260918m）
   ============================================================ */
.sidebar .nav-icon{
  background:transparent!important;box-shadow:none!important;border-radius:0!important;
  font-family:"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji",sans-serif;
  font-size:16px;line-height:1;letter-spacing:0
}
.sidebar .nav-icon svg{display:none}
.sidebar .sub-item .nav-icon{width:22px;height:22px;flex-basis:22px;font-size:14px}
.sidebar .nav-item:hover .nav-icon,
.sidebar .nav-group-toggle:hover .nav-icon{background:transparent!important}
.sidebar .nav-item.active .nav-icon,
.sidebar .sub-item.active .nav-icon{background:transparent!important;box-shadow:none!important}

/* 子项字体与主项完全对等 */
.sidebar .sub-item{font-size:14.8px!important;font-weight:500!important;color:rgba(236,242,249,.93)!important;letter-spacing:.1px}
.sidebar .sub-item.active{color:#fff!important;font-weight:600!important}
.sidebar .sub-item span{font-size:inherit!important}

/* 主题覆写四：社招子项文字 span 与校企子项完全对等（v20260918n） */
.sidebar .sub-item>span:not(.nav-icon):not(.chevron):not(.nav-badge):not(.nav-label){
  color:inherit!important;font-size:inherit!important;font-weight:inherit!important;
  background:transparent!important;width:auto!important;height:auto!important;border-radius:0!important
}

/* Inbox 搜索栏缩窄 + 工具栏新增任务按钮（20260920t） */
.toolbar input#taskSearch{flex:0 1 280px;min-width:190px}
.toolbar [data-action="new-task"]{flex:0 0 auto}

/* 弹窗两列字段顶对齐：修复"计划时间 vs 状态"错位（grid 默认拉伸把单行 label 的文字行撑高，控件下坠 ~10px）（20260920v） */
.modal label{align-content:start}

/* 浮动统计卡片：点击=按该维度筛表格，再点取消（20260920z3） */
/* 浮动统计卡片：点击=按该维度筛表格，再点取消（20260920z3）；选中态改淡蓝渐变微光（20260920z4） */
#app .mini-stat[data-action="metric"]{position:relative;cursor:pointer;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}
#app .mini-stat[data-action="metric"]:hover{border-color:#cfe2fb!important;box-shadow:0 4px 14px rgba(59,130,246,.07)!important}
#app .mini-stat[data-action="metric"].metric-active{
  border-color:transparent!important;
  background:linear-gradient(#f7fbff,#f7fbff) padding-box,linear-gradient(158deg,rgba(96,165,250,.5),rgba(59,130,246,.14) 45%,rgba(147,197,253,.38)) border-box!important;
  box-shadow:0 7px 20px rgba(59,130,246,.09),0 0 0 5px rgba(96,165,250,.06)!important;
}
#app .mini-stat[data-action="metric"].metric-active::after{content:"";position:absolute;left:16px;right:16px;top:-1px;height:2px;border-radius:2px;background:linear-gradient(90deg,rgba(59,130,246,.62),rgba(147,197,253,.3) 55%,rgba(191,219,254,0));pointer-events:none}
#app .mini-stat[data-action="metric"].metric-active small{color:#3b82f6!important}

/* 招聘网站渠道：搜索框缩窄（与 Inbox 同口径）、「＋ 新增渠道」按钮紧贴搜索框右侧；未保存密码沿用原提示文字的字号与颜色（20260920z5） */
.recruit-page .toolbar>input#channelSearch{flex:0 0 280px!important;width:280px!important;min-width:190px!important}
.recruit-page .toolbar>button[data-action="new-channel"]{flex:0 0 auto}
#app .channel-card .password-text.password-empty{font-family:inherit;font-size:13px;line-height:1.55;color:#7d8fa3}
@media(max-width:760px){.recruit-page .toolbar>input#channelSearch{flex:1 1 190px!important;width:auto!important}}


/* ===== 钉钉数据提醒（20260920z19） ===== */
#app .ding-alert-card { border-left: 3px solid #3a8fef; }
#app .ding-alert-card .da-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
#app .ding-alert-card .da-top h3 { margin: 0; }
#app .ding-alert-card .da-refresh { flex: 0 0 auto; padding: 7px 14px; font-size: 12.5px; border-radius: 9px; }
#app .ding-alert-card .da-list { display: flex; flex-direction: column; gap: 9px; margin-top: 10px; }
#app .ding-alert-card .da-item { border: 1px solid rgba(89,127,157,.16); border-left-width: 3px; border-radius: 10px; padding: 10px 14px; background: rgba(248,250,252,.85); }
#app .ding-alert-card .da-item.da-dup { border-left-color: #e5484d; }
#app .ding-alert-card .da-item.da-store { border-left-color: #f59e0b; }
#app .ding-alert-card .da-head { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; }
#app .ding-alert-card .da-head strong { font-size: 14px; color: #10243e; }
#app .ding-alert-card .da-tag { font-size: 11.5px; font-weight: 650; padding: 2px 9px; border-radius: 999px; white-space: nowrap; }
#app .ding-alert-card .da-dup .da-tag { background: #fdecec; color: #c5363b; }
#app .ding-alert-card .da-store .da-tag { background: #fdf3e0; color: #b45309; }
#app .ding-alert-card .da-page { margin-left: auto; font-size: 12px; color: #7d8fa3; white-space: nowrap; }
#app .ding-alert-card .da-item p { margin: 6px 0 0; font-size: 12.8px; line-height: 1.55; color: #52657a; }
#app .ding-alert-card .da-empty { font-size: 13px; color: #7d8fa3; margin-top: 8px; }
#app .ding-alert-card .da-rule { margin: 8px 0 0; font-size: 12.8px; line-height: 1.6; color: #10243e; }
#app .ding-alert-card .da-rule .da-rule-k { font-weight: 600; }
/* 钉钉 API 调用次数（20260923）：日常一行灰字，异常多一行红字 */
#app .ding-alert-card .da-calls { margin-top: 6px; }
#app .ding-alert-card .da-calls:empty { display: none; }
#app .ding-alert-card .da-calls p { margin: 0; font-size: 12.8px; line-height: 1.6; color: #52657a; }
#app .ding-alert-card .da-calls p.da-call-warn { margin-top: 3px; color: #c5363b; font-weight: 600; }

/* ===== 数据清理卡片（20260921） ===== */
#app .dup-clean-card { border-left: 3px solid #6366f1; }
#app .dup-clean-card .da-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
#app .dup-clean-card .da-top h3 { margin: 0; }
#app .dup-clean-card .da-refresh { flex: 0 0 auto; padding: 7px 14px; font-size: 12.5px; border-radius: 9px; }

/* ===== 同名绑定候选区（20260920z19） ===== */
#app .ding-alert-card .da-cands { display: flex; flex-direction: column; gap: 6px; margin-top: 8px; }
#app .ding-alert-card .da-cand { display: flex; align-items: center; justify-content: space-between; gap: 10px; border: 1px solid rgba(89,127,157,.14); border-radius: 8px; padding: 7px 10px; background: #fff; }
#app .ding-alert-card .da-cand-txt { font-size: 12.5px; color: #52657a; line-height: 1.5; }
#app .ding-alert-card .da-bind { flex: 0 0 auto; padding: 4px 12px; font-size: 12px; border-radius: 8px; }
#app .ding-alert-card .da-bound-wrap { margin-top: 12px; border-top: 1px dashed rgba(89,127,157,.22); padding-top: 10px; display: flex; flex-direction: column; gap: 6px; }
#app .ding-alert-card .da-bound-title { font-size: 12.5px; color: #7d8fa3; }
#app .ding-alert-card .da-bound { display: flex; align-items: center; justify-content: space-between; gap: 10px; border: 1px solid rgba(99,102,241,.22); border-radius: 8px; padding: 7px 10px; background: rgba(99,102,241,.05); }

/* ===== 忽略/恢复/折叠（20260920z19） ===== */
#app .ding-alert-card .da-ignore-row { margin-top: 8px; display: flex; justify-content: flex-end; }
#app .ding-alert-card .da-ignore { color: #7d8fa3; }
#app .ding-alert-card .da-item.da-revive { border-left-color: #0ea5e9; }
#app .ding-alert-card .da-revive .da-tag { background: #e6f4fe; color: #026aa7; }
#app .ding-alert-card .da-bound-sum { display: block; width: 100%; text-align: left; background: none; border: 0; padding: 0; margin: 0; font-size: 12.5px; color: #7d8fa3; cursor: pointer; }
#app .ding-alert-card .da-bound-wrap { margin-top: 12px; border-top: 1px dashed rgba(89,127,157,.22); padding-top: 10px; display: flex; flex-direction: column; gap: 6px; }
#app .ding-alert-card .da-bound { display: flex; align-items: center; justify-content: space-between; gap: 10px; border: 1px solid rgba(99,102,241,.22); border-radius: 8px; padding: 7px 10px; background: rgba(99,102,241,.05); }
#app .ding-alert-card .da-bound-ignore { border-color: rgba(89,127,157,.18); background: rgba(248,250,252,.9); }

/* ===== 行级绑定（同名不同人，20260920z19） ===== */
#app .ding-alert-card .da-cand-row { border: 1px solid rgba(89,127,157,.14); border-radius: 9px; padding: 8px 10px; background: #fff; display: flex; flex-direction: column; gap: 6px; }
#app .ding-alert-card .da-rowhint { font-size: 12.5px; color: #10243e; font-weight: 600; }
#app .ding-alert-card .da-rowact { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
#app .ding-alert-card .da-sel { flex: 1 1 auto; min-width: 0; max-width: 460px; height: 30px; font-size: 12.5px; border: 1px solid rgba(89,127,157,.28); border-radius: 8px; padding: 0 8px; background: #fff; color: #52657a; }

#app .ding-alert-card .da-bound-list { max-height: 320px; overflow-y: auto; display: flex; flex-direction: column; gap: 6px; }
#app .ding-alert-card .da-bound-title { font-size: 12px; color: #7d8fa3; margin-top: 4px; }
#app .ding-alert-card .da-bound-auto { border-color: rgba(16,185,129,.25); background: rgba(16,185,129,.05); }

/* ============================================================
   浮动侧边栏面板（v20260920z22）
   桌面端侧栏改为悬浮面板：四边 16px 外边距、圆角 20、柔和低透明度投影
   移动端（<761px）仍是底部栏，保持原样
   ============================================================ */
@media(min-width:761px){
  .app-shell{padding:16px!important;gap:16px!important}
  .sidebar{
    border-radius:20px!important;
    border:1px solid rgba(255,255,255,.07)!important;
    height:calc(100vh - 32px)!important;
    max-height:calc(100vh - 32px)!important;
    position:sticky!important;top:16px!important;align-self:start!important;
    overflow-y:auto!important;overflow-x:hidden!important;
    box-shadow:0 18px 46px rgba(15,23,42,.10),0 3px 10px rgba(15,23,42,.05)!important;
  }
  .sidebar::-webkit-scrollbar{width:6px}
  .sidebar::-webkit-scrollbar-thumb{background:rgba(255,255,255,.12);border-radius:8px}
  .sidebar::-webkit-scrollbar-track{background:transparent}
}
/* ===== 可恢复匹配纠错（v20260921）：同名但非同人 → 排除此人 / 锁定此人 ===== */
#app .ding-alert-card .da-revive-acts { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-top: 8px; }
#app .ding-alert-card .da-revive .primary { padding: 5px 14px; font-size: 12px; border-radius: 8px; }
#app .ding-alert-card .da-revive .da-ignore { color: #7d8fa3; }
#app .ding-alert-card .da-bound-excl { border-color: rgba(245,154,35,.28); background: rgba(245,154,35,.06); }

/* ===== z32 需求2：备注列宽按内容自适应（不留大片空白） =====
   原 #app .data-table td[data-field="notes"]{min-width:220px} 会在内容很短/为空时仍撑开 220px，
   这里把下限收回到与普通列一致的基准，并给出上限，让列宽随文字多少自然伸缩。 */
#app .data-table td[data-field="notes"] {
  min-width: 88px !important;
  max-width: 220px !important;
  white-space: nowrap !important;
  overflow: hidden;
  text-overflow: ellipsis;
}
/* 实习生分配页备注列：备注普遍只有几个字，按内容自适应；超长内容省略号截断，不再撑宽整列 */
#app .data-table.intern-table td[data-field="notes"] {
  min-width: 72px !important;
  max-width: 200px !important;
  white-space: nowrap !important;
  overflow: hidden;
}
/* 备注内容外层截断容器：让「最长的一条」不再参与整列宽度计算，
   列宽改由多数短备注决定，列不再被个别长文本撑开。
   截断宽度跟随列宽（100%），上限 160px。 */
#app .data-table td[data-field="notes"] > .cell-clip {
  display: inline-block;
  max-width: 196px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  vertical-align: bottom;
}

/* 20260923z39: 岗位下拉面板宽度贴合文字——✎/× 工具按钮悬浮行右侧 */
/* 20260923z41: 工具区预留固定空间，文字加右内边距，✎/× 不再压住文字；按钮间距放宽 */
.suggest-panel.rp-tight .combo-option-row{position:relative}
.suggest-panel.rp-tight .combo-option-label{padding-right:78px}
.suggest-panel.rp-tight .combo-option-tools{position:absolute!important;right:4px;top:50%;transform:translateY(-50%);background:#fff;border-radius:8px;box-shadow:0 0 0 4px #fff;z-index:2;gap:6px!important}
.suggest-panel.rp-tight .combo-option-tools button{width:28px!important;min-width:28px!important;flex:0 0 28px!important}

/* 20260923z40: 门店筛选下拉宽度贴合最长店名（复用 social-role-options 的 max-content 模式），杜绝省略号截断 */
.combo-panel.store-options-panel{width:max-content!important;min-width:160px!important;max-width:calc(100vw - 16px)!important}
.combo-panel.store-options-panel .combo-options{width:max-content!important;min-width:100%!important}
.combo-panel.store-options-panel .combo-option-row,.combo-panel.store-options-panel .combo-option{width:max-content!important;min-width:100%!important}
.combo-panel.store-options-panel .combo-option-label{width:auto!important;max-width:none!important;min-width:0!important;white-space:nowrap!important;overflow:visible!important;text-overflow:clip!important}

/* 20260923z46: 任务 Inbox / 招聘网站渠道 两页——页面整体不滚动，仅内容区内部滚动（标题行+筛选栏+小节标题固定），其他页面不动 */
@media(min-width:761px){
  html.wb-fixedview,html.wb-fixedview body{height:100%;overflow:hidden}
  main[data-view="inbox"],
  main[data-view="channels"]{
    height:100vh;box-sizing:border-box;overflow:hidden;
    display:flex;flex-direction:column
  }
  main[data-view="inbox"] .topbar,
  main[data-view="channels"] .topbar{flex:none;margin-bottom:20px}
  main[data-view="inbox"] #app,
  main[data-view="channels"] #app{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}
  main[data-view="inbox"] .toolbar,
  main[data-view="channels"] .toolbar{flex:none}
  /* 仅内容区滚动 */
  main[data-view="inbox"] .inbox-panel{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}
  main[data-view="inbox"] .inbox-panel > .section-head{flex:none}
  main[data-view="inbox"] .inbox-panel .task-list{flex:1;min-height:0;overflow-y:auto;padding-right:4px;align-content:start}
  main[data-view="channels"] .recruit-page{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}
  main[data-view="channels"] .channel-grid{flex:1;min-height:0;overflow-y:auto;padding-right:4px}
}

/* 20260923z49: 学校行程「备注」列（仅学校行程页，其他页面不动） */
table.data-table .notes-col{min-width:170px}
.campus-notes-input{width:100%;box-sizing:border-box;font:inherit;color:inherit;background:#fff;border:1px solid #93c5fd;border-radius:8px;padding:5px 10px;outline:none}

/* ===== 20260928z71 今日工作台改版（仅 today 视图使用，td- 前缀，不影响其他界面） ===== */
.td-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}
.td-date{font-size:19px;font-weight:600;letter-spacing:-.3px;color:#152436}
.td-wd{font-size:13px;font-weight:400;color:#7d8ea3;margin-left:7px}
.td-sub{margin-top:5px;font-size:12.5px;color:#7d8ea3}
.td-new{font:inherit;font-size:13px;font-weight:500;color:#fff;background:#3b6ef6;border:0;border-radius:10px;padding:9px 16px;cursor:pointer;box-shadow:0 5px 14px -5px rgba(59,110,246,.55);transition:.16s;flex:none}
.td-new:hover{background:#2f61e6;transform:translateY(-1px)}
.td-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;margin-bottom:13px}
.td-stat{position:relative;background:#fff;border:1px solid rgba(23,49,84,.08);border-radius:13px;padding:13px 16px 12px 20px;overflow:hidden;transition:.16s}
.td-stat:hover{border-color:rgba(59,110,246,.22);box-shadow:0 8px 20px -14px rgba(23,49,84,.4)}
.td-stat::before{content:'';position:absolute;left:0;top:13px;bottom:13px;width:3px;border-radius:0 3px 3px 0;background:#9db0c8}
.td-stat.b::before{background:#3b6ef6}
.td-stat.g::before{background:#0f9b6c}
.td-stat.r::before{background:#e05b52}
.td-sl{font-size:12px;color:#7d8ea3}
.td-sv{display:block;font-size:31px;font-weight:600;letter-spacing:-1px;line-height:1.12;margin:3px 0 2px;font-variant-numeric:tabular-nums;color:#152436}
.td-sv.b{color:#3b6ef6}
.td-sv.g{color:#0f9b6c}
.td-sv.r{color:#e05b52}
.td-ss{font-size:10.5px;color:#a7b4c4}
.td-main{display:grid;grid-template-columns:1.52fr 1fr;gap:13px}
.td-card{background:#fff;border:1px solid rgba(23,49,84,.08);border-radius:13px;padding:14px 18px 15px}
.td-ch{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:9px}
.td-ch h2{font-size:14.5px;font-weight:600;letter-spacing:-.2px;color:#152436}
.td-cs{font-size:10.5px;color:#a7b4c4;font-variant-numeric:tabular-nums}
.td-cl{font:inherit;font-size:11px;font-weight:500;color:#3b6ef6;background:#eef3fe;border:0;border-radius:7px;padding:5px 10px;cursor:pointer;transition:.14s}
.td-cl:hover{background:#e3ecfe}
.td-grp{font-size:11px;font-weight:500;color:#8b9aad;margin:9px 0 1px;display:flex;align-items:center;gap:6px}
.td-grp:first-of-type{margin-top:2px}
.td-grp em{font-style:normal;color:#3b6ef6;font-weight:600}
.td-row{position:relative;display:flex;align-items:center;height:33px;padding:0 5px 0 4px;border-radius:8px;transition:background .12s}
.td-row:hover{background:#f6f9fd}
.td-row.next .td-nm{font-weight:500;color:#152436}
.td-row.next::before{content:'';position:absolute;left:-1px;top:50%;transform:translateY(-50%);width:2px;height:16px;border-radius:2px;background:#3b6ef6}
.td-ck{width:15px;height:15px;border-radius:50%;border:1.5px solid #c4d0de;background:transparent;padding:0;flex:none;cursor:pointer;transition:.16s}
.td-ck:hover{border-color:#3b6ef6;box-shadow:0 0 0 3px rgba(59,110,246,.13)}
.td-nm{font-size:13.5px;color:#22344a;margin-left:11px}
.td-kind{font-size:10px;font-weight:500;color:#8b9aad;background:#f1f3f6;border-radius:5px;padding:1.5px 6px;margin-left:9px;flex:none}
.td-grow{flex:1}
.td-due{font-size:11.5px;color:#93a3b6;font-variant-numeric:tabular-nums}
.td-ops{display:flex;gap:2px;opacity:0;transition:.14s}
.td-row:hover .td-ops{opacity:1}
.td-op{width:22px;height:22px;border:0;background:transparent;border-radius:6px;color:#a7b4c4;font-size:12.5px;line-height:1;cursor:pointer;font-family:inherit}
.td-op:hover{background:#eef3fe;color:#3b6ef6}
.td-empty{font-size:11.5px;color:#a7b4c4;padding:3px 0 1px}
.td-blk+.td-blk{margin-top:11px;padding-top:11px;border-top:1px solid rgba(23,49,84,.06)}
.td-blt{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.td-blt span{font-size:11.5px;color:#5a6d82}
.td-blt b{font-size:20px;font-weight:600;color:#152436;letter-spacing:-.5px;font-variant-numeric:tabular-nums}
.td-blt b i{font-size:10.5px;font-weight:400;color:#a7b4c4;font-style:normal;margin-left:2px}
.td-stack{display:flex;height:8px;border-radius:4px;overflow:hidden;gap:2px;margin:8px 0 6px;background:#f1f4f9}
.td-stack i{display:block;border-radius:3px}
.td-stack .s1{background:#3b6ef6}
.td-stack .s2{background:#72aaf0}
.td-stack .s3{background:#bcd0f1}
.td-stack .s4{background:#dbe3ee}
.td-lg{display:flex;flex-wrap:wrap;gap:11px;font-size:10.5px;color:#7d8ea3}
.td-lg span{display:flex;align-items:center;gap:4px}
.td-lg em{width:6px;height:6px;border-radius:2px;font-style:normal}
.td-lg .s1{background:#3b6ef6}
.td-lg .s2{background:#72aaf0}
.td-lg .s3{background:#bcd0f1}
.td-lg .s4{background:#dbe3ee}
.td-blksub{margin-top:7px;font-size:10.5px;color:#a7b4c4}
.td-bars{margin-top:7px}
.td-bar{display:flex;align-items:center;height:17px;font-size:11px;color:#5a6d82}
.td-bl{width:60px;flex:none;color:#7d8ea3}
.td-bt{flex:1;height:5px;background:#f1f4f9;border-radius:3px;margin:0 8px;overflow:hidden}
.td-bt i{display:block;height:100%;border-radius:3px;background:#c6d8f5}
.td-bar:first-child .td-bt i{background:#3b6ef6}
.td-bv{width:20px;text-align:right;font-variant-numeric:tabular-nums;color:#41546a}
.td-top3{display:flex;gap:6px;margin-top:7px}
.td-top3>span{flex:1;min-width:0;text-align:center;background:#f7f9fc;border-radius:8px;padding:6px 2px 5px;font-size:10px;color:#7d8ea3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.td-top3>span b{display:block;font-size:15px;font-weight:600;color:#152436;font-variant-numeric:tabular-nums;margin-bottom:1px}
.td-top3>span.hot{background:#f2f6fe}
.td-top3>span.hot b{color:#3b6ef6}
.td-top3>span.td-top3-empty{background:transparent;color:#a7b4c4}
.td-done{margin-top:13px}
.td-drow{display:flex;align-items:center;height:32px;padding:0 5px 0 4px}
.td-dck{width:15px;height:15px;border-radius:50%;background:#0f9b6c;position:relative;flex:none}
.td-dck::after{content:'';position:absolute;left:4.4px;top:3.1px;width:3.6px;height:6.6px;border:1.5px solid #fff;border-top:0;border-left:0;transform:rotate(42deg)}
.td-dnm{font-size:13px;color:#8b9aad;margin-left:11px;text-decoration:line-through}
.td-dtime{font-size:11px;color:#a7b4c4;font-variant-numeric:tabular-nums}
.td-foot{display:flex;flex-wrap:wrap;align-items:center;gap:18px;margin-top:14px;padding-top:12px;border-top:1px solid rgba(23,49,84,.07);font-size:10.5px;color:#a7b4c4}
.td-foot b{color:#5a6d82;font-weight:500}
.td-dot{width:5px;height:5px;border-radius:50%;background:#0f9b6c;display:inline-block;margin-right:5px}
.td-dot.off{background:#c8d3e0}
@media(max-width:1100px){.td-main{grid-template-columns:1fr}.td-stats{grid-template-columns:repeat(2,1fr)}}

/* ===== 20260928z74 全站字号微调 · A 档（在原始字号基础上每层 +0.5~1px · 用户口径「比我原来那版大一点」· 当前线上）（适配 14" 1920x1080 高分屏）=====
   目的：在**未放大的原始字号**基础上做整站微调（各档目标值 = 原始值 + 增量）。
   范围：**只改 font-size**，不动 padding / 宽高 / 圆角 / 栅格 / 颜色 / 字体族 / 字重，
        因此所有界面的元素位置、卡片高度、表格行高与列数均保持原样；
        颜色 / 字体族 / 字重 / 背景 / 对齐 经逐元素 computedStyle 比对为零差异。
   硬约束：任何一层的目标字号都不得低于原始实测值（生成时断言把关），杜绝「调整反变小」。
   实现：本块位于 styles.css 末尾并统一加 !important，以压过线上既有的
        `.social-table td`、`.sidebar .nav-item` 等带 !important 的字号声明。
   微调：改下面各分组的数值即可整体升降；不需要时整块删除即可完全回退。
   安全：实测本来就比目标大的元素（品牌名 27px、视图大标题 29px、统计数字 31px、
        区块标题 18px 等）一律不改，避免「放大反变小」。
    ========================================================================== */

/* 基础字号：未显式声明字号的元素继承此值（原 15px） */
html, body { font-size: 15.5px; }

/* 表格正文（全站绝对主力，2236 个可编辑单元格 + 各表单元格） —— 13 → 14 */
  .data-table td,
  .data-table td.editable-cell,
  .editable-cell,
  .social-cell,
  .campus-direct-cell,
  .cell-clip,
  .intern-table td,
  .social-table td,
  .recruit-page .data-table td,
  .td-nm,
  .td-new,
  .td-wd,
  .td-dnm { font-size: 14px !important; }

/* 表格表头 / 标签 / 小按钮 / 链接 / 侧栏底部 —— 12 → 13 */
  .data-table th,
  .data-table thead th,
  .tag,
  .small-btn,
  .link-btn,
  .cell-sub,
  .muted-note,
  .inline-tip,
  .project-numbers,
  .section-head .count,
  .mini-stat small,
  .review-card small,
  .da-bind,
  .channel-card .channel-url,
  .task-meta,
  .recruit-alert p,
  .td-sl { font-size: 13px !important; }

/* 今日工作台次要行（状态句 / 操作图标 / 候选人备注） —— 12.5 → 13 */
.td-sub, .td-op, .da-cand-txt { font-size: 13px !important; }

/* 截止时间 / 同名标签 / 空态提示 / 卡片角标 —— 11.5 → 12 */
.td-due, .da-tag, .td-empty, .td-cs { font-size: 12px !important; }

/* 页眉小标 / 日期分组 / 管道条 / 同步规则 —— 11 → 12 */
  #eyebrow,
  .topbar p,
  .td-grp,
  .td-bl,
  .td-bv,
  .td-bar,
  .td-cl,
  .td-dtime,
  .notice-strip,
  .next-action strong,
  .modal-head small { font-size: 12px !important; }

/* 统计卡说明 / 图例 / 平台数据小字 / 底栏 —— 10.5 → 11 */
.td-ss, .td-blksub, .td-lg, .td-foot, .td-blt b i { font-size: 11px !important; }

/* 微标签（每月 / 每周）与门店 Top3 名称 —— 10 → 11 */
.td-kind, .td-top3 > span { font-size: 11px !important; }

/* 正文标题 / 任务名 / 表单控件 / 主按钮 —— 14 → 15 */
  h4,
  .task-copy h4,
  .recruit-alert h4,
  .combo-trigger,
  .ghost,
  .danger,
  .primary,
  button.ghost,
  .toolbar input,
  .toolbar select,
  .modal input,
  .modal select,
  .modal textarea,
  .modal label,
  .metric small,
  .date-card p,
  .brand small { font-size: 15px !important; }

/* 侧栏导航项（线上被 !important 锁定，须同特异性覆盖） —— 14.8 → 15.5   ※须 !important + 同特异性 */
  .nav-item,
  .nav-item.sub-item,
  .sub-item,
  .sidebar .nav-item,
  .sidebar .sub-item,
  .sidebar .nav-group-toggle { font-size: 15.5px !important; }

/* 侧栏导航图标（实测已是 16px，单独成组以免被上方导航组压小） —— 16 → 16.5 */
.nav-item span, .nav-icon { font-size: 16.5px !important; }

/* 区块小标题 —— 14.5 → 15 */
.td-ch h2, .risk-item h3 { font-size: 15px !important; }

/* 门店 Top3 数字 —— 15 → 15.5 */
.td-top3 > span b { font-size: 15.5px !important; }

/* 今日工作台日期 —— 19 → 19.5 */
.td-date { font-size: 19.5px !important; }
