.review-page { --brand:#235c83; --brand-strong:#164b70; --brand-soft:#eaf2f8; --surface:#fff; --surface-soft:#f3f5f8; --ink:#233247; --muted:#596a7d; --line:#dce3eb; font-size:16px; line-height:1.65; }
.review-header { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:20px; padding:20px 32px; background:var(--surface); border-bottom:1px solid var(--line); }
.review-brand { display:flex; align-items:center; gap:13px; }
.review-brand>span { background:#233247; color:white; width:40px; height:40px; border-radius:8px; display:grid; place-content:center; font-size:24px; }
.review-brand b { display:block; font-size:18px; }
.review-brand small { display:block; font-size:12px; color:var(--muted); }
.review-header nav { display:flex; gap:20px; align-items:center; font-size:14px; flex-wrap:wrap; }
#reviewRoot { max-width:1440px; margin:0 auto; padding:28px 32px; }
.review-gate { max-width:480px; margin:8vh auto; padding:32px; background:var(--surface); border:1px solid var(--line); border-radius:12px; }
.review-gate h1 { font-size:24px; line-height:1.4; margin:0 0 16px; }
.review-gate p { color:var(--muted); }
.review-gate .field input { min-height:46px; }
.review-heading { display:flex; justify-content:space-between; align-items:center; gap:20px; }
.review-heading h1 { font-size:27px; margin:0; }
.review-heading p { color:var(--muted); font-size:14px; margin:5px 0; }
.review-tools { display:flex; gap:10px; }
.review-alert { background:#fff6de; border:1px solid #e8d49c; color:#765218; border-radius:8px; padding:12px 16px; margin:18px 0; font-size:14px; }
.review-errors { color:#9d3048; margin:14px 0; font-size:14px; }
.review-errors p { margin:5px 0; }
.review-metrics { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin:22px 0; }
.review-metrics>div { padding:16px 20px; border:1px solid var(--line); border-radius:9px; background:var(--surface); }
.review-metrics b { display:block; font-size:25px; font-variant-numeric:tabular-nums; }
.review-metrics span { display:block; font-size:14px; color:var(--muted); }
.review-filters { display:flex; flex-wrap:wrap; gap:12px; align-items:end; margin-bottom:18px; }
.review-filters label { display:grid; gap:5px; font-size:14px; color:var(--muted); }
.review-filters label:last-child { flex:1; min-width:160px; }
.review-filters input,.review-filters select { color:var(--ink); background:var(--surface); border:1px solid var(--line); padding:10px 12px; border-radius:7px; min-height:44px; }
.review-workspace { display:grid; grid-template-columns:340px minmax(0,1fr); align-items:start; gap:22px; }
.review-queue { background:var(--surface); border:1px solid var(--line); border-radius:10px; max-height:75vh; overflow-y:auto; }
.review-queue>button { display:block; text-align:left; width:100%; padding:17px; color:var(--ink); background:var(--surface); border:0; border-bottom:1px solid var(--line); }
.review-queue>button.active { background:var(--brand-soft); box-shadow:inset 4px 0 var(--brand); }
.review-queue>button:hover { background:var(--brand-soft); }
.review-queue b { display:block; font-size:16px; margin:6px 0; overflow-wrap:anywhere; }
.review-queue small { display:block; color:var(--muted); font-size:12px; }
.review-kind { display:inline-block; font-size:12px; font-weight:700; color:var(--brand); }
.review-detail { background:var(--surface); border:1px solid var(--line); border-radius:10px; padding:26px; min-width:0; }
.review-detail h2 { font-size:24px; margin:8px 0; line-height:1.45; overflow-wrap:anywhere; }
.review-detail h3 { font-size:16px; margin:22px 0 10px; }
.review-detail .meta { font-size:14px; color:var(--muted); }
.review-text { white-space:pre-wrap; overflow-wrap:anywhere; background:var(--surface-soft); padding:20px; border-radius:8px; font-size:16px; max-height:55vh; overflow-y:auto; line-height:1.85; }
.review-context { margin:18px 0; padding:14px; border-left:3px solid #a7bacd; font-size:14px; color:var(--muted); white-space:pre-wrap; overflow-wrap:anywhere; }
.review-images { display:flex; gap:12px; flex-wrap:wrap; margin:16px 0; }
.review-images img { max-width:100%; max-height:320px; object-fit:contain; border:1px solid var(--line); }
.review-decision { padding-top:20px; margin-top:20px; border-top:1px solid var(--line); }
.review-decision .check-row { align-items:flex-start; font-size:14px; color:var(--ink); }
.review-decision .check-row input { margin-top:5px; flex-shrink:0; }
.review-decision textarea { min-height:95px; font-size:16px; }
.review-actions { display:flex; gap:12px; flex-wrap:wrap; }
.review-decision button { min-height:45px; }
.review-empty { padding:36px 20px; text-align:center; color:var(--muted); }
.review-empty h2 { font-size:22px; color:var(--ink); }
.review-log-list { padding:0; list-style:none; }
.review-log-list li { display:grid; grid-template-columns:170px 1fr; gap:20px; padding:18px 0; border-bottom:1px solid var(--line); font-size:14px; }
.review-log-list time,.review-log-list small { color:var(--muted); }
.review-log-list small { display:block; overflow-wrap:anywhere; }
.review-page :is(a,button,input,select,textarea):focus-visible { outline:3px solid #4385b6; outline-offset:3px; }
.review-page button:disabled { opacity:.5; cursor:wait; }
:root[data-theme="dark"] .review-page { --ink:#e2eaf3; --muted:#a9bace; --brand:#8ac5ee; --brand-strong:#b2ddf9; --brand-soft:#20394a; --surface:#172331; --surface-soft:#101b27; --line:#344454; }
:root[data-theme="dark"] .review-page .btn-primary { color:#142434; }
:root[data-theme="dark"] .review-alert { color:#f0d99d; background:#352d1a; border-color:#6b592b; }
:root[data-theme="dark"] .review-errors { color:#ffb3c4; }
@media(max-width:900px) { .review-workspace { grid-template-columns:270px minmax(0,1fr); } #reviewRoot { padding:22px 18px; } .review-header { padding:18px; } .review-detail { padding:20px; } }
@media(max-width:700px) { .review-workspace { grid-template-columns:1fr; } .review-queue { max-height:300px; } .review-heading { flex-wrap:wrap; } .review-metrics { gap:8px; } .review-metrics>div { padding:12px; } .review-metrics span { font-size:12px; } .review-log-list li { grid-template-columns:1fr; gap:4px; } .review-filters label { flex:1; min-width:130px; } .review-header nav { gap:16px; } }
