:root{--primary: #6366f1;--primary-hover: #4f46e5;--bg: #0f172a;--card-bg: #1e293b;--text: #f8fafc;--text-muted: #94a3b8;--border: #334155;--success: #22c55e;--error: #ef4444;--warning: #f59e0b;--info: #3b82f6}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg);color:var(--text);font-family:Inter,-apple-system,sans-serif;line-height:1.5}.container{max-width:1280px;margin:0 auto;padding:2rem 2rem 3rem}.app-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2.5rem;gap:1rem}.logo{font-size:1.5rem;font-weight:700;background:linear-gradient(135deg,#818cf8,#c084fc);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;text-decoration:none}.auth-controls{display:flex;justify-content:flex-end}.auth-row{display:flex;align-items:center;gap:.75rem}.auth-row .text-muted{color:#dbe4ff;font-size:.95rem}.auth-row-wrap{flex-wrap:wrap}.auth-row-landing{justify-content:center}.auth-token-input{min-width:240px}.google-btn-wrap{display:inline-flex;align-items:center}.hidden{display:none}.card{background:var(--card-bg);border:1px solid var(--border);border-radius:1rem;padding:1.5rem;box-shadow:0 10px 15px -3px #0000001a}.dashboard-shell{display:grid;gap:1.75rem}.dashboard-login-card{display:grid;gap:.75rem;max-width:720px}.dashboard-login-shell{display:flex;justify-content:center;padding-top:2rem}.dashboard-login-card{width:min(100%,640px);justify-items:center;text-align:center;gap:1rem;padding:1.6rem 2rem 1.45rem;background:#243149f5;border-color:#94a3b824}.dashboard-login-title{font-size:2rem;font-weight:800;line-height:1.15}.dashboard-login-copy{max-width:34rem;color:#d2daee;font-size:.97rem}.dashboard-login-actions{display:flex;justify-content:center;align-items:stretch;gap:1rem;width:100%;margin-top:.25rem}.dashboard-login-btn,.dashboard-guest-btn{min-width:178px;min-height:48px;border-radius:.6rem}.dashboard-login-btn{box-shadow:0 10px 24px #6366f138}.dashboard-guest-btn{border-color:#94a3b838}.dashboard-login-note{color:var(--text-muted);font-size:.92rem}.dashboard-section{display:grid;gap:.25rem}.dashboard-section-title{font-size:1.75rem;font-weight:700;color:#f8fafc}.dashboard-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.dashboard-summary-card{min-height:118px;display:grid;place-items:center;background:#243149f0;border-color:#94a3b82e}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}.stat-card{text-align:center}.stat-label{color:var(--text-muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.05em}.stat-value{font-size:2rem;font-weight:800}.severity-critical{color:#fca5a5}.severity-serious{color:#fbbf24}.severity-moderate{color:#60a5fa}.btn{padding:.75rem 1.5rem;border-radius:.5rem;font-weight:600;cursor:pointer;transition:all .2s;border:none;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;text-decoration:none}.btn-primary{background-color:var(--primary);color:#fff}.btn-primary:hover{background-color:var(--primary-hover);transform:translateY(-1px)}.btn-outline{background:transparent;border:1px solid var(--border);color:var(--text)}.btn-outline:hover{background:#ffffff0d}.btn-danger{background:#ef44441f;border:1px solid rgba(239,68,68,.28);color:#fecaca}.btn-danger:hover{background:#ef444433;border-color:#f8717173}.text-link{color:#a5b4fc;text-decoration:none}.btn.small{padding:.55rem 1rem}.text-link:hover{text-decoration:underline}.btn:disabled{opacity:.7;cursor:not-allowed;transform:none}.badge{padding:.2rem .55rem;border-radius:.4rem;background:#6366f12e;color:#c7d2fe;font-size:.75rem;font-weight:700;text-transform:uppercase}input,textarea,select{width:100%;padding:.75rem 1rem;background:#0f172a;border:1px solid var(--border);border-radius:.5rem;color:#fff;font-family:Inter,-apple-system,sans-serif;font-size:1rem}textarea{resize:vertical;min-height:120px}textarea::placeholder,input::placeholder{color:var(--text-muted)}input:focus,textarea:focus,select:focus{outline:2px solid rgba(99,102,241,.35);border-color:var(--primary)}.input-group{display:flex;gap:.75rem;align-items:flex-start}.input-group input,.input-group textarea{margin-bottom:0;flex:1}.input-group .btn{flex-shrink:0;white-space:nowrap}.checkbox-label{display:inline-flex;align-items:center;gap:.5rem;cursor:pointer}.checkbox-label input[type=checkbox]{width:auto}.form-footer{display:flex;justify-content:space-between;align-items:center;gap:1rem}.scan-form-card{background:#243149f0;border-color:#94a3b829}.scan-form-header h2{font-size:1.9rem;line-height:1.2}.scan-form-toggle-row{display:flex;align-items:center}.dashboard-checkbox{gap:.45rem}.dashboard-checkbox input[type=checkbox]{width:auto;margin:0}.scan-input-group{align-items:stretch}.scan-input-group input,.scan-input-group textarea{background:#0f172ae6;border-color:#94a3b829}.scan-input-group .btn{min-width:160px}.scan-form-footer{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.scan-form-footer-left{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.scan-advanced-options{color:var(--text-muted)}.scan-advanced-options summary{cursor:pointer;list-style:none;color:#c7d2fe;font-size:.875rem;font-weight:600}.scan-advanced-options summary::-webkit-details-marker{display:none}.scan-advanced-panel{display:grid;gap:.6rem;min-width:240px;margin-top:.75rem;padding:.95rem 1rem;border:1px solid rgba(148,163,184,.18);border-radius:.85rem;background:#0f172acc}.error-inline,.success-inline{padding:.85rem 1rem;border-radius:.6rem;border:1px solid}.loading{text-align:center;padding:1.5rem 1rem}.spinner{width:36px;height:36px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin 1s linear infinite;margin:0 auto .75rem}@keyframes spin{to{transform:rotate(360deg)}}.breadcrumbs-nav{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;padding:.8rem 1rem;background:#1e293b99;border:1px solid var(--border);border-radius:.5rem}.page-header,.section-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.breadcrumb-item{color:var(--text);text-decoration:none;font-size:.9rem}.breadcrumb-item:hover{color:#a5b4fc}.breadcrumb-current,.breadcrumb-separator{color:var(--text-muted)}.filters-row{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.group-select{margin-left:.5rem;padding:.35rem .55rem;border-radius:.4rem;border:1px solid var(--border);background:#0f172a;color:var(--text)}.tag-list{display:flex;flex-wrap:wrap;gap:.5rem}.tag-chip{background:transparent;color:var(--text-muted);border:1px solid var(--border);border-radius:999px;padding:.25rem .65rem;font-size:.8rem}.tag-chip:disabled,.group-select:disabled{opacity:.65;cursor:not-allowed}.tag-chip.selected{color:#fff;border-color:var(--primary);background:#6366f140}.dashboard-recent-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1rem}.dashboard-site-card{display:grid;gap:1rem;padding:1.25rem;background:#0f172ab8;border:1px solid rgba(51,65,85,.95);border-radius:1rem;box-shadow:inset 0 1px #ffffff05;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}.dashboard-site-card:hover{transform:translateY(-3px);border-color:#6366f166;box-shadow:0 16px 30px #02061738}.dashboard-site-card-header{min-width:0}.dashboard-site-url{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:1.08rem;font-weight:700;color:#f8fafc}.dashboard-site-card-body{display:grid;gap:1rem}.dashboard-site-stats{display:flex;gap:1.5rem}.dashboard-site-stat{display:grid;gap:.25rem}.dashboard-site-stat-value{font-size:1.9rem;font-weight:800;color:#f8fafc}.dashboard-site-meta{display:flex;justify-content:space-between;align-items:center;gap:.75rem;flex-wrap:wrap}.dashboard-site-last-scan{color:var(--text-muted);font-size:.85rem}.dashboard-trend{padding:.28rem .5rem;border-radius:.4rem;font-size:.8rem;font-weight:700}.dashboard-trend-good{background:#22c55e24;color:#4ade80}.dashboard-trend-bad{background:#ef444429;color:#f87171}.dashboard-trend-neutral{background:#94a3b81f;color:#cbd5e1}.dashboard-site-card-footer{padding-top:1rem;border-top:1px solid rgba(51,65,85,.95)}.dashboard-view-link{color:var(--primary);font-size:.9rem;font-weight:700;text-decoration:none}.dashboard-view-link:hover{color:#a5b4fc}.dashboard-empty-state{display:grid;gap:.35rem}.violation-card h3{font-size:1.1rem}.feedback-panel{margin-top:1.25rem;padding-top:1.25rem;border-top:1px solid rgba(148,163,184,.2)}.feedback-shell{display:grid;gap:1.15rem;padding:1.2rem;border:1px solid rgba(99,102,241,.18);border-radius:1.1rem;background:radial-gradient(circle at top right,rgba(59,130,246,.16),transparent 42%),linear-gradient(180deg,#0f172aeb,#0f172ab8);box-shadow:inset 0 1px #ffffff0a,0 18px 36px #0206172e}.feedback-header,.feedback-section-header,.feedback-comment-top{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.feedback-section-summary{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap;justify-content:flex-end}.feedback-title{display:grid;gap:.35rem}.feedback-layout{display:grid;gap:1rem;grid-template-columns:minmax(0,1.35fr) minmax(280px,1fr)}.feedback-section{display:grid;gap:1rem;padding:1.1rem;border:1px solid rgba(148,163,184,.16);border-radius:1rem;background:#0f172a73;min-width:0}.feedback-section h5{font-size:.96rem}.feedback-status-pill{align-self:flex-start;padding:.45rem .8rem;border-radius:999px;border:1px solid rgba(148,163,184,.22);background:#1e293bcc;color:#e2e8f0;font-size:.76rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.feedback-status-inline{align-self:auto;padding:.24rem .6rem;font-size:.68rem}.feedback-status-false_positive{border-color:#f8717147;color:#fecaca}.feedback-status-true_positive{border-color:#22c55e3d;color:#bbf7d0}.feedback-status-other{border-color:#60a5fa38;color:#bfdbfe}.feedback-status-skip{border-color:#94a3b842;color:#cbd5e1}.feedback-label{font-size:.875rem;font-weight:600;color:#dbeafe;letter-spacing:.01em}.feedback-compose textarea,.feedback-inline-editor textarea{width:100%;min-height:150px}.feedback-status-field{display:grid;gap:.45rem}.feedback-select{margin-left:0}.feedback-comment-list{display:grid;gap:1rem}.feedback-comment-card{display:grid;gap:1rem;padding:1.15rem;border:1px solid rgba(148,163,184,.14);border-radius:1rem;background:linear-gradient(180deg,#1e293bc7,#0f172abd),#0f172a94;box-shadow:inset 0 1px #ffffff08}.feedback-comment-card-editing{border-color:#6366f14d;background:radial-gradient(circle at top right,rgba(99,102,241,.12),transparent 42%),linear-gradient(180deg,#1e293bdb,#0f172ac7);box-shadow:inset 0 1px #ffffff0a,0 10px 24px #0f172a3d}.feedback-comment-card-danger{border-color:#f8717147;background:radial-gradient(circle at top right,rgba(239,68,68,.12),transparent 42%),linear-gradient(180deg,#1e293bcc,#0f172abd)}.feedback-comment-heading{display:grid;gap:.45rem}.feedback-comment-heading-row{display:flex;flex-wrap:wrap;gap:.55rem;align-items:center}.feedback-comment-chip,.feedback-inline-badge,.feedback-inline-meta,.feedback-comment-id{display:inline-flex;align-items:center;padding:.22rem .55rem;border-radius:999px;font-size:.72rem;letter-spacing:.02em}.feedback-comment-chip,.feedback-comment-id{border:1px solid rgba(148,163,184,.18);background:#0f172a85;color:#cbd5e1}.feedback-comment-meta{margin-top:0;color:var(--text-muted);font-size:.78rem;line-height:1.5}.feedback-comment-body{display:grid;gap:.7rem;padding-top:.15rem}.feedback-comment-id{justify-self:flex-start}.feedback-comment-text{color:#dbeafe;line-height:1.65;white-space:pre-wrap;overflow-wrap:anywhere}.feedback-comment-button{min-width:74px}.feedback-comment-actions{display:flex;flex-wrap:nowrap;gap:.6rem;justify-content:flex-end;align-items:center}.feedback-comment-top{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1rem;align-items:start}.feedback-inline-editor{display:grid;gap:.85rem;padding-top:.15rem}.feedback-inline-banner{display:flex;justify-content:space-between;align-items:center;gap:.75rem;flex-wrap:wrap}.feedback-inline-badge{border:1px solid rgba(99,102,241,.26);background:#6366f129;color:#c7d2fe;font-weight:700;text-transform:uppercase}.feedback-inline-meta{border:1px solid rgba(148,163,184,.16);background:#0f172a7a;color:#94a3b8}.feedback-inline-supporting{margin-top:-.15rem;color:var(--text-muted);font-size:.78rem;line-height:1.5}.feedback-inline-grid{display:grid;grid-template-columns:minmax(0,240px);gap:.75rem}.feedback-inline-error{margin-top:-.1rem}.feedback-inline-actions{display:flex;justify-content:flex-end;gap:.65rem}@media(max-width:720px){.feedback-comment-top{grid-template-columns:minmax(0,1fr)}.feedback-comment-actions{justify-content:flex-start}}.feedback-delete-confirm{display:grid;gap:.75rem;padding:.95rem 1rem;border:1px solid rgba(248,113,113,.22);border-radius:.95rem;background:#7f1d1d29}.feedback-delete-title{color:#fee2e2;font-weight:700}.feedback-delete-copy{color:#fecaca;line-height:1.55}.feedback-delete-error{margin-top:0}.feedback-delete-actions{display:flex;justify-content:flex-end;gap:.65rem}.feedback-empty{display:grid;gap:.4rem;padding:1.1rem;border:1px dashed rgba(148,163,184,.28);border-radius:1rem;background:#0f172a5c;color:var(--text-muted)}.feedback-empty-title{color:#e2e8f0;font-weight:700}.feedback-empty-copy{max-width:28rem;line-height:1.55}.feedback-actions{display:flex;justify-content:flex-end;padding-top:.25rem}.feedback-note{display:inline-flex;align-items:center;gap:.5rem;color:var(--text-muted);font-size:.875rem}.feedback-dot{width:.55rem;height:.55rem;border-radius:999px;background:var(--info);animation:feedback-pulse 1.1s ease-in-out infinite}.btn-small{padding:.5rem .85rem;font-size:.875rem}.violation-top,.violation-bottom,.group-header{display:flex;justify-content:space-between;align-items:center;gap:.5rem}.code-snippet{background:#00000059;border:1px solid var(--border);border-radius:.5rem;padding:.75rem;color:#dbeafe;overflow-x:auto;font-size:.85rem}.violation-screenshot{display:grid;gap:.7rem}.violation-screenshot-header{display:flex;justify-content:space-between;align-items:center;gap:.75rem;flex-wrap:wrap}.violation-screenshot-label{color:#dbeafe;font-size:.8rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.violation-screenshot-image{display:block;width:100%;max-height:360px;object-fit:contain;border-radius:.85rem;border:1px solid rgba(148,163,184,.18);background:linear-gradient(180deg,#0f172ab8,#020617d1),#0f172aeb;box-shadow:inset 0 1px #ffffff08,0 12px 28px #0206172e}.violation-screenshot-missing{padding:.85rem 1rem;border-radius:.85rem;border:1px dashed rgba(148,163,184,.2);background:#0f172a73}.table-wrap{overflow-x:auto}.website-snapshot-hero{display:grid;gap:1rem;background:radial-gradient(circle at top right,rgba(99,102,241,.16),transparent 36%),linear-gradient(180deg,#1e293beb,#0f172af5)}.website-snapshot-copy{display:grid;gap:.45rem}.website-snapshot-kicker{color:#c7d2fe;font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.website-snapshot-actions{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}.website-snapshot-banner{margin-top:.25rem}.website-snapshot-stats{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.website-snapshot-stat{display:grid;gap:.45rem;justify-items:start;text-align:left}.website-snapshot-trend{color:#c7d2fe}.trend-chart{width:100%;overflow-x:auto;padding-bottom:.25rem}.trend-chart-svg{display:block;height:auto;min-height:220px}.trend-grid-line{stroke:#94a3b82e;stroke-width:1}.trend-area{fill:#8b5cf61f}.trend-line{stroke:#8b5cf6;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.trend-point{fill:#8b5cf6;stroke:#c4b5fd;stroke-width:2}.trend-point-highlighted{fill:#a78bfa;stroke:#ede9fe;stroke-width:3}.trend-axis-label{fill:#94a3b8;font-size:11px}.trend-chart-footer{display:flex;justify-content:space-between;gap:.75rem;flex-wrap:wrap;margin-top:1rem;padding-top:1rem;border-top:1px solid rgba(148,163,184,.16)}.trend-chart-summary{display:grid;gap:.2rem}.trend-chart-label{color:var(--text-muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.05em}.scans-table{width:100%;border-collapse:collapse}.scans-table th,.scans-table td{text-align:left;padding:.7rem;border-bottom:1px solid var(--border)}.scans-table tbody tr{transition:background-color .2s ease,box-shadow .2s ease}.scans-table tbody tr:hover{background:#94a3b80d}.scan-history-row-highlighted{background:#6366f11f;box-shadow:inset 0 0 0 1px #6366f133}.scan-history-date{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap}.scan-history-badge{background:#22c55e2e;color:#bbf7d0}.error-inline{background:#ef44441a;border-color:#ef444480;color:#fecaca}.success-inline{background:#22c55e1a;border-color:#22c55e73;color:#bbf7d0}.info-inline{padding:.85rem 1rem;border-radius:.6rem;border:1px solid;background:#3b82f61a;border-color:#3b82f673;color:#93c5fd}.text-muted{color:var(--text-muted)}.small{font-size:.875rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-8{margin-bottom:2rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}@keyframes feedback-pulse{0%,to{opacity:.45;transform:scale(.9)}50%{opacity:1;transform:scale(1)}}@media(max-width:768px){.container{padding:1rem}.app-header{flex-direction:column;align-items:flex-start;margin-bottom:1.5rem}.auth-controls{width:100%;justify-content:flex-start}.auth-token-input{min-width:0}.input-group{flex-direction:column}.input-group .btn{width:100%}.dashboard-summary-grid,.dashboard-recent-grid{grid-template-columns:1fr}.dashboard-login-shell{padding-top:.75rem}.dashboard-login-card{padding:1.4rem 1.1rem 1.25rem}.dashboard-login-actions{flex-direction:column}.dashboard-login-btn,.dashboard-guest-btn{width:100%}.form-footer,.scan-form-footer,.scan-form-footer-left,.dashboard-site-meta,.dashboard-site-stats{flex-direction:column;align-items:flex-start}.scan-advanced-panel{min-width:0;width:100%}.filters-row{align-items:flex-start;flex-direction:column}.feedback-layout{grid-template-columns:1fr}.website-snapshot-actions,.feedback-header,.feedback-section-header,.feedback-comment-top,.feedback-comment-actions,.feedback-inline-banner,.feedback-inline-actions,.feedback-delete-actions,.feedback-actions,.page-header,.section-header{flex-direction:column;align-items:stretch}.feedback-inline-grid{grid-template-columns:1fr}.feedback-comment-button{width:100%}.website-snapshot-stat{justify-items:stretch}}
