:root{--bg:#fafafa;--surface:#fff;--border:#ebebeb;--text:#252525;--text-dim:#8e8e8e;--primary:#343434;--primary-hover:#1f1f1f;--accent:#2563eb;--ok:#15803d;--ok-bg:#ecf8f1;--warn:#b45309;--warn-bg:#fdf4e5;--danger:#b91c1c;--danger-bg:#fdecec;--muted-bg:#f7f7f7;--radius:10px;--radius-lg:14px;--ring:#2525251f}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:14px;line-height:1.5}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.topbar{background:var(--surface);border-bottom:1px solid var(--border);z-index:40;justify-content:space-between;align-items:center;padding:12px 24px;display:flex;position:sticky;top:0}.topbar .brand{letter-spacing:-.01em;font-size:15px;font-weight:700}.topbar .brand a{color:var(--text)}.topbar .brand span{color:var(--accent)}.topbar .user{color:var(--text-dim);align-items:center;gap:12px;font-size:13px;display:flex}.container{max-width:1180px;margin:0 auto;padding:24px}h1{letter-spacing:-.01em;margin:0 0 4px;font-size:20px}h3,h4{letter-spacing:-.01em}.subtitle{color:var(--text-dim);margin:0 0 20px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:18px}.apps-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px;display:grid}.app-card{color:inherit;transition:border-color .15s,box-shadow .15s;display:block}.app-card:hover{border-color:#d4d4d4;text-decoration:none;box-shadow:0 4px 16px #0000000f}.app-card h2{margin:0 0 2px;font-size:16px}.app-card .tenant{color:var(--text-dim);margin-bottom:12px;font-size:12.5px}.app-card .counts{flex-wrap:wrap;gap:6px;display:flex}.badge{background:var(--muted-bg);color:var(--text-dim);white-space:nowrap;border-radius:999px;padding:1.5px 9px;font-size:12px;font-weight:600;display:inline-block}.badge.approved{background:var(--ok-bg);color:var(--ok)}.badge.pending_review,.badge.discovered{background:var(--warn-bg);color:var(--warn)}.badge.needs_reapproval{color:#6d28d9;background:#ede9fe}.badge.excluded,.badge.deprecated{background:var(--danger-bg);color:var(--danger)}.badge.generated{color:#0369a1;background:#e0f2fe}.tabs{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);flex-wrap:wrap;gap:0;margin:18px 0 12px;display:inline-flex;overflow:hidden}.tabs button{border:none;border-right:1px solid var(--border);cursor:pointer;color:var(--text-dim);background:0 0;padding:7px 16px;font-size:13px}.tabs button:last-child{border-right:none}.tabs button:hover{background:var(--muted-bg)}.tabs button.active{background:var(--muted-bg);color:var(--text);font-weight:600}table.docs{border-collapse:collapse;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;overflow:hidden}table.docs th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim);border-bottom:1px solid var(--border);background:var(--muted-bg);padding:10px 12px;font-size:11.5px}table.docs td{border-bottom:1px solid var(--border);vertical-align:top;padding:10px 12px}table.docs tr:last-child td{border-bottom:none}table.docs tbody tr:hover{background:#00000005}.doc-path{font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:12.5px}.doc-title{color:var(--text-dim);font-size:12.5px}.warning-line{color:var(--warn);margin-top:3px;font-size:12px}.actions{gap:6px;display:flex}button.btn,a.btn{border:1px solid var(--border);background:var(--surface);cursor:pointer;color:var(--text);border-radius:8px;padding:6px 13px;font-size:12.5px;font-weight:600;transition:background .12s,border-color .12s;display:inline-block}a.btn:hover{text-decoration:none}button.btn:hover:not(:disabled),a.btn:hover{background:var(--muted-bg)}button.btn:disabled{opacity:.45;cursor:not-allowed}button.btn.approve{background:var(--ok);border-color:var(--ok);color:#fff}button.btn.approve:hover:not(:disabled){background:#116632}button.btn.exclude{color:var(--danger);background:#fff;border-color:#f3caca}button.btn.exclude:hover:not(:disabled){background:var(--danger-bg)}button.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}button.btn.primary:hover:not(:disabled){background:var(--primary-hover)}.toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.job-status{color:var(--text-dim);margin-top:6px;font-size:12.5px}.error-box{background:var(--danger-bg);color:var(--danger);border-radius:var(--radius);margin:12px 0;padding:10px 14px;font-size:13px}.notice-box{background:var(--ok-bg);color:var(--ok);border-radius:var(--radius);margin:12px 0;padding:10px 14px;font-size:13px}.empty{color:var(--text-dim);text-align:center;padding:40px 0}.doc-link{cursor:pointer;color:var(--accent);text-align:left;font-size:inherit;background:0 0;border:none;padding:0}.doc-link:hover{text-decoration:underline}.modal-overlay{z-index:50;background:#00000080;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;width:min(920px,100%);max-height:88vh;display:flex;box-shadow:0 18px 60px #00000038}.modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:16px;padding:16px 20px;display:flex}.modal-body{padding:20px 24px;overflow-y:auto}.modal-footer{border-top:1px solid var(--border);justify-content:flex-end;gap:8px;padding:12px 20px;display:flex}.markdown{font-size:14px}.markdown h1,.markdown h2,.markdown h3{line-height:1.3}.markdown h1{font-size:20px}.markdown h2{margin-top:24px;font-size:17px}.markdown h3{font-size:15px}.markdown pre{color:#e5e5e5;background:#171717;border-radius:8px;padding:12px 14px;font-size:12.5px;overflow-x:auto}.markdown code{font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:12.5px}.markdown :not(pre)>code{background:var(--muted-bg);border-radius:4px;padding:1px 5px}.markdown table{border-collapse:collapse;margin:12px 0}.markdown th,.markdown td{border:1px solid var(--border);padding:6px 10px}.markdown blockquote{border-left:3px solid var(--border);color:var(--text-dim);margin:12px 0;padding:2px 14px}.markdown img{max-width:100%}.metrics-row{flex-wrap:wrap;gap:10px;margin:14px 0 2px;display:flex}.metric{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-dim);padding:10px 16px;font-size:12.5px}.metric span{color:var(--text);font-size:16px;font-weight:700;display:block}.prompt-pre{white-space:pre-wrap;background:var(--muted-bg);border-radius:8px;margin:0;padding:14px;font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:12.5px}.login-wrap{place-items:center;min-height:100vh;display:grid}.login-card{width:360px}.login-card h1{text-align:center;margin-bottom:18px}.field{margin-bottom:12px}.field label{color:var(--text-dim);margin-bottom:4px;font-size:12.5px;font-weight:600;display:block}.field input{border:1px solid var(--border);background:var(--surface);border-radius:8px;width:100%;padding:9px 12px;font-size:14px}.field input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--ring);outline:none}.login-card button{width:100%;margin-top:6px;padding:10px;font-size:14px}input:focus,select:focus,textarea:focus{box-shadow:0 0 0 3px var(--ring);outline:none;border-color:var(--primary)!important}select{background:var(--surface)}label{color:var(--text);font-size:13px}.app-footer{text-align:center;color:var(--text-dim);padding:18px 0 14px;font-size:11.5px}
