*,*::before,*::after{box-sizing:border-box}*{margin:0;padding:0}html{font-size:16px;scroll-behavior:smooth}body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI','Roboto','Oxygen','Ubuntu','Cantarell','Fira Sans','Droid Sans','Helvetica Neue',sans-serif;line-height:1.6;color:#1f2937;background-color:#f9fafb;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:root{--color-primary:#3b82f6;--color-primary-dark:#2563eb;--color-success:#10b981;--color-success-light:#d1fae5;--color-warning:#f59e0b;--color-warning-light:#fef3c7;--color-danger:#ef4444;--color-danger-light:#fee2e2;--color-gray-50:#f9fafb;--color-gray-100:#f3f4f6;--color-gray-200:#e5e7eb;--color-gray-300:#d1d5db;--color-gray-400:#9ca3af;--color-gray-500:#6b7280;--color-gray-600:#4b5563;--color-gray-700:#374151;--color-gray-800:#1f2937;--color-gray-900:#111827;--color-white:#ffffff;--space-1:0.25rem;--space-2:0.5rem;--space-3:0.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--font-size-sm:0.875rem;--font-size-base:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:1.875rem;--font-size-4xl:2.25rem;--shadow-sm:0 1px 2px 0 rgb(0 0 0 / 0.05);--shadow-base:0 1px 3px 0 rgb(0 0 0 / 0.1),0 1px 2px -1px rgb(0 0 0 / 0.1);--shadow-md:0 4px 6px -1px rgb(0 0 0 / 0.1),0 2px 4px -2px rgb(0 0 0 / 0.1);--shadow-lg:0 10px 15px -3px rgb(0 0 0 / 0.1),0 4px 6px -4px rgb(0 0 0 / 0.1);--radius-sm:0.25rem;--radius-base:0.375rem;--radius-md:0.5rem;--radius-lg:0.75rem;--radius-xl:1rem;--transition-fast:150ms ease-in-out;--transition-base:250ms ease-in-out;--transition-slow:350ms ease-in-out}.skip-link{position:absolute;top:-40px;left:6px;background:var(--color-primary);color:var(--color-white);padding:var(--space-2) var(--space-4);text-decoration:none;border-radius:var(--radius-base);z-index:1000;transition:top var(--transition-fast)}.skip-link:focus{top:6px}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.container{max-width:1200px;margin:0 auto;padding:0 var(--space-4)}@media (min-width:768px){.container{padding:0 var(--space-6)}}@media (min-width:1024px){.container{padding:0 var(--space-8)}}.site-header{background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-dark) 100%);color:var(--color-white);padding:var(--space-8) 0;text-align:center}.site-title{font-size:var(--font-size-4xl);font-weight:700;margin-bottom:var(--space-2);display:flex;align-items:center;justify-content:center}.title-icon{font-size:var(--font-size-3xl);margin-right:var(--space-3)}.site-accent{color:#f87171 !important}.site-description{font-size:var(--font-size-lg);opacity:0.9;margin-bottom:var(--space-6)}.last-updated{display:inline-flex;align-items:center;gap:var(--space-2);background:rgba(255,255,255,0.1);padding:var(--space-2) var(--space-4);border-radius:var(--radius-lg);font-size:var(--font-size-sm);backdrop-filter:blur(10px)}.update-label{opacity:0.8}.main-content{padding:var(--space-12) 0;min-height:60vh}.seo-content{position:absolute !important;left:-10000px !important;width:1px !important;height:1px !important;overflow:hidden !important;clip:rect(0,0,0,0) !important;white-space:nowrap !important;border:0 !important}.seo-text{color:var(--color-gray-600);line-height:1.6;font-size:var(--font-size-sm)}.seo-text p{margin-bottom:var(--space-4)}.seo-text p:last-child{margin-bottom:0}.status-summary{margin-bottom:var(--space-12)}.summary-card{background:var(--color-white);border-radius:var(--radius-xl);padding:var(--space-8);box-shadow:var(--shadow-lg);text-align:center;border:1px solid var(--color-gray-200)}.summary-indicator{display:flex;align-items:center;justify-content:center;gap:var(--space-3);margin-bottom:var(--space-4)}.summary-description{color:var(--color-gray-600);font-size:var(--font-size-lg)}.section-heading{font-size:var(--font-size-2xl);font-weight:600;margin-bottom:var(--space-8);text-align:center;color:var(--color-gray-800)}.providers-grid{display:grid;grid-template-columns:1fr;gap:var(--space-6)}@media (min-width:768px){.providers-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width:1024px){.providers-grid{grid-template-columns:repeat(3,1fr)}}.provider-card{background:var(--color-white);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-base);border:1px solid var(--color-gray-200);transition:all var(--transition-base);position:relative;overflow:hidden}.provider-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.provider-card::before{content:'';position:absolute;top:0;left:0;right:0;height:4px;background:var(--color-gray-300);transition:background-color var(--transition-base)}.provider-card.operational::before{background:var(--color-success)}.provider-card.degraded::before{background:var(--color-warning)}.provider-card.outage::before{background:var(--color-danger)}.card-header{margin-bottom:var(--space-4)}.provider-info{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-4)}.provider-name{font-size:var(--font-size-xl);font-weight:600;color:var(--color-gray-800);margin:0}.provider-link{color:inherit;text-decoration:none;transition:color var(--transition-fast)}.provider-link:hover{color:var(--color-primary)}.status-indicator{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0}.status-dot{width:12px;height:12px;border-radius:50%;background:var(--color-gray-400);transition:background-color var(--transition-base);position:relative}.status-dot.operational{background:var(--color-success)}.status-dot.degraded{background:var(--color-warning)}.status-dot.outage{background:var(--color-danger);animation:pulse 2s infinite}.status-text{font-size:var(--font-size-sm);font-weight:500;text-transform:capitalize}.status-text.operational{color:var(--color-success)}.status-text.degraded{color:var(--color-warning)}.status-text.outage{color:var(--color-danger)}.card-content{color:var(--color-gray-600)}.provider-description{margin-bottom:var(--space-4);line-height:1.5}.incidents-list{list-style:none;margin:0;padding:0}.incident-item{background:var(--color-gray-50);border-radius:var(--radius-base);padding:var(--space-3);margin-bottom:var(--space-2);border-left:3px solid var(--color-warning)}.incident-item.outage{border-left-color:var(--color-danger);background:var(--color-danger-light)}.incident-title{font-weight:500;margin-bottom:var(--space-1);color:var(--color-gray-800)}.incident-status{font-size:var(--font-size-sm);color:var(--color-gray-600);text-transform:capitalize}.loading .status-dot{background:var(--color-gray-300);animation:pulse 1.5s ease-in-out infinite}.loading .provider-name,.loading .status-text,.loading .provider-description{background:linear-gradient(90deg,var(--color-gray-200) 25%,var(--color-gray-100) 50%,var(--color-gray-200) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--radius-sm);color:transparent}.loading .provider-name{height:1.5rem;width:60%}.loading .status-text{height:1rem;width:80px}.loading .provider-description{height:1rem;width:100%}.error-section{text-align:center;padding:var(--space-12) 0}.error-title{font-size:var(--font-size-2xl);color:var(--color-danger);margin-bottom:var(--space-6)}.error-content{max-width:600px;margin:0 auto}.error-message{font-size:var(--font-size-lg);margin-bottom:var(--space-4);color:var(--color-gray-700)}.error-reasons{text-align:left;margin-bottom:var(--space-8);color:var(--color-gray-600)}.error-reasons li{margin-bottom:var(--space-2)}.error-actions{margin-bottom:var(--space-8)}.retry-button{background:var(--color-primary);color:var(--color-white);border:none;padding:var(--space-3) var(--space-6);border-radius:var(--radius-lg);font-size:var(--font-size-base);font-weight:500;cursor:pointer;transition:all var(--transition-base);display:inline-flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-6)}.retry-button:hover{background:var(--color-primary-dark);transform:translateY(-1px)}.retry-button:active{transform:translateY(0)}.error-fallback{margin-bottom:var(--space-4);color:var(--color-gray-600)}.fallback-links{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-4);list-style:none}.fallback-links a{color:var(--color-primary);text-decoration:none;padding:var(--space-2) var(--space-3);border-radius:var(--radius-base);transition:all var(--transition-fast)}.fallback-links a:hover{background:var(--color-primary);color:var(--color-white)}.site-footer{background:var(--color-gray-800);color:var(--color-gray-300);padding:var(--space-12) 0 var(--space-6);margin-top:var(--space-20)}.footer-content{display:grid;grid-template-columns:1fr;gap:var(--space-8);margin-bottom:var(--space-8)}@media (min-width:768px){.footer-content{grid-template-columns:repeat(3,1fr)}}.footer-section h3{color:var(--color-white);font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--space-4)}.footer-text{line-height:1.6}.provider-links,.resource-links{list-style:none}.provider-links li,.resource-links li{margin-bottom:var(--space-2)}.provider-links a,.resource-links a{color:var(--color-gray-300);text-decoration:none;transition:color var(--transition-fast)}.provider-links a:hover,.resource-links a:hover{color:var(--color-white)}.footer-bottom{border-top:1px solid var(--color-gray-700);padding-top:var(--space-6);text-align:center;font-size:var(--font-size-sm)}.update-frequency{color:var(--color-gray-400)}@keyframes pulse{0%,100%{opacity:1}50%{opacity:0.5}}@keyframes shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}a:focus,button:focus{outline:2px solid var(--color-primary);outline-offset:2px}@media print{.site-header,.site-footer,.error-section{display:none}.provider-card{break-inside:avoid;box-shadow:none;border:1px solid var(--color-gray-300)}.providers-grid{grid-template-columns:repeat(2,1fr)}}@media (prefers-contrast:high){:root{--color-gray-100:#000000;--color-gray-800:#ffffff;--shadow-base:0 0 0 1px #000000;--shadow-lg:0 0 0 2px #000000}}.offline-indicator{background:linear-gradient(135deg,#f59e0b 0%,#d97706 100%);color:var(--color-white);padding:var(--space-3) 0;text-align:center;font-size:var(--font-size-sm);font-weight:500;display:flex;align-items:center;justify-content:center;gap:var(--space-2);box-shadow:var(--shadow-sm);z-index:100}.offline-data-notice{background:var(--color-warning-light);border:1px solid var(--color-warning);border-radius:var(--radius-lg);margin-bottom:var(--space-6);overflow:hidden}.notice-content{padding:var(--space-4);display:flex;align-items:center;gap:var(--space-3)}.notice-icon{font-size:var(--font-size-lg);flex-shrink:0}.notice-text{flex:1;color:var(--color-gray-800);font-weight:500}.notice-dismiss{background:none;border:none;font-size:var(--font-size-xl);color:var(--color-gray-600);cursor:pointer;padding:var(--space-1);border-radius:var(--radius-sm);transition:all var(--transition-fast);flex-shrink:0}.notice-dismiss:hover{background:var(--color-gray-200);color:var(--color-gray-800)}.update-banner{background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-dark) 100%);color:var(--color-white);padding:var(--space-4) 0;position:fixed;top:0;left:0;right:0;z-index:1000;box-shadow:var(--shadow-lg)}.update-content{max-width:1200px;margin:0 auto;padding:0 var(--space-4);display:flex;align-items:center;gap:var(--space-4)}.update-text{flex:1;font-weight:500}.update-button,.dismiss-button{background:rgba(255,255,255,0.2);color:var(--color-white);border:1px solid rgba(255,255,255,0.3);padding:var(--space-2) var(--space-4);border-radius:var(--radius-base);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.update-button:hover{background:rgba(255,255,255,0.3)}.dismiss-button:hover{background:rgba(255,255,255,0.1)}body.offline .provider-card{opacity:0.9}body.offline .status-dot.unknown{background:var(--color-gray-400);animation:pulse 2s infinite}body.offline .status-text.unknown{color:var(--color-gray-500)}.status-indicator.unknown .status-dot{background:var(--color-gray-400)}.status-indicator.unknown .status-text{color:var(--color-gray-500)}.provider-card.unknown::before{background:var(--color-gray-400)}@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important}.skip-link{transition:none}}.provider-card{cursor:pointer;transition:all 0.2s ease;position:relative;overflow:hidden}.provider-card:hover,.provider-card.hovered{transform:translateY(-2px);box-shadow:0 8px 25px rgba(0,0,0,0.15)}.provider-card:focus{outline:2px solid var(--color-primary);outline-offset:2px}.provider-card.clicked{transform:translateY(0);box-shadow:0 2px 8px rgba(0,0,0,0.1)}.status-link{transition:all 0.2s ease;position:relative;overflow:hidden}.status-link:hover,.status-link.hovered{background-color:var(--color-primary);color:var(--color-white);transform:translateY(-1px)}.status-link:focus{outline:2px solid var(--color-primary);outline-offset:2px}.status-link.clicked{transform:scale(0.98)}.retry-button{transition:all 0.2s ease;position:relative;overflow:hidden}.retry-button:hover{background-color:var(--color-primary);color:var(--color-white);transform:translateY(-1px)}.retry-button:focus{outline:2px solid var(--color-primary);outline-offset:2px}.retry-button:disabled{opacity:0.6;cursor:not-allowed;transform:none}.retry-button.loading{pointer-events:none}.spinner{display:inline-block;width:16px;height:16px;border:2px solid transparent;border-top:2px solid currentColor;border-radius:50%;animation:spin 1s linear infinite;margin-right:8px}.ripple{position:absolute;border-radius:50%;background-color:rgba(255,255,255,0.3);transform:scale(0);animation:ripple-animation 0.6s linear;pointer-events:none}@keyframes ripple-animation{to{transform:scale(4);opacity:0}}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.visually-hidden{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0,0,0,0) !important;white-space:nowrap !important;border:0 !important}.provider-card:focus-visible,.status-link:focus-visible,.retry-button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}@media (prefers-contrast:high){.provider-card:hover,.provider-card.hovered{border:2px solid}.status-link:hover,.status-link.hovered{border:2px solid}}@media (prefers-reduced-motion:reduce){.provider-card,.status-link,.retry-button,.spinner,.ripple{animation:none;transition:none}.provider-card:hover,.provider-card.hovered{transform:none}.status-link:hover,.status-link.hovered{transform:none}}