:root{--firebase-orange: #ff6b35;--firebase-blue: #4285f4;--firebase-yellow: #fbbc04;--firebase-green: #34a853;--firebase-red: #ea4335;--text-primary: #202124;--text-secondary: #5f6368;--background: #ffffff;--surface: #f8f9fa;--border: #e8eaed;--shadow: 0 1px 3px rgba(0, 0, 0, .12), 0 1px 2px rgba(0, 0, 0, .24);--shadow-hover: 0 3px 6px rgba(0, 0, 0, .16), 0 3px 6px rgba(0, 0, 0, .23)}.app{min-height:100vh;background:linear-gradient(135deg,#f8f9fa,#e8eaed);color:var(--text-primary)}.app-header{background:linear-gradient(135deg,var(--firebase-orange) 0%,var(--firebase-red) 100%);color:#fff;padding:2rem 0;text-align:center;box-shadow:var(--shadow)}.header-content h1{margin:0;font-size:2.5rem;font-weight:700;text-shadow:0 2px 4px rgba(0,0,0,.2)}.header-content p{margin:.5rem 0 0;font-size:1.1rem;opacity:.9}.app-main{padding:2rem 0}.container{max-width:800px;margin:0 auto;padding:0 1rem}.section{background:var(--background);border-radius:12px;padding:2rem;margin-bottom:2rem;box-shadow:var(--shadow);transition:box-shadow .3s ease}.section:hover{box-shadow:var(--shadow-hover)}.permission-prompt{text-align:center;padding:2rem}.permission-icon{font-size:4rem;margin-bottom:1rem;animation:pulse 2s infinite}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.1)}to{transform:scale(1)}}.permission-prompt h2{color:var(--text-primary);margin-bottom:1rem;font-size:1.8rem}.permission-prompt p{color:var(--text-secondary);margin-bottom:2rem;font-size:1.1rem;line-height:1.6}.enable-btn{background:linear-gradient(135deg,var(--firebase-blue) 0%,var(--firebase-orange) 100%);color:#fff;border:none;padding:1rem 2rem;border-radius:8px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:var(--shadow)}.enable-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-hover)}.enable-btn:disabled{opacity:.6;cursor:not-allowed}.permission-denied{background:#fef7f0;border:1px solid #fcd34d;border-radius:8px;padding:1.5rem;margin-top:1rem}.error-text{color:var(--firebase-red);font-weight:600;margin-bottom:1rem}.instructions{text-align:left;color:var(--text-secondary);margin:0;padding-left:1.5rem}.instructions li{margin-bottom:.5rem}.token-display h3{color:var(--text-primary);margin-bottom:1rem;font-size:1.4rem}.token-container{display:flex;align-items:center;gap:1rem;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:1rem;margin-bottom:1rem}.token-text{flex:1;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.9rem;color:var(--text-secondary);word-break:break-all}.copy-btn{background:var(--firebase-blue);color:#fff;border:none;padding:.5rem 1rem;border-radius:6px;font-size:.9rem;cursor:pointer;transition:all .3s ease;white-space:nowrap}.copy-btn:hover{background:#3367d6}.copy-btn.copied{background:var(--firebase-green)}.token-info{color:var(--text-secondary);font-size:.9rem;margin:0;line-height:1.5}.test-sender h3{color:var(--text-primary);margin-bottom:1.5rem;font-size:1.4rem}.form-group{margin-bottom:1.5rem}.form-group label{display:block;margin-bottom:.5rem;color:var(--text-primary);font-weight:600}.form-group input,.form-group textarea{width:100%;padding:.75rem;border:1px solid var(--border);border-radius:6px;font-size:1rem;font-family:inherit;transition:border-color .3s ease}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--firebase-blue);box-shadow:0 0 0 3px #4285f41a}.send-btn{background:linear-gradient(135deg,var(--firebase-green) 0%,var(--firebase-blue) 100%);color:#fff;border:none;padding:1rem 2rem;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:var(--shadow)}.send-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-hover)}.send-btn:disabled{opacity:.6;cursor:not-allowed}.notifications-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.notifications-header h2{color:var(--text-primary);margin:0;font-size:1.6rem}.clear-btn{background:var(--firebase-red);color:#fff;border:none;padding:.5rem 1rem;border-radius:6px;font-size:.9rem;cursor:pointer;transition:all .3s ease}.clear-btn:hover{background:#d33b2c}.empty-state{text-align:center;padding:3rem 1rem;color:var(--text-secondary)}.empty-state p{margin-bottom:.5rem;font-size:1.1rem}.notifications-list{display:flex;flex-direction:column;gap:1rem}.notification-card{background:var(--background);border:1px solid var(--border);border-radius:8px;padding:1.5rem;transition:all .3s ease;animation:slideIn .3s ease}@keyframes slideIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.notification-card:hover{border-color:var(--firebase-blue);box-shadow:var(--shadow)}.notification-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.5rem}.notification-title{color:var(--text-primary);margin:0;font-size:1.2rem;font-weight:600;flex:1}.delete-btn{background:none;border:none;color:var(--text-secondary);font-size:1.5rem;cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .3s ease}.delete-btn:hover{background:var(--firebase-red);color:#fff}.notification-body{color:var(--text-secondary);margin:0 0 1rem;line-height:1.5}.notification-meta{display:flex;justify-content:space-between;align-items:center;font-size:.9rem;color:var(--text-secondary)}.notification-time{font-weight:500}.notification-data{margin-top:1rem}.notification-data details{cursor:pointer}.notification-data summary{color:var(--firebase-blue);font-weight:600;margin-bottom:.5rem}.notification-data pre{background:var(--surface);border:1px solid var(--border);border-radius:4px;padding:1rem;font-size:.8rem;overflow-x:auto;margin:0}.setup-instructions h2{color:var(--text-primary);margin-bottom:2rem;font-size:1.8rem;text-align:center}.instructions-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem}.instruction-card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:1.5rem;transition:all .3s ease}.instruction-card:hover{border-color:var(--firebase-orange);transform:translateY(-2px);box-shadow:var(--shadow)}.instruction-card h3{color:var(--firebase-orange);margin:0 0 1rem;font-size:1.3rem}.instruction-card ul{margin:0;padding-left:1.5rem;color:var(--text-secondary)}.instruction-card li{margin-bottom:.5rem;line-height:1.4}@media (max-width: 768px){.container{padding:0 .5rem}.section{padding:1.5rem;margin-bottom:1rem}.header-content h1{font-size:2rem}.notifications-header{flex-direction:column;align-items:flex-start;gap:1rem}.token-container{flex-direction:column;align-items:stretch}.instructions-grid{grid-template-columns:1fr}}@media (max-width: 480px){.app-main{padding:1rem 0}.section{padding:1rem;border-radius:8px}.header-content h1{font-size:1.8rem}.permission-prompt{padding:1rem}.enable-btn,.send-btn{width:100%;padding:1rem}}.loading{opacity:.6;pointer-events:none}@media (prefers-reduced-motion: reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--firebase-blue);outline-offset:2px}.pwa-install-prompt{background:linear-gradient(135deg,var(--firebase-blue) 0%,var(--firebase-orange) 100%);color:#fff;border-radius:12px;padding:1.5rem;margin-bottom:2rem;box-shadow:var(--shadow);animation:slideDown .5s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.pwa-install-content{display:flex;align-items:center;gap:1rem}.pwa-install-icon{font-size:2rem;flex-shrink:0}.pwa-install-text{flex:1}.pwa-install-text h3{margin:0 0 .5rem;font-size:1.2rem;font-weight:600}.pwa-install-text p{margin:0;opacity:.9;font-size:.9rem}.pwa-install-btn{background:#fff3;color:#fff;border:1px solid rgba(255,255,255,.3);padding:.75rem 1.5rem;border-radius:8px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .3s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);flex-shrink:0}.pwa-install-btn:hover{background:#ffffff4d;transform:translateY(-1px)}.offline-banner{background:var(--firebase-red);color:#fff;padding:.75rem;text-align:center;position:sticky;top:0;z-index:1000;box-shadow:var(--shadow);animation:slideDown .3s ease}.offline-content{display:flex;align-items:center;justify-content:center;gap:.5rem;font-weight:600}.offline-icon{font-size:1.2rem}.offline-indicator{display:flex;align-items:center;gap:.5rem;margin-top:1rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.2);font-size:.9rem;opacity:.9}.offline-dot{width:8px;height:8px;background:#f44;border-radius:50%;animation:pulse 2s infinite}.android-indicator{background:#34a853;color:#fff;padding:4px 12px;border-radius:16px;font-size:.85rem;margin-top:8px;display:inline-block}.android-instructions{background:#e8f5e8;border-left:4px solid #34a853}.android-instructions h3{color:#34a853}.android-token-info{margin-top:16px;padding:16px;background:#f0f8ff;border-radius:8px;border-left:4px solid #4285f4}.refresh-token-btn{background:#4285f4;color:#fff;border:none;padding:8px 16px;border-radius:4px;cursor:pointer;margin-top:8px;font-size:.9rem}.refresh-token-btn:hover{background:#3367d6}.android-tips{background:#fff3cd;border:1px solid #ffeaa7;border-radius:8px;padding:16px;margin-top:16px}.android-tips p{margin:0 0 8px;color:#856404;font-weight:700}.android-tips ul{margin:8px 0 0;padding-left:20px}.android-tips li{color:#856404;margin-bottom:4px}.error-section{background:#fee;border-left:4px solid #dc3545}.error-message h3{color:#dc3545;margin:0 0 12px}.error-message p{color:#721c24;margin:8px 0}.debug-section{background:#f8f9fa;border:1px solid #dee2e6;border-radius:8px;margin-top:20px}.debug-section h3{color:#6c757d;margin:0 0 16px}.debug-info p{margin:8px 0;font-family:monospace;font-size:.9rem;line-height:1.4}.debug-info strong{color:#495057;display:inline-block;min-width:200px}@media (max-width: 768px){.android-indicator{display:block;text-align:center;margin:8px 0}.debug-info strong{min-width:150px;font-size:.85rem}.android-token-info,.android-tips{padding:12px}}.permission-banner{position:sticky;top:0;background:#ff9500;color:#fff;padding:12px;text-align:center;z-index:1000}.permission-banner.android{background:#34a853}.permission-banner button{background:#fff3;border:1px solid rgba(255,255,255,.3);color:#fff;padding:6px 12px;border-radius:4px;margin-left:8px;cursor:pointer}.permission-banner button:hover{background:#ffffff4d}@media (max-width: 768px){.pwa-install-content{flex-direction:column;text-align:center;gap:1rem}.pwa-install-btn{width:100%}}@media (display-mode: standalone){.app-header{padding-top:calc(2rem + env(safe-area-inset-top))}.app{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}}@supports (-webkit-touch-callout: none){@media (display-mode: standalone){.app-header{padding-top:calc(2rem + 44px)}}}:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.6;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;padding:0;min-height:100vh}#root{min-height:100vh}
