:root{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,sans-serif;line-height:1.4;color:#0f172a}*{box-sizing:border-box}html,body{margin:0;padding:0;min-height:100vh}body{background:radial-gradient(circle at top,#eef2ff,#f4f7fb 45%,#fff 80%);color:#0f172a;display:flex;flex-direction:column}#root{min-height:100vh;display:flex;flex-direction:column}.header{display:flex;align-items:center;justify-content:space-between;padding:.5rem 0;gap:1rem}.header nav ul{display:flex;gap:1rem;align-items:center;list-style:none;padding:0;margin:0}.header nav ul li{display:flex;align-items:center}.theme-toggle-item{margin-left:.5rem}.theme-toggle-button{display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid rgba(15,23,42,.15);border-radius:50%;width:2.5rem;height:2.5rem;cursor:pointer;color:inherit;font-size:1.25rem;transition:all .2s ease;padding:0}.App.dark .theme-toggle-button{border-color:#e2e8f040}.theme-toggle-button:hover{background:#0f172a0d;transform:scale(1.05)}.App.dark .theme-toggle-button:hover{background:#e2e8f01a}.logo{font-size:1.8rem;margin:0}.logo.dark{color:#f8fafc}.App{min-height:100vh;display:flex;flex-direction:column;gap:2rem;padding:1.5rem clamp(1rem,4vw,3rem) 0;transition:background-color .3s ease,color .3s ease;padding-bottom:0}.App.dark{background:radial-gradient(circle at top,#0f172a,#020617 60%,#000);color:#e2e8f0}.analyzer-panel,.results-panel,.preview-grid{background:#ffffffd9;border-radius:1.5rem;padding:2rem;box-shadow:0 20px 50px #0f172a14}.App.dark .analyzer-panel,.App.dark .results-panel,.App.dark .preview-grid{background:#0f172abf;box-shadow:0 20px 50px #0006}.url-form{display:flex;flex-direction:column;gap:1rem}.url-form label{font-weight:600;letter-spacing:.04em;color:inherit}.input-row{display:flex;gap:1rem;flex-wrap:wrap}.input-row input{flex:1;min-width:240px;padding:1rem 1.25rem;border-radius:999px;border:1px solid rgba(15,23,42,.15);font-size:1rem;background:#ffffffe6;transition:border-color .2s ease,box-shadow .2s ease}.App.dark .input-row input{background:#020617e6;border-color:#e2e8f033;color:#e2e8f0}.input-row input:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px #6366f133}.button{border:none;border-radius:999px;padding:.9rem 2.5rem;font-size:1rem;font-weight:600;cursor:pointer;background:linear-gradient(120deg,#6366f1,#8b5cf6);color:#fff;transition:transform .2s ease,box-shadow .2s ease}.button:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}.button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 12px 25px #6366f159}.button.dark{background:linear-gradient(120deg,#f97316,#f43f5e)}.latency-hint{margin-top:1.5rem;padding:1.25rem 1.5rem;border-radius:1rem;background:#6366f114;color:inherit}.App.dark .latency-hint{background:#6366f126}.eyebrow{text-transform:uppercase;font-size:.8rem;letter-spacing:.14em;color:#0f172a99;margin-bottom:.35rem}.App.dark .eyebrow{color:#e2e8f0a6}.results-panel header{margin-bottom:1.5rem}.empty-state{padding:2rem;border:1px dashed rgba(15,23,42,.2);border-radius:1rem;text-align:center;color:#0f172a99}.App.dark .empty-state{border-color:#e2e8f033;color:#e2e8f0b3}.status-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem;max-width:100%}.status-card{border-radius:1.25rem;padding:1.25rem;border:1px solid rgba(15,23,42,.1);background:#fff9;display:flex;flex-direction:column;gap:1rem}.App.dark .status-card{background:#02061799;border-color:#e2e8f014}.status-card.up{border-color:#22c55e73}.status-card.down{border-color:#f8717173}.status-card__header{display:flex;justify-content:space-between;align-items:center}.status-card h3{margin:0;font-size:1rem;word-break:break-all}.badge{padding:.2rem .8rem;border-radius:999px;font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;background:#0f172a14}.status-card.up .badge{background:#22c55e33;color:#166534}.status-card.down .badge{background:#f8717133;color:#b91c1c}.status-card dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem 1rem;margin:0}.status-card dt{font-size:.75rem;color:#0f172a99;text-transform:uppercase;letter-spacing:.08em}.status-card dd{margin:0;font-size:1rem;font-weight:600}.status-card footer{display:flex;justify-content:space-between;align-items:center;font-size:.85rem;color:#0f172a99}.App.dark .status-card dt,.App.dark .status-card footer{color:#e2e8f099}.preview-grid header{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.5rem}.preview-grid__frames{display:grid;grid-template-columns:repeat(6,1fr);gap:1rem;width:100%;max-width:100%;overflow-x:auto}@media (max-width: 1024px){.preview-grid__frames{grid-template-columns:repeat(3,1fr)}}@media (max-width: 768px){.preview-grid__frames{grid-template-columns:repeat(2,1fr)}}.preview-frame{border-radius:1rem;border:1px solid rgba(15,23,42,.08);overflow:hidden;min-height:220px;display:flex;flex-direction:column;background:#f8fafccc}.App.dark .preview-frame{background:#020617bf;border-color:#e2e8f014}.preview-frame iframe{border:none;width:100%;flex:1}.preview-placeholder{flex:1;display:flex;align-items:center;justify-content:center;color:#0f172a80;font-size:.9rem}.preview-frame footer{padding:.75rem 1rem;display:flex;justify-content:space-between;align-items:center;border-top:1px solid rgba(15,23,42,.08);font-size:.85rem}.latency-badge{font-weight:600}.error{color:#dc2626;margin:.25rem 0 0}.error.subtle{font-size:.8rem;opacity:.8}.http-warning{margin-top:1rem;padding:1rem;border-radius:.75rem;background:#f8717126;border:1px solid rgba(248,113,113,.3)}.http-warning strong{display:block;color:#dc2626;margin-bottom:.5rem;font-size:.9rem}.http-warning p{margin:0;font-size:.85rem;color:inherit;opacity:.9}.App.dark .http-warning{background:#f8717133;border-color:#f8717166}.ssl-warning{color:#f59e0b;font-weight:600}.ssl-expired{color:#dc2626;font-weight:600}.ssl-warning .ssl-days,.ssl-expired .ssl-days{display:block;font-size:.75rem;margin-top:.25rem;opacity:.85;font-weight:500}.status-card dd small.ssl-days{display:block;font-size:.75rem;margin-top:.25rem;opacity:.8}.lighthouse-metrics{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid rgba(15,23,42,.1)}.App.dark .lighthouse-metrics{border-top-color:#e2e8f01a}.lighthouse-metrics h4{margin:0 0 1rem;font-size:1rem;font-weight:600;color:inherit}.lighthouse-scores{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem;margin-bottom:1.5rem}.score-card{text-align:center;padding:.75rem;border-radius:.75rem;background:#0f172a0d;border:1px solid rgba(15,23,42,.1)}.App.dark .score-card{background:#02061780;border-color:#e2e8f01a}.score-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:#0f172a99;margin-bottom:.5rem}.App.dark .score-label{color:#e2e8f099}.score-value{font-size:1.5rem;font-weight:700;line-height:1}.score-good{color:#22c55e}.score-average{color:#f59e0b}.score-poor{color:#ef4444}.performance-details{margin-top:1rem}.performance-details h5{margin:0 0 .75rem;font-size:.85rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:#0f172ab3}.App.dark .performance-details h5{color:#e2e8f0b3}.metrics-list{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem 1rem;margin:0}.metrics-list dt{font-size:.75rem;color:#0f172a99;text-transform:uppercase;letter-spacing:.06em}.App.dark .metrics-list dt{color:#e2e8f099}.metrics-list dd{margin:0;font-size:.9rem;font-weight:600}@media (max-width: 768px){.lighthouse-scores{grid-template-columns:repeat(2,1fr)}.metrics-list{grid-template-columns:1fr}}.footer{margin-top:auto;background:#0f172a;color:#f8fafc;border-radius:1.25rem 1.25rem 0 0;padding:1.5rem clamp(1rem,4vw,3rem);width:100%;flex-shrink:0}.App.dark .footer{background:#020617}.footer-content{display:flex;flex-direction:column;align-items:center;gap:.5rem}.footer .social-links{list-style:none;padding:0;display:flex;gap:1rem;justify-content:center;margin-top:.75rem}.footer .social-links a{color:inherit;text-decoration:none;font-size:.95rem;opacity:.85;transition:opacity .2s ease}.footer .social-links a:hover{opacity:1}@media (max-width: 768px){.header{flex-wrap:wrap;gap:.75rem}.header nav ul{gap:.75rem;flex-wrap:wrap}.header nav ul li{font-size:.9rem}.theme-toggle-button{width:2.25rem;height:2.25rem;font-size:1.1rem}.App{padding:1rem 1rem 0;gap:1.5rem}.analyzer-panel,.results-panel,.preview-grid{padding:1.5rem}.input-row{flex-direction:column}.button{width:100%}.preview-grid__frames,.status-grid{grid-template-columns:1fr}.footer{padding:1.25rem 1rem}}
