:root{
  --bg:#f4f6f9;--surface:#fff;--surface-2:#f8fafc;--sidebar:#112136;--sidebar-2:#172a42;
  --text:#172033;--muted:#667085;--line:#e4e9f0;--primary:#2366d1;--primary-2:#174ea6;
  --danger:#c53030;--warn:#a45b00;--success:#16794b;--info:#315b8a;--shadow:0 12px 36px rgba(20,35,55,.10);
  --radius:12px;--radius-lg:18px;--sidebar-w:244px;font-family:Inter,"PingFang SC","Microsoft YaHei",system-ui,-apple-system,sans-serif
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text)}body{font-size:14px;line-height:1.55}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}.hidden{display:none!important}a{color:var(--primary);text-decoration:none}.muted{color:var(--muted)}.eyebrow{display:block;font-size:12px;font-weight:700;letter-spacing:.08em;color:var(--primary);text-transform:uppercase}.status-dot{width:8px;height:8px;border-radius:50%;display:inline-block;background:#22a06b;box-shadow:0 0 0 3px rgba(34,160,107,.12)}
.login-screen{min-height:100vh;display:grid;grid-template-columns:minmax(520px,1.2fr) minmax(420px,.8fr);background:var(--surface)}.login-intro{background:linear-gradient(145deg,#10243d 0%,#153660 58%,#1c4c87 100%);color:white;padding:48px clamp(48px,6vw,96px);display:flex;flex-direction:column;min-height:100vh}.brand-lockup{display:flex;align-items:center;gap:12px;font-weight:600;color:#e8eef7}.brand-logo{width:44px;height:44px;border-radius:13px;background:white;color:#174ea6;display:grid;place-items:center;font-weight:900;font-size:22px;box-shadow:0 8px 24px rgba(0,0,0,.12)}.brand-logo.small{width:36px;height:36px;border-radius:10px;font-size:18px}.intro-copy{margin:auto 0;max-width:720px}.intro-copy .eyebrow{color:#8fc0ff}.intro-copy h1{font-size:clamp(38px,4.4vw,62px);line-height:1.18;margin:14px 0 20px;letter-spacing:-.03em}.intro-copy p{font-size:18px;line-height:1.8;color:#d9e5f5;max-width:680px}.login-feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:28px}.login-feature-grid div{padding:18px;border:1px solid rgba(255,255,255,.16);border-radius:14px;background:rgba(255,255,255,.06);backdrop-filter:blur(5px)}.login-feature-grid b,.login-feature-grid span{display:block}.login-feature-grid span{margin-top:5px;color:#cbd9ec;font-size:12px}.legal-note{font-size:12px;color:#b8c8db;max-width:800px}.login-panel{display:grid;place-items:center;padding:48px;background:#fff}.login-card{width:min(390px,100%)}.login-card-head{display:flex;align-items:center;gap:14px;margin-bottom:34px}.login-card-head h2{margin:0;font-size:28px}.login-card-head p{margin:4px 0 0;color:var(--muted)}.mobile-logo{display:none}.field{display:block;margin:0 0 18px}.field>span{display:block;font-weight:600;margin-bottom:7px}.field input,.field select,.field textarea,.control{width:100%;border:1px solid #d7dee8;border-radius:10px;padding:11px 12px;background:#fff;outline:none;transition:.15s}.field input:focus,.field select:focus,.field textarea:focus,.control:focus{border-color:#72a3ed;box-shadow:0 0 0 3px rgba(35,102,209,.10)}.field textarea{min-height:110px;resize:vertical}.form-error{min-height:22px;color:var(--danger);font-size:13px;margin-top:10px}.demo-hint{margin-top:18px;padding:12px 14px;border-radius:10px;background:#f4f7fb;color:#526173;font-size:12px}.login-status{display:flex;align-items:center;gap:9px;margin-top:24px;color:var(--muted);font-size:12px}
.btn{border:1px solid transparent;border-radius:9px;padding:9px 14px;font-weight:650;background:#fff;transition:.15s;display:inline-flex;align-items:center;justify-content:center;gap:7px;white-space:nowrap}.btn:hover{transform:translateY(-1px)}.btn.primary{background:var(--primary);color:white;box-shadow:0 6px 14px rgba(35,102,209,.18)}.btn.primary:hover{background:var(--primary-2)}.btn.secondary{border-color:#d5dde8;background:white;color:#334155}.btn.secondary:hover{border-color:#a9b9cd;background:#f8fafc}.btn.danger{background:#fff1f1;border-color:#ffd0d0;color:var(--danger)}.btn.ghost{background:transparent;border-color:transparent;color:var(--muted)}.btn.small{padding:6px 10px;font-size:12px}.btn.full{width:100%;padding:12px 16px}.icon-btn{width:38px;height:38px;border-radius:9px;border:1px solid var(--line);background:white;display:grid;place-items:center;font-size:18px;color:#526173}.icon-btn:hover{background:#f8fafc;border-color:#c8d3e0}
.app-shell{min-height:100vh}.sidebar{position:fixed;z-index:30;inset:0 auto 0 0;width:var(--sidebar-w);background:var(--sidebar);color:#dbe7f5;display:flex;flex-direction:column}.sidebar-brand{height:76px;display:flex;align-items:center;gap:11px;padding:0 20px;border-bottom:1px solid rgba(255,255,255,.08)}.sidebar-brand div:last-child{display:flex;flex-direction:column}.sidebar-brand b{font-size:16px;color:white}.sidebar-brand span{font-size:11px;color:#8fa5c0;margin-top:1px}.nav{padding:15px 11px;overflow-y:auto;flex:1}.nav-group{margin:13px 8px 6px;font-size:11px;color:#738aa6;letter-spacing:.08em;font-weight:700}.nav-item{width:100%;border:0;background:transparent;color:#b9c9dc;display:flex;align-items:center;gap:10px;padding:10px 11px;border-radius:9px;text-align:left;margin:2px 0}.nav-item:hover{background:rgba(255,255,255,.06);color:white}.nav-item.active{background:#245fae;color:white}.nav-icon{width:20px;text-align:center;font-size:15px}.nav-badge{margin-left:auto;min-width:20px;padding:1px 6px;border-radius:10px;background:rgba(255,255,255,.12);font-size:11px;text-align:center}.sidebar-bottom{border-top:1px solid rgba(255,255,255,.08);padding:12px}.collector-mini{display:flex;gap:9px;align-items:center;padding:9px 8px;color:#b9c9dc}.collector-mini div{display:flex;flex-direction:column}.collector-mini b{font-size:12px;color:#edf5ff}.collector-mini span:last-child{font-size:11px;color:#8fa5c0}.side-user{border:0;width:100%;background:rgba(255,255,255,.05);border-radius:10px;padding:9px;display:flex;gap:9px;align-items:center;color:white;text-align:left}.side-user>span:first-child{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:#2d6fbe;font-weight:700}.side-user>span:last-child{display:flex;flex-direction:column;min-width:0}.side-user b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.side-user small{color:#8fa5c0}
.workspace{margin-left:var(--sidebar-w);min-height:100vh}.topbar{height:76px;background:rgba(255,255,255,.96);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:0 26px;backdrop-filter:blur(10px)}.title-wrap{display:flex;align-items:center;gap:10px}.title-wrap h1{font-size:20px;margin:0}.title-wrap p{font-size:12px;margin:2px 0 0;color:var(--muted)}.top-actions{display:flex;gap:9px;align-items:center}.global-search{height:38px;width:290px;border:1px solid var(--line);border-radius:9px;background:#f8fafc;display:flex;align-items:center;padding:0 10px;gap:7px;color:#9aa6b5}.global-search input{border:0;outline:0;background:transparent;flex:1;min-width:0}.global-search kbd{font-size:10px;border:1px solid #d8e0e9;background:white;border-radius:4px;padding:1px 5px;color:#8793a2}.notice-bar{margin:14px 26px 0;padding:10px 14px;border-radius:10px;background:#fff6e8;border:1px solid #f5d8a9;color:#77501c}.content{padding:22px 26px 48px;max-width:1700px;margin:0 auto;outline:none}
.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px}.page-head h2{margin:0;font-size:22px}.page-head p{margin:4px 0 0;color:var(--muted)}.actions{display:flex;gap:8px;flex-wrap:wrap}.metrics{display:grid;grid-template-columns:repeat(6,minmax(130px,1fr));gap:12px;margin-bottom:18px}.metric-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:15px 16px;min-width:0}.metric-card .label{font-size:12px;color:var(--muted);display:flex;justify-content:space-between}.metric-card strong{display:block;font-size:26px;line-height:1.2;margin:6px 0 2px;letter-spacing:-.03em}.metric-card small{color:#8996a7}.metric-card.attention{border-top:3px solid #d58a1e}.metric-card.critical{border-top:3px solid #d35b5b}.grid-2{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(320px,.8fr);gap:16px}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.panel-head{min-height:52px;padding:12px 16px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:12px}.panel-head h3{margin:0;font-size:15px}.panel-body{padding:15px 16px}.panel-body.no-pad{padding:0}.section-note{font-size:12px;color:var(--muted)}
.todo-list{display:flex;flex-direction:column;gap:8px}.todo{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid var(--line);border-radius:10px;background:#fff}.todo:hover{border-color:#b9c9dd;background:#fbfcfe}.todo-count{width:36px;height:36px;border-radius:9px;display:grid;place-items:center;background:#eef4fd;color:var(--primary);font-weight:800}.todo-main{flex:1}.todo-main b{display:block}.todo-main span{font-size:12px;color:var(--muted)}.platform-health{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.platform-tile{border:1px solid var(--line);border-radius:10px;padding:11px}.platform-tile .row{display:flex;justify-content:space-between;gap:8px}.platform-tile b{font-size:13px}.platform-tile small{display:block;color:var(--muted);margin-top:6px}.health-ok{color:var(--success)}.health-bad{color:var(--danger)}.health-warn{color:var(--warn)}
.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse;min-width:760px}.table th{position:sticky;top:0;background:#f7f9fc;color:#596779;font-size:12px;font-weight:700;text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);white-space:nowrap}.table td{padding:11px 12px;border-bottom:1px solid #edf0f4;vertical-align:top}.table tbody tr:hover{background:#fbfcfe}.table tbody tr:last-child td{border-bottom:0}.click-row{cursor:pointer}.cell-title{font-weight:650;max-width:470px}.cell-sub{font-size:12px;color:var(--muted);margin-top:4px;max-width:520px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.badge{display:inline-flex;align-items:center;gap:4px;border-radius:999px;padding:3px 8px;font-size:11px;font-weight:700;white-space:nowrap;background:#eef2f7;color:#526173}.badge.danger{background:#fff0f0;color:#aa3030}.badge.warn{background:#fff4e3;color:#935500}.badge.success{background:#eaf8f1;color:#147249}.badge.info{background:#eaf1fc;color:#245b9c}.badge.neutral{background:#f0f2f5;color:#596779}.score{font-weight:800;font-variant-numeric:tabular-nums}.score.high{color:var(--danger)}.score.medium{color:var(--warn)}
.filter-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:12px 14px;background:white;border:1px solid var(--line);border-radius:var(--radius);margin-bottom:12px}.filter-bar input,.filter-bar select{border:1px solid #d8e0e9;border-radius:8px;padding:8px 10px;background:white;outline:0}.filter-bar .search-wide{min-width:280px;flex:1}.segmented{display:flex;gap:3px;background:#eef2f6;border-radius:9px;padding:3px}.segmented button{border:0;background:transparent;padding:6px 10px;border-radius:7px;color:#617083}.segmented button.active{background:white;color:var(--primary);box-shadow:0 1px 3px rgba(0,0,0,.08)}
.clue-card{border:1px solid var(--line);border-radius:12px;padding:15px;background:#fff;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;margin-bottom:9px}.clue-card:hover{border-color:#b9c9dd;box-shadow:0 4px 12px rgba(29,46,69,.05)}.clue-card input[type=checkbox]{margin-top:4px}.clue-title{font-weight:700;font-size:15px}.clue-meta{display:flex;gap:10px;flex-wrap:wrap;color:var(--muted);font-size:12px;margin-top:7px}.clue-snippet{color:#4b5868;margin-top:7px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.clue-score{text-align:right;min-width:76px}.clue-score strong{display:block;font-size:22px}.clue-score span{font-size:11px;color:var(--muted)}
.empty{padding:48px 20px;text-align:center;color:var(--muted)}.empty strong{display:block;color:#435166;margin-bottom:5px}.timeline{border-left:2px solid #dce5f0;margin-left:8px;padding-left:18px}.timeline-item{position:relative;padding:0 0 18px}.timeline-item:before{content:"";position:absolute;left:-24px;top:6px;width:10px;height:10px;border-radius:50%;background:#6d94c9;border:2px solid white;box-shadow:0 0 0 1px #bfd0e5}.timeline-item time{font-size:11px;color:var(--muted)}.timeline-item b{display:block;margin:2px 0}.key-value{display:grid;grid-template-columns:110px 1fr;gap:9px 14px}.key-value dt{color:var(--muted)}.key-value dd{margin:0;min-width:0;word-break:break-word}.text-block{white-space:pre-wrap;word-break:break-word;background:#f8fafc;border:1px solid #e7ecf2;border-radius:10px;padding:13px;max-height:330px;overflow:auto}.comment{padding:10px 0;border-bottom:1px solid #edf0f4}.comment:last-child{border:0}.comment-head{display:flex;justify-content:space-between;gap:8px;font-size:12px}.comment-body{margin-top:5px;color:#384657}.event-card,.task-card,.connector-card{border:1px solid var(--line);border-radius:12px;background:#fff;padding:15px}.event-card h3,.task-card h3,.connector-card h3{margin:0;font-size:15px}.card-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:9px}.card-copy{margin:10px 0;color:#526173;min-height:42px}.card-foot{display:flex;justify-content:space-between;align-items:center;gap:8px;padding-top:10px;border-top:1px solid #edf0f4}.progress{height:7px;border-radius:6px;background:#edf1f6;overflow:hidden}.progress>i{display:block;height:100%;background:var(--primary);border-radius:6px}.connector-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.connector-card.problem{border-color:#efc7c7}.connector-status{display:flex;align-items:center;justify-content:space-between}.stat-pairs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}.stat-pairs div{padding:9px;background:#f8fafc;border-radius:8px}.stat-pairs span,.stat-pairs b{display:block}.stat-pairs span{font-size:11px;color:var(--muted)}
.backdrop{position:fixed;z-index:60;inset:0;background:rgba(8,18,31,.34);backdrop-filter:blur(2px)}.drawer{position:fixed;z-index:70;top:0;right:0;width:min(720px,92vw);height:100vh;background:#fff;box-shadow:-18px 0 48px rgba(18,32,49,.18);display:flex;flex-direction:column}.drawer-head,.modal-head{padding:18px 20px;border-bottom:1px solid var(--line);display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.drawer-head h2,.modal-head h2{margin:2px 0 0;font-size:20px}.drawer-body{padding:20px;overflow:auto}.drawer-section{margin-bottom:22px}.drawer-section h3{font-size:14px;margin:0 0 10px}.modal{position:fixed;z-index:80;left:50%;top:50%;transform:translate(-50%,-50%);width:min(650px,92vw);max-height:88vh;background:white;border-radius:16px;box-shadow:var(--shadow);display:flex;flex-direction:column}.modal form{display:flex;flex-direction:column;min-height:0}.modal-body{padding:20px;overflow:auto}.modal-foot{padding:13px 20px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:8px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.check-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.check-tile{display:flex;align-items:center;gap:7px;padding:9px;border:1px solid var(--line);border-radius:8px}.toast-stack{position:fixed;z-index:100;right:20px;bottom:20px;display:flex;flex-direction:column;gap:8px}.toast{min-width:260px;max-width:420px;padding:11px 14px;border-radius:10px;background:#172438;color:#fff;box-shadow:var(--shadow);animation:toast-in .18s ease}.toast.error{background:#8d2a2a}.toast.success{background:#176443}@keyframes toast-in{from{transform:translateY(8px);opacity:0}to{transform:none;opacity:1}}
.mobile-only{display:none}.nowrap{white-space:nowrap}.mt8{margin-top:8px}.mt12{margin-top:12px}.mb12{margin-bottom:12px}.right{text-align:right}.danger-text{color:var(--danger)}.success-text{color:var(--success)}
@media(max-width:1150px){.metrics{grid-template-columns:repeat(3,1fr)}.connector-grid{grid-template-columns:repeat(2,1fr)}.global-search{width:230px}.grid-2{grid-template-columns:1fr}}
@media(max-width:820px){.login-screen{display:block}.login-intro{display:none}.login-panel{min-height:100vh;padding:28px}.mobile-logo{display:grid;width:42px;height:42px;border-radius:12px;place-items:center;background:var(--primary);color:white;font-weight:900}.sidebar{transform:translateX(-100%);transition:.2s}.sidebar.open{transform:none}.workspace{margin-left:0}.mobile-only{display:grid}.topbar{padding:0 14px}.top-actions .btn.secondary,.global-search{display:none}.content{padding:16px}.metrics{grid-template-columns:repeat(2,1fr)}.grid-3,.connector-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.check-grid{grid-template-columns:1fr 1fr}.page-head{display:block}.page-head .actions{margin-top:12px}.platform-health{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.metrics{grid-template-columns:1fr 1fr}.metric-card strong{font-size:22px}.platform-health,.check-grid{grid-template-columns:1fr}.clue-card{grid-template-columns:auto 1fr}.clue-score{grid-column:2;text-align:left}.drawer{width:100vw}}

.status-dot.warn{background:#d58a1e;box-shadow:0 0 0 3px rgba(213,138,30,.12)}.status-dot.bad{background:#dc6b6b;box-shadow:0 0 0 3px rgba(220,107,107,.12)}.notice-bar.danger{background:#fff0f0;border-color:#efc7c7;color:#842c2c}
.last-updated{font-size:12px;color:var(--muted);white-space:nowrap}.security-gate{max-width:560px;margin:72px auto;background:#fff;border:1px solid var(--line);border-radius:16px;padding:34px;text-align:center;box-shadow:0 8px 28px rgba(18,32,49,.08)}.security-gate-icon{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;margin:0 auto 14px;background:#fff4e3;color:#935500;font-size:28px;font-weight:900}.security-gate h2{margin:0 0 8px}.security-gate p{color:var(--muted);margin:0 0 20px}.workflow-note{display:flex;flex-direction:column;gap:4px;margin-top:12px;padding:10px 12px;border:1px solid #d9e3ef;border-radius:9px;background:#f8fafc;font-size:12px}.workflow-note.warn{background:#fff8e9;border-color:#f0d79b;color:#76520b}.workflow-note.compact{display:inline-flex;margin:0}.section-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.health-list{display:flex;flex-direction:column;gap:4px}.health-row{display:flex;align-items:center;gap:10px;padding:10px 2px;border-bottom:1px solid #edf0f4}.health-row:last-child{border-bottom:0}.health-main{flex:1;min-width:0}.health-main b,.health-main small{display:block}.health-main small{color:var(--muted);margin-top:2px;overflow:hidden;text-overflow:ellipsis}.profile-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border:1px solid var(--line);border-radius:10px;background:#f8fafc;margin-bottom:14px}.profile-summary div b,.profile-summary div span{display:block}.profile-summary div span{font-size:12px;color:var(--muted);margin-top:3px}.control[readonly]{background:#f5f7fa;color:#4f5c6c;cursor:default}
.pager{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;padding:10px 2px;color:var(--muted);font-size:12px}.pager>div{display:flex;gap:8px}.btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.btn[aria-busy=true]{cursor:progress}

/* Role-level UX: reviewers can inspect operational evidence but cannot mutate it.
   Backend RBAC is authoritative; this keeps the UI consistent after partial re-renders. */
body[data-role="reviewer"]:not([data-school-operator="true"]) [data-action="run-all"],
body[data-role="reviewer"]:not([data-school-operator="true"]) [data-action="select-clue"],
body[data-role="reviewer"]:not([data-school-operator="true"]) [data-action="clear-selection"],
body[data-role="reviewer"]:not([data-school-operator="true"]) [data-action="bulk-verify"],
body[data-role="reviewer"]:not([data-school-operator="true"]) [data-action="verify-clue"],
body[data-role="reviewer"]:not([data-school-operator="true"]) [data-action="create-event-from-clue"],
body[data-role="reviewer"]:not([data-school-operator="true"]) [data-action="edit-event"],
body[data-role="reviewer"]:not([data-school-operator="true"]) [data-action="event-report"],
body[data-role="reviewer"]:not([data-school-operator="true"]) [data-action="handle-alert"],
body[data-role="reviewer"]:not([data-school-operator="true"]) [data-action="new-report"],
body[data-role="reviewer"]:not([data-school-operator="true"]) [data-action="save-report"],
body[data-role="reviewer"]:not([data-school-operator="true"]) [data-action="new-task"],
body[data-role="reviewer"]:not([data-school-operator="true"]) [data-action="run-task"],
body[data-role="reviewer"]:not([data-school-operator="true"]) [data-action="task-report"],
body[data-role="reviewer"]:not([data-school-operator="true"]) [data-action="new-duty"],
body[data-role="reviewer"]:not([data-school-operator="true"]) [data-action="run-connector"],
body[data-role="reviewer"]:not([data-school-operator="true"]) [data-action="resume-connector"],
body[data-role="reviewer"]:not([data-school-operator="true"]) [data-action="connector-edit"],
body[data-role="reviewer"]:not([data-school-operator="true"]) [data-action="new-rule"],
body[data-role="reviewer"]:not([data-school-operator="true"]) [data-action="rule-edit"],
body[data-role="reviewer"]:not([data-school-operator="true"]) [data-action="new-clue"],
body[data-role="reviewer"]:not([data-school-operator="true"]) [data-action="import-csv"]{display:none!important}

.quality-strip{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0 12px}.quality-strip span{font-size:10px;padding:4px 6px;border-radius:999px;background:#f1f5f9;color:#526173;border:1px solid #e2e8f0}

/* V3.3 anonymous/public collection capability */
.connector-card .card-foot>span{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap}.connector-card .workflow-note{margin-top:10px}.connector-card .quality-strip{margin-top:10px}.connector-card .card-meta{align-items:center}


/* V4.1 Professional Collector UI
   Interaction patterns reference mature crawler consoles (task list, adapter overview,
   run detail, field-quality matrix) while keeping Yueke's existing API and business flow. */
:root{--sidebar:#0d1b2a;--sidebar-2:#14273d;--bg:#f3f5f8;--line:#dfe5ec;--primary:#225ea8;--primary-2:#184a87;--shadow:0 10px 28px rgba(24,39,60,.08);--radius:10px;--sidebar-w:252px}
body{background:var(--bg)}.sidebar{background:linear-gradient(180deg,#0c1b2b 0%,#10243a 100%)}.sidebar-brand{height:72px}.nav{padding:13px 10px}.nav-group{margin-top:15px;color:#6f879f}.nav-item{border-radius:7px;padding:9px 10px}.nav-item.active{background:#1e5a96;box-shadow:inset 3px 0 0 #8ec5ff}.topbar{height:72px;padding:0 24px}.content{padding:20px 24px 46px}.page-head{margin-bottom:16px}.page-head h2{font-size:21px}.page-head p{max-width:780px}.panel,.metric-card,.workspace-card-pro,.clue-stream{box-shadow:0 1px 2px rgba(18,32,49,.025)}
.btn{border-radius:7px}.btn.tiny{padding:5px 7px;font-size:11px}.metric-card{border-radius:9px;padding:14px 15px}.metric-card strong{font-size:24px}.collector-kpis{display:grid;grid-template-columns:repeat(6,minmax(130px,1fr));gap:10px;margin-bottom:14px}.collector-kpis-5{grid-template-columns:repeat(5,minmax(140px,1fr))}.ops-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(300px,.72fr);gap:14px}.collector-overview .panel-head{min-height:62px}.ops-mini-trend{width:180px}.run-bars{height:34px;display:flex;align-items:flex-end;gap:3px}.run-bars i{width:7px;min-height:5px;border-radius:2px 2px 0 0;background:#8696a8}.run-bars i.ok{background:#4f8b76}.run-bars i.warn{background:#b89052}.run-bars i.bad{background:#b76969}.empty-bars{align-items:center;color:var(--muted);font-size:11px}.collector-compact{min-width:900px}.platform-cell{display:flex;align-items:center;gap:9px;min-width:0}.platform-cell>span:last-child{display:flex;flex-direction:column;min-width:0}.platform-cell b{font-size:13px}.platform-cell small,.table-sub{display:block;color:var(--muted);font-size:11px;margin-top:2px}.platform-mark{width:28px;height:28px;border:1px solid #dbe3ec;border-radius:7px;background:#f6f8fb;display:grid;place-items:center;font-size:12px;font-weight:800;color:#405267;flex:0 0 auto}.platform-link{border:0;background:transparent;padding:0;text-align:left;color:inherit}.run-state{display:inline-flex;align-items:center;gap:6px;font-weight:650;font-size:12px}.run-state i{width:7px;height:7px;border-radius:50%;background:currentColor}.stack-badges{display:flex;flex-direction:column;gap:5px;align-items:flex-start}.row-actions{display:flex;gap:4px;align-items:center;white-space:nowrap}.error-ellipsis{display:block;max-width:230px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pagination-cell{white-space:nowrap}.run-id{font-size:11px;color:#526173}.task-table{min-width:1350px}.adapter-table{min-width:1320px}.quality-table{min-width:1150px}
.collector-controlbar{display:flex;align-items:center;justify-content:space-between;gap:18px;border:1px solid var(--line);border-bottom:0;background:#fff;border-radius:10px 10px 0 0;padding:10px 12px 0;margin-top:2px}.collector-controlbar>div:first-child{display:flex;align-items:center;gap:8px;padding-bottom:10px;font-size:12px;color:var(--muted)}.collector-controlbar b{color:var(--text)}.live-dot{width:8px;height:8px;border-radius:50%;background:#91a0af;box-shadow:0 0 0 3px rgba(145,160,175,.12)}.live-dot.running{background:#c38325;box-shadow:0 0 0 3px rgba(195,131,37,.12)}.collector-tabs{display:flex;align-self:stretch;gap:2px}.collector-tab{border:0;background:transparent;color:#617083;font-weight:650;padding:9px 15px;border-bottom:2px solid transparent}.collector-tab:hover{color:var(--primary)}.collector-tab.active{color:var(--primary);border-bottom-color:var(--primary)}.collector-controlbar+.panel{border-radius:0 0 10px 10px}.capability-dots{display:flex;gap:3px;flex-wrap:wrap}.capability-dots span{width:22px;height:22px;border-radius:5px;display:grid;place-items:center;font-size:10px;border:1px solid #e1e6ec;background:#f4f6f8;color:#9ba5b1}.capability-dots span.on{background:#eef5fb;border-color:#c9daeb;color:#2e5d8c}.quality-pair{display:grid;grid-template-columns:1fr;gap:4px;min-width:125px}.quality-pair>span{display:grid;grid-template-columns:27px 1fr;align-items:center;gap:5px;font-size:10px;color:var(--muted)}.quality-meter{position:relative;width:86px;height:18px;background:#eef1f5;border-radius:4px;overflow:hidden}.quality-meter i{position:absolute;left:0;top:0;bottom:0;background:#91abc2}.quality-meter span{position:relative;z-index:1;display:block;line-height:18px;text-align:center;font-size:9px;color:#344659}.quality-detail{display:grid;grid-template-columns:1fr 1fr;gap:10px 16px}.quality-detail label{display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--muted);font-size:12px}.quality-detail .quality-meter{width:180px}
.clue-stream{border:1px solid var(--line);border-radius:10px;background:#fff;overflow:hidden}.clue-stream-row{display:grid;grid-template-columns:32px 150px minmax(320px,1fr) 150px 180px;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid #edf0f4}.clue-stream-row:last-child{border-bottom:0}.clue-stream-row:hover{background:#fafbfd}.clue-check{align-self:start;padding-top:5px}.clue-source,.clue-primary{border:0;background:transparent;text-align:left;color:inherit}.clue-source{display:flex;gap:9px;align-items:center;padding:0}.clue-source>span:last-child{display:flex;flex-direction:column}.clue-source b{font-size:12px}.clue-source small{font-size:10px;color:var(--muted)}.clue-primary{min-width:0;padding:0}.clue-primary .clue-title{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.clue-primary .clue-snippet{font-size:12px;margin-top:4px;-webkit-line-clamp:1}.clue-primary .clue-meta{font-size:11px;margin-top:5px}.clue-facts{display:grid;grid-template-columns:1fr 1fr;gap:7px}.clue-facts span{padding:7px 8px;background:#f7f9fb;border-radius:6px;text-align:center}.clue-facts b,.clue-facts small{display:block}.clue-facts b{font-size:12px}.clue-facts small{font-size:9px;color:var(--muted);margin-top:2px}.clue-decision{display:flex;align-items:center;justify-content:flex-end;gap:5px;flex-wrap:wrap}.clue-decision .score{display:flex;align-items:baseline;gap:3px;font-weight:800;font-size:16px;padding-left:6px}.clue-decision .score small{font-size:9px;font-weight:500;color:var(--muted)}.selection-toolbar{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid #cbd8e5;border-radius:8px;padding:8px 11px;margin-bottom:10px}.selection-toolbar>span{flex:1}.pro-filter{border-radius:9px;background:#fff;border:1px solid var(--line);padding:9px 10px;margin-bottom:10px}
.workspace-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px}.workspace-summary>div{background:#fff;border:1px solid var(--line);border-radius:9px;padding:13px 15px}.workspace-summary b,.workspace-summary span{display:block}.workspace-summary b{font-size:22px}.workspace-summary span{font-size:11px;color:var(--muted);margin-top:2px}.workspace-card-pro{border:1px solid var(--line);border-radius:10px;background:#fff;padding:16px;display:flex;flex-direction:column;min-height:255px}.workspace-card-top{display:flex;justify-content:space-between;gap:10px}.workspace-card-top h3{margin:4px 0 0;font-size:16px}.workspace-count{display:flex;align-items:baseline;gap:6px;padding:13px 0 9px}.workspace-count b{font-size:28px}.workspace-count span{font-size:11px;color:var(--muted)}.workspace-meta{margin:0;display:grid;gap:7px}.workspace-meta div{display:grid;grid-template-columns:64px 1fr;gap:8px;font-size:12px}.workspace-meta dt{color:var(--muted)}.workspace-meta dd{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.workspace-desc{color:var(--muted);font-size:11px;line-height:1.55;min-height:34px;margin:10px 0 12px}.workspace-card-pro .card-foot{margin-top:auto}.workspace-grid{align-items:stretch}
.drawer{width:min(780px,94vw)}.drawer-hero{display:flex;justify-content:space-between;gap:15px;padding:14px;border:1px solid var(--line);border-radius:9px;background:#f8fafc;margin-bottom:18px}.drawer-hero>div:first-child{display:flex;align-items:center;gap:10px}.drawer-hero>div:first-child>div{display:flex;flex-direction:column}.drawer-hero>div:first-child b{font-size:15px}.drawer-hero>div:first-child span{font-size:11px;color:var(--muted)}.drawer-hero>div:last-child{display:flex;align-items:center;gap:5px;flex-wrap:wrap;justify-content:flex-end}.evidence-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:18px}.evidence-grid section{border:1px solid var(--line);background:#fbfcfd;border-radius:8px;padding:10px 11px}.evidence-grid section span,.evidence-grid section b{display:block}.evidence-grid section span{font-size:10px;color:var(--muted)}.evidence-grid section b{font-size:13px;margin-top:3px;overflow:hidden;text-overflow:ellipsis}.content-block{max-height:420px}.key-value-pro{grid-template-columns:95px 1fr}.decision-box{border:1px solid #d8e3ee;background:#f8fbfe;border-radius:9px;padding:14px}.run-detail-head{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin-bottom:16px;color:var(--muted);font-size:12px}.log-box{white-space:pre-wrap;word-break:break-word;max-height:320px;overflow:auto;background:#101820;color:#c9d5e2;border-radius:8px;padding:12px 13px;font:11px/1.6 ui-monospace,SFMono-Regular,Consolas,monospace}
@media(max-width:1320px){.collector-kpis{grid-template-columns:repeat(3,1fr)}.collector-kpis-5{grid-template-columns:repeat(3,1fr)}.ops-grid{grid-template-columns:1fr}.clue-stream-row{grid-template-columns:32px 130px minmax(280px,1fr) 130px}.clue-facts{display:none}}
@media(max-width:900px){.collector-controlbar{align-items:flex-start;flex-direction:column;padding:10px 10px 0}.collector-tabs{width:100%;overflow:auto}.collector-tab{flex:1}.workspace-summary{grid-template-columns:repeat(2,1fr)}.clue-stream-row{grid-template-columns:28px 1fr 130px}.clue-source{grid-column:2}.clue-primary{grid-column:2}.clue-decision{grid-column:3;grid-row:1/3}.evidence-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.collector-kpis,.collector-kpis-5{grid-template-columns:repeat(2,1fr)}.workspace-summary{grid-template-columns:repeat(2,1fr)}.clue-stream-row{grid-template-columns:26px 1fr}.clue-decision{grid-column:2;grid-row:auto;justify-content:flex-start}.quality-detail{grid-template-columns:1fr}.evidence-grid{grid-template-columns:1fr}.drawer-hero{display:block}.drawer-hero>div:last-child{justify-content:flex-start;margin-top:10px}}

.quality-meter i.q0{width:0}.quality-meter i.q1{width:10%}.quality-meter i.q2{width:20%}.quality-meter i.q3{width:30%}.quality-meter i.q4{width:40%}.quality-meter i.q5{width:50%}.quality-meter i.q6{width:60%}.quality-meter i.q7{width:70%}.quality-meter i.q8{width:80%}.quality-meter i.q9{width:90%}.quality-meter i.q10{width:100%}
.run-bars i.h1{height:10%}.run-bars i.h2{height:20%}.run-bars i.h3{height:30%}.run-bars i.h4{height:40%}.run-bars i.h5{height:50%}.run-bars i.h6{height:60%}.run-bars i.h7{height:70%}.run-bars i.h8{height:80%}.run-bars i.h9{height:90%}.run-bars i.h10{height:100%}
/* V4.2 collector operations + workspace source binding */
.run-commandbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 12px;margin:0 0 16px;border:1px solid #dbe4ee;background:#f8fafc;border-radius:8px}.run-commandbar>span{margin-left:auto;color:var(--muted);font-size:11px}.trace-list{display:grid;gap:6px}.trace-row{width:100%;border:1px solid var(--line);background:#fff;border-radius:7px;padding:8px 10px;display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center;text-align:left;color:inherit}.trace-row:hover{border-color:#c5d4e2;background:#f9fbfd}.trace-row>span:first-child{display:flex;flex-direction:column;min-width:0}.trace-row b{font-size:12px}.trace-row small,.trace-row time{font-size:10px;color:var(--muted)}.trace-row time{white-space:nowrap}.source-check-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.source-check-tile{position:relative;display:block}.source-check-tile>input{position:absolute;opacity:0;pointer-events:none}.source-check-tile>span{display:flex;align-items:center;gap:8px;min-height:48px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:#fff;cursor:pointer}.source-check-tile>span b,.source-check-tile>span small{display:block}.source-check-tile>span small{font-size:10px;color:var(--muted)}.source-check-tile>input:checked+span{border-color:#8db0d0;background:#f2f7fb;box-shadow:inset 0 0 0 1px #8db0d0}.source-check-tile>input:focus-visible+span{outline:3px solid #8facfa;outline-offset:2px}.workspace-hero-pro{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;border:1px solid var(--line);background:#f8fafc;border-radius:9px;padding:14px;margin-bottom:10px}.workspace-hero-pro h3{margin:3px 0 2px;font-size:18px}.workspace-hero-pro p{margin:0;color:var(--muted);font-size:11px}.workspace-hero-counts{display:flex;gap:8px}.workspace-hero-counts span{min-width:78px;background:#fff;border:1px solid var(--line);border-radius:7px;padding:8px 10px;text-align:center}.workspace-hero-counts b,.workspace-hero-counts small{display:block}.workspace-hero-counts b{font-size:18px}.workspace-hero-counts small{font-size:9px;color:var(--muted);margin-top:2px}.workspace-source-table{min-width:980px}
@media(max-width:900px){.source-check-grid{grid-template-columns:repeat(2,1fr)}.workspace-hero-pro{display:block}.workspace-hero-counts{margin-top:12px}.run-commandbar>span{width:100%;margin-left:0}}
@media(max-width:620px){.source-check-grid{grid-template-columns:1fr}.workspace-hero-counts{display:grid;grid-template-columns:repeat(3,1fr)}.workspace-hero-counts span{min-width:0}.trace-row{grid-template-columns:1fr auto}.trace-row time{grid-column:1/3}}

/* V4.2 collector operations: execution timeline + credential-free evidence manifest */
.run-timeline{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:14px 0 16px}.run-step{position:relative;display:flex;align-items:center;gap:9px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fafbfd}.run-step i{width:10px;height:10px;border-radius:50%;background:#c9d1dc;box-shadow:0 0 0 4px #eef2f6}.run-step.done i{background:#2f8f74;box-shadow:0 0 0 4px #e8f5f0}.run-step.failed i{background:#ca554f;box-shadow:0 0 0 4px #fdecea}.run-step span{display:flex;min-width:0;flex-direction:column}.run-step b{font-size:12px}.run-step small{color:var(--muted);font-size:11px}.evidence-list{display:grid;gap:8px}.evidence-item{border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:#fbfcfe}.evidence-item>div{display:flex;align-items:center;justify-content:space-between;gap:12px}.evidence-item b{font-size:12px}.evidence-item small,.evidence-item span{color:var(--muted);font-size:11px}.evidence-item p{margin:7px 0 0;font-size:12px;color:var(--ink);white-space:pre-wrap}.evidence-item a{display:inline-block;margin-top:6px;font-size:11px}@media(max-width:900px){.run-timeline{grid-template-columns:1fr}}
.task-filterbar{margin:0 14px 12px;width:max-content;max-width:calc(100% - 28px)}

/* V4.2.2 Production Closure — restrained production UI refinement */
:root{
  --bg:#f3f6fa;--surface:#ffffff;--surface-2:#f7f9fc;--sidebar:#0d2135;--sidebar-2:#122b45;
  --text:#17243a;--muted:#69778c;--line:#dde5ef;--primary:#2468c9;--primary-2:#174f9e;
  --shadow:0 8px 28px rgba(20,39,66,.065);--radius:13px;--radius-lg:18px;--sidebar-w:252px
}
body{letter-spacing:.002em}.app-shell{background:linear-gradient(180deg,#f7f9fc 0,#f3f6fa 260px)}
.sidebar{background:linear-gradient(180deg,#0c2034 0%,#102840 70%,#0d2237 100%);box-shadow:8px 0 24px rgba(15,35,55,.06)}
.sidebar-brand{height:78px;padding:0 18px}.sidebar-brand .brand-logo.small{background:linear-gradient(145deg,#fff,#eaf2fd);box-shadow:0 7px 20px rgba(0,0,0,.16)}
.sidebar-brand b{letter-spacing:.01em}.nav{padding:12px 10px 16px}.nav-group{margin:17px 9px 7px;color:#7891ad}
.nav-item{min-height:42px;padding:10px 12px;border:1px solid transparent;border-radius:10px;transition:background .15s,border-color .15s,color .15s,transform .15s}
.nav-item:hover{transform:translateX(1px);background:rgba(255,255,255,.055);border-color:rgba(255,255,255,.04)}
.nav-item.active{background:linear-gradient(90deg,#2467a9,#286fba);border-color:rgba(151,203,255,.22);box-shadow:0 6px 18px rgba(2,18,36,.18)}
.nav-icon{opacity:.9}.sidebar-bottom{background:rgba(0,0,0,.035)}.collector-mini{border-radius:10px}.side-user{border:1px solid rgba(255,255,255,.04)}
.topbar{height:74px;padding:0 24px;background:rgba(255,255,255,.92);box-shadow:0 1px 0 rgba(15,35,55,.025)}
.title-wrap h1{font-size:19px;letter-spacing:-.01em}.global-search{background:#f6f8fb;border-color:#dce4ee}.global-search:focus-within{background:#fff;border-color:#a9c5ea;box-shadow:0 0 0 3px rgba(36,104,201,.08)}
.content{padding:24px 26px 52px}.page-head{margin-bottom:20px}.page-head h2{font-size:24px;line-height:1.25;letter-spacing:-.02em}.page-head p{margin-top:6px;max-width:760px}
.btn{border-radius:9px;box-shadow:none}.btn.primary{background:linear-gradient(180deg,#2a70cf,#2464bc);box-shadow:0 5px 14px rgba(36,104,201,.16)}.btn.primary:hover{box-shadow:0 7px 18px rgba(36,104,201,.20)}
.icon-btn{border-color:#dce4ee}.metric-card,.panel,.workspace-card-pro,.event-card,.task-card,.connector-card{box-shadow:var(--shadow)}
.metric-card{position:relative;border-color:#dde5ef;padding:16px 17px;overflow:hidden}.metric-card:after{content:"";position:absolute;left:0;top:0;width:3px;height:100%;background:#bdd0e8;opacity:.75}.metric-card.attention:after{background:#d38b28}.metric-card.critical:after{background:#c75252}.metric-card.attention,.metric-card.critical{border-top:1px solid var(--line)}
.metric-card strong{font-size:28px;color:#14243c}.metric-card small{font-size:11px}.panel{border-color:#dce5ef}.panel-head{background:linear-gradient(180deg,#fff,#fcfdff);min-height:55px;padding:13px 16px}.panel-head h3{font-size:15px;color:#1d2d43}
.table th{background:#f5f8fc;color:#5e6c7e;padding:11px 12px}.table td{padding:12px}.table tbody tr{transition:background .12s}.table tbody tr:hover{background:#f8fbff}
.badge{font-weight:650}.notice-bar{box-shadow:0 5px 16px rgba(116,80,28,.06)}
.drawer{box-shadow:-18px 0 48px rgba(16,34,55,.16)}.drawer-head,.modal-head{background:#fbfcfe}.drawer-section h3{letter-spacing:-.01em}.drawer-hero{background:linear-gradient(135deg,#f8fbff,#f5f8fc)}
.collector-controlbar,.run-commandbar,.pro-filter{box-shadow:0 4px 16px rgba(20,39,66,.035)}
.collector-tab.active{font-weight:750}.run-state{font-weight:650}.health-idle{color:#7b8797}.run-state.health-idle i{background:#aeb8c4}
.status-dot.warn{background:#d38b28;box-shadow:0 0 0 3px rgba(211,139,40,.13)}.status-dot.idle{background:#98a5b3;box-shadow:0 0 0 3px rgba(152,165,179,.12)}
.status-dot.bad{background:#cc5151;box-shadow:0 0 0 3px rgba(204,81,81,.12)}
.login-intro{position:relative;overflow:hidden;background:linear-gradient(145deg,#0d233b 0%,#143961 54%,#1c548d 100%)}.login-intro:before,.login-intro:after{content:"";position:absolute;border-radius:50%;pointer-events:none}.login-intro:before{width:420px;height:420px;right:-120px;top:-130px;background:radial-gradient(circle,rgba(112,176,244,.20),rgba(112,176,244,0) 68%)}.login-intro:after{width:520px;height:520px;left:-200px;bottom:-260px;background:radial-gradient(circle,rgba(79,143,213,.15),rgba(79,143,213,0) 70%)}.login-intro>*{position:relative;z-index:1}.login-feature-grid div{border-color:rgba(255,255,255,.13);background:rgba(255,255,255,.055)}
.login-card{padding:34px 32px;border:1px solid #e1e7ef;border-radius:18px;box-shadow:0 18px 50px rgba(21,42,68,.09)}.login-card-head{margin-bottom:28px}.login-card-head h2{font-size:26px}
.form-error:empty{min-height:0;margin-top:0}.field input,.field select,.field textarea,.control{border-color:#d5dee9;background:#fbfcfe}.field input:focus,.field select:focus,.field textarea:focus,.control:focus{background:#fff}

@media(max-width:820px){
  .topbar{height:68px;padding:0 14px}.content{padding:18px 14px 42px}.page-head h2{font-size:22px}.last-updated{font-size:11px}.metric-card{padding:14px}.metric-card strong{font-size:25px}
  .panel,.metric-card,.workspace-card-pro{box-shadow:0 5px 18px rgba(20,39,66,.05)}
}
@media(max-width:720px){
  .table-wrap{overflow:visible}.responsive-table{min-width:0!important;display:block}.responsive-table thead{display:none}.responsive-table tbody{display:grid;gap:10px}.responsive-table tbody tr{display:block;border:1px solid var(--line);border-radius:12px;background:#fff;overflow:hidden;box-shadow:0 3px 12px rgba(20,39,66,.035)}
  .responsive-table tbody tr:hover{background:#fff}.responsive-table tbody td{display:grid;grid-template-columns:minmax(86px,34%) minmax(0,1fr);align-items:start;gap:12px;width:100%;padding:10px 12px;border-bottom:1px solid #edf1f5;min-height:39px;word-break:break-word}
  .responsive-table tbody td:last-child{border-bottom:0}.responsive-table tbody td:before{content:attr(data-label);font-size:11px;font-weight:650;color:#7a8797}.responsive-table tbody td[colspan]{display:block;text-align:center}.responsive-table tbody td[colspan]:before{display:none}
  .responsive-table .cell-title{max-width:none}.responsive-table .cell-sub{white-space:normal;max-width:none}.responsive-table .platform-cell{align-items:flex-start}.responsive-table .clue-decision{justify-content:flex-start}
  .collector-overview .panel-head{align-items:flex-start}.ops-mini-trend{max-width:92px}.workspace-source-table{min-width:0!important}
}
@media(max-width:480px){
  .login-panel{padding:22px 16px}.login-card{padding:26px 20px;border-radius:16px;box-shadow:none}.metrics,.collector-kpis,.collector-kpis-5{gap:9px}.metric-card{min-height:112px}.page-head .actions{width:100%}.page-head .actions .btn{flex:1}.top-actions{gap:6px}.last-updated{display:none}.evidence-grid{gap:7px}.workspace-hero-counts{grid-template-columns:repeat(2,1fr)}
}
.login-status[data-state="checking"] .status-dot{background:var(--warn);box-shadow:0 0 0 3px rgba(164,91,0,.14)}
.login-status[data-state="offline"] .status-dot,.login-status[data-state="error"] .status-dot{background:var(--danger);box-shadow:0 0 0 3px rgba(197,48,48,.14)}
.remote-login-screen{display:block;width:100%;border:1px solid #ccd8e4;border-radius:8px;cursor:pointer;touch-action:none;user-select:none;-webkit-user-drag:none}

/* All platform login screens share the same spacious, centered workspace. */
#modal.platform-config-modal{width:min(1680px,calc(100vw - 24px));height:calc(100dvh - 24px);max-height:calc(100dvh - 24px)}
#modal.platform-config-modal .modal-body{padding:16px 20px;overscroll-behavior:contain}
#modal.platform-config-modal .modal-head,#modal.platform-config-modal .modal-foot{flex-shrink:0}
.remote-login-viewport{overflow:auto;max-width:100%;margin:10px 0;overscroll-behavior:contain}
#remoteLoginPanel.remote-login-actual-size .remote-login-screen{width:var(--remote-login-width,1280px);max-width:none}

#modal.platform-config-modal form{flex:1;min-height:0;max-height:none}
#modal.platform-config-modal .modal-body{flex:1;min-height:0;max-height:none}

#modal.platform-config-modal:has(#remoteLoginPanel) .modal-body{overflow:hidden}
#modal.platform-config-modal:has(#remoteLoginPanel) .modal-body> :not(:first-child){display:none}
#modal.platform-config-modal:has(#remoteLoginPanel) .modal-body>.workflow-note:first-child{display:flex;flex-direction:column;height:100%;padding:0;margin:0;min-height:0}
#modal.platform-config-modal:has(#remoteLoginPanel) .modal-body>.workflow-note:first-child>:not(#platformLoginMessage){display:none}
#modal.platform-config-modal:has(#remoteLoginPanel) #platformLoginMessage{display:flex;flex:1;min-height:0}
#remoteLoginPanel{display:flex;flex-direction:column;flex:1;min-height:0;min-width:0}
.remote-login-toolbar,.remote-login-inputbar,.remote-login-hint{flex-shrink:0}
.remote-login-toolbar p{margin:0 0 6px;font-size:12px}
#remoteLoginPanel .remote-login-viewport{flex:1;min-height:160px;margin:8px 0;overflow:auto;background:#eef2f1}
.remote-login-inputbar{display:flex;align-items:flex-end;flex-wrap:wrap;gap:8px}
.remote-login-inputbar .field{flex:1;min-width:160px;margin:0}
.remote-login-inputbar .btn{min-height:42px}
.remote-login-hint{font-size:12px;margin:6px 0 0}
#modal.platform-config-modal:has(#remoteLoginPanel) .modal-foot button[type="submit"]{display:none}

#modal.platform-config-modal:has(#remoteLoginPanel) .modal-head{padding:12px 16px}
#modal.platform-config-modal:has(#remoteLoginPanel) .modal-head h2{font-size:20px}
#modal.platform-config-modal:has(#remoteLoginPanel) .modal-foot{display:none}
#remoteLoginPanel .remote-login-inputbar .field{margin:0;display:block}
#remoteLoginPanel .remote-login-inputbar .field>span{display:none}
#remoteLoginPanel .remote-login-inputbar input{height:42px;min-height:42px;padding:8px}
@media(max-height:700px){#remoteLoginPanel .remote-login-hint{display:none}}
