.layout{display:flex;flex-direction:column;min-height:100vh}.layout__content{flex:1 0 auto}.footer{flex-shrink:0;border-top:1px solid #3e4451;padding:1rem 1.5rem;text-align:center;color:var(--muted);font-size:.8rem}.app{max-width:1100px;margin:0 auto;padding:2rem 1.5rem}.signin{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;text-align:center;min-height:70vh}.signin__logo{width:120px;height:120px;object-fit:contain;margin-bottom:.5rem}.signin__title{margin:0;color:var(--heading);font-size:1.8rem}.signin__subtitle{margin:0 0 .5rem;color:var(--muted)}.app--centred{display:flex;flex-direction:column;align-items:flex-start;gap:1rem}.app__header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.5rem}.app__header h1{margin:0 0 .25rem;font-size:1.8rem;color:var(--heading)}.app__header p{margin:0;color:var(--muted)}.app__controls{display:flex;align-items:center;gap:.75rem}.app__filter{display:flex;align-items:center;gap:.4rem;color:var(--muted);font-size:.85rem}.app__filter select{background:var(--panel);color:var(--text);border:1px solid #3e4451;border-radius:6px;padding:.35rem .5rem}.app__status{color:var(--muted)}.app__error{background:#3a1515;border:1px solid #e0556c;color:#ffb3bd;border-radius:8px;padding:.75rem 1rem;margin:0 0 1rem}.btn{background:var(--panel);color:var(--text);border:1px solid #3e4451;border-radius:6px;padding:.4rem .85rem;font-size:.85rem;cursor:pointer}.btn:hover:not(:disabled){border-color:var(--accent)}.btn:disabled{opacity:.6;cursor:default}.btn--primary{background:var(--accent);border-color:var(--accent);color:#21252b;font-weight:600;padding:.5rem 1.1rem}.stages{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;align-items:start}.stage{background:var(--panel);border-radius:10px;padding:1rem;min-height:160px}.stage h2{display:flex;justify-content:space-between;align-items:center;margin:0 0 .75rem;font-size:1rem;color:var(--heading);border-bottom:2px solid var(--accent);padding-bottom:.5rem}.stage__count{background:var(--bg);color:var(--muted);border-radius:999px;font-size:.75rem;padding:.1rem .5rem}.stage[data-stage=failed] h2{border-bottom-color:#e0556c}.stage__empty{color:var(--muted);font-size:.9rem}.post-card{display:block;background:var(--bg);border:1px solid #3e4451;border-radius:8px;padding:.75rem;margin-bottom:.6rem;text-decoration:none;color:inherit}.post-card:hover{border-color:var(--accent)}.post-card__title{margin:0 0 .35rem;font-size:.95rem}.post-card__summary{margin:0 0 .5rem;font-size:.82rem;color:var(--muted)}.post-card__meta{display:flex;justify-content:space-between;gap:.5rem;font-size:.72rem;color:var(--muted)}.post-card__slug{font-family:ui-monospace,SF Mono,Menlo,monospace}.post-card__score{display:inline-block;margin-top:.5rem;font-size:.72rem;color:var(--accent)}.detail{max-width:900px;margin:0 auto;padding:1.5rem}.detail__back{display:inline-block;margin-bottom:1rem;color:var(--muted);text-decoration:none}.detail__back:hover{color:var(--accent)}.detail__header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap}.detail__header h1{margin:0 0 .4rem;color:var(--heading)}.detail__meta{display:flex;align-items:center;gap:.6rem;margin:0;color:var(--muted)}.detail__actions{display:flex;gap:.5rem}.detail__notice{background:var(--panel);border-left:3px solid var(--accent);padding:.6rem .9rem;border-radius:4px}.detail__tabs{display:flex;gap:.25rem;border-bottom:1px solid var(--panel);margin:1.25rem 0 1rem}.detail__tab{background:none;border:none;border-bottom:2px solid transparent;color:var(--muted);padding:.5rem .9rem;cursor:pointer;font:inherit}.detail__tab--active{color:var(--text);border-bottom-color:var(--accent)}.detail__empty{color:var(--muted);font-style:italic}.badge{display:inline-block;font-size:.7rem;text-transform:uppercase;letter-spacing:.03em;padding:.1rem .45rem;margin-left:.4rem;border-radius:999px;background:var(--panel);color:var(--muted)}.badge--pass{background:#1d3a26;color:#8fe0a8}.badge--loop{background:#2a2a3f;color:#b3b8ff}.badge--fail-capped,.badge--fail-quorum,.badge--blocker{background:#3a1515;color:#ffb3bd}.article__toolbar{display:flex;justify-content:flex-end;margin-bottom:.5rem}.markdown{background:var(--panel);padding:1.25rem 1.5rem;border-radius:6px;line-height:1.65}.markdown img{max-width:100%;border-radius:4px}.markdown pre{overflow-x:auto;background:var(--bg);padding:.75rem;border-radius:4px}.editor__textarea{width:100%;min-height:60vh;background:var(--bg);color:var(--text);border:1px solid var(--panel);border-radius:6px;padding:1rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9rem;line-height:1.5;resize:vertical}.editor__actions{display:flex;gap:.5rem;margin-top:.75rem}.diff{background:var(--panel);border-radius:6px;padding:1rem;overflow-x:auto;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem;line-height:1.5}.diff__line{display:block;white-space:pre-wrap}.diff__line--added{background:#15301d;color:#8fe0a8}.diff__line--removed{background:#341416;color:#ffb3bd}.diff__line--same{color:var(--muted)}.reviews__iteration{margin-bottom:1.5rem}.review{background:var(--panel);border-radius:6px;padding:.8rem 1rem;margin-bottom:.6rem}.review--down{opacity:.7}.review header{display:flex;align-items:center;gap:.5rem;margin-bottom:.4rem}.review__score{margin-left:auto;color:var(--accent);font-weight:600}.review__critique{margin:0;white-space:pre-wrap;line-height:1.55}.images{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem}.images__item{margin:0;background:var(--panel);border-radius:6px;overflow:hidden}.images__item img{width:100%;display:block}.images__placeholder{display:flex;align-items:center;justify-content:center;height:160px;color:var(--muted)}.images__placeholder--failed{color:#ffb3bd}.images__item figcaption{padding:.6rem .8rem;font-size:.85rem;color:var(--muted)}:root{--bg: #282c34;--panel: #21252b;--text: #abb2bf;--heading: #ffffff;--muted: #5c6370;--accent: #98c379;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}
