:root{color:#17202a;background:#eef2f6;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}html{min-width:320px}body{margin:0}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.58}.app-shell{min-height:100vh;padding:20px}.boot-screen,.auth-screen{align-items:center;display:flex;justify-content:center;min-height:100vh;padding:24px}.boot-screen{color:#475569;gap:10px}.auth-panel{background:#fff;border:1px solid #d8e0ea;border-radius:8px;box-shadow:0 20px 60px #0f172a1f;max-width:440px;padding:28px;width:100%}.auth-panel h1{font-size:1.55rem;letter-spacing:0;margin:24px 0 6px}.auth-panel p,.app-header p,.panel-heading p{color:#64748b;margin:0}.brand-mark{align-items:center;color:#0f766e;display:flex;font-weight:750;gap:10px;min-width:0}.brand-mark span{overflow-wrap:anywhere}.segmented-control{background:#eef2f6;border:1px solid #d8e0ea;border-radius:8px;display:grid;grid-template-columns:1fr 1fr;margin:24px 0;padding:3px}.segmented-control button{background:transparent;border:0;border-radius:6px;color:#475569;min-height:38px}.segmented-control button.active{background:#fff;box-shadow:0 1px 3px #0f172a1f;color:#0f172a;font-weight:700}.auth-form,.upload-form{display:grid;gap:14px}.auth-form label{display:grid;gap:7px}.auth-form label span{color:#334155;font-size:.88rem;font-weight:700}input,select{background:#fff;border:1px solid #cbd5e1;border-radius:7px;color:#0f172a;min-height:42px;outline:none;padding:9px 11px;width:100%}input:focus,select:focus,button:focus-visible{box-shadow:0 0 0 3px #14b8a633;outline:2px solid #0f766e;outline-offset:1px}.primary-button,.secondary-button,.icon-button{align-items:center;border:1px solid transparent;border-radius:7px;display:inline-flex;font-weight:700;gap:8px;justify-content:center;min-height:40px;white-space:nowrap}.primary-button{background:#0f766e;color:#fff;padding:0 16px}.primary-button:hover:not(:disabled){background:#115e59}.secondary-button,.icon-button{background:#fff;border-color:#cbd5e1;color:#334155}.secondary-button{padding:0 12px}.icon-button{aspect-ratio:1;padding:0;width:40px}.app-header{align-items:center;display:flex;gap:18px;justify-content:space-between;margin:0 auto 18px;max-width:1480px}.app-header>div:first-child{min-width:0}.header-actions,.detail-actions,.finding-tools{align-items:center;display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;min-width:0}.user-email{color:#475569;max-width:280px;overflow-wrap:anywhere}.dashboard-layout{display:grid;gap:18px;grid-template-columns:minmax(280px,360px) minmax(0,1fr);margin:0 auto;max-width:1480px}.dashboard-sidebar,.run-detail{display:grid;gap:18px;min-width:0}.run-detail{align-content:start}.panel{background:#fff;border:1px solid #d8e0ea;border-radius:8px;min-width:0;padding:18px}.panel-heading{align-items:flex-start;display:flex;gap:16px;justify-content:space-between;margin-bottom:16px;min-width:0}.panel-heading h2{color:#0f172a;font-size:1rem;letter-spacing:0;margin:0 0 4px}.panel-heading>div{min-width:0}.file-drop{align-items:center;background:#f8fafc;border:1px dashed #94a3b8;border-radius:8px;color:#334155;display:flex;gap:10px;min-height:72px;overflow:hidden;padding:14px;position:relative}.file-drop span{overflow-wrap:anywhere}.file-drop input{inset:0;opacity:0;position:absolute}.run-list{display:grid;gap:8px}.run-list-item{align-items:center;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;color:inherit;display:grid;gap:10px;grid-template-columns:minmax(0,1fr) auto;min-height:72px;padding:12px;text-align:left;width:100%}.run-list-item:hover,.run-list-item.selected{border-color:#0f766e}.run-list-item.selected{background:#eefcf9}.run-list-main{display:grid;gap:4px;min-width:0}.run-name{color:#0f172a;font-weight:750;overflow-wrap:anywhere}.run-meta{color:#64748b;font-size:.82rem;overflow-wrap:anywhere}.status-badge{align-items:center;border:1px solid;border-radius:999px;display:inline-flex;font-size:.72rem;font-weight:800;gap:5px;letter-spacing:0;min-height:26px;padding:0 8px;text-transform:uppercase}.status-badge.compact{font-size:.68rem;min-height:24px}.queued{background:#f8fafc;border-color:#cbd5e1;color:#475569}.running{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8}.completed{background:#ecfdf5;border-color:#bbf7d0;color:#047857}.failed{background:#fef2f2;border-color:#fecaca;color:#b91c1c}.status-text.queued{color:#475569}.status-text.running{color:#1d4ed8}.status-text.completed{color:#047857}.status-text.failed{color:#b91c1c}.summary-grid{display:grid;gap:10px;grid-template-columns:repeat(4,minmax(0,1fr))}.summary-grid div{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;display:grid;gap:6px;min-width:0;padding:12px}.summary-grid span{color:#64748b;font-size:.78rem;font-weight:700;text-transform:uppercase}.summary-grid strong{color:#0f172a;font-size:.95rem;min-width:0;overflow-wrap:anywhere}.pipeline-graph{min-height:320px;position:relative}.pipeline-lines{height:100%;inset:0;pointer-events:none;position:absolute;width:100%}.pipeline-lines path{fill:none;stroke:#94a3b8;stroke-linecap:round;stroke-width:.7}.pipeline-stages{display:grid;gap:20px;grid-template-columns:repeat(var(--stage-count),minmax(160px,1fr));min-width:0;position:relative;z-index:1}.pipeline-stage{align-content:center;display:grid;gap:12px;min-width:0}.stage-label{color:#64748b;font-size:.72rem;font-weight:800;text-transform:uppercase}.graph-node{background:#fff;border:1px solid #cbd5e1;border-left:4px solid #94a3b8;border-radius:8px;color:inherit;display:grid;gap:9px;min-height:142px;min-width:0;padding:12px;text-align:left;width:100%}button.graph-node:hover,.graph-node.selected{border-color:#0f766e;box-shadow:0 8px 22px #0f172a17}.graph-node.running{border-left-color:#2563eb}.graph-node.completed{border-left-color:#10b981}.graph-node.failed{border-left-color:#ef4444}.graph-node-topline{align-items:flex-start;display:flex;gap:8px;justify-content:space-between;min-width:0}.graph-node-label{color:#0f172a;font-weight:800;overflow-wrap:anywhere}.graph-node-message,.graph-node-metrics,.graph-node-error{color:#475569;font-size:.84rem;line-height:1.35;overflow-wrap:anywhere}.graph-node-error{color:#b91c1c;font-weight:700}.graph-node-facts{align-items:center;color:#64748b;display:flex;flex-wrap:wrap;font-size:.8rem;gap:10px}.graph-node-facts span{align-items:center;display:inline-flex;gap:5px}.node-inspector{align-items:center;border-top:1px solid #e2e8f0;color:#475569;display:flex;gap:12px;margin-top:16px;padding-top:12px}.node-inspector button{background:transparent;border:0;color:#0f766e;font-weight:800;padding:0}.finding-tools{flex:1 1 320px}.search-field,.select-field{min-width:0}.search-field{align-items:center;display:flex;flex:1 1 220px;position:relative}.search-field svg{color:#64748b;left:11px;position:absolute}.search-field input{padding-left:36px}.select-field{flex:0 1 180px}.finding-table{border:1px solid #e2e8f0;border-radius:8px;overflow:hidden}.finding-row{display:grid;grid-template-columns:minmax(92px,120px) minmax(180px,1fr) minmax(0,2fr);min-width:0}.finding-header{background:#f8fafc;color:#475569;font-size:.76rem;font-weight:800;text-transform:uppercase}.finding-header span{padding:11px 12px}.finding-item{display:block;border-top:1px solid #e2e8f0}.finding-item summary{cursor:pointer;display:grid;gap:0;grid-template-columns:minmax(92px,120px) minmax(180px,1fr) minmax(0,2fr);list-style:none;min-width:0;width:100%}.finding-item summary::-webkit-details-marker{display:none}.finding-item summary>span{align-items:center;display:flex;min-width:0;padding:12px}.severity-pill{background:transparent;border:0;border-radius:0;color:#991b1b;font-size:.78rem;font-weight:900;justify-content:flex-start;max-width:none;min-height:0;padding:0;text-transform:uppercase}.severity-pill.critical,.severity-pill.error,.severity-pill.high{color:#b91c1c}.severity-pill.warning,.severity-pill.medium{color:#b45309}.severity-pill.low,.severity-pill.note,.severity-pill.info{color:#2563eb}.finding-rule,.finding-message{min-width:0;overflow-wrap:anywhere}.finding-rule{color:#0f172a;font-weight:750}.finding-message{color:#334155}.finding-details{background:#fbfdff;border-top:1px solid #e2e8f0;padding:14px}.finding-details dl{display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr));margin:0}.finding-details div{min-width:0}.finding-details dt{color:#64748b;font-size:.72rem;font-weight:800;text-transform:uppercase}.finding-details dd{color:#0f172a;margin:4px 0 0;overflow-wrap:anywhere}.empty-state,.detail-placeholder{align-items:center;color:#64748b;display:flex;gap:9px;justify-content:center;min-height:120px;text-align:center}.detail-placeholder{align-items:flex-start;flex-direction:column;justify-content:flex-start;text-align:left}.detail-placeholder h2,.detail-placeholder p{margin:0}.inline-alert,.global-alert{background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#991b1b;overflow-wrap:anywhere;padding:11px 12px}.global-alert{margin:0 auto 18px;max-width:1480px}.spin{animation:spin .9s linear infinite}.sr-only{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;clip:rect(0,0,0,0);white-space:nowrap}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:1080px){.dashboard-layout{grid-template-columns:1fr}.dashboard-sidebar{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr)}}@media(max-width:780px){.app-shell{padding:14px}.app-header,.panel-heading,.detail-heading,.findings-heading{align-items:stretch;flex-direction:column}.header-actions,.detail-actions,.finding-tools{justify-content:flex-start}.dashboard-sidebar{grid-template-columns:1fr}.summary-grid,.finding-details dl{grid-template-columns:1fr 1fr}.pipeline-lines{display:none}.pipeline-stages{gap:14px;grid-template-columns:1fr}.pipeline-stage{border-left:2px solid #cbd5e1;padding-left:14px}.graph-node{min-height:auto}.finding-row,.finding-item summary{grid-template-columns:96px minmax(110px,170px) minmax(0,1fr)}}@media(max-width:560px){.auth-panel,.panel{padding:15px}.summary-grid,.run-list-item{grid-template-columns:1fr}.finding-header{display:none}.finding-row,.finding-item summary{grid-template-columns:1fr}.finding-item summary>span{padding:8px 10px}.severity-pill{margin-top:4px}}
