:root{--xray-ink:#201f1d;--xray-muted:#716d67;--xray-paper:#f7f5f1;--xray-line:#d9d5ce;--xray-gold:#b68235;--xray-green:#33745a;--xray-red:#9a433a}
*{box-sizing:border-box}
body{margin:0;text-wrap:pretty;color:var(--xray-ink);background:var(--color-bg)}
a{color:var(--color-accent-700)}
.xray-wrap{width:min(1180px,calc(100% - clamp(40px,10vw,128px)));margin-inline:auto}
.xray-nav{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--color-bg) 93%,transparent);backdrop-filter:blur(12px);border-bottom:1px solid color-mix(in srgb,var(--color-divider) 72%,transparent);gap:22px}
.xray-nav>a:not(.btn):not(.nav-brand){font-size:13px;text-decoration:none}
.xray-brand{margin-right:auto;text-decoration:none;color:inherit}.xray-brand span{font-family:var(--font-body);font-size:12px;color:var(--color-neutral-600)}
.xray-contact{text-decoration:none;color:var(--color-accent)}
.xray-hero{padding:clamp(56px,9vw,108px) 0 42px;display:grid;grid-template-columns:minmax(0,1fr) minmax(230px,330px);gap:48px;align-items:end}
.xray-eyebrow{display:block;font-size:11px;font-weight:600;letter-spacing:.105em;text-transform:uppercase;color:var(--color-accent-700)}
.xray-hero h1{font-family:var(--font-heading);font-weight:400;font-size:clamp(44px,7vw,82px);line-height:1.01;letter-spacing:-.02em;max-width:15ch;margin:17px 0 25px -.04em}
.xray-lede{font-size:clamp(17px,2vw,21px);line-height:1.65;max-width:66ch;margin:0;color:color-mix(in srgb,var(--color-text) 80%,transparent)}
.local-proof{border:1px solid var(--xray-line);border-radius:var(--radius-md);padding:18px;display:flex;gap:13px;align-items:flex-start;background:var(--xray-paper)}
.local-proof strong{font-size:14px;display:block}.local-proof small{display:block;margin-top:4px;color:var(--xray-muted);font-size:11.5px;line-height:1.5}
.pulse{width:10px;height:10px;margin-top:4px;border-radius:50%;background:var(--xray-green);box-shadow:0 0 0 5px color-mix(in srgb,var(--xray-green) 15%,transparent);flex:none}
.xray-workspace{padding:0 0 clamp(64px,8vw,100px)}
.drop-panel{border:1px solid var(--xray-line);border-radius:16px;background:var(--xray-paper);padding:10px;box-shadow:0 18px 50px rgba(32,31,29,.06)}
.drop-zone{border:1px dashed #b8b1a7;border-radius:11px;min-height:340px;padding:52px 24px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;transition:border-color .2s,background .2s,transform .2s}
.drop-zone:is(:hover,.is-dragging){border-color:var(--xray-gold);background:color-mix(in srgb,var(--xray-gold) 5%,white)}
.drop-zone.is-dragging{transform:scale(.995)}
.drop-zone.is-busy{pointer-events:none;opacity:.64}
.file-glyph{width:62px;height:74px;border:1.5px solid var(--xray-ink);border-radius:5px;display:grid;place-items:center;position:relative;margin-bottom:22px;background:var(--color-bg)}
.file-glyph:before{content:"";position:absolute;right:-1.5px;top:-1.5px;width:18px;height:18px;background:var(--xray-paper);border-left:1.5px solid var(--xray-ink);border-bottom:1.5px solid var(--xray-ink)}
.file-glyph span{font-family:var(--font-heading);font-size:25px;color:var(--xray-gold)}
.drop-zone h2{font-family:var(--font-heading);font-weight:400;font-size:clamp(28px,4vw,42px);margin:0 0 8px}
.drop-zone p{color:var(--xray-muted);font-size:13px;margin:0}
.drop-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:24px}.choose-button{cursor:pointer}
#file-input{position:absolute;width:1px;height:1px;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap}
.local-strip{display:flex;align-items:center;justify-content:center;gap:13px;padding:15px 10px 7px;font-size:11.5px;color:var(--xray-muted)}
.local-strip span{display:flex;gap:7px;align-items:center}.local-strip b{display:grid;place-items:center;width:20px;height:20px;border:1px solid var(--xray-line);border-radius:50%;font-size:10px;color:var(--xray-ink)}.local-strip i{width:36px;height:1px;background:var(--xray-line)}
.analysis-progress{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 14px 2px}.analysis-progress[hidden]{display:none}.analysis-progress [role="progressbar"]{height:5px;border-radius:4px;background:#e5e1da;overflow:hidden}.analysis-progress [role="progressbar"] span{display:block;width:0;height:100%;background:var(--xray-gold);transition:width .2s ease}.analysis-progress small{font-size:10.5px;color:var(--xray-muted);min-width:13ch;text-align:right}
.status{min-height:20px;text-align:center;font-size:13px;margin:7px 0 3px}.status.is-error{color:var(--xray-red)}
.results{padding-bottom:clamp(72px,9vw,120px)}
.receipt-head{display:flex;align-items:end;justify-content:space-between;gap:24px;padding-top:8px;margin-bottom:24px}.receipt-head h2{font-family:var(--font-heading);font-size:clamp(32px,5vw,50px);font-weight:400;margin:9px 0 0}.receipt-actions{display:flex;gap:10px;flex-wrap:wrap}
.fingerprint{display:grid;grid-template-columns:1.25fr .65fr 2.4fr .8fr;border:1px solid var(--xray-line);border-radius:var(--radius-md);overflow:hidden;margin-bottom:16px}
.fingerprint>span{min-width:0;padding:14px 16px;border-right:1px solid var(--xray-line)}.fingerprint>span:last-child{border:0}.fingerprint small{display:block;color:var(--xray-muted);font-size:10px;text-transform:uppercase;letter-spacing:.08em;margin-bottom:5px}.fingerprint strong,.fingerprint code{font-size:12px}.fingerprint code{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--xray-green)}
.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:10px 0}.metric-grid article{border:1px solid var(--xray-line);border-radius:var(--radius-md);padding:21px;background:var(--xray-paper)}.metric-grid span{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--xray-muted)}.metric-grid strong{display:block;font-family:var(--font-heading);font-size:42px;font-weight:400;margin:8px 0 3px}.metric-grid small{font-size:11px;color:var(--xray-muted)}
.analysis-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:10px 0}
.graph-row{grid-template-columns:1fr}.graph-row .graph-card{min-width:0}
.result-card{border:1px solid var(--xray-line);border-radius:var(--radius-md);padding:clamp(20px,3vw,30px);background:var(--color-bg)}
.card-heading{display:flex;justify-content:space-between;align-items:start;gap:20px}.card-heading h3{font-family:var(--font-heading);font-weight:400;font-size:29px;margin:8px 0 0}.risk-score{display:flex;align-items:baseline;color:var(--xray-gold)}.risk-score strong{font-family:var(--font-heading);font-size:46px;font-weight:400}.risk-score small{font-size:11px;margin-left:3px}
.risk-meter{height:5px;background:#e8e4dd;margin:22px 0;border-radius:4px;overflow:hidden}.risk-meter span{display:block;width:0;height:100%;background:var(--xray-green);transition:width .5s ease,background .3s}
.risk-list{list-style:none;padding:0;margin:0;display:grid;gap:9px}.risk-list li{display:grid;grid-template-columns:8px 1fr;column-gap:10px;font-size:13px;line-height:1.5}.risk-list li:before{content:"";width:7px;height:7px;margin-top:6px;border-radius:50%;background:var(--xray-gold)}.risk-list li.is-ok:before{background:var(--xray-green)}.risk-list li small{grid-column:2;color:var(--xray-muted);font-size:9.5px;letter-spacing:.04em;text-transform:uppercase;margin-top:2px}
.coverage-score{display:flex;align-items:baseline;color:var(--xray-green)}.coverage-score strong{font-family:var(--font-heading);font-size:46px;font-weight:400}.coverage-score small{font-size:11px;margin-left:3px}.coverage-meter{height:5px;background:#e8e4dd;margin:22px 0;border-radius:4px;overflow:hidden}.coverage-meter span{display:block;width:0;height:100%;background:var(--xray-green);transition:width .5s ease}.coverage-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:8px 14px}.coverage-list li{font-size:11.5px;line-height:1.45;padding-left:16px;position:relative}.coverage-list li:before{content:"✓";position:absolute;left:0;color:var(--xray-green);font-weight:700}.coverage-list li.partial:before{content:"◐";color:var(--xray-gold)}.coverage-list li.skipped:before{content:"–";color:var(--xray-muted)}
.boundary{font-size:10.5px;line-height:1.55;color:var(--xray-muted);margin:20px 0 0}
.dependency-graph{min-height:285px;margin-top:12px;display:grid;place-items:center;overflow:hidden}.dependency-graph svg{display:block;width:100%;height:auto;max-height:330px}.dependency-graph text{font-family:var(--font-body);font-size:10px;fill:var(--xray-ink);pointer-events:none}.dependency-graph .edge{stroke:#b8b1a7;stroke-width:1.3;fill:none}.dependency-graph .edge-hit{stroke:transparent;stroke-width:18;fill:none;cursor:pointer}.dependency-graph .edge-action{cursor:pointer}.dependency-graph .edge-action:is(:hover,:focus) .edge{stroke:var(--xray-gold);stroke-width:2.2}.dependency-graph .edge-action:focus{outline:none}.dependency-graph .edge-action:focus-visible .edge{stroke:var(--xray-gold);stroke-width:3}.dependency-graph .edge-count{font-size:8px;fill:var(--xray-muted)}.dependency-graph .node{fill:var(--xray-paper);stroke:var(--xray-gold);stroke-width:1.4}.dependency-graph .node-hidden{stroke-dasharray:3 3;fill:#eeeae3}.empty-graph{font-size:13px;color:var(--xray-muted);text-align:center;max-width:42ch;line-height:1.6}
.edge-details{border-top:1px solid var(--xray-line);margin-top:18px;padding-top:18px}.edge-details[hidden]{display:none}.edge-details h4{font-family:var(--font-heading);font-size:21px;font-weight:400;margin:0 0 5px}.edge-details p{font-size:12px;color:var(--xray-muted);margin:0 0 9px}.edge-details ul{display:flex;flex-wrap:wrap;gap:6px;list-style:none;padding:0;margin:0}.edge-details li{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;border:1px solid var(--xray-line);border-radius:999px;padding:4px 8px;background:var(--xray-paper)}
.sheet-card{margin-top:10px}.table-scroll{overflow:auto;margin-top:18px}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--xray-muted);font-weight:500;padding:10px;border-bottom:1px solid var(--xray-line)}td{padding:13px 10px;border-bottom:1px solid color-mix(in srgb,var(--xray-line) 70%,transparent)}tbody tr:last-child td{border:0}.sheet-state{display:inline-block;border:1px solid var(--xray-line);border-radius:999px;padding:3px 8px;font-size:10px}.sheet-state.hidden{border-style:dashed;color:var(--xray-red)}
.proof-section{border-top:1px solid var(--xray-line);padding:clamp(64px,9vw,112px) 0}.proof-section>div:first-child{display:grid;grid-template-columns:1fr 2fr;gap:30px;align-items:start}.proof-section h2{font-family:var(--font-heading);font-weight:400;font-size:clamp(34px,5vw,55px);line-height:1.08;margin:0;max-width:16ch}.proof-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:42px}.proof-grid article{border-top:1px solid var(--xray-line);padding:18px 3px}.proof-grid code{font-size:10px;color:var(--xray-gold)}.proof-grid h3{font-family:var(--font-heading);font-size:22px;font-weight:400;margin:11px 0 8px}.proof-grid p{font-size:12.5px;line-height:1.65;color:var(--xray-muted);margin:0}.privacy-note{max-width:82ch;font-size:12px;line-height:1.7;color:var(--xray-muted);margin:36px 0 0}
footer{border-top:1px solid var(--xray-line);padding:28px 0 42px;display:flex;gap:22px;flex-wrap:wrap;font-size:12px}footer span{margin-right:auto}
@media(max-width:820px){.xray-nav>a:not(.nav-brand):not(.xray-contact){display:none}.xray-hero{grid-template-columns:1fr;gap:26px}.fingerprint{grid-template-columns:1fr 1fr}.fingerprint>span:nth-child(2){border-right:0}.fingerprint>span:nth-child(-n+2){border-bottom:1px solid var(--xray-line)}.metric-grid{grid-template-columns:1fr 1fr}.analysis-grid{grid-template-columns:1fr}.proof-grid{grid-template-columns:1fr 1fr}.proof-section>div:first-child{grid-template-columns:1fr}.receipt-head{align-items:start;flex-direction:column}.local-strip i{width:16px}.coverage-list{grid-template-columns:1fr}}
@media(max-width:520px){.xray-contact{display:none}.xray-wrap{width:min(100% - 32px,1180px)}.drop-zone{min-height:320px;padding:40px 14px}.drop-actions{flex-direction:column;width:100%;padding:0 20px}.drop-actions .btn{width:100%}.local-strip{font-size:10px;gap:6px}.local-strip i{display:none}.metric-grid,.proof-grid{grid-template-columns:1fr}.fingerprint{grid-template-columns:1fr}.fingerprint>span{border-right:0;border-bottom:1px solid var(--xray-line)}.fingerprint>span:last-child{border-bottom:0}.receipt-actions{width:100%}.receipt-actions .btn{flex:1}.xray-hero h1{font-size:44px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
