:root{--bg: #0f1115;--bg2: #171a21;--bg3: #1f232d;--border: #2a2f3a;--text: #e6e8ee;--muted: #8b93a5;--accent: #6ea8fe;--accent2: #3ddc97;--warn: #ffb454;--danger: #ff6b6b;--radius: 8px;font-family:ui-sans-serif,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);font-size:14px;line-height:1.45}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{margin:0 0 .5rem;font-weight:600}h1{font-size:1.4rem}h2{font-size:1.1rem}h3{font-size:.95rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}code,pre{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px}pre{background:var(--bg3);padding:.6rem .8rem;border-radius:var(--radius);overflow-x:auto;white-space:pre-wrap;word-break:break-word;margin:.4rem 0}.layout{display:grid;grid-template-columns:220px 1fr;min-height:100vh}.sidebar{background:var(--bg2);border-right:1px solid var(--border);padding:1rem;display:flex;flex-direction:column;gap:.25rem}.brand{font-weight:700;letter-spacing:.08em;font-size:1rem;margin-bottom:1rem;color:var(--accent2)}.sidebar a{color:var(--text);padding:.45rem .6rem;border-radius:var(--radius)}.sidebar a.active,.sidebar a:hover{background:var(--bg3);text-decoration:none}.sidebar .status{margin-top:auto;color:var(--muted);font-size:12px}.main{padding:1.5rem 2rem;max-width:1200px}@media (max-width: 800px){.layout{grid-template-columns:1fr}.sidebar{flex-direction:row;flex-wrap:wrap}.sidebar .status{display:none}.main{padding:1rem}}.row{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}.between{justify-content:space-between}.grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.cols{display:grid;gap:1.5rem;grid-template-columns:1fr 1fr}@media (max-width: 1000px){.cols{grid-template-columns:1fr}}.card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:1rem}.card+.card{margin-top:.75rem}.muted{color:var(--muted)}.small{font-size:12px}.section{margin-bottom:1.75rem}button,.btn{background:var(--bg3);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);padding:.4rem .8rem;cursor:pointer;font:inherit}button:hover{border-color:var(--accent)}button.primary{background:var(--accent);color:#0b1020;border-color:var(--accent);font-weight:600}button.danger{color:var(--danger)}button.sm{padding:.2rem .5rem;font-size:12px}button:disabled{opacity:.5;cursor:not-allowed}input,textarea,select{background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);padding:.45rem .6rem;font:inherit;width:100%}textarea{min-height:80px;resize:vertical}label{display:block;font-size:12px;color:var(--muted);margin-bottom:.2rem}.field{margin-bottom:.7rem}form.inline{display:grid;gap:.6rem}.badge{display:inline-block;padding:.1rem .5rem;border-radius:999px;font-size:11px;background:var(--bg3);color:var(--muted);border:1px solid var(--border)}.badge.proposed{color:var(--warn);border-color:var(--warn)}.badge.todo{color:var(--accent)}.badge.in_progress{color:var(--accent2)}.badge.done{color:var(--accent2);border-color:var(--accent2)}.badge.running{color:var(--warn);border-color:var(--warn)}.badge.failed,.badge.rejected{color:var(--danger);border-color:var(--danger)}.badge.queued{color:var(--muted)}.list{list-style:none;padding:0;margin:0}.list li{padding:.6rem 0;border-bottom:1px solid var(--border)}.list li:last-child{border-bottom:0}.item-title{font-weight:600}.error{color:var(--danger)}.feed{max-height:420px;overflow:auto;font-size:12.5px}.feed .ev{padding:.3rem 0;border-bottom:1px dashed var(--border)}.step{border-left:2px solid var(--border);padding-left:.7rem;margin:.5rem 0}.step .k{color:var(--muted);font-size:11px;text-transform:uppercase}.modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:grid;place-items:center;z-index:10}.modal .card{width:min(420px,90vw)}.checks{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.3rem}.checks label{display:flex;gap:.4rem;align-items:center;color:var(--text);font-size:13px}.checks input{width:auto}.roller-widget{position:relative;overflow:hidden}.roller-fullscreen-open{position:absolute;top:0;right:0;z-index:4;padding:.3rem .55rem;font-size:15px}.roller-fullscreen-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem}.roller-fullscreen-close{position:fixed;top:1.25rem;right:1.5rem;z-index:1001;font-size:1rem;padding:.5rem .9rem}.roller-widget-full{width:min(1400px,94vw)}.roller-viewport{position:relative;overflow:hidden;height:176px;border-radius:var(--radius);background:linear-gradient(180deg,var(--bg) 0%,var(--bg3) 50%,var(--bg) 100%);border:1px solid var(--border)}.roller-viewport:before,.roller-viewport:after{content:"";position:absolute;top:0;bottom:0;width:60px;z-index:2;pointer-events:none}.roller-viewport:before{left:0;background:linear-gradient(90deg,var(--bg2),transparent)}.roller-viewport:after{right:0;background:linear-gradient(270deg,var(--bg2),transparent)}.roller-pointer{position:absolute;left:50%;top:0;bottom:0;width:2px;background:var(--accent2);transform:translate(-50%);z-index:3;box-shadow:0 0 8px var(--accent2)}.roller-track{display:flex;padding:13px 0;will-change:transform}.roller-item{flex:0 0 auto;border:2px solid var(--border);border-radius:var(--radius);background:var(--bg3);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.4rem;padding:.5rem}.roller-item-img{width:60%;height:46%;display:flex;align-items:center;justify-content:center;font-size:1.6rem}.roller-item-img img{max-width:100%;max-height:100%;object-fit:contain}.roller-item-name{font-size:11px;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%;color:var(--muted)}.roller-result{font-size:14px}.image-picker{position:relative;min-height:92px;border:1px dashed var(--border);border-radius:var(--radius);background:var(--bg);display:flex;align-items:center;justify-content:center;padding:.5rem;cursor:pointer;text-align:center}.image-picker:focus{outline:none;border-color:var(--accent)}.image-picker.drag{border-color:var(--accent);background:var(--bg3)}.image-picker-preview{max-height:80px;max-width:100%;object-fit:contain}.image-picker-clear{position:absolute;top:4px;right:4px;padding:0 .35rem;line-height:1.4;font-size:11px}
