/* Tonitor workspace: neutral surfaces, restrained semantic color. */
:root {
 --bg-main:#101112; --bg-surface:#18191b; --bg-surface-light:#222426; --border-color:#303235;
 --text-primary:#ebedee; --text-secondary:#a6a9ad; --text-muted:#898d92;
 --color-cyan:#b5cf87; --color-cyan-transparent:rgba(181,207,135,.09); --color-cyan-glow:transparent;
 --color-danger:#ee8c83; --color-danger-transparent:rgba(238,140,131,.1); --color-danger-glow:transparent;
 --color-warning:#dfb96e; --color-warning-glow:transparent; --color-success:#91bdab; --color-success-glow:transparent;
 --color-purple:#a4afd5; --color-purple-glow:transparent;
 --font-sans:"Segoe UI",Arial,sans-serif; --font-mono:Consolas,"Courier New",monospace;
 --sidebar-width:244px; --header-height:68px; --transition-speed:.15s;
 color-scheme:dark;
}
body { font-size:14px; }
button,input,select,textarea {font:inherit}
a {color:var(--color-cyan)}
button:disabled {opacity:.45;cursor:wait}
:focus-visible {outline:2px solid var(--color-cyan);outline-offset:3px}
.skip-link {position:fixed;left:240px;top:-60px;z-index:9999;background:#b5cf87;color:#141613;padding:12px}
.skip-link:focus {top:12px}
.sidebar {background:#151617;border-color:var(--border-color);backdrop-filter:none;overflow-y:auto;transition:transform .2s}
.logo-section {padding:23px 20px;gap:11px;text-decoration:none;border-bottom:0;min-height:90px}
.brand-mark {display:grid;place-items:center;width:32px;height:34px;background:#b5cf87;color:#161a12;font-size:28px;font-weight:750;line-height:1;border-radius:4px;letter-spacing:-3px;padding-right:3px}
.logo-text {background:none;-webkit-text-fill-color:initial;color:#f1f2f2;font-size:24px;letter-spacing:-1px;font-weight:650;line-height:1;white-space:nowrap}
.brand-team {color:#4a7bb0;font-size:14px;font-weight:650;letter-spacing:-0.4px;margin-left:5px;vertical-align:baseline;display:inline-block}
.brand-caption {display:block;font-size:8px;letter-spacing:1.8px;color:var(--text-muted);margin-top:7px;font-weight:500}
.nav-menu {padding:0 12px 20px;gap:3px;display:flex;flex-direction:column}
.nav-section-label {padding:22px 12px 8px;font-size:9px;color:#7f8388;font-weight:650;letter-spacing:1.6px}
.nav-link {font-size:12px;gap:10px;padding:10px 12px;border:0;border-radius:5px;min-height:37px;flex-shrink:0}
.nav-link:hover {background:#202224;border:0;box-shadow:none}
.nav-link.is-active {background:#292e24;color:#cee1ad;box-shadow:inset 2px 0 #b5cf87}
.nav-icon {width:17px;height:17px;flex-shrink:0}
.sidebar-footer {border-top:1px solid var(--border-color);padding:16px 19px;color:var(--text-muted);font-size:10px;display:flex;align-items:center;gap:8px}
.sidebar-footer .mono {margin-left:auto}
.tiny-dot {width:5px;height:5px;border-radius:50%;background:var(--color-success)}
.top-header {background:#151617;backdrop-filter:none;border-color:var(--border-color);padding:0 30px}
.header-title-section {display:flex;align-items:center;gap:14px}
.header-title-section h1 {font-size:13px;letter-spacing:0;font-weight:500}
.header-breadcrumb {font-size:12px;color:var(--text-muted)}
.header-breadcrumb span {padding-left:14px;color:#51555a}
.header-meta {gap:22px;font-size:11px}
.status-indicator-bar {font-size:10px}
.pulse-dot {width:6px;height:6px;animation:none;box-shadow:none!important;background:var(--color-warning)}
.workspace-avatar {border:1px solid #414448;border-radius:50%;width:28px;height:28px;display:grid;place-items:center;font-size:9px;color:#cbd0d4}
.content-frame {padding:30px;max-width:1800px;width:100%;margin:0 auto}
.workspace-footer {display:flex;justify-content:space-between;align-items:center;gap:10px;margin:0 30px;padding:22px 0;font-size:10px;color:var(--text-muted);border-top:1px solid var(--border-color)}
.footer-credit {color:var(--text-muted);letter-spacing:0.3px}
.credit-team {color:#4a7bb0;font-weight:600}
.card {background:var(--bg-surface);border:1px solid var(--border-color);border-radius:6px;box-shadow:none;backdrop-filter:none;padding:22px;transform:none}
.card:hover {border-color:#3b3e42;transform:none;box-shadow:none}
.grid-container {gap:18px;margin-bottom:20px}
.stat-grid {grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-surface)}
.stat-grid .card {border:0;border-radius:0;background:none;border-right:1px solid var(--border-color);padding:22px}
.stat-grid .card:last-child {border-right:0}
.stat-info h3 {font-size:11px;text-transform:none;letter-spacing:0;font-weight:400}
.stat-number {font-family:var(--font-sans);font-size:34px;font-weight:500;letter-spacing:-1.3px;text-shadow:none;font-variant-numeric:tabular-nums}
.stat-icon,.logo-icon {display:none}
.stat-note {font-size:10px;color:var(--text-muted);margin-top:6px}
.btn {border-radius:4px;box-shadow:none!important;text-shadow:none!important;font-size:12px;font-weight:550;padding:9px 13px;min-height:35px;transform:none!important;text-decoration:none}
.btn-primary {background:#b5cf87!important;color:#1a2112!important;border:1px solid #b5cf87!important}
.btn-primary:hover {background:#c4dca0!important}
.btn-secondary,.btn-outline {background:#202224!important;color:#d8dadb!important;border:1px solid #3a3d40!important}
.btn-danger {background:#332421;color:var(--color-danger);border:1px solid #71413c}
.form-control {background:#111315;border:1px solid #383b3e;border-radius:4px;padding:9px 11px;font-size:12px;box-shadow:none!important}
.form-label {text-transform:none;letter-spacing:0;font-size:11px}
.table {font-size:12px;width:100%;border-collapse:collapse}
.table th {font-family:var(--font-sans);background:#1c1e20;color:#94999d;font-size:10px;font-weight:500;letter-spacing:.3px;padding:12px 14px;border-color:var(--border-color);text-transform:none}
.table td {padding:15px 14px;border-bottom:1px solid #2c2e30;color:#c2c6c9;vertical-align:middle}
.table tbody tr:hover {background:#1d1f21}
.table-responsive {overflow:auto}
.badge {box-shadow:none!important;border-radius:4px;text-shadow:none;font-size:10px;padding:3px 7px;font-weight:500}
.badge-critical,.badge-high,.tag-critical,.tag-high {color:#ee8c83;background:#332423}
.tag-medium {color:#dfb96e;background:#302b21}
.tag-info,.tag-low {color:#abb6d6;background:#262b37}
.tag-success {color:#a9cabe;background:#26332d}
.tag {display:inline-block;border-radius:3px;padding:3px 7px;font-size:10px;white-space:nowrap}
.modal-container {background:#181a1c;border:1px solid #404448;border-radius:7px;box-shadow:0 20px 80px #0009;max-height:90vh;overflow:auto}
.modal-overlay {background:#000a;backdrop-filter:none}
.modal-overlay:not(.active) {visibility:hidden}
.modal-overlay.active {visibility:visible}
.modal-body {overflow-wrap:anywhere}
.modal-footer {background:#191b1d}
.timeline-item::before {box-shadow:none;width:7px;height:7px;left:-28px;background:var(--color-cyan)}
.timeline-title {font-weight:500;font-size:13px}
.toast {box-shadow:0 8px 24px #0006;border-radius:4px}
.page-intro {display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:26px}
.eyebrow {font:10px var(--font-mono);letter-spacing:1.4px;color:var(--color-cyan);margin-bottom:8px}
.page-intro h2 {font-size:28px;font-weight:550;letter-spacing:-.8px;line-height:1.25;margin-bottom:8px}
.page-intro p {font-size:12px;color:var(--text-secondary);max-width:640px;line-height:1.7}
.actions {display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.section-head {display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}
.section-head h3 {font-size:13px;font-weight:550}
.section-head small,.muted {color:var(--text-muted);font-size:11px}
.mono {font-family:var(--font-mono)}
.toolbar {display:flex;gap:12px;align-items:end;flex-wrap:wrap;padding:16px 20px;background:var(--bg-surface);border:1px solid var(--border-color);border-radius:6px;margin-bottom:20px}
.toolbar label {display:flex;flex-direction:column;gap:5px;min-width:140px;font-size:10px;color:var(--text-secondary)}
.toolbar .search-field {flex:1;min-width:200px}
.tabs {display:flex;gap:22px;border-bottom:1px solid var(--border-color);margin:0 0 22px;overflow-x:auto}
.tabs button {background:none;border:0;border-bottom:2px solid transparent;color:var(--text-muted);padding:13px 0;font-size:12px;white-space:nowrap;cursor:pointer}
.tabs button[aria-selected="true"] {color:var(--text-primary);border-bottom-color:var(--color-cyan)}
.empty-state {padding:40px 24px;text-align:center;color:var(--text-muted);font-size:12px;line-height:1.8}
.empty-state strong {display:block;color:var(--text-secondary);font-weight:500;margin-bottom:5px}
.two-col {display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:20px;margin-bottom:20px}
.three-col {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:20px}
.source-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.source-card {border:1px solid var(--border-color);border-radius:5px;background:var(--bg-surface);padding:20px}
.source-card header {display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;gap:10px}
.source-card h3 {font-size:13px;font-weight:600}
.source-card p {font-size:11px;color:var(--text-secondary);min-height:36px;line-height:1.6}
.source-meta {border-top:1px solid var(--border-color);margin-top:16px;padding-top:12px;display:flex;justify-content:space-between;gap:12px;color:var(--text-muted);font-size:10px}
.source-actions {display:flex;align-items:center;gap:12px;margin-top:14px}
.source-actions a {font-size:10px;text-decoration:none}
.source-error {color:var(--color-warning)!important;font-size:10px!important;margin-top:10px;min-height:0!important}
.bar-row {display:grid;grid-template-columns:minmax(90px,1fr) minmax(50px,1fr) 38px 44px;gap:12px;align-items:center;font-size:11px;margin:18px 0}
.bar-track {height:5px;background:#2a2c2e;border-radius:1px}
.bar-fill {height:100%;background:var(--color-cyan);border-radius:1px}
.bar-row:nth-child(3n) .bar-fill {background:var(--color-purple)}
.bar-row:nth-child(3n+1) .bar-fill {background:var(--color-success)}
.brief-summary {border-left:3px solid var(--color-cyan);padding:20px 22px;background:#1b1e19;margin-bottom:20px;line-height:1.8;font-size:13px}
.brief-summary h3 {font-size:13px;margin-bottom:7px;color:#d3e2ba}
.quality-row {display:flex;justify-content:space-between;align-items:center;padding:13px 0;border-bottom:1px solid var(--border-color);font-size:12px}
.callout {padding:14px 18px;background:#22251f;border:1px solid #38422d;border-radius:4px;color:#c3d3ab;font-size:11px;line-height:1.7;margin-bottom:20px}
.detail-list {display:grid;grid-template-columns:120px minmax(0,1fr);gap:12px;font-size:12px}
.detail-list dt {color:var(--text-muted)}
.detail-list dd {margin:0;overflow-wrap:anywhere;white-space:pre-wrap}
.link-button {border:0;background:none;padding:0;color:var(--color-cyan);text-align:left;cursor:pointer;font-size:12px}
.pager {display:flex;justify-content:space-between;align-items:center;margin-top:16px;color:var(--text-muted);font-size:11px}
.row-title {max-width:500px;display:block;color:#e3e5e6;overflow-wrap:anywhere;margin-bottom:5px}
.row-subtitle {display:block;color:var(--text-muted);font:10px var(--font-mono);max-width:450px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.screenshot-image {display:block;max-width:100%;max-height:650px;margin:18px auto;object-fit:contain;border:1px solid var(--border-color)}
.remote-screenshot-frame {max-height:650px;overflow:auto;padding:0;text-align:left}
.remote-screenshot-frame .screenshot-image {width:100%;height:auto;max-height:none;margin:0;object-fit:initial}
.evidence-hash {font:10px var(--font-mono);overflow-wrap:anywhere;color:var(--text-muted)}
.checklist {list-style:none;padding:0}
.checklist li {padding:14px 0;border-bottom:1px solid var(--border-color);font-size:12px;line-height:1.7}
.checklist strong {display:block;font-size:12px;color:var(--text-primary);font-weight:550}
.checklist span {color:var(--text-secondary)}
.menu-toggle {display:none;background:none;border:0;color:var(--text-primary);font-size:18px}
@media(max-width:1100px) {.content-frame{padding:22px}.header-breadcrumb{display:none}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-grid .card:nth-child(2){border-right:0}.stat-grid .card:nth-child(-n+2){border-bottom:1px solid var(--border-color)}.three-col{grid-template-columns:1fr 1fr}}
@media(max-width:800px) {.sidebar{transform:translateX(-100%)}.sidebar-open .sidebar{transform:translateX(0);box-shadow:20px 0 80px #000a}.main-workspace{margin-left:0}.menu-toggle{display:block}.top-header{padding:0 18px}.content-frame{padding:20px 16px}.two-col,.three-col,.source-grid,.grid-container[style*="grid-template-columns"]{grid-template-columns:minmax(0,1fr)!important}.page-intro{flex-direction:column}.page-intro h2{font-size:25px}.workspace-footer{margin:0 16px;flex-wrap:wrap;gap:8px}.header-meta{gap:12px}.toolbar label{flex:1;min-width:120px}}
@media(prefers-reduced-motion:reduce) {*{animation:none!important;transition:none!important}}
[hidden] {display:none!important}

/* --- User Profile Dropdown Component --- */
.user-profile-menu { position: relative; }
.user-profile-btn {
    background: none;
    border: none;
    display: flex;
    align-items: center;
    gap: 9px;
    cursor: pointer;
    padding: 3px 6px;
    border-radius: 6px;
    transition: background var(--transition-speed);
}
.user-profile-btn:hover { background: rgba(255, 255, 255, 0.05); }
.user-meta { display: flex; flex-direction: column; text-align: left; }
.user-name { font-size: 11px; font-weight: 600; color: var(--text-primary); line-height: 1.2; }
.user-role-badge { font-size: 9px; font-weight: 600; letter-spacing: 0.3px; text-transform: uppercase; }
.user-dropdown {
    position: absolute;
    right: 0;
    top: calc(100% + 8px);
    width: 210px;
    background: #18191b;
    border: 1px solid var(--border-color);
    border-radius: 6px;
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.6);
    z-index: 1000;
    padding: 6px 0;
}
.dropdown-header { padding: 10px 14px; }
.dropdown-user { font-size: 13px; font-weight: 600; color: var(--text-primary); }
.dropdown-role { font-size: 10px; font-weight: 600; margin-top: 3px; }
.dropdown-divider { height: 1px; background: var(--border-color); margin: 4px 0; }
.dropdown-item {
    display: block;
    padding: 8px 14px;
    font-size: 12px;
    color: var(--text-secondary);
    text-decoration: none;
    transition: all var(--transition-speed);
}
.dropdown-item:hover { background: #222426; color: var(--text-primary); }
.dropdown-item.logout-item:hover { color: var(--color-danger); }
