:root{--server-ink:#24223e;--server-muted:#615e78;--server-primary:#6249c8;--server-line:#dfd9f0;--server-bg:#f6f4ff;--server-green:#197359;--server-red:#b52f50}*{box-sizing:border-box}body{margin:0;color:var(--server-ink);background:radial-gradient(ellipse at 8% 2%,#e8ddff,transparent 43%),radial-gradient(ellipse at 96% 4%,#d9f4f1,transparent 36%),var(--server-bg);font:16px/1.65 "Microsoft YaHei","PingFang SC",system-ui,sans-serif}a{color:var(--server-primary)}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:wait;opacity:.6}:focus-visible{outline:3px solid #936fe2;outline-offset:3px}.server-shell{width:min(1180px,100%);margin:auto;padding:24px 24px max(48px,env(safe-area-inset-bottom))}.server-topbar{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:32px}.server-topbar a{text-decoration:none;font-weight:700;min-height:44px;display:inline-flex;align-items:center}.server-topbar .top-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.server-hero{margin-bottom:28px}.server-hero .eyebrow{letter-spacing:.12em;color:var(--server-primary);font-size:13px;font-weight:800}.server-hero h1{font-size:clamp(28px,4vw,44px);line-height:1.25;margin:10px 0}.server-hero p{color:var(--server-muted);max-width:800px}.server-card{background:#ffffffed;border:1px solid var(--server-line);border-radius:22px;padding:24px;box-shadow:0 12px 40px #6f4bae08;margin-bottom:20px;min-width:0}.server-card h2{margin-top:0;font-size:22px}.server-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.server-field{display:flex;flex-direction:column;gap:7px;margin:0 0 18px}.server-field label{font-weight:650}.server-field input,.server-field select,.server-field textarea{width:100%;min-height:48px;border:1px solid #c8bfdf;border-radius:12px;background:#fff;padding:10px 13px;color:var(--server-ink)}.server-field input[type=checkbox]{width:20px;min-height:20px}.server-field small,.muted{color:var(--server-muted)}.server-button,.server-button.secondary{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:10px 18px;border-radius:12px;border:1px solid var(--server-primary);background:var(--server-primary);color:#fff;text-decoration:none;gap:8px;transition:transform .18s,background .18s}.server-button:hover{transform:translateY(-1px);background:#5138b8}.server-button.secondary{color:var(--server-primary);background:#f4efff;border-color:#d7cbed}.server-button.danger{background:#b52f50;border-color:#b52f50}.server-button.small{padding:8px 12px;font-size:14px}.server-error{color:var(--server-red);background:#fff1f4;padding:12px 14px;border-radius:12px;margin:14px 0;white-space:pre-wrap}.server-error:empty{display:none}.server-notice{background:#edf7f5;border:1px solid #c5e7df;border-radius:14px;padding:15px;color:#245447}.status{border-radius:99px;padding:4px 10px;font-size:12px;background:#eee8fb;color:#554292;white-space:nowrap}.server-toast{position:fixed;bottom:max(24px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);background:#2b2543;color:white;padding:14px 22px;border-radius:14px;max-width:calc(100% - 32px);z-index:1000;box-shadow:0 8px 32px #22163b25}.server-table-wrap{overflow:auto;max-width:100%}.server-table{width:100%;border-collapse:collapse;white-space:nowrap;font-size:14px}.server-table th,.server-table td{text-align:left;border-bottom:1px solid #e5e0f0;padding:12px 14px}.server-table th{color:var(--server-muted)}.server-inline{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.login-shell{max-width:560px;padding-top:5vh}.login-card{padding:32px}.login-card h1{margin-top:0;font-size:30px}.login-card button[type=submit]{width:100%}.server-count{font-size:32px;font-weight:800;line-height:1.2}.server-empty{padding:32px 16px;text-align:center;color:var(--server-muted)}[hidden]{display:none!important}@media(max-width:640px){.server-shell{padding:16px 14px 40px}.server-grid{grid-template-columns:1fr}.server-card{padding:18px;border-radius:18px}.server-topbar{margin-bottom:24px}.server-topbar .top-actions{gap:8px}.server-hero h1{font-size:29px}.login-card{padding:24px}}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* 天淼监考报名与分配 */
.tm-page{--tm-ink:#123e39;--tm-muted:#58746a;--tm-green:#16675d;--tm-green-dark:#104f47;--tm-soft:#eaf5f1;--tm-line:#cfe0d9;--tm-purple:#eee5ff;--tm-warning:#8a5b0c;--tm-danger:#a82b39;background:linear-gradient(180deg,#f3f8f6 0,#f8fbfa 58%,#f2f7f5 100%);color:var(--tm-ink)}
.tm-page [hidden]{display:none!important}.tm-shell{width:min(1540px,100%);margin:auto;padding:28px 32px max(56px,env(safe-area-inset-bottom))}.tm-topbar{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;margin-bottom:40px}.tm-back{color:var(--tm-green);font-weight:750;text-decoration:none;min-height:44px;display:inline-flex;align-items:center}.tm-user-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap}.tm-user-summary{display:grid;grid-template-columns:auto auto;align-items:center;gap:3px 9px;max-width:460px}.tm-user-summary strong{font-size:15px}.tm-permission-note{grid-column:1/-1;color:var(--tm-muted);font-size:12px;text-align:right}.tm-role-badge{display:inline-flex;align-items:center;border-radius:999px;background:var(--tm-purple);color:#5a4092;padding:3px 9px;font-size:12px;font-weight:750;white-space:nowrap}.tm-hero{margin:0 0 34px}.tm-eyebrow,.tm-section-kicker{margin:0 0 5px;color:var(--tm-green);font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.tm-hero h1{font-size:clamp(32px,4.8vw,56px);line-height:1.14;letter-spacing:-.045em;margin:0 0 15px}.tm-hero>p:last-child{max-width:850px;color:var(--tm-muted);margin:0;line-height:1.8}.tm-page-status{margin-bottom:14px}.tm-tabs{display:flex;gap:8px;flex-wrap:wrap;padding:7px;margin:0 0 24px;border-radius:16px;background:var(--tm-purple)}.tm-tabs button{border:0;border-radius:11px;background:transparent;color:#5a4a74;min-height:46px;padding:10px 22px;font-weight:750;cursor:pointer}.tm-tabs button[aria-selected=true]{background:#fff;color:var(--tm-green);box-shadow:0 4px 18px #4e346b12}.tm-pane:focus{outline:0}.tm-enrollment-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,.62fr);gap:24px}.tm-card{min-width:0;background:#fff;border:1px solid var(--tm-line);border-radius:22px;padding:26px;margin-bottom:22px;box-shadow:0 10px 36px #174c420a}.tm-card h2{font-size:23px;line-height:1.3;margin:0}.tm-card-heading,.tm-allocation-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:22px}.tm-required-note{color:var(--tm-muted);font-size:13px}.tm-required-note span,.tm-field>span[aria-hidden],.tm-choice-fieldset legend>span{color:var(--tm-danger)}.tm-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.tm-field{display:grid;grid-template-columns:max-content 1fr;align-items:baseline;gap:8px;color:var(--tm-ink);font-weight:650;margin:0}.tm-field>input,.tm-field>select,.tm-field>textarea,.tm-field>.tm-help{grid-column:1/-1}.tm-field--full{grid-column:1/-1}.tm-field input,.tm-field select,.tm-field textarea,.tm-filter-row input,.tm-filter-row select{width:100%;min-height:48px;border:1px solid #afc9bf;border-radius:11px;background:#fff;color:var(--tm-ink);padding:11px 13px}.tm-field textarea{resize:vertical}.tm-field input:focus-visible,.tm-field select:focus-visible,.tm-field textarea:focus-visible,.tm-filter-row input:focus-visible,.tm-filter-row select:focus-visible{outline:3px solid #63b99d;outline-offset:2px;border-color:#4c9e83}.tm-help{color:var(--tm-muted);font-size:13px;font-weight:400;line-height:1.65;margin:0}.tm-choice-fieldset{border:0;padding:0;margin:22px 0}.tm-choice-fieldset legend{font-weight:750;padding:0;margin-bottom:4px}.tm-owner-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px}.tm-owner-choice{position:relative;min-height:72px;display:flex;align-items:center;gap:12px;padding:14px 48px 14px 15px;border:1px solid #b9d0c7;border-radius:14px;background:#fff;cursor:pointer}.tm-owner-choice:hover{border-color:#60a991;background:#f8fcfa}.tm-owner-choice:has(input:checked){border-color:var(--tm-green);background:var(--tm-soft);box-shadow:0 0 0 1px var(--tm-green)}.tm-owner-choice input{position:absolute;inset:0;opacity:0;cursor:pointer}.tm-owner-choice input:focus-visible+span{outline:3px solid #63b99d;outline-offset:5px;border-radius:4px}.tm-owner-choice strong,.tm-owner-choice small{display:block}.tm-owner-choice small{color:var(--tm-muted);margin-top:2px}.tm-choice-mark{position:absolute;right:16px;width:22px;height:22px;border:2px solid #8db4a5;border-radius:50%}.tm-owner-choice:has(input:checked) .tm-choice-mark{border:6px solid var(--tm-green);background:#fff}.tm-photo-row{display:grid;grid-template-columns:112px minmax(0,1fr);gap:20px;align-items:center;margin:23px 0 15px}.tm-photo-frame{width:112px;height:138px;position:relative;border:1px solid #b7cec3;border-radius:14px;background:var(--tm-soft);overflow:hidden}.tm-photo-preview{width:100%;height:100%;object-fit:cover}.tm-photo-preview:not([src]){display:none}.tm-photo-placeholder{position:absolute;inset:0;display:grid;place-items:center;padding:12px;text-align:center;color:var(--tm-green);font-size:13px}.tm-button{border:1px solid var(--tm-green);background:var(--tm-green);color:#fff;min-height:46px;padding:10px 18px;border-radius:11px;font-weight:700;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:7px;transition:background .16s ease,transform .16s ease,box-shadow .16s ease}.tm-button:hover:not(:disabled){background:var(--tm-green-dark);transform:translateY(-1px);box-shadow:0 7px 18px #15584e20}.tm-button--secondary{background:#fff;color:var(--tm-green);border-color:#b8cec6}.tm-button--secondary:hover:not(:disabled){background:var(--tm-soft);color:var(--tm-green-dark)}.tm-button--danger{background:#fff;color:var(--tm-danger);border-color:#ddb3b8}.tm-button--danger:hover:not(:disabled){background:#fff0f1;color:#8d1f2c}.tm-button--small{min-height:38px;padding:7px 11px;font-size:13px}.tm-button:disabled{opacity:.5;cursor:not-allowed}.tm-status{min-height:24px;margin-top:10px;color:var(--tm-muted);font-size:14px;line-height:1.55;border-radius:10px}.tm-status:empty{display:none}.tm-status.is-error{color:#922333;background:#fff0f1;border:1px solid #ecc1c6;padding:10px 12px}.tm-status.is-success{color:#126047;background:#eaf8f1;border:1px solid #b9decf;padding:10px 12px}.tm-guide{align-self:start}.tm-guide ol{padding:0;margin:20px 0;list-style:none;counter-reset:steps}.tm-guide li{position:relative;padding:0 0 22px 48px;counter-increment:steps}.tm-guide li:not(:last-child)::after{content:"";position:absolute;left:17px;top:36px;bottom:4px;width:1px;background:#c7ddd5}.tm-guide li::before{content:counter(steps);position:absolute;left:0;top:0;width:35px;height:35px;display:grid;place-items:center;border-radius:50%;background:var(--tm-soft);color:var(--tm-green);font-weight:800}.tm-guide strong,.tm-guide span{display:block}.tm-guide span{color:var(--tm-muted);font-size:14px;margin-top:3px}.tm-guide-note{padding:15px;border-radius:12px;background:var(--tm-purple);color:#574671;font-size:14px;line-height:1.7}.tm-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:20px}.tm-metric{background:#fff;border:1px solid var(--tm-line);border-radius:16px;padding:18px;color:var(--tm-muted);font-size:13px}.tm-metric strong{display:block;color:var(--tm-ink);font-size:31px;line-height:1.25;margin-top:3px}.tm-filter-row{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap}.tm-filter-row .tm-field{min-width:180px}.tm-filter-search{flex:1 1 340px}.tm-table-wrap{max-width:100%;overflow:auto;border:1px solid #e0ebe6;border-radius:14px}.tm-table{width:100%;min-width:1280px;border-collapse:separate;border-spacing:0;white-space:nowrap;font-size:13px}.tm-table th,.tm-table td{text-align:left;border-bottom:1px solid #e4ede9;padding:13px 11px;vertical-align:middle}.tm-table th{position:sticky;top:0;z-index:1;color:#4f6b61;background:#f5f9f7;font-size:12px;font-weight:750}.tm-table tbody tr:last-child td{border-bottom:0}.tm-table tbody tr:hover{background:#fbfdfc}.tm-person{display:flex;gap:10px;align-items:center}.tm-person img{width:45px;height:55px;object-fit:cover;border-radius:8px;background:var(--tm-soft)}.tm-owner-cell,.tm-assignment{display:flex;flex-direction:column}.tm-owner-cell small,.tm-assignment small{color:var(--tm-muted)}.tm-muted-value{color:#82968e}.tm-row-actions{display:flex;align-items:center;gap:7px}.tm-review-note{display:block;max-width:150px;margin-top:4px;overflow:hidden;text-overflow:ellipsis;color:var(--tm-muted);font-size:11px}.tm-pill{display:inline-flex;align-items:center;width:max-content;border-radius:999px;padding:4px 9px;background:#edf2f0;color:#53675f;font-size:12px;font-weight:700;white-space:nowrap}.tm-pill--success,.tm-pill--verified{background:#ddf3e8;color:#135b43}.tm-pill--warning,.tm-pill--pending{background:#fff2d4;color:#7e5410}.tm-pill--rejected{background:#ffe7e9;color:#9a2937}.tm-pill--neutral{background:#edf2f0;color:#53675f}.tm-empty{padding:38px 20px!important;text-align:center!important;color:var(--tm-muted)}.tm-range-form{display:grid;grid-template-columns:minmax(180px,1fr) repeat(2,minmax(130px,.65fr)) auto;align-items:end;gap:14px}.tm-allocation-header h2{margin-bottom:5px}.tm-action-group,.tm-export-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.tm-export-actions{margin:0 0 20px}.tm-notice{padding:14px 17px;border-radius:12px;line-height:1.7;margin-bottom:18px}.tm-notice--warning{background:#fff4dc;border:1px solid #e7ce94;color:#704b12}.tm-room-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(310px,1fr));gap:16px}.tm-room{border:1px solid #cbded5;border-radius:16px;padding:18px;background:#fff}.tm-room>header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:17px}.tm-room>header div,.tm-room-number{display:block}.tm-room-number{font-size:18px;font-weight:800}.tm-room>header small{color:var(--tm-muted)}.tm-room-people{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.tm-room-person{display:flex;align-items:center;gap:11px;min-width:0;background:#f0f7f3;border-radius:12px;padding:10px}.tm-room-person img{width:58px;height:72px;flex:0 0 auto;object-fit:cover;border-radius:8px;background:#dfeee8}.tm-room-person strong,.tm-room-person span{display:block;overflow:hidden;text-overflow:ellipsis}.tm-room-person span{color:var(--tm-muted);font-size:12px}.tm-text-button{min-height:30px;padding:3px 0;border:0;background:transparent;color:var(--tm-green);font-size:12px;font-weight:750;text-decoration:underline;text-underline-offset:3px}.tm-leftovers{margin-top:20px}.tm-dialog{width:min(610px,calc(100% - 28px));max-height:calc(100vh - 40px);overflow:auto;border:0;border-radius:20px;padding:25px;color:var(--tm-ink);box-shadow:0 24px 100px #051d1860}.tm-dialog::backdrop{background:#08251ec0}.tm-dialog-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;margin-bottom:9px}.tm-dialog-heading h2{margin:0}.tm-icon-button{width:44px;height:44px;flex:0 0 auto;border:0;border-radius:50%;background:var(--tm-soft);color:var(--tm-green);font-size:25px;line-height:1}.tm-dialog .tm-fields{margin-top:20px}.tm-dialog-person{padding:12px 14px;background:var(--tm-soft);border-radius:11px;font-weight:750}.tm-dialog-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-top:23px}
@media(max-width:920px){.tm-shell{padding:22px 20px 46px}.tm-enrollment-layout{grid-template-columns:1fr}.tm-guide{order:2}.tm-range-form{grid-template-columns:repeat(2,minmax(0,1fr))}.tm-range-form #range-owner-field{grid-column:1/-1}.tm-range-form .tm-button{width:100%}.tm-room-grid{grid-template-columns:1fr}.tm-user-summary{max-width:360px}}
@media(max-width:700px){.tm-shell{padding:16px 14px 38px}.tm-topbar{align-items:flex-start;margin-bottom:28px}.tm-user-actions{width:100%;justify-content:space-between}.tm-user-summary{max-width:100%;flex:1}.tm-permission-note{text-align:left}.tm-hero{margin-bottom:24px}.tm-hero h1{font-size:32px}.tm-tabs{display:grid;grid-template-columns:repeat(3,1fr);position:sticky;top:0;z-index:4}.tm-tabs button{padding:9px 7px;font-size:14px}.tm-card{padding:18px;border-radius:18px}.tm-card-heading{margin-bottom:18px}.tm-fields,.tm-owner-options,.tm-room-people{grid-template-columns:1fr}.tm-field--full{grid-column:auto}.tm-photo-row{grid-template-columns:82px minmax(0,1fr);gap:14px}.tm-photo-frame{width:82px;height:105px}.tm-metrics{grid-template-columns:repeat(2,1fr);gap:9px}.tm-metric{padding:13px}.tm-metric strong{font-size:26px}.tm-range-form{grid-template-columns:1fr}.tm-range-form #range-owner-field{grid-column:auto}.tm-action-group,.tm-export-actions{width:100%}.tm-action-group .tm-button,.tm-export-actions .tm-button{flex:1 1 170px}.tm-room-person img{width:52px;height:66px}.tm-dialog{padding:18px}.tm-dialog-actions .tm-button{flex:1}.tm-table-wrap{border:0;overflow:visible}.tm-table{min-width:0;display:block}.tm-table thead{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.tm-table tbody,.tm-table tr{display:block}.tm-table tr{border:1px solid var(--tm-line);border-radius:15px;margin-bottom:13px;padding:8px;background:#fff}.tm-table td{display:grid;grid-template-columns:106px minmax(0,1fr);align-items:center;gap:10px;border:0;padding:8px;white-space:normal}.tm-table td::before{color:var(--tm-muted);font-size:12px;font-weight:700}.tm-table td:nth-child(1)::before{content:"姓名 / 照片"}.tm-table td:nth-child(2)::before{content:"手机号"}.tm-table td:nth-child(3)::before{content:"身份"}.tm-table td:nth-child(4)::before{content:"身份证号"}.tm-table td:nth-child(5)::before{content:"押金"}.tm-table td:nth-child(6)::before{content:"报名所属人"}.tm-table td:nth-child(7)::before{content:"监考安排"}.tm-table td:nth-child(8)::before{content:"核实状态"}.tm-table td:nth-child(9)::before{content:"操作"}.tm-table .tm-empty{display:block}.tm-table .tm-empty::before{content:none}.tm-row-actions{flex-wrap:wrap}.tm-row-actions .tm-button{flex:1 1 74px}.tm-review-note{max-width:100%}}
@media(max-width:700px){.tm-button--small,.tm-text-button{min-height:44px}}
@media(max-width:430px){.tm-user-actions>.tm-button{flex:1}.tm-tabs button{font-size:13px}.tm-room-person{align-items:flex-start}.tm-range-form .tm-button{width:100%}.tm-table td{grid-template-columns:92px minmax(0,1fr)}}
@media(prefers-reduced-motion:reduce){.tm-page *{animation:none!important;scroll-behavior:auto!important;transition:none!important}.tm-button:hover{transform:none!important}}
@media print{.tm-topbar,.tm-hero,.tm-tabs,.tm-export-actions,.tm-action-group,#range-card{display:none!important}.tm-shell{width:100%;padding:0}.tm-card{box-shadow:none;border:0;padding:0}.tm-room{break-inside:avoid}}


.tm-room--locked{border:2px solid var(--tm-green,#197359)}.tm-room-lock{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:14px;margin-top:14px;border-top:1px solid var(--tm-line,#d7dfdd)}.tm-room-lock .tm-help{margin:0}.tm-unassigned-list{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.tm-page button:disabled{cursor:not-allowed}.tm-room-lock button{min-height:44px;flex-shrink:0}@media print{.tm-room-lock button,.tm-room-person button,#manual-assign{display:none!important}}

.tm-room-people{grid-template-columns:1fr}.tm-room-person>div{min-width:0}.tm-room-person .tm-text-button{min-height:44px;text-align:left}

/* Per-exam organizer setup and independent payment / personnel duties. */
.tm-exam-owner-settings{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:20px 0}.tm-exam-owner{padding:18px;border:1px solid var(--tm-line);border-radius:14px;background:#f8fbfa}.tm-exam-activate{display:flex;align-items:center;gap:10px;margin-bottom:14px;cursor:pointer}.tm-exam-activate input{width:20px;height:20px;accent-color:var(--tm-green)}.tm-exam-activate span{margin-left:auto;font-size:12px;color:var(--tm-muted)}.tm-exam-owner .tm-help{margin-top:12px}.tm-exam-owner:has(input[type=checkbox]:not(:checked)){background:#f5f6f6}.tm-exam-owner input:disabled{background:#eef1ef;color:#7c8d86}.tm-exam-owner .tm-fields{gap:12px}#exam-settings-history{margin-top:16px}#exam-settings-readonly{padding:16px;background:var(--tm-soft);border-radius:12px}.tm-job-row--invigilator{--tm-job-color:#19765e;--tm-job-bg:#e4f5ec}.tm-job-row--affairs{--tm-job-color:#7050af;--tm-job-bg:#f0eafb}.tm-job-row--patrol{--tm-job-color:#bd6717;--tm-job-bg:#fff0d9}.tm-table .tm-job-row td:first-child{border-left:5px solid var(--tm-job-color)}.tm-job-label{display:inline-flex;align-items:center;gap:6px;font-weight:750;font-size:12px;color:var(--tm-job-color,#19765e);white-space:nowrap}.tm-job-label::before{content:'';width:5px;height:18px;border-radius:3px;background:var(--tm-job-color,#19765e)}.tm-job-label--invigilator{--tm-job-color:#19765e}.tm-job-label--affairs{--tm-job-color:#7050af}.tm-job-label--patrol{--tm-job-color:#bd6717}.tm-row-job{display:flex;justify-content:flex-end;margin-top:7px}.tm-room-person>.tm-job-label{margin-left:auto;flex-shrink:0}.tm-payment-toggle{display:inline-flex;align-items:center;border:1px solid #d5dbd8;border-radius:8px;min-height:38px;padding:6px 10px;background:#f1f4f2;color:#53675f;font-size:12px;font-weight:750}.tm-payment-toggle.is-paid{border-color:#a3cdbb;background:#ddf3e8;color:#135b43}.tm-payment-toggle:hover{border-color:var(--tm-green)}
@media(max-width:700px){.tm-tabs{grid-template-columns:repeat(4,minmax(0,1fr))}.tm-tabs button{padding:9px 4px;font-size:12px}.tm-exam-owner-settings{grid-template-columns:1fr}.tm-table .tm-job-row{border-left:5px solid var(--tm-job-color)}.tm-table .tm-job-row td:first-child{border-left:0}.tm-table td:nth-child(3)::before{content:'职务'}.tm-table td:nth-child(5)::before{content:'缴费状态'}.tm-payment-toggle{width:max-content;min-height:44px}.tm-row-job{justify-content:flex-start}}
.tm-job-row--recording{--tm-job-color:#175b9a;--tm-job-bg:#e7f1fc}.tm-job-label--recording{--tm-job-color:#175b9a}

.tm-quick-filters{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:10px}.tm-quick-filter{display:inline-flex;align-items:center;gap:10px;min-height:48px;padding:10px 16px;border:1px solid #afc9bf;border-radius:12px;background:#fff;color:var(--tm-green);font-weight:700;cursor:pointer}.tm-quick-filter strong{padding:2px 8px;border-radius:999px;background:var(--tm-soft)}.tm-quick-filter[aria-pressed=true]{background:var(--tm-green);border-color:var(--tm-green);color:#fff;box-shadow:0 0 0 2px #63b99d}.tm-quick-filter[aria-pressed=true] strong{color:var(--tm-green)}.tm-quick-filter:focus-visible{outline:3px solid #63b99d;outline-offset:3px}.tm-filter-help{margin-bottom:12px}.tm-job-pending{display:block;color:#7e5410;margin-top:4px}@media(max-width:600px){.tm-quick-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.tm-quick-filter{justify-content:space-between;padding:10px 12px}.tm-quick-filters #people-clear-filters{grid-column:1/-1}}

/* Exam site identity stays visible in settings, allocation and print selection. */
.tm-site-management{display:grid;grid-template-columns:1fr 1.4fr;gap:20px}.tm-site-management form{min-width:0;border:1px solid var(--tm-line,#cad9d1);border-radius:14px;padding:16px}.tm-site-management button{min-height:44px}.tm-site-management select,.tm-site-management input,#range-site{max-width:100%}.tm-site-name{display:block;font-size:14px;color:var(--tm-green,#17664e);overflow-wrap:anywhere}.tm-site-filter{max-width:420px;margin:12px 0 20px}.tm-exam-owner select:disabled{background:#eef1ef;color:#7c8d86}.tm-range-form{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.tm-exam-owner .tm-field--full{grid-column:1/-1}#range-state{white-space:normal;text-align:right}#assignment-site{overflow-wrap:anywhere}@media(max-width:700px){.tm-site-management{grid-template-columns:1fr}.tm-range-form{grid-template-columns:1fr 1fr}.tm-range-form>label:nth-of-type(-n+2),.tm-range-form>button{grid-column:1/-1}.tm-site-name{font-size:14px}}

/* Batch maintenance keeps existing room assignments intact. */
.tm-bulk-management{margin:20px 0;padding:20px;border:1px solid #b7cfc4;border-radius:16px;background:#f4f8f5}.tm-bulk-management h3{margin:0;font-size:20px}.tm-bulk-management .tm-card-heading{flex-wrap:wrap;gap:8px}.tm-bulk-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:16px 0}.tm-bulk-actions{gap:10px;flex-wrap:wrap}.tm-bulk-actions .tm-button{min-height:44px}.tm-bulk-dialog{max-width:680px}.tm-bulk-details{margin:16px 0}.tm-bulk-details summary{cursor:pointer;min-height:44px;display:list-item;padding:10px 0;color:var(--tm-green,#17664e);font-weight:700}.tm-bulk-details ul{max-height:260px;overflow:auto;padding:8px 8px 8px 28px;line-height:1.8;border-top:1px solid #d6e1db}.tm-bulk-dialog .tm-notice{overflow-wrap:anywhere}@media(max-width:700px){.tm-bulk-management{padding:16px}.tm-bulk-fields{grid-template-columns:1fr}.tm-bulk-actions{display:grid;grid-template-columns:1fr}.tm-bulk-actions .tm-button{width:100%}.tm-bulk-dialog .tm-dialog-actions{flex-wrap:wrap}}

.tm-registration-owners{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:20px 0}.tm-cleanup-phrase{padding:12px 14px;border:1px solid #ecc1c6;border-radius:10px;background:#fff0f1;color:#922333;font-weight:750;overflow-wrap:anywhere;user-select:none}.tm-photo-missing{width:45px;height:55px;flex:0 0 auto;display:grid!important;place-items:center;border-radius:8px;border:1px dashed #bacbc4;background:#f1f5f3;color:#60786c;font-size:10px!important;line-height:1.4;text-align:center;white-space:normal;padding:4px;box-sizing:border-box}.tm-room-person>.tm-photo-missing{width:58px;height:72px}@media(max-width:600px){.tm-registration-owners{grid-template-columns:1fr}.tm-page #photo-cleanup-management .tm-filter-row .tm-field{min-width:0;width:100%}.tm-page #photo-cleanup-management .tm-button{width:100%}}

/* Compact personnel list; all record details stay in one table row. */
.tm-personnel-counts{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}
.tm-personnel-counts>span{display:flex;align-items:baseline;gap:9px;padding:6px 12px;border:1px solid var(--tm-line);border-radius:8px;background:var(--tm-soft);font-size:13px;color:var(--tm-muted)}
.tm-personnel-counts strong{font-size:18px;color:var(--tm-ink);font-variant-numeric:tabular-nums}
.tm-personnel-filters{display:grid;grid-template-columns:minmax(0,1fr) 160px auto;align-items:end;gap:12px;margin:14px 0}
.tm-personnel-filters .tm-field{min-width:0;font-size:13px}
.tm-personnel-filters .tm-button,.tm-personnel-filters input,.tm-personnel-filters select{min-height:42px;padding:9px 12px}
.tm-personnel-list{display:block;max-width:100%;overflow-x:auto;margin-top:12px;border:1px solid var(--tm-line);border-radius:10px}
.tm-personnel-list:focus-visible{outline:3px solid #63b99d;outline-offset:2px}
.tm-personnel-table{width:100%;border-collapse:separate;border-spacing:0;font-size:13px;line-height:1.45;text-align:left;white-space:nowrap}
.tm-personnel-table th,.tm-personnel-table td{padding:7px 10px;border-bottom:1px solid var(--tm-line);vertical-align:middle}
.tm-personnel-table thead th{background:var(--tm-soft);color:var(--tm-ink);font-size:12px;font-weight:700;padding-top:10px;padding-bottom:10px}
.tm-personnel-table tbody th{font-size:14px;font-weight:750}
.tm-personnel-table tbody tr:last-child>*{border-bottom:0}
.tm-personnel-table tbody tr:nth-child(even){background:#f7faf8}
.tm-personnel-table tbody tr:hover{background:#edf6f1}
.tm-personnel-number{font-variant-numeric:tabular-nums}
.tm-personnel-table .tm-pill{font-size:12px;padding:4px 8px}
.tm-personnel-action .tm-button{min-height:34px;padding:6px 12px;border-radius:7px;font-size:13px}
.tm-personnel-prior{font-size:11px;background:#edf0ee;color:var(--tm-muted);padding:2px 5px;border-radius:4px;margin-right:5px}
.tm-personnel-empty{padding:20px;color:var(--tm-muted);text-align:center;font-size:14px}
.tm-personnel-cleanup{display:flex;justify-content:space-between;align-items:center;gap:22px}
.tm-personnel-cleanup h3{margin:0 0 8px;font-size:18px}
.tm-personnel-cleanup .tm-button{flex-shrink:0}
#personnel-exam{white-space:normal;overflow-wrap:anywhere}
#personnel-blacklist-dialog .tm-field{margin-top:18px}
#personnel-blacklist-person{overflow-wrap:anywhere}
#personnel-blacklist-dialog .tm-notice{line-height:1.8}
@media(max-width:760px){.tm-personnel-filters{grid-template-columns:minmax(0,1fr) auto}.tm-personnel-filters>.tm-field:first-child{grid-column:1/-1}.tm-personnel-filters .tm-button,.tm-personnel-filters input,.tm-personnel-filters select,.tm-personnel-action .tm-button{min-height:44px}.tm-personnel-cleanup{align-items:stretch;flex-direction:column}.tm-personnel-table{font-size:14px}.tm-personnel-table th:first-child{position:sticky;left:0;background:#f7faf8;z-index:1}.tm-personnel-table thead th:first-child{background:var(--tm-soft)}#personnel-blacklist-dialog .tm-dialog-actions{flex-wrap:wrap}}
.tm-personnel-exam-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap}.tm-personnel-exam-actions .tm-button{font-size:13px}.tm-personnel-ack{display:flex;align-items:flex-start;gap:10px;margin:18px 0;min-height:44px;font-size:14px;line-height:1.7;cursor:pointer}.tm-personnel-ack input{width:20px;height:20px;flex:0 0 auto;margin-top:2px;accent-color:var(--tm-green)}#personnel-next-exam-dialog .tm-field{margin-top:18px}#personnel-next-exam-current{overflow-wrap:anywhere}#personnel-next-exam-scope{margin:14px 0;font-size:14px}#personnel-next-exam-dialog .tm-dialog-actions{flex-wrap:wrap}#personnel-next-exam-dialog input:disabled{background:#eef1ef;color:var(--tm-muted)}@media(max-width:760px){.tm-personnel-exam-actions{justify-content:flex-start}}
#personnel-finish-exam-current{overflow-wrap:anywhere}#personnel-finish-exam-dialog .tm-dialog-actions{flex-wrap:wrap}#personnel-lifecycle{margin-top:16px;background:var(--tm-soft);border:1px solid var(--tm-line)}
