:root,[data-bs-theme=light]{--app-font: "Inter", "Segoe UI", system-ui, -apple-system, sans-serif;--app-radius: .75rem;--app-radius-sm: .5rem;--app-bg: #ffffff;--app-bg-accent-1: transparent;--app-bg-accent-2: transparent;--app-bg-accent-3: transparent;--app-surface: #ffffff;--app-surface-2: #f8fafc;--app-surface-elevated: #ffffff;--app-border: rgba(15, 23, 42, .08);--app-border-strong: rgba(15, 23, 42, .14);--app-text: #0f172a;--app-text-muted: #64748b;--app-shadow: 0 1px 2px rgba(15, 23, 42, .04), 0 8px 24px rgba(15, 23, 42, .06);--app-shadow-lg: 0 4px 6px rgba(15, 23, 42, .04), 0 20px 48px rgba(15, 23, 42, .1);--app-shadow-hover: 0 4px 12px rgba(15, 23, 42, .08), 0 16px 40px rgba(15, 23, 42, .1);--app-navbar-bg: rgba(255, 255, 255, .82);--app-navbar-border: rgba(15, 23, 42, .06);--app-brand: #2563eb;--app-brand-soft: rgba(37, 99, 235, .1);--app-chat-surface: #f8fafc;--app-chat-footer: #ffffff;--app-modal-backdrop: rgba(15, 23, 42, .45);--app-upload-hover: rgba(37, 99, 235, .06);--bs-body-bg: var(--app-bg);--bs-body-color: var(--app-text);--bs-border-color: var(--app-border);--bs-primary: #2563eb;--bs-primary-rgb: 37, 99, 235;--bs-link-color: #2563eb;--bs-link-hover-color: #1d4ed8}[data-bs-theme=dark]{--app-bg: #0b1120;--app-bg-accent-1: rgba(59, 130, 246, .14);--app-bg-accent-2: rgba(139, 92, 246, .1);--app-bg-accent-3: rgba(16, 185, 129, .08);--app-surface: #111827;--app-surface-2: #0f172a;--app-surface-elevated: #1e293b;--app-border: rgba(148, 163, 184, .12);--app-border-strong: rgba(148, 163, 184, .22);--app-text: #e2e8f0;--app-text-muted: #94a3b8;--app-shadow: 0 1px 2px rgba(0, 0, 0, .2), 0 8px 24px rgba(0, 0, 0, .28);--app-shadow-lg: 0 4px 6px rgba(0, 0, 0, .24), 0 20px 48px rgba(0, 0, 0, .36);--app-shadow-hover: 0 4px 12px rgba(0, 0, 0, .3), 0 16px 40px rgba(0, 0, 0, .38);--app-navbar-bg: rgba(15, 23, 42, .88);--app-navbar-border: rgba(148, 163, 184, .1);--app-brand: #60a5fa;--app-brand-soft: rgba(96, 165, 250, .14);--app-chat-surface: #0f172a;--app-chat-footer: #111827;--app-modal-backdrop: rgba(2, 6, 23, .72);--app-upload-hover: rgba(96, 165, 250, .1);--bs-body-bg: var(--app-bg);--bs-body-color: var(--app-text);--bs-border-color: var(--app-border);--bs-primary: #3b82f6;--bs-primary-rgb: 59, 130, 246;--bs-link-color: #93c5fd;--bs-link-hover-color: #bfdbfe}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;font-family:var(--app-font);background:var(--app-bg);color:var(--app-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::selection{background:#2563eb38}[data-bs-theme=dark] ::selection{background:#60a5fa47}.app-shell{position:relative;min-height:100vh;isolation:isolate}.app-shell__bg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse 80% 50% at 10% -10%,var(--app-bg-accent-1),transparent 55%),radial-gradient(ellipse 60% 45% at 90% 0%,var(--app-bg-accent-2),transparent 50%),radial-gradient(ellipse 50% 40% at 50% 100%,var(--app-bg-accent-3),transparent 55%),var(--app-bg)}.app-shell__content{min-height:100vh}.app-main{max-width:1600px;margin:0 auto;padding:1rem 1.25rem 2rem}@media(min-width:1200px){.app-main{padding-left:1.75rem;padding-right:1.75rem}}.page{min-height:calc(100vh - 80px)}.min-w-0{min-width:0}.app-navbar{position:sticky;top:0;z-index:1030;padding:.65rem 1.25rem}.app-navbar.navbar-dark.bg-primary{background:#1e293b!important;border-bottom:none;box-shadow:0 2px 16px #1e293b47}.app-navbar .navbar-brand{color:#fff!important;font-weight:700;letter-spacing:-.01em;display:flex;align-items:center}.app-navbar .navbar-brand img{height:30px;width:auto}.theme-toggle-btn{width:2.25rem;height:2.25rem;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;border:1px solid var(--app-border);background:var(--app-surface);color:var(--app-text);transition:background .2s,border-color .2s,transform .15s}.theme-toggle-btn:hover{background:var(--app-surface-2);border-color:var(--app-border-strong);transform:translateY(-1px)}.theme-toggle-btn--on-dark{border-color:#fff6;background:#ffffff1f;color:#fff}.theme-toggle-btn--on-dark:hover{background:#ffffff38;border-color:#ffffff8c;color:#fff}.app-navbar .btn-nav-icon{width:2.25rem;height:2.25rem;padding:0;display:inline-flex;align-items:center;justify-content:center}.user-menu-btn{font-size:.8rem;padding:.3rem .6rem}.app-navbar .dropdown-menu{font-size:.82rem;min-width:10rem;padding:.25rem}.app-navbar .dropdown-item{padding:.4rem .6rem;border-radius:var(--app-radius-sm)}#app-breadcrumb .breadcrumb,#nav-breadcrumb{font-size:.85rem}#app-breadcrumb .breadcrumb{margin-bottom:0;--bs-breadcrumb-divider-color: var(--app-text-muted)}#app-breadcrumb .breadcrumb-item a{color:var(--app-text-muted);text-decoration:none}#app-breadcrumb .breadcrumb-item a:hover{color:var(--app-brand)}#app-breadcrumb .breadcrumb-item.active{color:var(--app-text)}.card{background:var(--app-surface);border:1px solid var(--app-border);border-radius:var(--app-radius);box-shadow:var(--app-shadow);transition:box-shadow .2s ease,border-color .2s ease,transform .2s ease}.card:hover{box-shadow:var(--app-shadow-hover)}.card-clickable{cursor:pointer}.card-clickable:hover{transform:translateY(-2px);border-color:var(--app-border-strong)}.card-header{background:var(--app-surface-2);border-bottom:1px solid var(--app-border)}.card-footer{background:transparent;border-top:1px solid var(--app-border)}.table{--bs-table-bg: var(--app-surface);--bs-table-color: var(--app-text);--bs-table-border-color: var(--app-border);--bs-table-hover-bg: var(--app-surface-2);font-size:.82rem}.table>:not(caption)>*>*{border-bottom-color:var(--app-border)}.table-light,.table>thead.table-light>tr>th{--bs-table-bg: var(--app-surface-2);--bs-table-color: var(--app-text-muted);font-weight:600;font-size:.8rem;text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}.tc-table th{background-color:var(--app-surface-2)!important;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.02em;color:var(--app-text-muted);white-space:nowrap;padding-top:.5rem;padding-bottom:.5rem}.tc-table td{font-size:.8rem;vertical-align:top;padding-top:.45rem;padding-bottom:.45rem}.tc-table .badge{font-size:.7rem}.tc-table .steps-cell{white-space:pre-line;max-width:320px}.bg-white{background-color:var(--app-surface)!important}.bg-light{background-color:var(--app-surface-2)!important}.nav-tabs{border-bottom-color:var(--app-border)}.nav-tabs .nav-link{color:var(--app-text-muted);border:none;border-bottom:2px solid transparent;border-radius:0;padding:.65rem 1rem;font-weight:500}.nav-tabs .nav-link:hover{color:var(--app-text);border-color:transparent;background:transparent}.nav-tabs .nav-link.active{color:var(--app-brand);background:transparent;border-bottom-color:var(--app-brand)}.card-header-tabs{margin-bottom:-1px}.form-control,.form-select{border:1px solid var(--app-border);background-color:var(--app-surface);color:var(--app-text);border-radius:var(--app-radius-sm);box-shadow:0 1px 2px #0f172a08;transition:border-color .15s,box-shadow .15s,background-color .15s}.form-control:hover:not(:focus):not(:disabled),.form-select:hover:not(:focus):not(:disabled){border-color:var(--app-border-strong)}.form-control:focus,.form-select:focus{border-color:rgba(var(--bs-primary-rgb),.5);box-shadow:0 0 0 3px rgba(var(--bs-primary-rgb),.12);background-color:var(--app-surface)}[data-bs-theme=dark] .form-control,[data-bs-theme=dark] .form-select{box-shadow:0 1px 2px #00000026}.form-select-sm,.form-control-sm{font-size:.8rem}.form-select-sm{font-weight:500;padding-top:.3rem;padding-bottom:.3rem}.btn{border-radius:var(--app-radius-sm);font-weight:500;letter-spacing:.01em;transition:color .15s,background-color .15s,border-color .15s,box-shadow .15s,transform .12s}.btn:active:not(:disabled){transform:translateY(1px)}.btn-primary,.btn-success,.btn-danger,.btn-info,.btn-warning,.btn-secondary{border:1px solid transparent;box-shadow:0 1px 2px #0f172a14}.btn-primary:hover,.btn-success:hover,.btn-danger:hover,.btn-info:hover,.btn-warning:hover,.btn-secondary:hover{box-shadow:0 2px 8px #0f172a1f}.btn-outline-secondary{--bs-btn-color: var(--app-text);--bs-btn-bg: var(--app-surface);--bs-btn-border-color: var(--app-border);--bs-btn-hover-bg: var(--app-surface-2);--bs-btn-hover-border-color: var(--app-border-strong);--bs-btn-hover-color: var(--app-text);--bs-btn-active-bg: var(--app-surface-2);--bs-btn-active-border-color: var(--app-border-strong);--bs-btn-active-color: var(--app-text);box-shadow:0 1px 2px #0f172a0a}[data-bs-theme=dark] .btn-outline-secondary{--bs-btn-bg: var(--app-surface-elevated);box-shadow:0 1px 3px #00000038}.btn-outline-primary{--bs-btn-color: var(--app-brand);--bs-btn-bg: rgba(var(--bs-primary-rgb), .06);--bs-btn-border-color: rgba(var(--bs-primary-rgb), .28);--bs-btn-hover-bg: rgba(var(--bs-primary-rgb), .12);--bs-btn-hover-border-color: rgba(var(--bs-primary-rgb), .45);--bs-btn-hover-color: var(--app-brand);--bs-btn-active-bg: rgba(var(--bs-primary-rgb), .16);--bs-btn-active-border-color: rgba(var(--bs-primary-rgb), .5);--bs-btn-active-color: var(--app-brand);box-shadow:0 1px 2px rgba(var(--bs-primary-rgb),.08)}.btn-outline-danger{--bs-btn-bg: rgba(220, 53, 69, .05);--bs-btn-border-color: rgba(220, 53, 69, .28);--bs-btn-hover-bg: rgba(220, 53, 69, .1);--bs-btn-hover-border-color: rgba(220, 53, 69, .45)}.btn-group .btn{box-shadow:none}.btn-group .btn-outline-secondary:not(.active){background:var(--app-surface)}.btn-group .btn-primary{box-shadow:inset 0 0 0 1px #ffffff1f}.btn-icon{width:2.125rem;height:2.125rem;padding:0;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.btn-sm.btn-icon{width:1.875rem;height:1.875rem}.page-detail-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}.page-detail-header h4{font-weight:700;letter-spacing:-.02em}.page-detail-meta{color:var(--app-text-muted);font-size:.875rem;display:inline-flex;align-items:center;gap:.35rem}.page-toolbar{display:flex;gap:.5rem;margin-bottom:1rem;flex-wrap:wrap}.bulk-action-bar{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;padding:.65rem 1rem;background:var(--app-surface-2);border-bottom:1px solid var(--app-border)}.filter-chip{border:1px solid var(--app-border)!important;background:var(--app-surface-2)!important;color:var(--app-text)!important;font-weight:500;padding:.35em .7em}.card>.bg-light.border-bottom{background:var(--app-surface-2)!important;border-bottom:1px solid var(--app-border)!important;padding:.65rem 1rem!important}.modal-backdrop-custom{background:var(--app-modal-backdrop)!important}.modal-content{border:1px solid var(--app-border);border-radius:var(--app-radius);box-shadow:var(--app-shadow-lg);background:var(--app-surface-elevated)}.modal-header,.modal-footer{border-color:var(--app-border)}.list-group-item{background:var(--app-surface);border-color:var(--app-border);color:var(--app-text)}.badge-pass{background-color:#198754;color:#fff}.badge-fail{background-color:#dc3545;color:#fff}.badge-skip{background-color:#ffc107;color:#000}.badge-pending{background-color:#6c757d;color:#fff}.badge-running{background-color:#0d6efd;color:#fff}.badge-stopped{background-color:#fd7e14;color:#fff}[data-bs-theme=dark] .badge.bg-light{background-color:var(--app-surface-elevated)!important;color:var(--app-text)!important;border-color:var(--app-border)!important}.badge.border.bg-light.text-dark{border-color:var(--app-border)!important;background:var(--app-surface-2)!important;color:var(--app-text)!important;font-weight:500}.priority-high{color:#dc3545;font-weight:600}.priority-medium{color:#fd7e14;font-weight:600}.priority-low{color:#198754;font-weight:600}.upload-zone{border:2px dashed var(--app-border-strong);border-radius:var(--app-radius);padding:2rem;text-align:center;cursor:pointer;transition:border-color .2s,background .2s;background:var(--app-surface-2)}.upload-zone:hover,.upload-zone.dragover{border-color:var(--app-brand);background:var(--app-upload-hover)}.loading-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--app-modal-backdrop);display:flex;align-items:center;justify-content:center;z-index:9999;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.run-progress{height:24px;border-radius:var(--app-radius-sm)}.screenshot-thumb{max-width:80px;max-height:60px;cursor:pointer;border:1px solid var(--app-border);border-radius:var(--app-radius-sm)}.page-header h4,.page-header .h4{font-weight:700;letter-spacing:-.02em;color:var(--app-text)}.empty-state{padding:3rem 1rem;color:var(--app-text-muted)}.empty-state i{opacity:.55}.chat-toggle-btn{bottom:20px;right:20px;width:56px;height:56px;z-index:1040;display:flex;align-items:center;justify-content:center;transition:transform .2s,box-shadow .2s;box-shadow:var(--app-shadow-lg)!important}.chat-toggle-btn:hover{transform:scale(1.06)}.chat-widget{bottom:85px;right:20px;width:380px;max-width:calc(100vw - 40px);background:var(--app-surface);border:1px solid var(--app-border);border-radius:var(--app-radius);overflow:hidden;z-index:1040;display:flex;flex-direction:column;box-shadow:var(--app-shadow-lg)}.chat-header{background:linear-gradient(135deg,var(--bs-primary),#4f46e5)!important;border-bottom:1px solid rgba(255,255,255,.1)}.chat-body{height:400px;display:flex;flex-direction:column;gap:10px;background:var(--app-chat-surface)!important}.chat-footer{background:var(--app-chat-footer)!important;border-top-color:var(--app-border)!important}.chat-msg{display:flex;flex-direction:column;max-width:85%}.chat-msg.user-msg{align-self:flex-end;align-items:flex-end}.chat-msg.assistant-msg{align-self:flex-start;align-items:flex-start}.msg-bubble{padding:10px 14px;border-radius:14px;font-size:.9rem;line-height:1.45;word-wrap:break-word}.user-msg .msg-bubble{background:linear-gradient(135deg,var(--bs-primary),#4f46e5);color:#fff;border-bottom-right-radius:4px}.assistant-msg .msg-bubble{background:var(--app-surface);border:1px solid var(--app-border);color:var(--app-text);border-bottom-left-radius:4px;white-space:pre-wrap}.chat-suggestion-btn{color:var(--app-text-muted)!important;background:var(--app-surface)!important;border-color:var(--app-border)!important}.chat-suggestion-btn:hover{border-color:var(--app-brand)!important;color:var(--app-brand)!important;background:var(--app-brand-soft)!important}.typing-indicator span{display:inline-block;width:6px;height:6px;background-color:var(--app-text-muted);border-radius:50%;margin-right:3px;animation:typing 1.4s infinite ease-in-out both}.typing-indicator span:nth-child(1){animation-delay:-.32s}.typing-indicator span:nth-child(2){animation-delay:-.16s}@keyframes typing{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}.chat-tc-link{display:inline-block;max-width:100%;white-space:normal;word-break:break-word;line-height:1.6;vertical-align:bottom;text-align:left}.tc-assign-teleport .dropdown-item,.tc-status-teleport .dropdown-item,.tc-manual-status-teleport .dropdown-item{color:var(--app-text);font-weight:500}.tc-assign-teleport .dropdown-menu,.tc-status-teleport,.tc-manual-status-teleport{background:var(--app-surface-elevated);border:1px solid var(--app-border)}.tc-assign-teleport .dropdown-item.active,.tc-assign-teleport .dropdown-item.active .text-muted{color:#fff!important}.tc-status-badge,.tc-manual-badge{cursor:pointer}.tc-status-popup{max-width:220px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--app-border-strong);border-radius:999px;border:2px solid transparent;background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background:var(--app-text-muted);background-clip:padding-box}.auth-callback-page{min-height:100vh;display:flex;align-items:center;justify-content:center}
