*{margin:0;padding:0;box-sizing:border-box}html{height:100%;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0;padding:0;height:100%;font-family:Roboto,Helvetica,Arial,sans-serif;font-size:14px;line-height:1.43;color:#000000de;background-color:#fafafa;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{height:100%;min-height:100vh}code{font-family:Courier New,Monaco,Menlo,Consolas,monospace}*:focus{outline:2px solid #1976d2;outline-offset:2px}@media print{body{background:#fff!important;color:#000!important}}.loading-spinner{display:inline-block;width:20px;height:20px;border:3px solid #f3f3f3;border-top:3px solid #1976d2;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse{0%{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.1)}to{opacity:1;transform:scale(1)}}.error-container{padding:40px;font-family:Arial,sans-serif;max-width:600px;margin:0 auto;text-align:center}.error-title{color:#d32f2f;font-size:24px;margin-bottom:20px}.error-details{background:#ffebee;padding:20px;border-radius:4px;margin-top:20px;text-align:left}.error-stack{color:#c62828;font-family:monospace;font-size:12px;margin-top:10px;white-space:pre-wrap}.error-message{margin-top:20px;color:#666;line-height:1.5}.pwa-install-prompt{position:fixed;bottom:20px;left:20px;right:20px;background:#1976d2;color:#fff;padding:16px;border-radius:8px;box-shadow:0 4px 12px #00000026;z-index:1000;display:flex;align-items:center;justify-content:space-between}.pwa-install-button{background:#fff;color:#1976d2;border:none;padding:8px 16px;border-radius:4px;cursor:pointer;font-weight:500}@media(max-width:600px){body{font-size:13px}.error-container{padding:20px}.error-title{font-size:20px}}@media(prefers-contrast:high){body{background:#fff;color:#000}*:focus{outline:3px solid black}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
