:root{color-scheme:dark;--bg:#07111f;--panel:#102033;--panel-2:#0b1929;--line:rgba(151,176,205,.18);--text:#ecf5ff;--muted:#8ea5bf;--blue:#42a5ff;--green:#43d6a0;--red:#ff7272;--yellow:#f2c463} *{box-sizing:border-box} [hidden]{display:none!important} body{margin:0;min-width:720px;min-height:520px;color:var(--text);background:radial-gradient(circle at 75% 0,rgba(45,130,220,.18),transparent 35%),var(--bg);font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:13px} .app-header{display:flex;justify-content:space-between;align-items:center;padding:22px 28px;border-bottom:1px solid var(--line);background:rgba(5,14,25,.76)} h1{margin:5px 0 2px;font-size:24px} h2{margin:0;font-size:19px} h3{margin:0 0 10px;font-size:16px} h4{margin:0 0 8px;font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em} .app-header p{margin:0;color:var(--muted);font-size:11px} .eyebrow{color:var(--blue);font-size:10px;font-weight:800;letter-spacing:.17em} main{padding:18px 28px 30px} .panel{border:1px solid var(--line);border-radius:14px;background:rgba(16,32,51,.82)} .toolbar{display:flex;align-items:end;gap:10px;padding:14px 16px;flex-wrap:wrap} .toolbar label{display:grid;gap:6px;min-width:240px;color:var(--muted);font-size:11px} .privilege{display:grid;gap:6px;color:var(--muted);font-size:11px;margin-right:auto} select,input,textarea,.button,.mini{border:1px solid var(--line);border-radius:8px;color:var(--text);background:var(--panel-2);padding:8px 10px;font:inherit} textarea{width:100%;resize:vertical;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px} select:focus-visible,input:focus-visible,textarea:focus-visible,button:focus-visible{outline:2px solid var(--blue);outline-offset:1px} .button,.mini{cursor:pointer} .button.primary{background:linear-gradient(135deg,#267dd1,#3867e8);border-color:#458cea} .button.danger{border-color:rgba(255,114,114,.45);color:#ffb4b4;background:rgba(255,114,114,.08)} .button.ghost{background:transparent} .button:disabled,.mini:disabled{opacity:.4;cursor:not-allowed} .sudo-mark{font-size:9px;color:var(--yellow);letter-spacing:.04em;text-transform:uppercase} .mini{padding:4px 7px;font-size:10px} .mini.danger{border-color:rgba(255,114,114,.35);color:#ffaaaa} .status{min-height:18px;margin:10px 2px;color:var(--muted);font-size:12px} .status.error{color:var(--red)} .layout{display:grid;grid-template-columns:minmax(330px,5fr) minmax(380px,7fr);gap:14px;align-items:start} .list{display:flex;flex-direction:column;min-height:420px} .list-head{display:flex;gap:8px;padding:12px;border-bottom:1px solid var(--line);flex-wrap:wrap} .list-head input{flex:1;min-width:120px} .table-wrap{overflow:auto} .list .table-wrap{max-height:calc(100vh - 290px);min-height:240px} table{width:100%;border-collapse:collapse;font-size:11px} th,td{padding:9px 10px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top} th{color:var(--muted);background:var(--panel-2);font-size:10px;font-weight:600} thead th{position:sticky;top:0;z-index:1} tbody tr:last-child td{border-bottom:0} tbody tr.selected{background:rgba(66,165,255,.1)} .row-button{all:unset;cursor:pointer;display:grid;gap:2px;width:100%} .row-button:focus-visible{outline:2px solid var(--blue);outline-offset:2px;border-radius:4px} .row-button small{color:var(--yellow);font-size:10px} .sub{display:block;color:var(--muted);font-size:10px;font-weight:400} .empty{text-align:center;color:var(--muted);padding:32px} .note{margin:0;padding:10px 12px;color:var(--muted);font-size:11px;border-top:1px solid var(--line)} .note:empty{display:none} .badge{display:inline-block;padding:2px 7px;border-radius:999px;font-size:10px;white-space:nowrap;background:rgba(142,165,191,.14);color:var(--muted)} .badge.ok{background:rgba(67,214,160,.12);color:var(--green)} .badge.warn{background:rgba(242,196,99,.13);color:var(--yellow)} .badge.danger{background:rgba(255,114,114,.13);color:var(--red)} .badges{display:flex;gap:4px;flex-wrap:wrap} .detail{padding:16px 18px;min-height:420px} .empty-detail{color:var(--muted);text-align:center;padding:80px 20px} .detail-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:10px} .detail-head p{margin:4px 0 0;color:var(--muted);font-size:11px} .notice{margin:8px 0;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:rgba(66,165,255,.06);color:var(--muted);font-size:11px} .notice p{margin:0 0 6px} .notice.warn{border-color:rgba(242,196,99,.35);background:rgba(242,196,99,.07);color:#f5d999} .tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin:12px 0;flex-wrap:wrap} .tabs [role=tab]{border:0;border-bottom:2px solid transparent;background:transparent;color:var(--muted);padding:8px 10px;font:inherit;cursor:pointer} .tabs [role=tab][aria-selected=true]{color:var(--text);border-bottom-color:var(--blue)} .tab-panel{display:grid;gap:12px} .sub-panel{border:1px solid var(--line);border-radius:10px;padding:12px;background:rgba(11,25,41,.5)} .info-grid{display:grid;grid-template-columns:minmax(140px,auto) 1fr;gap:6px 14px;margin:0;font-size:12px} .info-grid dt{color:var(--muted)} .info-grid dd{margin:0;word-break:break-word} .inline-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center} .hint{margin:0;color:var(--muted);font-size:11px;line-height:1.45} .error{margin:0;color:var(--red);font-size:12px} .muted{color:var(--muted)} .mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;word-break:break-all} .chip-list{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 0;padding:0} .chip-list li{display:flex;gap:6px;align-items:center;border:1px solid var(--line);border-radius:999px;padding:3px 4px 3px 10px;font-size:11px} .chip-list li.muted{border:0;padding:0} .details-list{margin:6px 0;padding-left:18px;color:var(--muted);font-size:11px} .policy-table th[scope=row]{background:transparent;color:var(--text);font-size:11px;min-width:150px} .policy-table td{vertical-align:middle} .segmented{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden} .segmented label{position:relative;cursor:pointer} .segmented input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer} .segmented span{display:block;padding:6px 9px;font-size:11px;color:var(--muted);border-right:1px solid var(--line)} .segmented label:last-child span{border-right:0} .segmented input:checked+span{background:rgba(66,165,255,.22);color:var(--text)} .segmented input:focus-visible+span{outline:2px solid var(--blue);outline-offset:-2px} .segmented input:disabled+span{opacity:.55;cursor:not-allowed} tr.invalid td{color:var(--yellow)} dialog{border:1px solid var(--line);border-radius:14px;background:#0d1b2d;color:var(--text);padding:20px 22px;width:min(560px,calc(100vw - 40px));max-height:calc(100vh - 40px);overflow:auto} dialog::backdrop{background:rgba(2,8,16,.7)} dialog form{display:grid;gap:12px} dialog label{display:grid;gap:6px;color:var(--muted);font-size:11px} dialog label.check,.check{display:flex;align-items:center;gap:8px} dialog p{margin:0;font-size:12px;line-height:1.45} dialog fieldset{border:1px solid var(--line);border-radius:10px;display:grid;gap:10px;padding:12px} dialog legend{color:var(--muted);font-size:11px;padding:0 6px} #createDialog{width:min(720px,calc(100vw - 40px))} .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px} .actions{display:flex;justify-content:flex-end;gap:8px;margin-top:4px} code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px} @media(max-width:1100px){.layout{grid-template-columns:1fr}.list .table-wrap{max-height:340px}} @media(max-width:860px){main,.app-header{padding-left:18px;padding-right:18px}.form-grid{grid-template-columns:1fr}.toolbar label{min-width:180px}} /* Right-to-left languages (ar, fa, ur): terminals, editors, code, paths and logs stay left-to-right. */ [dir="rtl"] .xterm, [dir="rtl"] .monaco-editor, [dir="rtl"] pre, [dir="rtl"] code, [dir="rtl"] textarea, [dir="rtl"] input:not([type="checkbox"]):not([type="radio"]) { direction: ltr; unicode-bidi: isolate; }