:root{--ink:#172e5a;--muted:#526783;--paper:#f5f8fc;--surface:#fff;--line:#d7e1ef;--accent:#0c79d8;--accent-dark:#15506d;--accent-soft:#e5f3ff;--warning:#a96708;--danger:#a13b35;--shadow:0 18px 45px #14292317}*{box-sizing:border-box}html{background:var(--paper)}body{color:var(--ink);background:radial-gradient(circle at 8% 0%, #d5ebfff2, transparent 32rem), var(--paper);margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit}.shell{width:min(1560px,100% - 32px);margin:0 auto;padding:28px 0 64px}.topbar{justify-content:space-between;align-items:center;gap:24px;margin-bottom:38px;display:flex}.brand{align-items:center;gap:13px;display:flex}.brand-logo{object-fit:contain;width:52px;height:52px}.brand strong,.brand span{display:block}.brand span{color:var(--muted);margin-top:2px;font-size:.8rem}.eyebrow{color:var(--accent);letter-spacing:.13em;text-transform:uppercase;font-size:.76rem;font-weight:800}h1,h2,h3,p{margin-top:0}h1{letter-spacing:-.055em;max-width:660px;margin-bottom:12px;font-family:Georgia,Times New Roman,serif;font-size:clamp(2.35rem,5.5vw,4.55rem);font-weight:500;line-height:.98}h2{letter-spacing:-.015em;margin-bottom:8px;font-size:1.1rem}.hero{grid-template-columns:minmax(0,1fr) 300px;align-items:center;gap:32px;margin-bottom:30px;display:grid}.hero-copy{max-width:690px;color:var(--muted);font-size:1.05rem;line-height:1.65}.safety-card,.panel,.login-card{box-shadow:var(--shadow);background:#ffffffeb;border:1px solid #0c79d829;border-radius:22px}.safety-card{padding:20px}.safety-card p{color:var(--muted);margin:7px 0 0;font-size:.85rem;line-height:1.5}.status-dot{background:#35a27d;border-radius:999px;width:9px;height:9px;margin-right:8px;display:inline-block;box-shadow:0 0 0 5px #35a27d1f}.status-dot.failed{background:#c7463d;box-shadow:0 0 0 5px #c7463d21}.safety-card.failed{background:#fff8f7;border-color:#a13b3547}.safety-card.failed strong{color:var(--danger)}.workflow-grid{grid-template-columns:minmax(260px,.78fr) minmax(300px,1fr) minmax(360px,1.22fr);align-items:start;gap:22px;display:grid}.panel{padding:24px}.panel-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:22px;display:flex}.panel-header p{color:var(--muted);margin:0;font-size:.86rem;line-height:1.5}.upload-zone{text-align:center;background:#f4f9ff;border:1.5px dashed #9cc8ee;border-radius:18px;place-items:center;min-height:218px;padding:24px;transition:border-color .16s,background .16s;display:grid}.upload-zone:focus-within,.upload-zone.dragging{border-color:var(--accent);background:var(--accent-soft)}.upload-zone.dragging{box-shadow:inset 0 0 0 2px #0c79d81f}.file-input{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.drop-copy{max-width:290px;color:var(--muted);margin:0 auto 18px;line-height:1.5}.upload-picker{min-width:132px}.selected-file{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin:14px 0 0;font-size:.8rem;overflow:hidden}.selected-file.has-file{color:var(--accent-dark);font-weight:700}.field{gap:8px;margin-bottom:16px;display:grid}.field label{font-size:.8rem;font-weight:750}.field input{border:1px solid var(--line);width:100%;color:var(--ink);background:#fff;border-radius:11px;outline:none;padding:12px 13px}.field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #0c79d824}.button{color:#fff;background:var(--accent);cursor:pointer;border:0;border-radius:12px;justify-content:center;align-items:center;min-height:42px;padding:0 16px;font-weight:750;text-decoration:none;transition:background .16s,transform .16s;display:inline-flex}.button:hover{background:var(--accent-dark);transform:translateY(-1px)}.button:disabled{cursor:not-allowed;opacity:.5;transform:none}.button.secondary{border:1px solid var(--line);color:var(--ink);background:#fff}.button.secondary:hover{background:#f1f7fd}.wide{width:100%;margin-top:16px}.clear-button{width:100%;color:var(--danger);background:#fff;border:1px solid #dfb2ae;margin-top:8px}.clear-button:hover{color:#fff;background:var(--danger)}.job-list{gap:10px;display:grid}.workflow-panel{min-width:0}.workflow-panel .job-row{grid-template-columns:minmax(0,1fr);align-items:stretch}.job-row{border:1px solid var(--line);background:#fff;border-radius:15px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;padding:16px;display:grid}.job-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.job-actions .wide,.job-actions .clear-button{width:auto;margin-top:0}.completed-row{grid-template-columns:minmax(0,1fr) auto!important}.completed-row .artifact-links{grid-column:1/-1}.completed-row .artifact-links .button{flex:130px}.all-reports{flex:none;min-height:38px;padding:0 13px;font-size:.82rem}.job-row strong{text-overflow:ellipsis;white-space:nowrap;margin-bottom:6px;display:block;overflow:hidden}.job-meta{color:var(--muted);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.72rem}.pill{color:var(--accent-dark);background:var(--accent-soft);letter-spacing:.05em;border-radius:999px;align-items:center;padding:6px 9px;font-size:.7rem;font-weight:800;display:inline-flex}.pill.failed{color:var(--danger);background:#f9e5e3}.pill.running{color:var(--warning);background:#fbefd9}.empty{border:1px dashed var(--line);color:var(--muted);text-align:center;border-radius:15px;padding:42px 20px}.message{color:var(--danger);background:#f9e5e3;border-radius:10px;margin-top:14px;padding:11px 13px;font-size:.84rem}.login-shell{place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{width:min(440px,100%);padding:34px}.login-card .brand-logo{width:58px;height:58px}.login-card h1{margin:18px 0 10px;font-size:2.6rem}.login-card>p{color:var(--muted);margin-bottom:28px;line-height:1.55}.artifact-links{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.similarity-run-shell{width:min(1380px,100% - 32px);margin:0 auto;padding:28px 0 64px}.similarity-run-nav{flex-wrap:wrap;gap:10px;margin-bottom:28px;display:flex}.similarity-run-hero,.similarity-run-summary,.similarity-run-metrics,.similarity-run-panel{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow);border-radius:20px}.similarity-run-hero{margin-bottom:18px;padding:28px}.similarity-run-hero h1{margin-bottom:12px;font-size:clamp(2.2rem,5vw,4rem)}.similarity-run-hero p:last-child{max-width:760px;color:var(--muted);margin-bottom:0;line-height:1.6}.similarity-run-summary{background:var(--line);grid-template-columns:1fr 1.5fr 1fr 1fr;gap:1px;margin-bottom:14px;display:grid;overflow:hidden}.similarity-run-summary>div{background:#fff;min-width:0;padding:17px}.similarity-run-summary span,.similarity-run-summary strong{display:block}.similarity-run-summary span{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin-bottom:6px;font-size:.72rem;font-weight:800}.similarity-run-summary strong{overflow-wrap:anywhere}.run-status{color:var(--warning)}.run-status.completed_found,.run-status.completed_none{color:#21775d}.run-status.failed{color:var(--danger)}.similarity-run-metrics{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:14px;padding:18px;display:grid}.similarity-run-metrics div{background:var(--paper);border-radius:14px;padding:14px}.similarity-run-metrics strong,.similarity-run-metrics span{display:block}.similarity-run-metrics strong{margin-bottom:3px;font-size:1.65rem}.similarity-run-metrics span{color:var(--muted);font-size:.82rem}.similarity-run-panel{margin-top:14px;padding:22px}.similarity-table-wrap{overflow-x:auto}.similarity-table{border-collapse:collapse;width:100%;font-size:.82rem}.similarity-table th,.similarity-table td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:11px 10px}.similarity-table th{color:var(--muted);letter-spacing:.05em;text-transform:uppercase;font-size:.7rem}.similarity-table a{color:var(--accent-dark);font-weight:750}.similarity-timeline{gap:0;margin:0;padding:0;list-style:none;display:grid}.similarity-timeline li{border-bottom:1px solid var(--line);grid-template-columns:100px minmax(0,1fr);gap:14px;padding:14px 0;display:grid}.similarity-timeline time{color:var(--muted);font:.76rem ui-monospace,SFMono-Regular,Consolas,monospace}.similarity-timeline p{color:var(--muted);margin:5px 0;line-height:1.45}.similarity-timeline code{font-size:.76rem}@media (max-width:800px){.similarity-run-summary,.similarity-run-metrics{grid-template-columns:1fr 1fr}}@media (max-width:520px){.similarity-run-shell{width:min(100% - 20px,1380px)}.similarity-run-summary,.similarity-run-metrics{grid-template-columns:1fr}.similarity-timeline li{grid-template-columns:1fr;gap:5px}}@media (max-width:1180px){.workflow-grid{grid-template-columns:minmax(280px,.75fr) minmax(0,1.25fr)}.completed-panel{grid-column:1/-1}}@media (max-width:840px){.hero,.workflow-grid{grid-template-columns:1fr}.completed-panel{grid-column:auto}.safety-card{max-width:none}}@media (max-width:560px){.shell{width:min(100% - 20px,1560px);padding-top:16px}.topbar{margin-bottom:30px}.topbar .button{min-height:38px;padding:0 12px}.panel{border-radius:18px;padding:18px}.job-row{grid-template-columns:1fr}}
