:root{
  --bg:#EDF0F3; --paper:#FFFFFF; --ink:#16212B; --muted:#5D6874; --line:#D2D9E0; --chip:#E3E8ED;
  --accent:#2E5E8C; --accent-ink:#FFFFFF; --good:#2F7A4F; --warn:#9A5B00; --bad:#A6322B;
  --act-archive:#2E5E8C; --act-unsub:#A6322B; --act-keep:#2F7A4F;
  color-scheme:light dark;
}
@media (prefers-color-scheme:dark){:root{
  --bg:#11171D; --paper:#19212A; --ink:#E6ECF1; --muted:#98A4AF; --line:#2B3742; --chip:#232E39;
  --accent:#6FA3D6; --accent-ink:#0D151E; --good:#5FBF85; --warn:#E0A84A; --bad:#E57D74;
  --act-archive:#6FA3D6; --act-unsub:#E57D74; --act-keep:#5FBF85;}}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-padding-top:env(safe-area-inset-top,0px)}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.45 "Bricolage Grotesque",system-ui,-apple-system,"Segoe UI",sans-serif;
  padding-top:env(safe-area-inset-top,0px);padding-bottom:calc(76px + env(safe-area-inset-bottom,0px))}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer;border-radius:10px;border:1px solid var(--line);background:var(--paper);padding:9px 14px;min-height:42px}
button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:600}
button:disabled{opacity:.5;cursor:default}
:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.top{max-width:920px;margin:0 auto;padding:22px 16px 8px;display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}
.brand h1{margin:0;font-size:2.3rem;font-weight:800;letter-spacing:-.02em;line-height:1}
.brand p{margin:6px 0 0;color:var(--muted)}
.who{display:flex;gap:10px;align-items:center;color:var(--muted);font-size:.9rem}
.banner{max-width:920px;margin:10px auto 0;padding:12px 14px;border-radius:12px;border:1px solid var(--warn);background:color-mix(in srgb,var(--warn) 12%,var(--paper))}
.banner.bad{border-color:var(--bad);background:color-mix(in srgb,var(--bad) 12%,var(--paper))}
.banner.good{border-color:var(--good);background:color-mix(in srgb,var(--good) 12%,var(--paper))}
.tabs{max-width:920px;margin:14px auto 0;padding:0 16px;display:flex;gap:4px;border-bottom:1px solid var(--line)}
.tabs button{border:none;border-radius:10px 10px 0 0;background:transparent;color:var(--muted);padding:10px 16px}
.tabs button[aria-selected="true"]{background:var(--paper);color:var(--ink);font-weight:600;box-shadow:inset 0 -3px 0 var(--accent)}
main{max-width:920px;margin:0 auto;padding:16px}
.controls{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.filter{margin-left:auto;display:flex;gap:8px;align-items:center;color:var(--muted);font-size:.9rem}
.filter select{padding:8px;border-radius:8px;border:1px solid var(--line);background:var(--paper)}
.progress{margin:14px 0;color:var(--muted);font-size:.92rem}
.bar{height:6px;background:var(--chip);border-radius:99px;overflow:hidden;margin-top:8px}
.bar i{display:block;height:100%;width:0;background:var(--accent);transition:width .25s}
.list{background:var(--paper);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.list:empty{display:none}
.item{display:grid;grid-template-columns:1fr auto;gap:6px 14px;padding:12px 14px;border-top:1px solid var(--line);align-items:start}
.item:first-child{border-top:none}
.item.applied{opacity:.55}
.item .title{font-weight:600;overflow-wrap:anywhere}
.item .title a{color:inherit}
.item .meta{font-size:.82rem;color:var(--muted);overflow-wrap:anywhere}
.item .subjects{font-size:.82rem;color:var(--muted);margin-top:4px}
.item .why{font-size:.82rem;margin-top:4px}
.item select{padding:8px;border-radius:8px;border:1px solid var(--line);background:var(--paper);max-width:220px}
.item select[data-act="archive"]{border-color:var(--act-archive);color:var(--act-archive)}
.item select[data-act="unsub"],.item select[data-act="trash"]{border-color:var(--act-unsub);color:var(--act-unsub)}
.item select[data-act^="move"]{border-color:var(--act-archive);color:var(--act-archive)}
.badge{display:inline-block;font-size:.75rem;padding:1px 8px;border-radius:99px;background:var(--chip);color:var(--muted);margin-left:6px;vertical-align:1px;font-weight:400}
.badge.review{background:color-mix(in srgb,var(--warn) 20%,var(--paper));color:var(--warn)}
.badge.lock{background:color-mix(in srgb,var(--good) 18%,var(--paper));color:var(--good)}
.badge.err{background:color-mix(in srgb,var(--bad) 18%,var(--paper));color:var(--bad)}
.result{font-size:.82rem;color:var(--good);margin-top:4px}
.result.bad{color:var(--bad)}
.manual{margin-top:18px;background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:14px}
.manual h2{margin:0 0 6px;font-size:1.1rem}
.manual ul{margin:8px 0 0;padding-left:18px}
.manual li{margin:4px 0}
.manual a{color:var(--accent)}
.proposals{margin:0 0 14px}
.proposal{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;padding:10px 0;border-top:1px solid var(--line)}
.proposal:first-of-type{border-top:none}
.proposal label{display:flex;flex-direction:column;gap:4px;font-size:.85rem;color:var(--muted);flex:1 1 220px}
.proposal input{border:1px solid var(--line);border-radius:10px;background:var(--paper);padding:9px 10px;min-height:42px;color:var(--ink);font-size:1rem}
.settings{display:flex;flex-direction:column;gap:16px;max-width:680px}
.settings label{display:flex;flex-direction:column;gap:6px;font-weight:600}
.settings small{font-weight:400;color:var(--muted)}
.settings textarea,.settings input{border:1px solid var(--line);border-radius:10px;background:var(--paper);padding:10px;font-weight:400;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.88rem}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.muted{color:var(--muted)}
.applybar{position:fixed;left:0;right:0;bottom:0;background:var(--paper);border-top:1px solid var(--line);padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px));display:flex;gap:12px;align-items:center;justify-content:center}
.applybar span{color:var(--muted);font-size:.92rem;max-width:620px}
@media (max-width:600px){
  .item{grid-template-columns:1fr}
  .item select{max-width:none;width:100%}
  .filter{margin-left:0}
  .row2{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){.bar i{transition:none}}
