/* Archive-only layout. Fonts, terminal palette and control surfaces are shared
   read-only with the Password Cracking Lab. No decorative animation. */
.archive-lab [hidden]{display:none!important}
.archive-lab .museum-shell{max-width:1320px;margin:auto;padding:1.8rem 2rem 3rem}
.archive-lab .lab-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:1.1rem}
.archive-lab .dashboard{display:block;grid-row:auto;position:static;padding:1.5rem 2rem}
.archive-lab .dashboard-heading{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
.archive-lab .dashboard-heading h2{font-size:.95rem}
.archive-lab .dashboard-heading .setup-link{margin-left:auto}
.archive-lab .status-banner{margin:.2rem 0 .8rem;padding:1.1rem 0}
.archive-lab #status{font-size:clamp(1.6rem,3vw,2.8rem);overflow-wrap:anywhere}
.archive-lab #status-detail{font-size:.78rem;max-width:900px;overflow-wrap:anywhere}
.archive-lab .status-dot{flex:none}
.archive-lab .live-context{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1rem;border-bottom:1px solid var(--line);padding:.65rem 0 .9rem}
.archive-lab .context-label{display:block;font-size:.65rem;color:var(--muted);margin-bottom:.25rem}
.archive-lab .live-context strong{font-size:.77rem;color:var(--bright);font-weight:400;overflow-wrap:anywhere}
.archive-lab .selected-methods{margin:.9rem 0;border:0;padding:0}
.archive-lab .selected-methods>span{display:block;font-size:.65rem;color:var(--muted);margin-bottom:.5rem}
.archive-lab .method-badges{display:flex;flex-wrap:wrap;gap:.4rem}
.archive-lab .method-badge{font-size:.7rem;color:var(--bright);padding:.35rem .65rem;border:1px solid rgba(0,180,255,.3);border-radius:4px;background:rgba(0,180,255,.04)}
.archive-lab .method-badge[data-active=true]{border-color:var(--accent);background:rgba(0,180,255,.14);color:var(--accent)}
.archive-lab .method-badge[data-active=true]::before{content:'● ';font-size:.65rem}
.archive-lab .phase-current{margin:1rem 0 .55rem;min-height:56px}
.archive-lab .phase-journey{margin:.4rem 0 1rem}
.archive-lab .phase-journey li[data-state=matched]{color:var(--green);border-color:var(--green)}
.archive-lab .phase-journey li[data-state=partial]{color:var(--gold)}
.archive-lab .hero-metrics{margin:1.2rem 0 .9rem}
.archive-lab .hero-metrics dd{font-size:clamp(1.8rem,3.2vw,2.9rem)}
.archive-lab .hero-metrics .throughput dd{color:var(--accent)}
.archive-lab .progress-head{margin-top:.7rem}
.archive-lab #progress-label{font-size:.75rem}
.archive-lab .live-bottom{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1.8rem;margin:.7rem 0}
.archive-lab .live-bottom .time-metrics{margin:.65rem 0}
.archive-lab .activity-row{grid-template-columns:1fr;margin:.3rem 0;gap:.4rem}
.archive-lab .activity-chip{flex-direction:row;align-items:center;min-height:44px}
.archive-lab .activity-chip[data-active=true]{border-color:var(--accent);background:rgba(0,180,255,.07)}
.archive-lab .activity-chip[data-active=true]>strong{color:var(--bright)}
.archive-lab .mode-chip>span{color:var(--gold)}
.archive-lab .dashboard-controls{align-items:center}
.archive-lab .dashboard-controls .details-link{margin:0 0 0 auto;font-size:.72rem}
.archive-lab .search-ledger{margin-top:.9rem;padding-top:.8rem;border-top:1px solid var(--line)}
.archive-lab .search-ledger>summary{cursor:pointer;font-size:.76rem;color:var(--muted)}
.archive-lab .search-ledger[open]>summary{color:var(--bright)}
.archive-lab .search-ledger .detail-metrics{margin:1rem 0}
.archive-lab .search-ledger table{width:100%;font-size:.7rem;text-align:left}
.archive-lab .search-ledger th,.archive-lab .search-ledger td{padding:.6rem .5rem;vertical-align:top;border-bottom:1px solid var(--line)}
.archive-lab .search-ledger td:first-child{min-width:150px}
.archive-lab .search-ledger td:nth-child(2){overflow-wrap:anywhere;max-width:210px}
.archive-lab .search-ledger td:last-child{white-space:nowrap}
.archive-lab .search-ledger tr[data-state=complete] td:last-child,.archive-lab .search-ledger tr[data-state=matched] td:last-child{color:var(--green)}
.archive-lab .search-ledger tr[data-state=active] td:last-child{color:var(--accent)}
.archive-lab .search-ledger tr[data-state=partial] td:last-child,.archive-lab .search-ledger tr[data-state=paused] td:last-child{color:var(--gold)}
.archive-lab .archive-settings{padding:1.5rem 2rem}
.archive-lab .archive-settings h2{font-size:1.12rem;margin:.3rem 0 .8rem}
.archive-lab .setup-steps{list-style:none;counter-reset:setup-step;display:flex;flex-wrap:wrap;gap:.5rem 1.2rem;padding:0;margin:.6rem 0 1.4rem;color:var(--muted);font-size:.73rem}
.archive-lab .setup-steps li{counter-increment:setup-step}
.archive-lab .setup-steps li::before{content:counter(setup-step) '. ';color:var(--accent)}
.archive-lab .config-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1.3rem 2rem}
.archive-lab .config-grid>div{min-width:0}
.archive-lab .config-grid h3{font-size:.85rem;margin:0 0 .9rem;color:var(--bright)}
.archive-lab .step-number{color:var(--accent);font-size:.69rem;margin-right:.45rem}
.archive-lab .config-grid>div>label{display:block;font-size:.78rem;margin:.6rem 0 .4rem}
.archive-lab .archive-authorization{margin:0 0 .85rem;padding:.7rem .85rem;border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:5px;background:rgba(0,180,255,.035)}
.archive-lab .authorization-title{margin:0 0 .45rem;color:var(--bright);font-size:.76rem}
.archive-lab .authorization-confirm{display:flex;align-items:flex-start;gap:.65rem;font-size:.76rem;line-height:1.65;cursor:pointer}
.archive-lab .authorization-confirm input{flex:none;min-width:16px;min-height:16px;margin:.23rem 0 0;accent-color:var(--accent)}
.archive-lab .archive-authorization .help{margin:.45rem 0 0;color:var(--muted);line-height:1.6}
.archive-lab .drop-zone[data-authorization-required=true]{opacity:.58;border-style:dashed}
.archive-lab .drop-zone[data-authorization-required=true] input[type=file]::file-selector-button{cursor:not-allowed}
.archive-lab .drop-zone{padding:.9rem 1rem;border:1px dashed rgba(0,180,255,.55);border-radius:5px;background:rgba(0,180,255,.025)}
.archive-lab .drop-zone.dragging{border-style:solid;background:rgba(0,180,255,.1)}
.archive-lab .drop-zone>label{display:block;font-size:.82rem;color:var(--bright)}
.archive-lab input[type=file]{max-width:100%;width:100%;font-size:.72rem;padding:.7rem 0}
.archive-lab input[type=file]::file-selector-button{padding:.4rem .65rem;margin-right:.6rem;border:1px solid var(--line);border-radius:3px;background:#0b1a21;color:var(--bright);cursor:pointer}
.archive-lab #remove{margin:.5rem 0;font-size:.7rem;min-height:36px}
.archive-lab .file-details>summary{font-size:.74rem;color:var(--muted);cursor:pointer}
.archive-lab .file-metadata{font-size:.72rem;display:grid;grid-template-columns:minmax(85px,.6fr) minmax(0,1fr);gap:.55rem;margin:.8rem 0}
.archive-lab .file-metadata dt{color:var(--muted)}
.archive-lab .file-metadata dd{margin:0;overflow-wrap:anywhere}
.archive-lab .file-status{font-size:.72rem;color:var(--muted);margin:.6rem 0 0}
.archive-lab .file-status[data-supported=true]{color:var(--green)}
.archive-lab .file-status[data-supported=false]{color:var(--gold)}
.archive-lab .method-options{margin:0}
.archive-lab .method-options .check-label{min-height:38px;margin:.2rem 0;font-size:.77rem;display:flex}
.archive-lab .method-count{margin-left:auto;font-size:.65rem;color:var(--muted);font-variant-numeric:tabular-nums}
.archive-lab .length-inputs,.archive-lab .demo-fields{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.archive-lab .length-inputs label,.archive-lab .demo-fields label{font-size:.76rem;display:block}
.archive-lab .length-inputs input,.archive-lab .demo-fields input,.archive-lab .demo-fields select{display:block;width:100%;margin-top:.5rem}
.archive-lab #known-settings .method-options{margin-top:.9rem}
.archive-lab .compute-note{font-size:.7rem;border-left:2px solid var(--accent);padding:.6rem .8rem;background:rgba(0,180,255,.04);color:var(--muted)}
.archive-lab .config-summary{margin:1.2rem 0 .6rem;padding-top:1rem;border-top:1px solid var(--line)}
.archive-lab .setup-controls{display:grid;grid-template-columns:2fr 1fr 1fr;gap:.55rem}
.archive-lab .primary{background:var(--accent);color:#02141f;width:100%;font-weight:600;min-height:46px}
.archive-lab select{width:100%;max-width:100%}
.archive-lab input[type=number]{width:100%}
.archive-lab .help{font-size:.71rem;line-height:1.8}
.archive-lab button{min-height:44px}
.archive-lab button,.archive-lab input,.archive-lab select,.archive-lab a{touch-action:manipulation}
.archive-lab button:focus-visible,.archive-lab input:focus-visible,.archive-lab select:focus-visible,.archive-lab a:focus-visible,.archive-lab summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.archive-lab .result{padding:1.2rem 1.4rem;margin:.5rem 0 1.25rem}
.archive-lab .result-heading{display:flex;gap:.8rem;align-items:center}
.archive-lab .verified-mark{color:var(--green);font-size:1.8rem;line-height:1;flex:none}
.archive-lab .result-heading .kicker{color:var(--green);font-size:.6rem;margin:0 0 .2rem}
.archive-lab .result-heading h3{font-size:1.03rem;margin:0;overflow-wrap:anywhere}
.archive-lab .verification-note{color:var(--muted);font-size:.72rem;margin:.7rem 0 1rem}
.archive-lab .result-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1.4rem}
.archive-lab .password-card label{font-size:.73rem;color:var(--green)}
.archive-lab #recovered{display:block;width:100%;font-size:1.3rem;color:var(--green);padding:.8rem 1rem;margin:.5rem 0;border-color:rgba(140,255,176,.3)}
.archive-lab .result-actions{display:flex;gap:.55rem;flex-wrap:wrap;margin:.5rem 0}
.archive-lab .result-actions button{flex:1;min-width:130px;font-size:.72rem}
.archive-lab .download-card{padding-left:1.4rem;border-left:1px solid rgba(140,255,176,.2)}
.archive-lab .download-card h4{font-size:.83rem;margin:0 0 .3rem;color:var(--bright)}
.archive-lab .download-card .help{font-size:.68rem;margin:.3rem 0 .65rem}
.archive-lab .download-all{width:100%;background:rgba(140,255,176,.1);font-weight:600;line-height:1.6}
.archive-lab #individual-files{border-top:1px solid rgba(140,255,176,.18);padding-top:.8rem;margin-top:.9rem}
.archive-lab #individual-files>summary{font-size:.74rem;cursor:pointer;color:var(--bright)}
.archive-lab #download-count{font-size:.66rem;color:var(--muted);margin-left:.4rem}
.archive-lab #downloads{display:grid;gap:.35rem;max-height:230px;overflow:auto;padding:.55rem 0}
.archive-lab #downloads button{text-align:left;display:flex;gap:.7rem;align-items:center;border:1px solid rgba(140,255,176,.16);font-size:.7rem;padding:.55rem .7rem;background:rgba(0,0,0,.12)}
.archive-lab .download-name{flex:1;overflow-wrap:anywhere}
.archive-lab .download-size{font-size:.64rem;color:var(--muted);white-space:nowrap}
.archive-lab .result-details{grid-template-columns:repeat(3,minmax(0,1fr));gap:.9rem 1.3rem;margin:1rem 0 0;padding-top:1rem}
.archive-lab .result-details dt{font-size:.63rem;color:var(--muted);margin-bottom:.3rem}
.archive-lab .result-details dd{font-size:.73rem;color:var(--bright);margin:0;overflow-wrap:anywhere}
.archive-lab .archive-demo{padding:1.35rem 2rem;margin-top:1.1rem}
.archive-lab .archive-demo h2{font-size:1.12rem;margin:.3rem 0 .6rem}
.archive-lab .archive-demo>p:not(.kicker){font-size:.74rem;line-height:1.8;max-width:950px}
.archive-lab .archive-demo .demo-fields{margin-top:1rem}
.archive-lab .archive-demo .dashboard-controls{border-top:0;padding-top:.5rem;margin-top:.4rem}
.archive-lab .archive-demo .dashboard-controls button{font-size:.73rem}
.archive-lab .archive-hardware{margin-top:1.1rem}
.archive-lab .archive-hardware>p{font-size:.73rem}
.archive-lab .archive-hardware>details{margin:.9rem 1.15rem}
.archive-lab .archive-hardware summary{cursor:pointer}
.archive-lab .technical-area{margin-top:1.4rem}
.archive-lab .museum-footer{font-size:.72rem;color:var(--muted);margin-top:2rem}
.archive-lab h1{overflow-wrap:anywhere}
.archive-lab .skip-link{position:absolute;top:-100px}
.archive-lab .skip-link:focus{top:0;z-index:5;background:#071018;padding:1rem}
@media(max-width:950px){.archive-lab .museum-shell{padding:1.3rem 1.1rem}.archive-lab .dashboard,.archive-lab .archive-settings,.archive-lab .archive-demo{padding:1.2rem 1.3rem}.archive-lab .result-details{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.archive-lab .config-grid,.archive-lab .live-bottom,.archive-lab .result-body{grid-template-columns:minmax(0,1fr);gap:1.1rem}.archive-lab .live-bottom .activity-row{grid-template-columns:1fr 1fr}.archive-lab .activity-chip{flex-direction:column;align-items:flex-start}.archive-lab .activity-chip>.live-engine-rate{margin-left:0}.archive-lab .dashboard-heading .setup-link{margin-left:0}.archive-lab .config-grid>div+div{padding-top:1rem;border-top:1px solid var(--line)}.archive-lab .download-card{padding:1rem 0 0;border-left:0;border-top:1px solid rgba(140,255,176,.2)}}
@media(max-width:480px){.archive-lab .museum-shell{padding:1rem .65rem}.archive-lab .dashboard,.archive-lab .archive-settings,.archive-lab .archive-demo{padding:1rem}.archive-lab .hero-metrics{grid-template-columns:1fr 1fr;gap:.65rem}.archive-lab .hero-metrics .metric{padding:.8rem .7rem}.archive-lab .hero-metrics dd{font-size:1.55rem}.archive-lab .hero-metrics dt{font-size:.64rem}.archive-lab .live-context{grid-template-columns:1fr;gap:.6rem}.archive-lab .result{padding:1rem}.archive-lab .result-details{grid-template-columns:1fr}.archive-lab .result-heading h3{font-size:.88rem}.archive-lab .setup-controls{grid-template-columns:1fr 1fr}.archive-lab .setup-controls .primary{grid-column:1/-1}.archive-lab .dashboard-controls .details-link{width:100%;margin:0}.archive-lab .demo-fields{grid-template-columns:1fr}.archive-lab .museum-site-nav{flex-wrap:wrap}.archive-lab h1{font-size:1.65rem}}
/* Phase labels must remain readable when a verified-match explanation wraps. */
.archive-lab .phase-current{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.6fr);gap:.3rem .8rem}
.archive-lab #phase-number{grid-column:2;font-size:.65rem;color:var(--gold);min-width:0;overflow-wrap:normal}
@media(max-width:700px){.archive-lab .phase-current{grid-template-columns:minmax(0,1fr)}.archive-lab #phase-number{grid-column:1}}
