.image-upload-area{background:var(--c-surface);padding:1.8rem;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--c-border);transition:box-shadow .3s var(--ease)}.image-upload-area:hover{box-shadow:var(--shadow-md)}.image-upload-area h2{margin-bottom:1.2rem;font-size:1.1rem;font-weight:700;letter-spacing:-.03em;color:var(--c-text-1)}.upload-zone{border:2px dashed rgba(0,113,227,.28);border-radius:var(--radius-md);padding:2.4rem 1.5rem;text-align:center;cursor:pointer;transition:all .28s var(--ease);background:rgba(0,113,227,.02);animation:pulse-border 3s ease-in-out infinite}.upload-zone:hover,.upload-zone.active{border-color:var(--c-accent);background:rgba(0,113,227,.05);animation:none}.upload-zone.active{box-shadow:0 0 0 4px #0071e31a}.upload-placeholder{display:flex;flex-direction:column;align-items:center;gap:.75rem}.upload-icon{width:44px;height:44px;color:var(--c-accent);opacity:.65;stroke-width:1.5;transition:transform .25s var(--ease-spring),opacity .25s var(--ease)}.upload-zone:hover .upload-icon{transform:translateY(-4px) scale(1.1);opacity:1}.drag-text{font-weight:600;font-size:.93rem;color:var(--c-text-1);margin:0;letter-spacing:-.01em}.or-text{color:var(--c-text-3);margin:0;font-size:.82rem}.browse-button{background:var(--c-accent);color:#fff;padding:.52em 1.35em;border-radius:20px;cursor:pointer;border:none;font-weight:600;font-size:.87rem;letter-spacing:-.01em;box-shadow:0 2px 8px #0071e34d;transition:background .22s var(--ease),transform .18s var(--ease-spring),box-shadow .22s var(--ease)}.browse-button:hover{background:var(--c-accent-dark);transform:scale(1.05);box-shadow:0 4px 14px #0071e366}.preview-container{display:flex;flex-direction:column;align-items:center;gap:.85rem;animation:fadeInUp .35s var(--ease-out) both}.preview-image{max-width:100%;max-height:280px;border-radius:var(--radius-md);border:1px solid var(--c-border);box-shadow:var(--shadow-sm);transition:box-shadow .25s var(--ease),transform .25s var(--ease)}.preview-image:hover{box-shadow:var(--shadow-md);transform:scale(1.01)}.file-name{color:var(--c-text-2);font-size:.8rem;margin:0}.change-button{background:var(--c-surface);color:var(--c-text-2);border:1.5px solid var(--c-border);padding:.38em 1em;border-radius:20px;font-size:.8rem;font-weight:500;box-shadow:var(--shadow-xs);transition:all .2s var(--ease)}.change-button:hover{background:var(--c-bg);color:var(--c-text-1);border-color:#00000029;transform:scale(1.01)}.help-text{color:var(--c-text-3);font-size:.78rem;margin-top:.5rem;line-height:1.55}.requirements-form{background:var(--c-surface);padding:1.8rem;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--c-border);transition:box-shadow .3s var(--ease)}.requirements-form:hover{box-shadow:var(--shadow-md)}.requirements-form h2{margin-bottom:1.3rem;font-size:1.1rem;font-weight:700;letter-spacing:-.03em;color:var(--c-text-1)}form{display:flex;flex-direction:column;gap:1.3rem}.form-group{display:flex;flex-direction:column;gap:.4rem}.form-group label{font-weight:600;font-size:.82rem;color:var(--c-text-1);letter-spacing:.01em;text-transform:uppercase}.form-group select{padding:.65em .9em;border:1.5px solid var(--c-border);border-radius:var(--radius-sm);font-size:.95em;background:var(--c-surface);color:var(--c-text-1);transition:border-color .2s var(--ease),box-shadow .2s var(--ease)}.form-group select:focus{outline:none;border-color:var(--c-accent);box-shadow:0 0 0 3px #0071e31f}.form-group small{color:var(--c-text-3);font-size:.78rem;line-height:1.4}.radio-group{display:flex;flex-direction:column;gap:.5rem}.radio-label{display:flex;align-items:center;gap:.75rem;cursor:pointer;padding:.7rem .9rem;border:1.5px solid var(--c-border);border-radius:var(--radius-sm);transition:all .22s var(--ease);background:var(--c-surface)}.radio-label:hover{background:rgba(0,113,227,.04);border-color:#0071e34d}.radio-label:has(input:checked){background:rgba(0,113,227,.06);border-color:var(--c-accent);box-shadow:0 0 0 2px #0071e31f}.radio-label input[type=radio]{cursor:pointer;width:17px;height:17px;margin:0;accent-color:var(--c-accent)}.coverage-options{display:flex;flex-direction:column;gap:.6rem}.coverage-label{display:flex;flex-direction:column;gap:.18rem;padding:.9rem 1rem;border:1.5px solid var(--c-border);border-radius:var(--radius-md);cursor:pointer;transition:all .25s var(--ease);background:var(--c-surface);position:relative}.coverage-label:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:var(--radius-md);box-shadow:var(--shadow-sm);opacity:0;transition:opacity .25s var(--ease)}.coverage-label:hover{background:rgba(0,113,227,.03);border-color:#0071e347}.coverage-label:hover:before{opacity:1}.coverage-label:has(input:checked){border-color:var(--c-accent);background:rgba(0,113,227,.05);box-shadow:0 0 0 2px #0071e326,var(--shadow-sm)}.coverage-label input[type=radio]{position:absolute;opacity:0;width:0;height:0}.coverage-title{font-weight:600;font-size:.9rem;color:var(--c-text-1);letter-spacing:-.01em;transition:color .2s var(--ease)}.coverage-label:has(input:checked) .coverage-title{color:var(--c-accent)}.coverage-desc{color:var(--c-text-2);font-size:.8rem;line-height:1.4}.submit-button{background:var(--c-accent);color:#fff;padding:.82em 1.5em;border:none;border-radius:20px;font-size:.95em;font-weight:600;cursor:pointer;margin-top:.4rem;letter-spacing:-.01em;box-shadow:0 2px 10px #0071e34d;transition:background .22s var(--ease),transform .18s var(--ease-spring),box-shadow .22s var(--ease)}.submit-button:hover:not(:disabled){background:var(--c-accent-dark);transform:scale(1.025);box-shadow:0 4px 18px #0071e36b}.submit-button:active:not(:disabled){transform:scale(.98)}.submit-button:disabled{background:var(--c-text-3);box-shadow:none;opacity:1}.heatmap-viewer{background:var(--c-surface);padding:1.8rem;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--c-border);margin-bottom:1.4rem}.heatmap-viewer h3{margin-bottom:1rem;font-size:1.15rem;font-weight:700;letter-spacing:-.03em;color:var(--c-text-1)}.heatmap-info{display:flex;flex-wrap:wrap;gap:.6rem 1.2rem;margin-bottom:1.2rem;padding:.85rem 1rem;background:var(--c-bg);border-radius:var(--radius-sm);border:1px solid var(--c-border)}.heatmap-info p{margin:0;font-size:.88rem;color:var(--c-text-2)}.heatmap-info p strong{color:var(--c-text-1);font-weight:600}.heatmap-container{width:100%;border-radius:var(--radius-md);border:1px solid var(--c-border);margin-bottom:1rem;overflow:hidden;display:flex;align-items:center;justify-content:center;background:var(--c-bg);min-height:280px;box-shadow:inset 0 2px 8px #0000000a;transition:box-shadow .3s var(--ease)}.heatmap-container:hover{box-shadow:inset 0 2px 8px #0000000a,0 0 0 3px #0071e314}.heatmap-container canvas{display:block;max-width:100%;height:auto}.heatmap-legend{display:flex;flex-wrap:wrap;gap:.5rem 1rem;margin-bottom:1.3rem;padding:.85rem 1rem;background:var(--c-bg);border-radius:var(--radius-sm);border:1px solid var(--c-border);justify-content:center}.legend-item{display:flex;align-items:center;gap:.45rem;font-size:.8rem;color:var(--c-text-2);letter-spacing:-.005em}.legend-color{width:18px;height:18px;border-radius:var(--radius-sm);border:1px solid rgba(0,0,0,.08);flex-shrink:0}.ap-placements{background:var(--c-bg);padding:1.1rem;border-radius:var(--radius-md);border:1px solid var(--c-border)}.ap-placements h4{margin:0 0 .85rem;font-size:.92rem;font-weight:700;letter-spacing:-.02em;color:var(--c-text-1)}.ap-placements ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.5rem}.ap-placements li{padding:.65rem .85rem;background:var(--c-surface);border-radius:var(--radius-sm);border-left:3px solid var(--c-accent);color:var(--c-text-2);font-size:.87em;box-shadow:var(--shadow-xs);transition:transform .2s var(--ease-spring),box-shadow .2s var(--ease)}.ap-placements li:hover{transform:translate(3px);box-shadow:var(--shadow-sm)}.ap-placements strong{color:var(--c-text-1)}.hardware-recommendations{background:var(--c-surface);padding:1.8rem;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--c-border);margin-bottom:1.4rem}.hardware-recommendations h3{margin-bottom:1.4rem;font-size:1.15rem;font-weight:700;letter-spacing:-.03em;color:var(--c-text-1)}.recommendations-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:1.2rem;margin-bottom:1.8rem}.hardware-card{border:1px solid var(--c-border);border-radius:var(--radius-lg);padding:1.4rem;background:var(--c-surface-2);transition:transform .28s var(--ease-spring),box-shadow .28s var(--ease),border-color .25s var(--ease);cursor:default;display:flex;flex-direction:column}.hardware-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-lift);border-color:#0071e333;background:var(--c-surface)}.card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem;padding-bottom:.9rem;border-bottom:1px solid var(--c-border)}.card-header h4{margin:0;color:var(--c-text-1);font-size:1rem;font-weight:700;letter-spacing:-.02em;line-height:1.3}.rank-badge{background:linear-gradient(135deg,#0071e3,#40a9ff);color:#fff;padding:.22em .75em;border-radius:20px;font-size:.75rem;font-weight:700;letter-spacing:.02em;white-space:nowrap;box-shadow:0 2px 6px #0071e359;flex-shrink:0;margin-left:.5rem}.hardware-card:nth-child(1) .rank-badge{background:linear-gradient(135deg,#f59e0b,#fcd34d);color:#1d1d1f;box-shadow:0 2px 6px #f59e0b66}.hardware-card:nth-child(2) .rank-badge{background:linear-gradient(135deg,#6b7280,#9ca3af);box-shadow:0 2px 6px #6b728066}.hardware-card:nth-child(3) .rank-badge{background:linear-gradient(135deg,#b45309,#d97706);box-shadow:0 2px 6px #b4530959}.card-specs{display:flex;flex-direction:column;gap:.6rem;margin-bottom:.9rem;padding-bottom:.9rem;border-bottom:1px solid var(--c-border)}.spec-row{display:flex;justify-content:space-between;align-items:center;font-size:.88em}.spec-row .label{color:var(--c-text-2);font-weight:500}.spec-row .value{color:var(--c-text-1);font-weight:600;letter-spacing:-.01em}.card-recommendation{display:flex;flex-direction:column;gap:.6rem;margin-bottom:.9rem;padding:.85rem;background:rgba(0,113,227,.04);border-radius:var(--radius-sm);border:1px solid rgba(0,113,227,.1);flex:1}.quantity,.coverage{display:flex;justify-content:space-between;align-items:center;font-size:.87em}.placement{display:flex;flex-direction:column;align-items:flex-start;gap:.18rem;font-size:.87em}.quantity .label,.coverage .label,.placement .label{color:var(--c-text-2);font-weight:500}.quantity .value,.coverage .value{color:var(--c-text-1);font-weight:600}.placement .value{color:var(--c-text-1);font-weight:600;line-height:1.45}.wifi-badge{background:linear-gradient(135deg,rgba(0,113,227,.12),rgba(64,169,255,.12));color:var(--c-accent);padding:.12em .55em;border-radius:10px;font-size:.8rem;font-weight:700;border:1px solid rgba(0,113,227,.2)}.coverage-pct{color:#16a34a;font-weight:700}.card-pricing{background:linear-gradient(135deg,rgba(22,163,74,.06),rgba(34,197,94,.06));border:1px solid rgba(22,163,74,.18);border-radius:var(--radius-sm);padding:.75rem .85rem .6rem;margin-bottom:.75rem}.price-row{display:flex;justify-content:space-between;align-items:center}.price-label{font-size:.8rem;color:var(--c-text-2);font-weight:500}.price-total{font-size:1.1rem;font-weight:800;color:#15803d;letter-spacing:-.03em}.pack-note{margin:.3rem 0 0;font-size:.75rem;color:var(--c-text-2);line-height:1.4}.card-actions{margin-top:auto}.buy-button{display:block;width:100%;text-align:center;text-decoration:none;background:var(--c-accent);color:#fff;padding:.65em;border:none;border-radius:var(--radius-sm);cursor:pointer;font-weight:700;font-size:.88rem;letter-spacing:-.01em;box-shadow:0 2px 8px #0071e347;transition:background .22s var(--ease),transform .18s var(--ease-spring),box-shadow .22s var(--ease)}.buy-button:hover{background:var(--c-accent-dark);transform:scale(1.02);box-shadow:0 4px 14px #0071e361}.buy-button:disabled{background:var(--c-text-3, #9ca3af);cursor:not-allowed;transform:none;box-shadow:none}.recommendation-notes{background:linear-gradient(135deg,rgba(0,113,227,.05),rgba(64,169,255,.05));padding:1.4rem;border-radius:var(--radius-md);border:1px solid rgba(0,113,227,.15);box-shadow:var(--shadow-xs)}.recommendation-notes h4{margin:0 0 .85rem;font-size:.95rem;font-weight:700;letter-spacing:-.02em;color:var(--c-text-1)}.recommendation-notes ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.6rem}.recommendation-notes li{color:var(--c-text-2);font-size:.88em;line-height:1.55;padding-left:1rem;position:relative}.recommendation-notes li:before{content:"→";position:absolute;left:0;color:var(--c-accent);font-weight:700}.recommendation-notes strong{color:var(--c-text-1)}.installation-service{background:var(--c-surface);padding:1.8rem;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--c-border);margin-bottom:1.4rem}.is-header{margin-bottom:1.2rem}.is-header h3{margin:0 0 .35rem;font-size:1.15rem;font-weight:700;letter-spacing:-.03em;color:var(--c-text-1)}.is-subtitle{margin:0;font-size:.9rem;color:var(--c-text-2);line-height:1.5}.is-ai-badge{display:flex;align-items:flex-start;gap:.55rem;background:linear-gradient(135deg,rgba(124,58,237,.07),rgba(167,139,250,.07));border:1px solid rgba(124,58,237,.2);border-radius:var(--radius-md);padding:.7rem .95rem;margin-top:.85rem;font-size:.85rem;color:var(--c-text-2);line-height:1.5}.is-ai-icon{flex-shrink:0;font-size:1rem}.is-ai-badge strong{color:#7c3aed}.is-context-banner{display:flex;align-items:flex-start;gap:.6rem;background:rgba(0,113,227,.06);border:1px solid rgba(0,113,227,.15);border-radius:var(--radius-md);padding:.75rem 1rem;margin-bottom:1.4rem;font-size:.87rem;color:var(--c-text-2);line-height:1.5}.is-context-icon{flex-shrink:0}.is-context-banner strong{color:var(--c-text-1)}.is-tiers{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1.2rem;margin-bottom:1.2rem}.is-tier{position:relative;border:1px solid var(--c-border);border-radius:var(--radius-lg);padding:1.5rem 1.4rem 1.3rem;background:var(--c-surface-2);display:flex;flex-direction:column;transition:transform .28s var(--ease-spring),box-shadow .28s var(--ease),border-color .25s var(--ease)}.is-tier:hover{transform:translateY(-5px);box-shadow:var(--shadow-lift)}.is-tier--basic{border-top:3px solid #6b7280}.is-tier--standard{border-top:3px solid #0071e3}.is-tier--premium{border-top:3px solid #9333ea}.is-popular-tag{position:absolute;top:-1px;right:1rem;background:linear-gradient(135deg,#0071e3,#40a9ff);color:#fff;font-size:.7rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:.2em .7em;border-radius:0 0 8px 8px;box-shadow:0 2px 8px #0071e359}.is-tier-icon{font-size:1.8rem;margin-bottom:.55rem;line-height:1}.is-tier-title{margin:0 0 .7rem;font-size:1rem;font-weight:700;letter-spacing:-.02em;color:var(--c-text-1)}.is-tier-price{display:flex;align-items:baseline;gap:.45rem;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid var(--c-border)}.is-price-value{font-size:1.45rem;font-weight:800;letter-spacing:-.04em;color:var(--c-text-1)}.is-tier--basic .is-price-value{color:#16a34a}.is-tier--standard .is-price-value{color:var(--c-accent)}.is-tier--premium .is-price-value{color:#9333ea}.is-price-note{font-size:.78rem;color:var(--c-text-2);line-height:1.4}.is-price--free{color:#16a34a!important}.is-price--custom{color:#9333ea!important}.is-rate-card{background:rgba(0,113,227,.05);border:1px solid rgba(0,113,227,.15);border-radius:var(--radius-sm);padding:.75rem .9rem;margin-bottom:.9rem;display:flex;flex-direction:column;gap:.5rem}.is-rate-row{display:flex;justify-content:space-between;align-items:center;font-size:.84rem}.is-rate-row--total{padding-top:.45rem;border-top:1px dashed var(--c-border)}.is-rate-label{color:var(--c-text-2)}.is-rate-price{font-weight:700;color:var(--c-text-1);white-space:nowrap}.is-rate-price em{font-style:normal;font-weight:400;font-size:.78rem;color:var(--c-text-2);margin-left:1px}.is-rate-gst{margin:.35rem 0 0;font-size:.74rem;color:var(--c-text-2);font-style:italic}.is-estimate{background:linear-gradient(135deg,rgba(0,113,227,.08),rgba(64,169,255,.06));border:1px solid rgba(0,113,227,.2);border-radius:var(--radius-sm);padding:.65rem .9rem;margin-bottom:.9rem}.is-estimate-label{display:block;font-size:.78rem;color:var(--c-text-2);font-weight:500;margin-bottom:.3rem}.is-estimate-breakdown{display:flex;justify-content:space-between;align-items:baseline;font-size:.85rem;color:var(--c-text-2)}.is-estimate-total{font-size:1.05rem;font-weight:800;color:var(--c-accent);letter-spacing:-.02em}.is-estimate-total em{font-style:normal;font-size:.72rem;font-weight:500;color:var(--c-text-2);margin-left:2px}.is-tier-features{list-style:none;padding:0;margin:0 0 1.2rem;flex:1;display:flex;flex-direction:column;gap:.5rem}.is-tier-features li{font-size:.85rem;color:var(--c-text-2);line-height:1.5;padding-left:1.2rem;position:relative}.is-tier-features li:before{content:"✓";position:absolute;left:0;font-weight:700;font-size:.8rem}.is-tier--basic .is-tier-features li:before{color:#6b7280}.is-tier--standard .is-tier-features li:before{color:var(--c-accent)}.is-tier--premium .is-tier-features li:before{color:#9333ea}.is-cta{display:block;width:100%;text-align:center;text-decoration:none;padding:.68em 1em;border:none;border-radius:var(--radius-sm);cursor:pointer;font-weight:700;font-size:.9rem;letter-spacing:-.01em;margin-top:auto;transition:transform .18s var(--ease-spring),box-shadow .22s var(--ease),background .22s var(--ease)}.is-cta--basic{background:#f3f4f6;color:#374151;border:1px solid #d1d5db}.is-cta--basic:hover{background:#e5e7eb;transform:scale(1.02)}.is-cta--standard{background:var(--c-accent);color:#fff;box-shadow:0 2px 8px #0071e347}.is-cta--standard:hover{background:var(--c-accent-dark);transform:scale(1.02);box-shadow:0 4px 14px #0071e361}.is-cta--premium{background:#9333ea;color:#fff;box-shadow:0 2px 8px #9333ea4d}.is-cta--premium:hover{background:#7e22ce;transform:scale(1.02);box-shadow:0 4px 14px #9333ea66}.is-disclaimer{font-size:.76rem;color:var(--c-text-2);line-height:1.6;margin:0;padding-top:.8rem;border-top:1px solid var(--c-border);opacity:.8}@media (max-width: 640px){.is-tiers{grid-template-columns:1fr}}.app{min-height:100vh;display:flex;flex-direction:column;background:var(--c-bg)}header{position:sticky;top:0;z-index:100;text-align:center;padding:1.3rem 2rem;background:rgba(255,255,255,.72);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-bottom:1px solid var(--c-border);box-shadow:0 1px #0000000a;animation:fadeIn .5s var(--ease-out) both}header h1{font-size:1.55rem;font-weight:700;letter-spacing:-.04em;color:var(--c-text-1);line-height:1.15}header p{font-size:.86rem;color:var(--c-text-2);margin-top:.2rem;letter-spacing:-.01em}.step-progress{display:flex;align-items:center;justify-content:center;gap:0;padding:1.5rem 2rem .6rem;animation:fadeInUp .5s var(--ease-out) .1s both}.step-item{display:flex;flex-direction:column;align-items:center;gap:.32rem}.step-dot{width:28px;height:28px;border-radius:50%;border:2px solid var(--c-border);background:var(--c-surface);display:flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:700;color:var(--c-text-3);transition:all .35s var(--ease);box-shadow:var(--shadow-xs)}.step-item.active .step-dot{background:var(--c-accent);border-color:var(--c-accent);color:#fff;box-shadow:0 0 0 4px #0071e32e}.step-item.done .step-dot{background:var(--c-green);border-color:var(--c-green);color:#fff}.step-label{font-size:.68rem;font-weight:600;color:var(--c-text-3);letter-spacing:.02em;text-transform:uppercase;transition:color .25s var(--ease);white-space:nowrap}.step-item.active .step-label{color:var(--c-accent)}.step-item.done .step-label{color:var(--c-green)}.step-connector{width:56px;height:2px;background:var(--c-border);margin:0 6px 22px;border-radius:2px;transition:background .4s var(--ease)}.step-connector.done{background:var(--c-green)}main{flex:1;max-width:1200px;margin:0 auto;width:100%;padding:1.5rem 2rem 3rem}.upload-section{display:flex;flex-direction:column;gap:1.4rem;animation:fadeInUp .5s var(--ease-out) .15s both}.boundary-confirmed{display:flex;align-items:center;gap:10px;padding:10px 14px;background:rgba(52,199,89,.08);border:1px solid rgba(52,199,89,.3);border-radius:var(--radius-md);margin-bottom:10px;animation:fadeInUp .3s var(--ease-out) both}.boundary-confirmed .bc-icon{font-size:1.15rem}.boundary-confirmed strong{color:#1c7831;font-size:.88rem;letter-spacing:-.01em}.boundary-confirmed span{color:var(--c-text-2);font-size:.82rem;margin-left:6px}.boundary-confirmed .redraw-btn{margin-left:auto;padding:3px 12px;border-radius:20px;border:1px solid rgba(0,0,0,.12);background:white;cursor:pointer;font-size:.76rem;color:var(--c-text-2);font-weight:500;transition:all .2s var(--ease);box-shadow:var(--shadow-xs)}.boundary-confirmed .redraw-btn:hover{background:var(--c-bg);transform:none;box-shadow:var(--shadow-sm)}.results-section{width:100%;animation:fadeInUp .45s var(--ease-out) .05s both}.results-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.8rem;padding-bottom:1rem;border-bottom:1px solid var(--c-border)}.results-header h2{font-size:1.5rem;font-weight:700;letter-spacing:-.03em;color:var(--c-text-1)}.back-button{padding:.42em 1.1em;background:var(--c-surface);color:var(--c-accent);border:1.5px solid rgba(0,113,227,.28);border-radius:20px;font-weight:600;font-size:.86rem;box-shadow:var(--shadow-xs)}.back-button:hover{background:rgba(0,113,227,.05);border-color:var(--c-accent);box-shadow:var(--shadow-sm);color:var(--c-accent-dark);transform:scale(1.01)}.error{color:#b91c1c;background:rgba(255,59,48,.06);padding:.85rem 1rem;border-radius:var(--radius-md);margin-top:.8rem;border-left:3px solid rgba(255,59,48,.55);font-size:.88rem;animation:fadeInUp .3s var(--ease-out) both}.loading-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.38);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s var(--ease-out) both}.loading-card{background:rgba(255,255,255,.94);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);padding:2.2rem 2.8rem;border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);text-align:center;display:flex;flex-direction:column;align-items:center;gap:1rem;animation:fadeInUp .35s var(--ease-spring) both;border:1px solid rgba(255,255,255,.6)}.spinner-ring{width:42px;height:42px;border:3px solid rgba(0,113,227,.18);border-top-color:var(--c-accent);border-radius:50%;animation:spin-ring .75s linear infinite}.loading-card p{font-size:.95rem;font-weight:600;color:var(--c-text-1);letter-spacing:-.01em}.loading-card small{font-size:.78rem;color:var(--c-text-2)}.analysis-notes{background:var(--c-surface);padding:1.6rem;border-radius:var(--radius-lg);margin-top:1.4rem;box-shadow:var(--shadow-sm);border:1px solid var(--c-border)}.analysis-notes h3{margin-bottom:.9rem;font-size:1.05rem;font-weight:700;letter-spacing:-.02em;color:var(--c-text-1)}.analysis-notes pre{background:var(--c-bg);padding:1rem;border-radius:var(--radius-sm);overflow-x:auto;font-size:.82em;line-height:1.75;color:var(--c-text-2);border:1px solid var(--c-border)}:root{--c-bg: #f5f5f7;--c-surface: #ffffff;--c-surface-2: #fafafa;--c-text-1: #1d1d1f;--c-text-2: #6e6e73;--c-text-3: #a1a1a6;--c-accent: #0071e3;--c-accent-dark: #0064cc;--c-green: #34c759;--c-border: rgba(0, 0, 0, .08);--shadow-xs: 0 1px 3px rgba(0,0,0,.06), 0 1px 2px rgba(0,0,0,.04);--shadow-sm: 0 4px 12px rgba(0,0,0,.08), 0 1px 3px rgba(0,0,0,.04);--shadow-md: 0 8px 24px rgba(0,0,0,.09), 0 3px 8px rgba(0,0,0,.05);--shadow-lg: 0 20px 48px rgba(0,0,0,.1), 0 8px 16px rgba(0,0,0,.06);--shadow-lift: 0 16px 40px rgba(0,0,0,.13), 0 6px 12px rgba(0,0,0,.08);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--ease: cubic-bezier(.4, 0, .2, 1);--ease-out: cubic-bezier(0, 0, .2, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,Segoe UI,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--c-text-1);background-color:var(--c-bg)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{font-size:16px;line-height:1.6;background:var(--c-bg)}button{border-radius:var(--radius-sm);border:1px solid transparent;padding:.6em 1.4em;font-size:.95em;font-weight:500;font-family:inherit;background:var(--c-text-1);color:#fff;cursor:pointer;transition:background .22s var(--ease),transform .18s var(--ease-spring),box-shadow .22s var(--ease);letter-spacing:-.01em}button:hover:not(:disabled){background:#000;transform:scale(1.02);box-shadow:var(--shadow-sm)}button:active:not(:disabled){transform:scale(.98)}button:disabled{opacity:.4;cursor:not-allowed}input,select,textarea{padding:.65em .9em;border:1.5px solid var(--c-border);border-radius:var(--radius-sm);font-size:1em;font-family:inherit;background:var(--c-surface);color:var(--c-text-1);transition:border-color .2s var(--ease),box-shadow .2s var(--ease)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--c-accent);box-shadow:0 0 0 3px #0071e326}label{display:block;margin-bottom:.4em;font-weight:600;font-size:.88em;color:var(--c-text-1);letter-spacing:-.01em}@keyframes fadeInUp{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes spin-ring{to{transform:rotate(360deg)}}@keyframes pulse-border{0%,to{border-color:#0071e34d}50%{border-color:#0071e3cc}}
