.spd-app{--spd:#166534;--spd-dark:#0f3d25;--spd-bg:#f5f8f5;--spd-border:#dce6de;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#17231b;margin:24px auto;max-width:820px}.spd-shell{background:var(--spd-bg);border:1px solid var(--spd-border);border-radius:24px;overflow:hidden;box-shadow:0 18px 50px rgba(15,61,37,.08)}.spd-header{padding:30px 30px 20px;background:#fff}.spd-header h1{font-size:clamp(28px,5vw,42px);line-height:1.05;margin:5px 0 10px;color:var(--spd-dark)}.spd-header p{margin:0;color:#526057;max-width:650px}.spd-kicker,.spd-step{font-size:12px;font-weight:800;letter-spacing:.12em;color:var(--spd)}.spd-progress{height:5px;background:#e5ece7}.spd-progress span{display:block;height:100%;width:0;background:var(--spd);transition:.25s}.spd-card{padding:30px}.spd-card h3{font-size:clamp(24px,4vw,34px);line-height:1.15;margin:8px 0 18px}.spd-card h4{margin:26px 0 10px;font-size:18px}.spd-welcome{text-align:center}.spd-icon,.spd-result-icon{font-size:50px}.spd-upload{display:block;border:2px dashed #a9bbae;border-radius:18px;padding:24px;margin:22px auto 12px;cursor:pointer;background:#fff;font-weight:750}.spd-upload input{position:absolute;opacity:0;pointer-events:none}.spd-preview img{display:block;max-height:300px;max-width:100%;margin:12px auto;border-radius:16px}.spd-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.spd-option{appearance:none;text-align:left;border:1px solid var(--spd-border);background:#fff;border-radius:14px;padding:16px;font-size:16px;font-weight:650;cursor:pointer;color:#17231b}.spd-option:hover,.spd-option.is-selected{border-color:var(--spd);box-shadow:inset 0 0 0 1px var(--spd);background:#f0f8f2}.spd-nav{display:flex;gap:10px;justify-content:space-between;margin-top:26px}.spd-primary,.spd-secondary{border:0;border-radius:13px;padding:14px 20px;font-weight:800;font-size:15px;cursor:pointer}.spd-primary{background:var(--spd);color:#fff}.spd-primary:disabled{opacity:.4;cursor:not-allowed}.spd-secondary{background:#e7eee9;color:var(--spd-dark)}.spd-note,.spd-hint{color:#66736b;font-size:14px}.spd-result-head{display:flex;gap:14px;align-items:flex-start;justify-content:space-between}.spd-badge{white-space:nowrap;background:#e6f5e9;color:var(--spd-dark);padding:8px 11px;border-radius:999px;font-weight:800;font-size:13px}.spd-summary{font-size:17px;line-height:1.6}.spd-card li{margin:8px 0}.spd-alts{display:grid;gap:10px}.spd-alts>div{background:#fff;border:1px solid var(--spd-border);border-radius:14px;padding:15px}.spd-alts span{float:right;font-size:12px;font-weight:800;color:#526057}.spd-alts small{display:block;color:#66736b;margin-top:6px;line-height:1.45}.spd-caution{background:#fff8e8;border:1px solid #ead8aa;border-radius:14px;padding:15px;margin:25px 0;font-size:14px;line-height:1.5}@media(max-width:600px){.spd-app{margin:12px 0}.spd-shell{border-radius:18px}.spd-header,.spd-card{padding:22px 18px}.spd-options{grid-template-columns:1fr}.spd-option{min-height:56px}.spd-nav{position:sticky;bottom:0;background:linear-gradient(transparent,#f5f8f5 25%);padding-top:22px}.spd-primary,.spd-secondary{min-height:50px}.spd-result-head{display:block}.spd-badge{display:inline-block;margin-bottom:8px}}
.spd-lead{font-size:17px;line-height:1.6;color:#526057}.spd-upload-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:24px 0 14px}.spd-upload-grid .spd-upload{margin:0;min-height:145px;display:flex;flex-direction:column;align-items:center;justify-content:center}.spd-upload-icon{font-size:34px;margin-bottom:7px}.spd-upload small{display:block;font-weight:500;color:#66736b;margin-top:4px}.spd-privacy{background:#eef7f0;border:1px solid #cfe4d4;border-radius:14px;padding:12px 14px;color:#31563d;font-size:14px}.spd-photo-wrap,.spd-result-photo{position:relative;overflow:hidden;border-radius:18px;background:#e7eee9;margin-bottom:20px}.spd-photo-wrap img,.spd-result-photo img{width:100%;max-height:430px;object-fit:contain;display:block}.spd-big{width:100%;font-size:17px;min-height:56px}.spd-link{display:block;margin:14px auto 0;border:0;background:transparent;color:var(--spd);font-weight:750;cursor:pointer}.spd-scanning{text-align:center}.spd-radar{width:112px;height:112px;border:2px solid #cfe4d4;border-radius:50%;margin:12px auto 25px;position:relative;overflow:hidden;background:#eef7f0}.spd-radar:before,.spd-radar:after{content:"";position:absolute;background:#cfe4d4}.spd-radar:before{width:1px;height:100%;left:50%}.spd-radar:after{height:1px;width:100%;top:50%;left:0}.spd-radar span{position:absolute;inset:0;background:conic-gradient(from 0deg,rgba(22,101,52,.35),transparent 28%);animation:spdscan 1.2s linear infinite}@keyframes spdscan{to{transform:rotate(360deg)}}.spd-scan-steps{max-width:360px;margin:auto;text-align:left;display:grid;gap:9px}.spd-scan-steps div:before{content:"○";margin-right:9px}.spd-scan-steps .is-on:before{content:"●";color:var(--spd)}.spd-result-photo span{position:absolute;left:12px;bottom:12px;background:rgba(15,61,37,.9);color:#fff;border-radius:999px;padding:7px 10px;font-size:11px;font-weight:800;letter-spacing:.08em}.spd-quality{display:flex;flex-direction:column;background:#fff;border:1px solid var(--spd-border);padding:13px 15px;border-radius:13px;margin:16px 0}.spd-quality span{color:#66736b;font-size:13px;margin-top:3px}.spd-chips{display:flex;flex-wrap:wrap;gap:8px}.spd-chips span{background:#e6f5e9;border:1px solid #cfe4d4;border-radius:999px;padding:7px 10px;font-size:13px;font-weight:700}.spd-tech{margin-top:18px;color:#526057;font-size:13px}.spd-tech summary{cursor:pointer;font-weight:750;color:var(--spd-dark)}
@media(max-width:600px){.spd-upload-grid{grid-template-columns:1fr}.spd-upload-grid .spd-upload{min-height:112px}.spd-photo-wrap img,.spd-result-photo img{max-height:360px}}
.spd-badge-neutral{background:#eef1ef;color:#4b5a50}.spd-observation{display:flex;flex-direction:column;gap:4px;margin:14px 0 0;padding:13px 15px;border-left:4px solid var(--spd);background:#eef7f0;border-radius:10px}.spd-observation span{font-size:13px;line-height:1.5;color:#526057}
.spd-context{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:18px 0}.spd-context label{display:flex;flex-direction:column;gap:6px;text-align:left;font-weight:700;font-size:13px}.spd-context select,.spd-context textarea{width:100%;box-sizing:border-box;border:1px solid var(--spd-border);border-radius:11px;background:#fff;padding:11px;color:#17231b}.spd-context .spd-wide{grid-column:1/-1}.spd-dx.is-top{border-color:#a8d5b4;box-shadow:inset 4px 0 0 var(--spd)}.spd-dx small b{color:var(--spd-dark)}@media(max-width:600px){.spd-context{grid-template-columns:1fr}}
/* StrainDNA™ — additive visual phenotype layer; isolated from diagnosis */
.spd-dna{position:relative;overflow:hidden;margin:22px 0;padding:22px;border:1px solid rgba(116,255,172,.35);border-radius:20px;background:linear-gradient(145deg,rgba(9,28,21,.98),rgba(16,45,34,.96));color:#effff5;box-shadow:0 18px 50px rgba(0,0,0,.18)}
.spd-dna-glow{position:absolute;width:180px;height:180px;right:-60px;top:-80px;border-radius:50%;background:rgba(112,255,170,.12);filter:blur(22px);pointer-events:none}.spd-dna-title{position:relative;display:flex;align-items:center;gap:11px}.spd-dna-title>span{font-size:30px}.spd-dna-title b{display:block;font-size:18px;letter-spacing:.02em}.spd-dna-title small{display:block;opacity:.7;margin-top:2px}.spd-dna-title em{margin-left:auto;font-style:normal;font-size:10px;letter-spacing:.13em;padding:6px 9px;border:1px solid rgba(255,255,255,.18);border-radius:999px;opacity:.8}.spd-dna h4{color:#fff!important;font-size:21px!important;margin:18px 0 6px!important}.spd-dna-headline{margin:0 0 16px;opacity:.82}.spd-dna-traits{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:16px 0}.spd-dna-traits div{padding:11px 12px;border-radius:12px;background:rgba(255,255,255,.065)}.spd-dna-traits small,.spd-dna-traits strong{display:block}.spd-dna-traits small{font-size:10px;text-transform:uppercase;letter-spacing:.08em;opacity:.6;margin-bottom:4px}.spd-dna-traits strong{font-size:13px}.spd-dna-tags{display:flex;flex-wrap:wrap;gap:7px;margin:14px 0}.spd-dna-tags span{font-size:11px;padding:6px 9px;border-radius:999px;background:rgba(116,255,172,.1);border:1px solid rgba(116,255,172,.18)}.spd-dna-match-head{display:flex;justify-content:space-between;align-items:end;border-top:1px solid rgba(255,255,255,.12);padding-top:17px;margin-top:18px}.spd-dna-match-head small{opacity:.6}.spd-dna-match{display:flex;gap:12px;padding:14px 0;border-bottom:1px solid rgba(255,255,255,.09)}.spd-dna-rank{font-size:12px;opacity:.45;padding-top:3px}.spd-dna-match strong,.spd-dna-match small{display:block}.spd-dna-match small{opacity:.68;margin-top:2px}.spd-dna-match p{font-size:12px;margin:6px 0;opacity:.78}.spd-dna-match a{display:inline-block;font-size:12px;font-weight:700;color:#baffcf;text-decoration:none;margin-top:2px}.spd-dna-disclaimer{font-size:11px;line-height:1.5;opacity:.67;margin-top:16px}.spd-dna-muted{background:rgba(15,35,27,.92);padding:16px 18px}.spd-dna-muted p{font-size:12px;margin:10px 0 0;opacity:.7}@media(max-width:700px){.spd-dna-traits{grid-template-columns:repeat(2,minmax(0,1fr))}.spd-dna-match-head{display:block}.spd-dna-match-head small{display:block;margin-top:3px}}
