:root{color-scheme:dark;--bg: #090909;--bg-2: #111111;--surface: #161616;--elevated: #1D1D1D;--border: #2A2A2A;--divider: #232323;--accent: #D92C2C;--accent-hover: #C42121;--accent-pressed: #A91B1B;--accent-tint: rgba(217, 44, 44, .12);--focus: rgba(217, 44, 44, .4);--danger: #D92C2C;--success: #2E8B57;--warning: #E09F3E;--info: #4D8DFF;--text: #F4F4F4;--text-2: #B0B0B0;--muted: #7A7A7A;--disabled: #555555;--on-accent: #FFFFFF;--shadow-pop: 0 4px 10px rgba(0, 0, 0, .18);--r-btn: 8px;--r-card: 10px;--r-dialog: 12px;--font: "Inter", "Geist", "SF Pro Display", "Segoe UI", Roboto, system-ui, -apple-system, sans-serif;--mono: "Geist Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--fz-display: 42px;--fz-h: 30px;--fz-sub: 22px;--fz-body: 15px;--fz-sm: 13px;--fz-cap: 12px}:root[data-theme=light],html[data-theme=light]{color-scheme:light;--bg: #FFFFFF;--bg-2: #FAFAFA;--surface: #FAFAFA;--elevated: #F0F0F0;--border: #E5E5E5;--divider: #ECECEC;--accent: #D92C2C;--accent-hover: #C42121;--accent-pressed: #A91B1B;--accent-tint: rgba(217, 44, 44, .08);--text: #1A1A1A;--text-2: #666666;--muted: #8A8A8A;--disabled: #B0B0B0;--shadow-pop: 0 4px 10px rgba(0, 0, 0, .08)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font);font-size:var(--fz-body);line-height:1.5;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3{margin:0;font-weight:600;letter-spacing:-.01em}p{margin:0}a{color:var(--text);text-decoration:none}code,pre{font-family:var(--mono)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.muted{color:var(--muted)}.brand{display:inline-flex;align-items:center;gap:10px;font-size:16px;font-weight:600;letter-spacing:-.02em;color:var(--text)}.brand .mark{width:20px;height:20px;border-radius:6px;background:var(--accent);flex:none;position:relative}.brand .mark:after{content:"";position:absolute;top:6px;right:6px;bottom:6px;left:6px;border-radius:2px;background:var(--on-accent);opacity:.92}.brand .sub{color:var(--muted);font-weight:400;font-size:var(--fz-sm)}.login-wrap{min-height:100%;display:grid;place-items:center;padding:24px;background:var(--bg)}.login{width:100%;max-width:380px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-dialog);padding:32px;box-shadow:var(--shadow-pop)}.login .brand{font-size:18px;margin-bottom:24px}.login .tagline{color:var(--text-2);font-size:var(--fz-sm);margin:-16px 0 24px}.login form{display:flex;flex-direction:column;gap:16px}.seg{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;margin-bottom:24px;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r-btn)}.seg button{border:0;background:transparent;color:var(--text-2);font-weight:500;font-size:var(--fz-sm);padding:8px;border-radius:6px;cursor:pointer;transition:background .15s ease-out,color .15s ease-out}.seg button:hover{color:var(--text)}.seg button.on{background:var(--elevated);color:var(--text)}.app{min-height:100%;display:grid;grid-template-columns:236px 1fr;background:var(--bg)}.sidebar{position:sticky;top:0;align-self:start;height:100vh;display:flex;flex-direction:column;gap:4px;padding:20px 12px;background:var(--bg-2);border-right:1px solid var(--divider)}.sidebar .brand{padding:4px 8px 20px}.sidebar nav{display:flex;flex-direction:column;gap:2px;flex:1}.navitem{display:flex;align-items:center;gap:10px;min-height:36px;padding:8px 10px;border:0;border-left:2px solid transparent;border-radius:6px;background:transparent;color:var(--text-2);font:inherit;font-size:var(--fz-body);font-weight:500;text-align:left;cursor:pointer;width:100%;transition:background .15s ease-out,color .15s ease-out}.navitem svg{width:18px;height:18px;flex:none}.navitem:hover{background:var(--surface);color:var(--text)}.navitem.active{background:var(--elevated);color:var(--text);border-left-color:var(--accent);border-radius:0 6px 6px 0}.sidebar .foot{border-top:1px solid var(--divider);padding-top:12px;margin-top:4px;display:flex;flex-direction:column;gap:8px}.userchip{display:flex;align-items:center;gap:10px;padding:4px 8px}.avatar{width:28px;height:28px;border-radius:6px;background:var(--elevated);border:1px solid var(--border);color:var(--text);display:grid;place-items:center;font-weight:500;font-size:var(--fz-sm);flex:none}.userchip .who{font-size:var(--fz-sm);overflow:hidden}.userchip .who b{display:block;color:var(--text);font-weight:500;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.userchip .who span{color:var(--muted);font-size:var(--fz-cap)}.content{padding:32px 48px 64px;max-width:1080px}.content-docs{padding:0;max-width:none}.docs-frame{width:100%;height:100vh;border:0;display:block;background:var(--bg)}.page-head{margin-bottom:32px}.page-head h2{font-size:var(--fz-h);font-weight:600}.page-head p{margin-top:8px;color:var(--text-2);font-size:var(--fz-body)}.page-head .kbd{font-family:var(--mono);font-size:var(--fz-cap);color:var(--muted);margin-left:10px;font-weight:400}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);padding:20px;margin-bottom:16px}.card h3{font-size:16px;font-weight:600;margin-bottom:16px}.notice{border-color:var(--border);background:var(--bg-2);color:var(--text-2);font-size:var(--fz-sm)}.notice code{color:var(--text);font-family:var(--mono);word-break:break-all}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}.stat{display:flex;flex-direction:column;gap:2px;padding:16px 18px;margin:0}.stat .icon{color:var(--muted);margin-bottom:10px;height:16px}.stat .icon svg{width:16px;height:16px}.stat-value{font-size:26px;font-weight:600;letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1.15}.stat-label{color:var(--text-2);font-size:var(--fz-sm)}input,textarea,select{width:100%;font:inherit;font-size:var(--fz-body);color:var(--text);background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r-btn);padding:9px 12px;min-height:38px;transition:border-color .15s ease-out,box-shadow .15s ease-out}textarea{resize:vertical;min-height:72px}input::placeholder,textarea::placeholder{color:var(--muted)}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--focus)}.field{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.field>span{font-size:var(--fz-sm);font-weight:500;color:var(--text-2)}.row{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap;margin-bottom:16px}.row>*{margin-bottom:0}button{font:inherit;font-size:var(--fz-body);font-weight:500;cursor:pointer;border-radius:var(--r-btn);border:1px solid transparent;padding:9px 16px;min-height:38px;color:var(--text);transition:background .15s ease-out,border-color .15s ease-out,transform .1s ease-out,color .15s ease-out}button:active:not(:disabled){transform:scale(.98)}button:disabled{opacity:.5;cursor:default}button.primary,form>button[type=submit]{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}button.primary:hover:not(:disabled),form>button[type=submit]:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}button.primary:active:not(:disabled),form>button[type=submit]:active:not(:disabled){background:var(--accent-pressed)}.row button[type=submit],button.secondary{background:var(--surface);color:var(--text);border-color:var(--border)}.row button[type=submit]:hover,button.secondary:hover{background:var(--elevated)}button.ghost{background:transparent;color:var(--text-2);border-color:transparent}button.ghost:hover{background:var(--elevated);color:var(--text)}button.danger{background:transparent;color:var(--danger);border-color:transparent;padding:6px 10px;min-height:32px;font-size:var(--fz-sm)}button.danger:hover{background:var(--accent-tint)}button.logout{background:transparent;color:var(--text-2);border-color:var(--border)}button.logout:hover{background:var(--elevated);color:var(--text)}button.link{background:none;border:0;color:var(--text-2);padding:4px;min-height:auto}button.link:hover{color:var(--text)}.table-wrap{border:1px solid var(--border);border-radius:var(--r-card);overflow:hidden}.table{width:100%;border-collapse:collapse;background:var(--surface)}.table thead th{text-align:left;font-size:var(--fz-cap);text-transform:uppercase;letter-spacing:.04em;font-weight:500;color:var(--muted);padding:12px 16px;border-bottom:1px solid var(--divider)}.table tbody td{padding:14px 16px;border-bottom:1px solid var(--divider);font-size:var(--fz-body);color:var(--text-2);vertical-align:middle}.table tbody tr:last-child td{border-bottom:0}.table tbody tr{transition:background .15s ease-out}.table tbody tr:hover td{background:var(--bg-2)}.table td.num{text-align:right;font-variant-numeric:tabular-nums}.table code{font-family:var(--mono);font-size:var(--fz-sm);color:var(--muted)}.badge{display:inline-flex;align-items:center;font-size:var(--fz-cap);font-weight:500;color:var(--text-2)}.badge.role-owner{color:var(--text)}.status{display:inline-flex;align-items:center;gap:6px;font-size:var(--fz-sm);color:var(--text-2)}.status .dot{width:6px;height:6px;border-radius:50%;background:var(--muted);flex:none}.status.ok .dot{background:var(--success)}.error{background:var(--accent-tint);border:1px solid transparent;border-left:2px solid var(--danger);color:var(--text);padding:10px 14px;border-radius:var(--r-btn);font-size:var(--fz-sm);margin:12px 0}.result{padding:16px}.result .result-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.result code{color:var(--text);font-size:var(--fz-sm);word-break:break-all}.score{font-family:var(--mono);font-size:var(--fz-cap);color:var(--text-2)}.snippet{color:var(--text-2);font-size:var(--fz-sm);margin:4px 0 10px}details summary{cursor:pointer;font-size:var(--fz-cap);color:var(--muted)}pre{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r-btn);padding:16px;overflow:auto;font-size:var(--fz-sm);color:var(--text-2)}.empty{color:var(--muted);padding:32px;font-size:var(--fz-body);text-align:center}.access-state{display:inline-flex;align-items:center;gap:8px;font-size:var(--fz-sm);color:var(--text-2);margin-bottom:16px}.access-state .dot{width:7px;height:7px;border-radius:50%;flex:none}.access-state.open .dot{background:var(--success)}.access-state.restricted .dot{background:var(--warning)}.engine-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;margin-bottom:8px}.engine-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);padding:18px 20px;display:flex;flex-direction:column;gap:8px;transition:border-color .15s ease-out}.engine-card:hover{border-color:var(--border-strong)}.engine-head{display:flex;align-items:center;gap:10px}.engine-ico{color:var(--text-2);display:inline-flex}.engine-name{font-weight:500;font-size:var(--fz-body);color:var(--text)}.engine-desc{color:var(--text-2);font-size:var(--fz-sm);line-height:1.5;flex:1}.engine-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:4px}.engine-foot code{font-family:var(--mono);font-size:var(--fz-cap);color:var(--muted)}.engine-metric{font-size:var(--fz-cap);font-weight:500;color:var(--text-2);background:var(--bg-2);border:1px solid var(--border);padding:2px 8px;border-radius:6px;white-space:nowrap}.perm-table th:not(:first-child),.perm-table td:not(:first-child){text-align:center;width:88px}.perm-cap{color:var(--text);font-weight:500}.perm-yes{color:var(--text)}.perm-no{color:var(--disabled)}.perm-note{color:var(--muted);font-size:var(--fz-sm);margin-top:12px;line-height:1.5}.section-label{font-size:16px;font-weight:600;margin:32px 0 12px}@media (max-width: 800px){.app{grid-template-columns:1fr}.sidebar{position:static;height:auto;flex-direction:row;flex-wrap:wrap;align-items:center;border-right:0;border-bottom:1px solid var(--divider)}.sidebar nav{flex-direction:row;flex-wrap:wrap}.sidebar .brand{width:100%}.navitem{border-left:0;border-bottom:2px solid transparent}.navitem.active{border-left:0;border-bottom-color:var(--accent);border-radius:6px}.navitem span{display:none}.sidebar .foot{border-top:0}.content{padding:24px 20px 48px}}@media (prefers-reduced-motion: reduce){*{transition:none!important}}
