:root{--brand-primary: #393185;--brand-primary-dark: #2a2463;--brand-accent: #009846;--brand-accent-dark: #007a38;--bg: #ffffff;--bg-soft: #f7f7f9;--text: #383838;--muted: #6d6d6d;--border: #dbdbdb;--ok: #009846;--warn: #b7791f;--danger: #d92d20;--gap: #ffd6d6;--gap-text: #b42318;--shadow: 0 2px 12px rgba(57, 49, 133, .08);--radius: 12px;font-family:Satoshi,Inter,system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0;background:#fff;color:var(--text);font-size:15px;line-height:1.5}h1{font-size:1.6rem;margin:0 0 .25rem;color:var(--brand-primary)}h2{font-size:1.15rem;margin:0 0 .75rem;color:var(--brand-primary)}.sub{color:var(--muted);margin:0 0 1.25rem}a{color:var(--brand-primary)}:focus-visible{outline:3px solid var(--brand-accent);outline-offset:2px}.shell{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.side{background:#fff;color:var(--text);padding:1.25rem 0;display:flex;flex-direction:column;border-right:1px solid var(--border)}.brand{font-size:1.5rem;font-weight:700;padding:0 1.25rem 1.25rem;letter-spacing:.3px;color:var(--brand-primary)}.brand b{color:var(--brand-accent);font-weight:700}.brand small{display:block;font-size:.72rem;font-weight:400;color:var(--muted);letter-spacing:0}.nav a{display:block;padding:.7rem 1.25rem;color:var(--text);text-decoration:none;border-left:4px solid transparent}.nav a:hover{background:var(--bg-soft);color:var(--brand-primary)}.nav a.active{background:#eeedf7;border-left-color:var(--brand-accent);color:var(--brand-primary);font-weight:700}.who{margin-top:auto;padding:1rem 1.25rem;font-size:.85rem;border-top:1px solid var(--border);color:var(--text)}.who a{color:var(--brand-primary)}.who button{margin-top:.5rem}.main{padding:1.75rem 2rem;min-width:0}.card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem;box-shadow:none;margin-bottom:1.25rem}.grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.stat{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.25rem;border-top:4px solid var(--brand-accent)}.stat .n{font-size:1.9rem;font-weight:700;color:var(--brand-primary)}.stat .l{color:var(--muted);font-size:.85rem}button,.btn{font:inherit;cursor:pointer;border-radius:8px;padding:.45rem .9rem;border:1px solid var(--brand-primary);background:#fff;color:var(--brand-primary)}button:hover:not(:disabled){background:var(--bg-soft)}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--brand-accent);border-color:var(--brand-accent);color:#fff;font-weight:700}button.primary:hover:not(:disabled){background:var(--brand-accent-dark)}button.solid{background:var(--brand-primary);color:#fff}button.solid:hover:not(:disabled){background:var(--brand-primary-dark)}button.ok{border-color:var(--ok);color:var(--ok)}button.bad{border-color:var(--danger);color:var(--danger)}button.sm{padding:.15rem .5rem;font-size:.8rem}.linklike{background:none;border:none;color:var(--brand-primary);text-decoration:underline;padding:0}input,select{font:inherit;padding:.5rem .7rem;border:1px solid var(--border);border-radius:8px;background:#fff;width:100%}label{display:block;font-size:.85rem;font-weight:700;margin:.75rem 0 .25rem}.row{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}.row>*{width:auto}.checks{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem}.checks label{font-weight:400;margin:0;display:flex;gap:.4rem;align-items:center}.checks input{width:auto}.err{color:var(--danger);margin:.5rem 0}.okmsg{color:var(--ok)}table{border-collapse:collapse;width:100%;font-size:.9rem}th,td{border-bottom:1px solid var(--border);padding:.5rem .65rem;text-align:left;vertical-align:top}th{background:var(--bg-soft);color:var(--brand-primary);position:sticky;top:0}.tablewrap{overflow:auto;max-height:70vh;border:1px solid var(--border);border-radius:var(--radius);background:#fff}.matrix th:first-child,.matrix td:first-child{position:sticky;left:0;background:#fff;min-width:280px;z-index:1;border-right:2px solid var(--border)}.matrix th:first-child{background:var(--bg-soft);z-index:2}.matrix td.cell{text-align:center;cursor:pointer;min-width:110px}.matrix td.cell:hover{background:#e6f5ec}.gapcol{background:var(--gap)!important}th.gapcol{color:var(--gap-text)}.sec td{background:#eeedf7;color:var(--brand-primary);font-weight:700;letter-spacing:.5px}.badge{display:inline-block;padding:.05rem .5rem;border-radius:999px;font-size:.75rem;font-weight:700;background:#eee}.badge.APPROVED,.badge.DONE,.badge.FOUND{background:#d6f0e0;color:var(--ok)}.badge.REJECTED,.badge.FAILED,.badge.NOT_FOUND{background:#fde1de;color:var(--danger)}.badge.PENDING,.badge.RUNNING,.badge.QUEUED,.badge.PARTIAL,.badge.AMBIGUOUS{background:#fdf0d3;color:var(--warn)}.badge.GAP{background:var(--gap);color:var(--gap-text)}.tabs{display:flex;gap:.25rem;border-bottom:2px solid var(--border);margin-bottom:1rem;flex-wrap:wrap}.tabs button{border:none;border-bottom:3px solid transparent;border-radius:0;margin-bottom:-2px}.tabs button.on{border-bottom-color:var(--brand-accent);font-weight:700}.modalbg{position:fixed;top:0;right:0;bottom:0;left:0;background:#1f1d2e80;display:grid;place-items:center;z-index:50;padding:1rem}.modal{background:#fff;border-radius:var(--radius);padding:1.5rem;width:min(560px,100%);max-height:90vh;overflow:auto}.login{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,var(--brand-primary) 0%,#2f2a6e 55%,var(--brand-accent) 160%);padding:1rem}.login .card{width:min(420px,100%);margin:0}.login h1{text-align:center}.login .brand{color:var(--brand-primary);text-align:center;padding:0 0 .5rem;font-size:1.8rem}.colhead{display:flex;flex-direction:column;gap:.25rem;align-items:center;min-width:130px}.colhead .acts{display:flex;gap:.2rem}.muted{color:var(--muted)}.right{margin-left:auto}@media (max-width: 800px){.shell{grid-template-columns:1fr}.side{flex-direction:row;flex-wrap:wrap;padding:.5rem;align-items:center}.brand{padding:.5rem}.nav{display:flex;flex-wrap:wrap}.who{margin:0 0 0 auto;border:0}.main{padding:1rem}}.drawerbg{position:fixed;top:0;right:0;bottom:0;left:0;background:#1f1d2e66;z-index:50;display:flex;justify-content:flex-end}.drawer{background:#fff;width:min(640px,100%);height:100%;overflow:auto;padding:1.25rem;border-left:1px solid var(--border);box-shadow:var(--shadow)}.drawer h3{font-size:1rem;color:var(--brand-primary)}.kv{display:grid;grid-template-columns:140px 1fr;gap:.4rem .75rem;margin:.75rem 0 0}.kv dt{font-weight:700;color:var(--muted);font-size:.85rem}.kv dd{margin:0;overflow-wrap:anywhere}.chip{display:inline-block;background:#eeedf7;color:var(--brand-primary);border-radius:6px;padding:.05rem .45rem;margin:0 .35rem .25rem 0}.snippet{white-space:pre-wrap;background:var(--bg-soft);border:1px solid var(--border);border-radius:8px;padding:.5rem;margin:0;font:inherit;font-size:.85rem}.bar{height:12px;background:var(--bg-soft);border:1px solid var(--border);border-radius:999px;overflow:hidden;margin:.5rem 0}.bar>div{height:100%;background:var(--brand-accent);transition:width .3s}.empty{border:1px dashed var(--border);border-radius:var(--radius);padding:2rem;text-align:center;color:var(--muted);background:#fff}.unavail{color:var(--gap-text);background:var(--gap)}.badge.PAUSED,.badge.BLOCKED{background:#fdf0d3;color:var(--warn)}.badge.ERROR,.badge.STOPPED{background:var(--gap);color:var(--gap-text)}.badge.COMPLETED{background:#d6f0e0;color:var(--ok)}.matrix th[colspan]{border-left:2px solid var(--border)}.matrix td,.matrix th{white-space:nowrap}.matrix td:first-child{white-space:normal}.preview th,.preview td{white-space:nowrap}.skip{position:absolute;left:-999px}.skip:focus{left:8px;top:8px;background:#fff;padding:.5rem;z-index:100}@media (max-width: 800px){.kv{grid-template-columns:1fr}}
