:root{--bg: #0f1419;--bg-panel: #171d25;--bg-row: #1c2430;--border: #2a3441;--text: #e8eef5;--muted: #8b9aab;--accent: #3d9a7a;--accent-dim: #2a6b55;--warn: #c9a227;--danger: #c45c5c;--mono: "IBM Plex Mono", ui-monospace, monospace;--sans: "IBM Plex Sans", system-ui, sans-serif}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{font-family:var(--sans);background:radial-gradient(ellipse 80% 50% at 10% -10%,#1a3a32 0%,transparent 55%),radial-gradient(ellipse 60% 40% at 100% 0%,#1a2838 0%,transparent 50%),var(--bg);color:var(--text)}button,input,select{font:inherit}button{cursor:pointer}.muted{color:var(--muted)}.brand{margin:0;font-size:.85rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--accent)}.login-shell{min-height:100vh;display:grid;place-items:center;padding:1.5rem;animation:fade-in .45s ease-out}.login-panel{width:min(22rem,100%);padding:1.75rem;background:color-mix(in srgb,var(--bg-panel) 92%,transparent);border:1px solid var(--border);border-radius:10px;display:flex;flex-direction:column;gap:.85rem;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.login-panel h1{margin:0;font-size:1.6rem;font-weight:600}.lede{margin:-.4rem 0 .4rem;color:var(--muted);font-size:.95rem}.login-panel label{display:flex;flex-direction:column;gap:.35rem;font-size:.85rem;color:var(--muted)}.login-panel input{padding:.55rem .65rem;border-radius:6px;border:1px solid var(--border);background:var(--bg);color:var(--text)}.login-panel button,.page button{padding:.55rem .9rem;border-radius:6px;border:1px solid var(--accent-dim);background:var(--accent);color:#04140f;font-weight:600}.login-panel button:disabled{opacity:.6;cursor:wait}.ghost{background:transparent!important;color:var(--text)!important;border-color:var(--border)!important;font-weight:500!important}.error{color:var(--danger);margin:0;font-size:.9rem}.error.banner{margin:0 1.5rem 1rem}.page{max-width:1200px;margin:0 auto;padding:1.5rem 1.25rem 3rem;animation:fade-in .4s ease-out}.menu{position:relative}.page button.ghost:disabled{opacity:.6;cursor:wait}.page button.menu-item{background:transparent;color:var(--text);border:1px solid transparent;font-weight:500}.menu-list{position:absolute;top:calc(100% + 4px);right:0;z-index:20;min-width:18rem;padding:.3rem;background:var(--bg-panel);border:1px solid var(--border);border-radius:8px;box-shadow:0 12px 32px #00000059}.page button.menu-item{display:block;width:100%;text-align:left;border-radius:6px;padding:.5rem .7rem}.page button.menu-item:hover:not(:disabled){background:var(--bg-row)}.page button.menu-item:disabled{opacity:.45;cursor:not-allowed}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:grid;place-items:center;padding:1.5rem;background:#080c109e}.dialog{width:min(26rem,100%);padding:1.25rem 1.35rem 1.15rem;background:var(--bg-panel);border:1px solid var(--border);border-radius:10px;box-shadow:0 18px 48px #00000073}.dialog h2{margin:0 0 .45rem;font-size:1.15rem;font-weight:600}.dialog p{margin:0;color:var(--muted)}.dialog-error{margin-top:.75rem!important}.dialog-actions{display:flex;justify-content:flex-end;gap:.6rem;margin-top:1.1rem}.page button.danger{background:var(--danger);border-color:#8d3e3e;color:#1a0909}.page button.danger:disabled{opacity:.6;cursor:wait}.top{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.25rem}.top h1{margin:.15rem 0 0;font-size:1.75rem;font-weight:600}.top-actions{display:flex;align-items:center;gap:.75rem}.tabs{display:flex;gap:.25rem;margin:0 0 1.25rem;border-bottom:1px solid var(--border)}.page button.tab{background:transparent;color:var(--muted);border:none;border-bottom:2px solid transparent;border-radius:0;padding:.55rem .95rem;margin-bottom:-1px;font-weight:500}.page button.tab.active{color:var(--text);border-bottom-color:var(--accent)}.page button.tab:hover{color:var(--text)}.log-lede{margin:0 0 .9rem}.kind{font-size:.72rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.kind.request{color:var(--muted)}.kind.ok{color:var(--accent)}.kind.denied{color:var(--danger)}.kind.closed{color:var(--warn)}.kind.limit{color:var(--danger)}.summary{display:grid;grid-template-columns:auto auto 1fr auto;gap:1rem 1.5rem;align-items:end;padding:1rem 1.15rem;margin-bottom:1.25rem;background:var(--bg-panel);border:1px solid var(--border);border-radius:10px}.summary strong{display:block;margin-top:.2rem;font-size:.86rem;font-weight:600;line-height:1.2;font-variant-numeric:tabular-nums}.bar-track{position:relative;align-self:center;height:1.75rem}.bar-wrap{position:absolute;left:0;right:0;bottom:0;height:.45rem;background:#2c453a;border-radius:999px;overflow:hidden}.bar{height:100%;background:linear-gradient(90deg,var(--accent-dim),var(--accent));transition:width .5s ease}.bar-soft{position:absolute;bottom:0;z-index:2;width:16px;height:100%;transform:translate(-50%);pointer-events:auto}.bar-soft-mark{position:absolute;left:50%;bottom:0;width:16px;height:1.6rem;overflow:visible;transform:translate(-50%);filter:drop-shadow(0 0 3px color-mix(in srgb,var(--warn) 70%,transparent))}.bar-soft-stem{fill:none;stroke:#f0d36a;stroke-width:1.6;stroke-linecap:round}.bar-soft-gem{stroke:#7a5a16;stroke-width:.7;stroke-linejoin:round}.filter{display:flex;flex-direction:column;gap:.3rem;font-size:.8rem;color:var(--muted)}.filter select{padding:.4rem .5rem;border-radius:6px;border:1px solid var(--border);background:var(--bg);color:var(--text)}.instance{margin-bottom:1.5rem}.instance-head{display:flex;align-items:baseline;gap:.75rem;margin-bottom:.6rem}.instance-head h2{margin:0;font-size:1.15rem;font-weight:600}.pill{font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;padding:.15rem .45rem;border-radius:4px;border:1px solid var(--border)}.pill.ok{color:var(--accent);border-color:var(--accent-dim)}.pill.stale{color:var(--warn)}.table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:8px;background:var(--bg-panel)}table{width:100%;border-collapse:collapse;font-size:.88rem}th,td{padding:.55rem .7rem;text-align:left;border-bottom:1px solid var(--border);vertical-align:top}th{font-weight:500;color:var(--muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.03em;background:color-mix(in srgb,var(--bg) 50%,var(--bg-panel))}.page th button.sort-btn{display:inline-flex;align-items:center;gap:.3rem;margin:0;padding:0;border:none;border-radius:0;background:transparent;color:inherit;font:inherit;font-weight:500;letter-spacing:inherit;text-transform:inherit}.page th button.sort-btn:hover,.page th button.sort-btn.active{color:var(--text)}.sort-mark{font-size:.7rem;color:var(--muted)}.page th button.sort-btn.active .sort-mark{color:var(--accent)}tbody tr:hover{background:var(--bg-row)}tr.workspace-row{cursor:pointer}tr.workspace-row.open{background:var(--bg-row)}tr.workspace-detail:hover{background:transparent}tr.workspace-detail td{background:color-mix(in srgb,var(--bg) 70%,var(--bg-panel));padding:.9rem 1rem 1rem}.detail-panel{position:relative}.page button.detail-refresh{position:absolute;top:0;right:0;z-index:1;padding:.28rem .7rem;font-size:.78rem}.page button.detail-refresh:disabled{opacity:.6;cursor:wait}.detail-refresh-error{position:absolute;top:2rem;right:0;margin:0;font-size:.78rem;text-align:right}.detail-grid .detail-wide:first-child{padding-right:6.5rem}.detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem 1.5rem;margin:0}.detail-grid div{min-width:0}.detail-grid .detail-wide{grid-column:1 / -1}.detail-grid dt{margin:0;font-size:.72rem;font-weight:500;letter-spacing:.03em;text-transform:uppercase;color:var(--muted)}.detail-grid dd{margin:.15rem 0 0;word-break:break-word}code{font-family:var(--mono);font-size:.82em}.num{font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--muted)}.empty{color:var(--muted);font-style:italic;margin:.4rem 0 .8rem;padding-left:.2rem}@keyframes fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media(max-width:800px){.summary{grid-template-columns:1fr 1fr}.bar-track,.filter{grid-column:1 / -1}.top{flex-direction:column}}
