.sf-shell { max-width: 1440px; margin: 0 auto; padding: 28px 40px; }
.sf-shell main { display:block; min-width:0; }
.sf-header { display:flex; align-items:center; justify-content:space-between; gap:16px; padding-bottom:28px; border-bottom:1px solid var(--line); margin-bottom:32px; }
.sf-brand { font-size:17px; font-weight:600; color:var(--text); text-decoration:none; }
.sf-brand span { color:var(--text-2); font-weight:400; }
.sf-heading { display:flex; gap:20px; align-items:center; justify-content:space-between; margin:24px 0 12px; }
.sf-heading h1 { font-size:28px; line-height:1.25; letter-spacing:-.025em; margin:0 0 8px; }
.sf-heading p,.sf-lead { color:var(--text-2); line-height:1.6; max-width:75ch; }
.sf-shell h2 { font-size:22px; line-height:1.3; margin:28px 0 12px; }
.sf-shell h3 { font-size:17px; margin:28px 0 12px; }
.sf-notice { color:var(--text-2); margin-bottom:28px; }
.sf-summary { display:flex; flex-wrap:wrap; column-gap:40px; row-gap:20px; margin:30px 0; padding:0; }
.sf-summary div { display:flex; flex-direction:column; gap:7px; }
.sf-summary dt { color:var(--text-2); font-size:13px; }
.sf-summary dd { margin:0; font-size:22px; font-weight:600; font-variant-numeric:tabular-nums; }
.sf-tabs { display:flex; flex-direction:row; gap:24px; border-bottom:1px solid var(--line-strong); margin-top:28px; overflow-x:auto; }
.sf-tabs button { border:0; border-bottom:2px solid transparent; border-radius:0; background:none; padding:14px 0; white-space:nowrap; color:var(--text-2); }
.sf-tabs button[aria-current] { border-color:var(--accent); color:var(--accent); font-weight:600; }
.sf-region-filter { display:flex; flex-wrap:wrap; gap:12px; margin:24px 0; }
.sf-region-filter button { background:var(--surface); display:flex; align-items:center; gap:18px; }
.sf-filters { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px 12px; padding:20px; background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg); }
.sf-search { grid-column:span 2; }
.sf-shell label { display:flex; flex-direction:column; gap:8px; color:var(--text-2); font-size:12px; font-weight:500; }
.sf-shell input,.sf-shell select,.sf-shell textarea { width:100%; min-width:0; font:inherit; font-size:14px; color:var(--text); background:var(--surface); border:1px solid var(--line-strong); border-radius:var(--r-sm); min-height:40px; padding:9px 11px; accent-color:var(--accent); }
.sf-shell input::placeholder { color:#64646c; }
.sf-shell input,.sf-shell textarea { caret-color:var(--accent); }
.sf-shell button { font:inherit; font-size:13px; line-height:1.4; min-height:38px; border:1px solid var(--line-strong); border-radius:var(--r-sm); padding:8px 12px; background:var(--surface); cursor:pointer; color:var(--text); }
.sf-shell button:disabled { opacity:.55; cursor:wait; }
.sf-shell .sf-tabs button { width:auto; flex:0 0 auto; border:0; border-bottom:2px solid transparent; border-radius:0; background:none; padding:14px 0; color:var(--text-2); }
.sf-shell .sf-tabs button[aria-current] { border-bottom-color:var(--accent); color:var(--accent); }
.sf-shell :is(button,input,select,textarea,a):focus-visible { outline:2px solid var(--accent); outline-offset:3px; }
.sf-shell ::selection { background:var(--accent-soft); color:var(--text); }
.sf-filter-actions { grid-column:1 / -1; display:flex; flex-wrap:wrap; gap:10px; }
.sf-filter-actions button:first-child,#sf-research,#sf-save-review { background:var(--accent); color:var(--accent-text); border-color:var(--accent); }
.sf-table-head { display:flex; justify-content:space-between; gap:16px; color:var(--text-2); font-size:12px; margin:24px 0 12px; }
.sf-table-head p { font-weight:500; color:var(--text); }
.sf-table-wrap { position:relative; max-width:100%; overflow-x:auto; border:1px solid var(--line); border-radius:var(--r-lg); background:var(--surface); }
.sf-table { width:100%; border-collapse:collapse; text-align:left; font-size:13px; }
.sf-table th { color:var(--text-2); font-weight:500; font-size:12px; background:var(--surface-2); }
.sf-table th,.sf-table td { padding:15px 16px; vertical-align:top; border-bottom:1px solid var(--line); line-height:1.5; }
.sf-table tbody tr:last-child td { border-bottom:0; }
.sf-table td:first-child { min-width:230px; }
.sf-table strong { display:block; font-weight:600; color:var(--text); }
.sf-secondary { display:block; color:var(--text-2); font-size:12px; margin-top:4px; }
.sf-score { font-size:18px; font-weight:600; font-variant-numeric:tabular-nums; white-space:nowrap; }
.sf-badge,.sf-status { display:inline-block; padding:4px 8px; border-radius:var(--r-xs); font-size:12px; color:var(--wait); background:var(--wait-bg); line-height:1.5; }
.sf-badge[data-state=confirmed],.sf-status[data-safe=true] { color:var(--good); background:var(--good-bg); }
.sf-badge[data-state=review_required],.sf-status[data-safe=false] { color:var(--bad); background:var(--bad-bg); }
.sf-empty { text-align:center; padding:38px!important; color:var(--text-2); }
#sf-error { padding:14px 16px; margin:20px 0; background:var(--bad-bg); color:var(--bad); border-radius:var(--r-sm); }
#sf-detail { margin-top:32px; padding:28px; border:1px solid var(--line-strong); border-radius:var(--r-lg); background:var(--surface); scroll-margin-top:24px; }
#sf-detail h2 { margin-top:0; }
.sf-detail-grid { display:grid; grid-template-columns:1.3fr 1fr; gap:32px; }
.sf-evidence { padding:14px 0; border-bottom:1px solid var(--line); }
.sf-evidence p { margin:7px 0; color:var(--text-2); overflow-wrap:anywhere; }
.sf-evidence a,.sf-source a { overflow-wrap:anywhere; text-underline-offset:3px; }
.sf-review-form { display:grid; gap:16px; align-content:start; padding:20px; background:var(--surface-2); border-radius:var(--r-md); }
.sf-review-form textarea { min-height:100px; resize:vertical; }
.sf-review-form p { font-size:12px; line-height:1.6; color:var(--text-2); }
.sf-source,.sf-run { padding:20px 0; border-bottom:1px solid var(--line); }
.sf-source p,.sf-run p { color:var(--text-2); margin:8px 0; line-height:1.6; }
.sf-source strong,.sf-run strong { display:block; margin:8px 0; }
.sf-errors { color:var(--bad); font-size:13px; margin-top:12px; }
.sf-research-form { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:16px; padding:20px 0; }
.sf-research-form label { flex-direction:row; align-items:center; font-size:14px; }
.sf-research-form input { width:18px; height:18px; min-height:0; }
.sf-rubric { margin-top:24px; background:var(--surface); }
.sf-footer { font-size:12px; color:var(--text-2); border-top:1px solid var(--line); margin-top:48px; padding:24px 0; }
.sf-visually-hidden { position:absolute; top:0; left:0; width:1px; height:1px; padding:0; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.sf-shell [hidden] { display:none!important; }
@media(hover:hover) { .sf-shell button:not(:disabled):hover { background:var(--surface-2); }.sf-filter-actions button:first-child:hover,#sf-research:hover,#sf-save-review:hover { background:var(--accent-hover); } }
@media(max-width:1100px) { .sf-filters { grid-template-columns:repeat(3,1fr); }.sf-search { grid-column:span 2; }.sf-detail-grid { grid-template-columns:1fr; } }
@media(max-width:600px) { .sf-shell { padding:20px 16px; }.sf-header { flex-direction:column; align-items:flex-start; padding-bottom:20px; margin-bottom:24px; }.sf-heading h1 { font-size:25px; }.sf-heading { align-items:flex-start; }.sf-summary { column-gap:26px; }.sf-summary div { flex-basis:40%; }.sf-tabs { gap:20px; }.sf-tabs button { padding:14px 0; }.sf-filters { grid-template-columns:repeat(2,minmax(0,1fr)); padding:16px; }.sf-search { grid-column:1/-1; }.sf-shell input,.sf-shell select,.sf-shell textarea { font-size:16px; }.sf-shell button { min-height:44px; }.sf-table-head { flex-direction:column; gap:5px; }.sf-table { min-width:800px; }#sf-detail { padding:20px 16px; }.sf-detail-grid { gap:24px; }.sf-rubric { min-width:0; }.sf-rubric th,.sf-rubric td { padding:12px 8px; }.sf-rubric td:first-child { min-width:0; }.sf-region-filter { gap:8px; }.sf-region-filter button { gap:10px; padding:8px 10px; } }
