:root{font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;color:#172b3b;background:#f5f7f9;font-size:15px}
*{box-sizing:border-box}body{margin:0}a{color:#145e87;text-decoration:none}a:hover{text-decoration:underline}button,input,select{font:inherit}button{cursor:pointer}h1,h2,h3,p{margin-top:0}
.topbar{background:#132b3b;color:#fff}.topbar-inner{max-width:1260px;margin:auto;min-height:76px;display:flex;align-items:center;gap:34px;padding:12px 24px}.brand,.login-brand{display:flex;align-items:center;gap:12px;color:inherit;text-decoration:none;min-width:280px}.brand:hover{text-decoration:none}.brand-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:11px;background:#ed7546;color:#fff;font-weight:800;font-size:24px}.brand strong,.login-brand strong{display:block;font-size:17px;line-height:1.2}.brand small,.login-brand small{display:block;opacity:.7;font-size:11px;margin-top:4px}.topbar nav{display:flex;gap:8px;align-self:stretch;align-items:center}.topbar nav a{color:#d5e1e9;padding:11px 15px;border-radius:9px;font-weight:600}.topbar nav a[aria-current=page],.topbar nav a:hover{background:#29485c;color:#fff;text-decoration:none}.nav-count{display:inline-block;border-radius:20px;background:#ef7d54;color:#fff;padding:1px 7px;margin-left:5px;font-size:11px}.topbar form{margin-left:auto}.logout{border:1px solid #718796;background:none;color:#fff;border-radius:8px;padding:9px 14px}.logout:hover{background:#29485c}
.container{max-width:1260px;margin:auto;padding:32px 24px 64px}.page-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;margin-bottom:26px}.page-heading h1{font-size:34px;letter-spacing:-.03em;margin:2px 0 7px}.page-heading p:last-child{color:#627788;margin:0}.eyebrow{text-transform:uppercase;letter-spacing:.12em;color:#d45f36;font-weight:800;font-size:11px;margin-bottom:5px}.refresh{white-space:nowrap;padding:9px 13px;border:1px solid #d4dde4;border-radius:8px;background:#fff}
.alert{border-radius:11px;padding:16px 20px;margin-bottom:20px;display:flex;align-items:center;gap:14px}.alert strong{font-size:16px}.alert span{color:#526878}.alert a{margin-left:auto;font-weight:700}.alert-hot{background:#fff0e9;border:1px solid #ffd1be}.alert-good{background:#e9f6ee;border:1px solid #c7e9d2}.alert-muted{background:#fff7e8;border:1px solid #f4e0b3;color:#6a5a2f}
.stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin:0 0 32px}.stats>div{background:#fff;border:1px solid #e4eaef;border-radius:11px;padding:17px 19px;min-height:93px}.stats span{display:block;color:#69808e;font-size:12px;margin-bottom:8px}.stats strong{font-size:29px;letter-spacing:-.03em}.section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:15px;margin:0 0 14px}.section-heading h2{font-size:21px;margin:0}.section-heading span{color:#748895;font-size:13px}
.filters{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:17px}.filter{background:#fff;border:1px solid #dce5eb;color:#385364;border-radius:8px;padding:8px 12px;font-weight:600;font-size:13px}.filter span{color:#8a9da8;margin-left:6px}.filter.selected{color:#fff;background:#1b536c;border-color:#1b536c}.filter.selected span{color:#c6dfeb}.filter:hover{text-decoration:none;border-color:#5a859b}
.review-list{display:grid;gap:12px}.review-card,.source-card,.candidate-card{background:#fff;border:1px solid #e2e9ee;border-radius:12px;box-shadow:0 3px 12px #1c405508}.review-card{padding:20px 22px}.review-new{border-left:4px solid #e77b4d}.review-meta{display:flex;gap:8px;color:#547080;font-size:12px;font-weight:700}.review-head{display:flex;justify-content:space-between;align-items:center;gap:15px;margin:13px 0}.badges{display:flex;gap:6px;flex-wrap:wrap}.badge{border-radius:6px;padding:4px 8px;font-size:11px;font-weight:700}.badge-new{background:#ffe4d7;color:#a9441d}.badge-yes{background:#e2f4e9;color:#1e7550}.badge-no{background:#ffe9e7;color:#aa3d39}.badge-unknown{background:#edf1f4;color:#617583}.badge-tone{background:#e8eff4;color:#466174}.review-date{color:#8b9ba4;font-size:11px;white-space:nowrap}.review-body{white-space:pre-wrap;line-height:1.58;margin:0 0 12px;font-size:14px}.review-byline{font-size:12px;color:#8495a1}.review-actions{display:flex;align-items:center;justify-content:space-between;gap:16px;border-top:1px solid #edf1f4;margin-top:16px;padding-top:15px}.review-actions>a{font-weight:700;font-size:13px;white-space:nowrap}.review-form{display:flex;align-items:end;justify-content:flex-end;gap:8px;flex-wrap:wrap}.review-form label{font-size:10px;font-weight:700;color:#738997;text-transform:uppercase;letter-spacing:.06em}.review-form select{display:block;margin-top:5px;color:#294456;background:#fff;border:1px solid #d4e0e7;border-radius:7px;padding:7px 9px;max-width:180px}.review-form button,.candidate-foot button,.login-form button{background:#1a5975;color:#fff;border:none;border-radius:7px;padding:9px 13px;font-weight:700}.review-form button:hover,.candidate-foot button:hover,.login-form button:hover{background:#12465e}.pagination{display:flex;justify-content:center;align-items:center;gap:20px;margin:24px 0;color:#758a96}.pagination a{font-weight:700}
.source-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.source-card{padding:20px}.source-top{display:flex;justify-content:space-between;gap:12px;align-items:start}.source-top h3{font-size:18px;margin:0}.source-status{font-size:11px;font-weight:800;border-radius:20px;padding:5px 9px;white-space:nowrap}.source-ok{background:#e2f3e8;color:#20784d}.source-warn{background:#fff0e4;color:#a76132}.source-count{display:flex;align-items:baseline;gap:7px;margin:20px 0 9px}.source-count strong{font-size:26px}.source-count span{font-size:12px;color:#8296a1}.source-detail,.source-error{font-size:12px;color:#6b8290;line-height:1.45}.source-error{color:#af4d3f}.source-foot{display:flex;justify-content:space-between;gap:10px;align-items:center;border-top:1px solid #edf1f4;padding-top:13px;margin-top:16px;font-size:11px;color:#91a0a8}.source-foot a{font-size:12px;font-weight:700;white-space:nowrap}.candidates{margin-top:34px}.candidate-card{padding:18px 20px;margin-bottom:10px}.candidate-card h3{font-size:16px;margin-bottom:6px}.candidate-card p{color:#6c8290;font-size:12px}.candidate-foot{display:flex;justify-content:space-between;gap:12px;align-items:center}.candidate-foot form{display:flex;gap:7px;flex-wrap:wrap}.candidate-foot select{border:1px solid #d4e0e7;border-radius:7px;padding:7px}.candidate-foot .subtle{background:#eef2f5;color:#465e6d}.candidate-foot .subtle:hover{background:#e2eaf0}
.empty{padding:60px 20px;text-align:center;background:#fff;border:1px dashed #cedde5;border-radius:12px;color:#4b6574}.empty strong{font-size:18px}.empty p{margin:8px 0 0;color:#82949d}.help{color:#8ca0aa;font-size:12px;margin:22px 0}.footer{text-align:center;padding:25px;color:#93a5ad;font-size:11px;border-top:1px solid #e5ebef}
.login-body{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 80% 10%,#d8e7ec,transparent 35%),#eff4f6;padding:20px}.login-card{width:min(420px,100%);background:#fff;padding:33px;border:1px solid #e0e9ed;border-radius:17px;box-shadow:0 24px 60px #23445c1c}.login-brand{color:#173348;margin-bottom:35px}.login-brand small{color:#82949c}.login-card h1{font-size:27px;letter-spacing:-.03em;margin-bottom:5px}.muted{color:#788d99;font-size:13px}.login-form{display:grid;gap:9px;margin-top:28px}.login-form label{font-size:12px;font-weight:700;margin-top:6px}.login-form input{border:1px solid #cbd9e1;border-radius:8px;padding:11px 12px;outline:none}.login-form input:focus{border-color:#277496;box-shadow:0 0 0 3px #d8ebf3}.login-form button{margin-top:13px;padding:12px}.login-error{background:#fff0ed;color:#ab4839;padding:11px;border-radius:7px;font-size:12px}.login-foot{text-align:center;color:#9caab2;font-size:11px;margin:24px 0 0}
@media(max-width:900px){.stats{grid-template-columns:repeat(3,minmax(0,1fr))}.topbar-inner{gap:12px}.brand{min-width:auto}.brand small{display:none}.source-grid{grid-template-columns:1fr}.review-actions{align-items:flex-start;flex-direction:column}.review-form{justify-content:flex-start}}
@media(max-width:580px){.topbar-inner{padding:12px 14px;flex-wrap:wrap}.brand{width:100%}.topbar nav{gap:4px}.topbar nav a{padding:8px}.topbar form{margin-left:auto}.container{padding:25px 14px 50px}.page-heading h1{font-size:29px}.page-heading p:last-child{font-size:13px}.stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.stats>div{padding:13px;min-height:80px}.stats strong{font-size:24px}.alert{align-items:flex-start;flex-direction:column;gap:5px}.alert a{margin-left:0}.review-card{padding:16px}.review-head{align-items:flex-start;flex-direction:column;gap:8px}.review-form label{width:calc(50% - 6px)}.review-form select{width:100%}.source-foot{align-items:flex-start;flex-direction:column}.candidate-foot{align-items:flex-start;flex-direction:column}}

/* Compact review rows keep the full text and put editing behind a disclosure. */
.review-list{gap:8px}.review-card{padding:13px 16px}.review-head{margin:0 0 8px;align-items:flex-start}.review-meta{align-items:center;flex-wrap:wrap;padding-top:4px}.review-meta strong{color:#17384b;font-size:13px}.review-body{font-size:13px;line-height:1.45;margin:0 0 9px}.review-actions{margin-top:0;padding-top:8px;justify-content:flex-start;flex-wrap:wrap;gap:8px 15px}.review-byline{flex:1;min-width:220px}.review-actions>a{font-size:12px}.review-rating{display:inline-block;background:#fff3dc;border:1px solid #f5dca9;border-radius:7px;color:#855a15;font-size:13px;font-weight:800;padding:3px 8px;white-space:nowrap}.review-rating small{font-size:10px;color:#aa8750}.review-rating.no-rating{background:#f2f5f7;border-color:#e2e8eb;color:#8899a2;font-size:11px}.review-edit{font-size:12px}.review-edit summary,.source-edit summary,.source-note summary{cursor:pointer;color:#28627c;font-weight:700}.review-edit[open]{flex-basis:100%}.review-form{border-top:1px solid #edf1f4;padding-top:10px;margin-top:8px;justify-content:flex-start}

/* Source register with explicit platform figures and server-side filters. */
.source-filters{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr)) minmax(190px,1.5fr) auto auto;align-items:end;gap:10px;background:#fff;border:1px solid #e2e9ee;border-radius:11px;padding:15px;margin-bottom:16px}.source-filters label{display:grid;gap:5px;color:#6a8390;font-size:11px;font-weight:700}.source-filters select,.source-filters input,.source-edit input{width:100%;border:1px solid #cfdde5;border-radius:7px;background:#fff;color:#294456;padding:8px 9px}.source-filters button,.source-edit button{border:0;border-radius:7px;background:#1a5975;color:#fff;font-weight:700;padding:9px 12px}.source-filters>a{padding:9px 3px;font-size:12px;font-weight:700}.source-table-wrap{overflow:auto;background:#fff;border:1px solid #e2e9ee;border-radius:11px}.source-table{border-collapse:collapse;width:100%;min-width:1050px;font-size:12px}.source-table th{text-align:left;color:#617986;background:#f0f5f7;font-size:11px;letter-spacing:.03em;padding:12px 13px;white-space:nowrap}.source-table td{border-top:1px solid #e8eef2;padding:12px 13px;vertical-align:top;line-height:1.35}.source-table tbody tr:hover{background:#f9fbfc}.source-table td strong{font-size:14px}.source-table td small{display:block;color:#8b9da7;font-size:10px;margin-top:4px}.source-name{font-weight:800;white-space:nowrap}.platform-rating{color:#9b6518}.source-table .source-status{display:inline-block}.source-edit{margin-top:5px}.source-edit form{display:grid;gap:7px;min-width:170px;margin-top:9px;padding:9px;background:#f3f7f9;border-radius:7px}.source-edit label{display:grid;gap:4px;color:#617986;font-size:10px;font-weight:700}.source-edit button{font-size:11px}.source-note p{margin:8px 0 0;color:#667e8c;max-width:230px}.source-note .source-error{display:block;margin-top:7px}.table-empty{text-align:center;color:#80949f;padding:26px!important}
@media(max-width:1150px){.source-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.source-filters>a{align-self:center}}
@media(max-width:700px){.source-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.source-filters label:last-of-type{grid-column:1/-1}.review-head{flex-wrap:wrap}.review-actions{flex-direction:row;align-items:center}.review-form label{width:calc(50% - 6px)}}
.review-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}.review-toolbar .filters{margin-bottom:0}.review-sort{display:flex;align-items:end;gap:7px}.review-sort label{display:grid;gap:4px;color:#617986;font-size:11px;font-weight:700}.review-sort select{min-width:160px;border:1px solid #cfdde5;border-radius:7px;padding:8px;background:#fff;color:#294456}.review-sort button{border:0;border-radius:7px;background:#1a5975;color:#fff;font-weight:700;padding:9px 12px}

/* The same score colors appear on review cards and in the source register. */
.review-rating.rating-green,.platform-rating.rating-green{background:#e2f4e9;border-color:#a8d7b8;color:#17643c}
.review-rating.rating-yellow,.platform-rating.rating-yellow{background:#fff3cf;border-color:#e8ce77;color:#765500}
.review-rating.rating-red,.platform-rating.rating-red{background:#ffe6e2;border-color:#e7aaa3;color:#a03029}
.review-rating small{color:inherit;opacity:.75}
.platform-rating.rating-score{display:inline-block;border-style:solid;border-width:1px;border-radius:7px;padding:3px 7px;font-size:13px;white-space:nowrap}
