.logo-container{display:flex;align-items:center;justify-content:center;padding:1rem}.logo-image{width:48px;height:48px;object-fit:contain;flex-shrink:0}.logo-placeholder{width:64px;height:64px;border-radius:var(--radius-md);background:var(--halo-green);color:var(--deep-space);display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:700}.wallet-button-container{display:flex;align-items:center;justify-content:flex-end}.wallet-button-container :global(button){background:var(--navy)!important;color:var(--text-primary)!important;border:1px solid var(--border-card)!important;border-radius:var(--radius-pill)!important;padding:.5rem 1rem!important;font-size:.9rem!important;font-weight:600!important;cursor:pointer!important;min-height:36px!important;transition:opacity .2s!important;font-family:var(--font-mono)!important}.wallet-button-container :global(button:hover){opacity:.9!important}.wallet-button-container :global(button:active){opacity:.8!important}.spinner{display:inline-block;position:relative}.spinner-small{width:20px;height:20px}.spinner-medium{width:40px;height:40px}.spinner-large{width:60px;height:60px}.spinner-circle{border:3px solid var(--border-subtle);border-top-color:var(--halo-green);border-radius:50%;width:100%;height:100%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.create-game-form{padding:0;max-width:100%;margin:0 auto;width:100%;display:flex;flex-direction:column;gap:1.5rem}.create-game-form h2{margin-bottom:1.5rem;color:var(--text-primary);font-weight:800}.form-group{margin-bottom:0;display:flex;flex-direction:column;gap:.5rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:600;color:var(--text-secondary)}.form-group input{width:100%;padding:.75rem;border:1.5px solid var(--border-subtle);border-radius:var(--radius-sm);font-size:1rem;background:var(--navy);color:var(--text-primary);box-sizing:border-box;transition:border-color .2s,box-shadow .2s}.form-group input:focus{outline:none;border-color:var(--halo-green);box-shadow:0 0 0 3px var(--halo-green-glow)}.form-group.has-error input{border-color:var(--color-danger);background-color:#ff6b6b0d}.form-group.has-error input:focus{border-color:var(--color-danger);box-shadow:0 0 0 3px #ff6b6b26}.form-group.has-error label{color:var(--color-danger)}.form-group small{display:block;margin-top:.25rem;color:var(--text-secondary);font-size:.875rem}.form-group .error{display:block;margin-top:.25rem;color:var(--color-danger);font-size:.875rem}.seed-hash-display{padding:.75rem;background:var(--navy);border-radius:var(--radius-sm);word-break:break-all}.seed-hash-display code{font-family:var(--font-mono);font-size:.875rem;color:var(--text-primary)}.submit-button{width:100%;padding:1rem;background:var(--halo-green);color:var(--deep-space);border:none;border-radius:var(--radius-pill);font-size:1rem;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.5rem;min-height:44px;transition:opacity .2s;margin-top:1.5rem;box-shadow:0 4px 16px var(--halo-green-glow)}.submit-button:disabled{opacity:.6;cursor:not-allowed;box-shadow:none}.submit-button:not(:disabled):active{opacity:.8}.error-message,.warning-message,.info-message{padding:1rem;border-radius:var(--radius-sm);margin-bottom:1rem}.error-message{background:#ff6b6b1a;color:var(--color-danger);border:1px solid rgba(255,107,107,.3)}.warning-message{background:#ffd54f1a;color:var(--ticket-gold);border:1px solid rgba(255,213,79,.3)}.info-message{text-align:center;color:var(--text-secondary);font-size:.875rem}.deadline-selector{display:flex;flex-direction:column;gap:.75rem}.deadline-mode-tabs{display:grid;grid-template-columns:1fr 1fr;background:var(--navy);border-radius:var(--radius-sm);padding:3px;gap:3px}.deadline-mode-tab{padding:.5rem;border:none;border-radius:calc(var(--radius-sm) - 2px);background:transparent;color:var(--text-secondary);font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s ease;min-height:36px;-webkit-tap-highlight-color:transparent}.deadline-mode-tab.active{background:var(--deep-space);color:var(--text-primary)}.deadline-quick-buttons{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;width:100%}.deadline-quick-button{min-height:44px;padding:.75rem .5rem;border:1.5px solid var(--border-subtle);border-radius:var(--radius-pill);background:var(--navy);color:var(--text-primary);font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s ease;box-sizing:border-box;-webkit-tap-highlight-color:transparent}.deadline-quick-button:active{transform:scale(.98);opacity:.8}.deadline-quick-button.active{border-color:var(--halo-green);background:var(--halo-green-subtle);color:var(--halo-green);font-weight:700}.deadline-custom-container{display:flex;flex-direction:column;gap:.75rem}.deadline-custom-fields{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.deadline-custom-field{display:flex;align-items:center;gap:.5rem}.deadline-custom-input{flex:1;padding:.75rem;border:1.5px solid var(--border-subtle);border-radius:var(--radius-sm);font-size:1rem;background:var(--navy);color:var(--text-primary);box-sizing:border-box;min-height:44px;min-width:0}.deadline-custom-input:focus{outline:none;border-color:var(--halo-green);box-shadow:0 0 0 3px var(--halo-green-glow)}.deadline-custom-label{font-size:.875rem;color:var(--text-secondary);white-space:nowrap;font-weight:600}.deadline-preview{padding:.875rem;background:var(--navy);border-radius:var(--radius-sm);display:flex;flex-direction:column;gap:.25rem}.deadline-preview-date{font-size:.9375rem;font-weight:600;color:var(--text-primary);text-transform:capitalize}.deadline-preview-remaining{font-size:.875rem;color:var(--text-secondary)}.deadline-selector.has-error .deadline-quick-button,.deadline-selector.has-error .deadline-custom-input{border-color:var(--color-danger)}.deadline-selector.has-error .deadline-preview{background:#ff6b6b0d;border:1px solid rgba(255,107,107,.2)}.game-card{background:var(--card-bg);border:1px solid var(--border-card);border-radius:var(--radius-md);padding:1rem;transition:transform .2s,box-shadow .2s;opacity:0;transform:translateY(8px);animation:cardFadeIn .3s ease forwards;position:relative;overflow:hidden}.game-card:before{content:"";position:absolute;top:-50%;right:-50%;width:100%;height:100%;background:radial-gradient(circle,var(--halo-green-subtle) 0%,transparent 70%);pointer-events:none}.game-card:hover{transform:translateY(-2px);box-shadow:0 4px 20px var(--halo-green-glow)}.game-card.status-open{border-color:#3ddc844d}.game-card.status-closed{border-color:#ff6b6b4d}.game-card.status-revealed{border-color:#64b5f64d}.game-card.status-paid{border-color:#3ddc844d}.game-card.status-cancelled{border-color:#ff6b6b4d}.game-card-clickable{cursor:pointer}.game-card-clickable:active{transform:scale(.98)}.game-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--border-subtle)}.game-id{font-weight:700;color:var(--text-primary)}.game-state-badge{display:inline-flex;align-items:center;gap:.375rem;padding:.25rem .75rem;border-radius:var(--radius-pill);font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.game-state-badge.badge-open{background:#3ddc841f;color:var(--status-open)}.game-state-badge.badge-closed{background:#ff6b6b1f;color:var(--status-closed)}.game-state-badge.badge-revealed{background:#64b5f61f;color:var(--status-revealed)}.game-state-badge.badge-paid{background:#3ddc841f;color:var(--status-paid)}.game-state-badge.badge-cancelled{background:#ff6b6b1f;color:var(--status-cancelled)}.game-state-badge.badge-expired{background:#8892a41f;color:var(--status-expired)}.status-dot{width:6px;height:6px;border-radius:50%;background:currentColor;animation:pulse-dot 2s ease infinite}.game-card-body{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1rem}.game-stat{display:flex;flex-direction:column;gap:.25rem}.stat-label{font-size:.7rem;color:var(--text-muted);text-transform:uppercase;font-weight:800;letter-spacing:1.5px}.stat-value{font-weight:700;color:var(--text-primary);font-size:1rem}.stat-value.pot{font-size:1.5rem;font-weight:800;color:var(--ticket-gold);font-family:var(--font-mono)}.stat-value.small{font-size:.875rem}.stat-value.time-safe{color:var(--halo-green)}.stat-value.time-warning{color:var(--ticket-gold)}.stat-value.time-urgent{color:var(--color-danger)}.game-card-footer{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border-subtle)}.game-card-link{margin-top:.75rem;text-align:center}.explorer-link{color:var(--halo-green);text-decoration:none;font-size:.875rem;font-weight:600}.explorer-link:active{opacity:.8}@keyframes cardFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.3}}.game-card-cancel-btn{width:100%;margin-top:.75rem;padding:.625rem;border:none;border-radius:var(--radius-sm, 6px);background:var(--error, #e53935);color:#fff;font-weight:700;font-size:.875rem;cursor:pointer;transition:opacity .2s}.game-card-cancel-btn:active{opacity:.8}.game-card-cancel-btn:disabled{opacity:.5;cursor:not-allowed}.my-active-game{padding:1rem;display:flex;flex-direction:column;gap:1rem;max-width:100%;margin:0 auto}.my-active-game-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.my-active-game-header h2{margin:0;color:var(--text-primary);font-size:1.25rem;font-weight:800}.updating-indicator{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--text-secondary)}.updating-dot{color:var(--halo-green);animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.updating-text{font-weight:600}.my-active-game-card{width:100%}.my-active-game-actions{display:flex;flex-direction:column;gap:.75rem;margin-top:.5rem}.create-new-button{width:100%;padding:.875rem;background:var(--halo-green);color:var(--deep-space);border:none;border-radius:var(--radius-pill);font-size:1rem;font-weight:700;cursor:pointer;min-height:44px;transition:opacity .2s;box-shadow:0 4px 16px var(--halo-green-glow)}.create-new-button:active{opacity:.8}.back-button{width:100%;padding:.75rem;background:transparent;color:var(--halo-green);border:1px solid var(--halo-green);border-radius:var(--radius-pill);font-size:.875rem;font-weight:600;cursor:pointer;margin-bottom:1rem;min-height:44px;transition:opacity .2s}.back-button:active{opacity:.8}.error-message{padding:1rem;background:#ff6b6b1a;color:var(--color-danger);border:1px solid rgba(255,107,107,.3);border-radius:var(--radius-sm);text-align:center}.error-message button{margin-top:.75rem;padding:.5rem 1rem;background:var(--color-danger);color:var(--text-primary);border:none;border-radius:var(--radius-pill);font-size:.875rem;font-weight:600;cursor:pointer;min-height:36px}.error-message button:active{opacity:.8}.game-list{padding:1rem}.game-list-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;flex-wrap:wrap;gap:1rem}.game-list-header h2{margin:0;color:var(--text-primary);font-weight:800}.filter-buttons{display:flex;gap:.5rem}.filter-buttons button{padding:.5rem 1rem;border:1px solid var(--border-subtle);background:transparent;color:var(--text-secondary);border-radius:var(--radius-pill);cursor:pointer;font-size:.875rem;font-weight:700;transition:all .2s}.filter-buttons button.active{background:var(--halo-green);color:var(--deep-space);border-color:var(--halo-green)}.filter-buttons button:active{opacity:.8}.games-grid{display:grid;grid-template-columns:1fr;gap:1rem}.empty-state{display:flex;flex-direction:column;align-items:center;padding:3rem 1rem;text-align:center;color:var(--text-secondary)}.empty-state-icon{margin-bottom:1rem;opacity:.3;color:var(--text-muted)}.empty-state h3{margin:0 0 .5rem;color:var(--text-primary);font-size:1.125rem}.empty-state p{margin:0;font-size:.875rem}.load-more{margin-top:1rem;text-align:center}.load-more button{padding:.5rem 1.5rem;border:1px solid var(--halo-green);background:transparent;color:var(--halo-green);border-radius:var(--radius-pill);cursor:pointer;font-size:.875rem;font-weight:700}.error-state{padding:1rem;color:var(--color-danger);text-align:center}@media(min-width:600px){.games-grid{grid-template-columns:repeat(2,1fr)}}.blocked-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:var(--deep-space);color:var(--text-primary)}.blocked-content{max-width:500px;width:100%;text-align:center;display:flex;flex-direction:column;align-items:center;gap:1.5rem}.blocked-icon{font-size:4rem;line-height:1;margin-bottom:.5rem}.blocked-title{font-size:1.75rem;font-weight:800;margin:0;color:var(--text-primary)}.blocked-message{font-size:1rem;line-height:1.6;color:var(--text-secondary);margin:0}.blocked-message strong{color:var(--text-primary);font-weight:700}.blocked-country-info{width:100%;padding:1rem;background:var(--navy);border-radius:var(--radius-md);margin-top:.5rem}.blocked-detected{margin:0;display:flex;align-items:center;justify-content:center;gap:.5rem;font-size:.95rem}.country-flag{font-size:1.5rem;line-height:1}.country-name{font-weight:600;color:var(--text-primary)}.country-code{font-size:.875rem;color:var(--text-secondary);font-weight:400}.blocked-toggle-button{background:transparent;border:1px solid var(--halo-green);color:var(--halo-green);padding:.625rem 1.25rem;border-radius:var(--radius-pill);font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s ease;text-decoration:underline;text-underline-offset:2px}.blocked-toggle-button:hover{background:var(--halo-green);color:var(--deep-space);text-decoration:none}.blocked-toggle-button:active{opacity:.8;transform:scale(.98)}.blocked-list-container{width:100%;background:var(--navy);border-radius:var(--radius-md);padding:1rem;max-height:300px;overflow-y:auto;animation:slideDown .3s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px);max-height:0}to{opacity:1;transform:translateY(0);max-height:300px}}.blocked-list-title{font-size:.9rem;font-weight:700;color:var(--text-primary);margin:0 0 .75rem;text-align:left}.blocked-list{list-style:none;padding:0;margin:0;text-align:left}.blocked-list-item{display:flex;align-items:center;gap:.5rem;padding:.625rem 0;border-bottom:1px solid var(--border-subtle);color:var(--text-secondary)}.blocked-list-item:last-child{border-bottom:none}.blocked-close-button{background:var(--halo-green);color:var(--deep-space);border:none;padding:.875rem 2rem;border-radius:var(--radius-pill);font-size:1rem;font-weight:700;cursor:pointer;transition:all .2s ease;margin-top:.5rem;width:100%;max-width:300px}.blocked-close-button:hover{opacity:.9;transform:translateY(-1px)}.blocked-close-button:active{opacity:.8;transform:translateY(0)}@media(max-width:480px){.blocked-icon{font-size:3rem}.blocked-title{font-size:1.5rem}.blocked-message{font-size:.9rem}}:root{--deep-space: #0B1120;--navy: #111B2E;--card-bg: #162035;--card-hover: #1A2740;--halo-green: #3DDC84;--halo-green-dim: #2BB86A;--halo-green-glow: rgba(61, 220, 132, .25);--halo-green-subtle: rgba(61, 220, 132, .08);--ticket-gold: #FFD54F;--ticket-gold-dim: #FFC107;--winner-glow: rgba(255, 213, 79, .3);--status-open: #3DDC84;--status-closed: #FF6B6B;--status-expired: #8892A4;--status-pending: #64B5F6;--status-revealed: #64B5F6;--status-paid: #3DDC84;--status-cancelled: #FF6B6B;--text-primary: #F0F4FF;--text-secondary: #8892A4;--text-muted: #5A6478;--border-subtle: rgba(255, 255, 255, .06);--border-card: rgba(61, 220, 132, .15);--color-success: #3DDC84;--color-danger: #FF6B6B;--color-warning: #FFD54F;--space-xs: .25rem;--space-sm: .5rem;--space-md: .75rem;--space-lg: 1rem;--space-xl: 1.5rem;--space-2xl: 2rem;--space-3xl: 3rem;--radius-sm: 8px;--radius-md: 14px;--radius-lg: 20px;--radius-pill: 100px;--skeleton-base: rgba(255, 255, 255, .06);--skeleton-shine: rgba(255, 255, 255, .03);--font-display: "Nunito", sans-serif;--font-mono: "Space Mono", monospace}.skeleton{background:linear-gradient(90deg,var(--skeleton-base) 25%,var(--skeleton-shine) 50%,var(--skeleton-base) 75%);background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite;border-radius:var(--radius-md)}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes cardFadeIn{to{opacity:1;transform:translateY(0)}}@keyframes pageIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.4}}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-display);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--deep-space);color:var(--text-primary);margin:0;padding:0;min-height:100vh;overflow-x:hidden}#root{min-height:100vh}.app{min-height:100vh;display:flex;flex-direction:column;background:var(--deep-space);color:var(--text-primary);max-width:480px;margin:0 auto}.app-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.75rem 1rem;background:var(--navy);border-bottom:1px solid var(--border-subtle);position:sticky;top:0;z-index:100}.header-left{display:flex;align-items:center;gap:.75rem;flex:1;min-width:0}.header-right{display:flex;align-items:center;justify-content:flex-end;flex-shrink:0}.app-header h1{margin:0;font-size:1.125rem;font-weight:800;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.brand-accent{color:var(--halo-green)}.app-main{flex:1;display:flex;flex-direction:column;padding:1rem;padding-bottom:max(1rem,env(safe-area-inset-bottom));overflow-y:auto;-webkit-overflow-scrolling:touch;max-width:100%;margin:0 auto;width:100%;box-sizing:border-box}.wallet-connect-prompt{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1.5rem;text-align:center;color:var(--text-secondary)}.wallet-connect-prompt p{font-size:1rem;line-height:1.5}.loading-state,.error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1.5rem;gap:1rem;text-align:center;color:var(--text-primary)}.error-state p{color:var(--color-danger);margin:0}.error-state button{padding:.75rem 1.5rem;background:var(--halo-green);color:var(--deep-space);border:none;border-radius:var(--radius-pill);font-size:.875rem;font-weight:700;cursor:pointer;min-height:44px;transition:opacity .2s}.error-state button:active{opacity:.8}.geo-loading{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem}.geo-error{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:2rem}.geo-error p{text-align:center}.geo-error-hint{color:var(--text-secondary);font-size:.875rem;margin-top:-.5rem}.geo-error-retry-btn{background:var(--halo-green);color:var(--deep-space);border:none;padding:.75rem 1.5rem;border-radius:var(--radius-pill);font-size:1rem;font-weight:700;cursor:pointer;margin-top:.5rem}.hint-text{color:var(--text-secondary)}.app-main{animation:pageIn .2s ease}.play-card{max-width:480px;margin:0 auto;width:100%;background:var(--card-bg);border:1px solid var(--border-card);border-radius:var(--radius-md);padding:1.25rem}.play-card h2{margin-bottom:1rem;font-size:1.25rem;color:var(--text-primary);font-weight:800}.play-card-details{display:flex;flex-direction:column;margin-bottom:1rem}.play-card-row{display:flex;justify-content:space-between;align-items:center;padding:.625rem 0;border-bottom:1px solid var(--border-subtle)}.play-card-row:last-child{border-bottom:none}.play-card-row span:first-child{color:var(--text-secondary);font-size:.875rem}.play-card-row span:last-child{font-weight:700;color:var(--text-primary)}.play-card-error{background:#ff6b6b1a;color:var(--color-danger);padding:.75rem 1rem;border-radius:var(--radius-sm);margin-bottom:1rem;font-size:.875rem}.play-card-btn{width:100%;min-height:44px;padding:.75rem 1.5rem;background:linear-gradient(135deg,var(--ticket-gold),var(--ticket-gold-dim));color:var(--deep-space);border:none;border-radius:var(--radius-pill);font-size:1rem;font-weight:700;cursor:pointer;transition:opacity .2s,box-shadow .2s;display:flex;align-items:center;justify-content:center;gap:.5rem;box-shadow:0 4px 16px var(--winner-glow)}.play-card-btn:active{opacity:.8}.play-card-btn:disabled{opacity:.6;cursor:not-allowed}.play-card-success{text-align:center;padding:2rem 1rem}.play-card-success h2{color:var(--ticket-gold);margin-bottom:.5rem}.play-card-success p{color:var(--text-secondary)}.play-card-participants{margin-top:1rem;padding-top:.75rem;border-top:1px solid var(--border-subtle);max-height:300px;overflow-y:auto}.play-card-participants-label{display:block;font-size:.875rem;color:var(--text-secondary);margin-bottom:.5rem;font-weight:600}.play-card-participants-list{list-style:none;padding:0;margin:0;counter-reset:player}.play-card-participants-list li{padding:.375rem 0;font-size:.8125rem;color:var(--text-primary);border-bottom:1px solid var(--border-subtle);counter-increment:player}.play-card-participants-list li:before{content:counter(player) ". ";color:var(--text-secondary);font-weight:500}.play-card-participants-list li:last-child{border-bottom:none}.verify-section{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border-subtle)}.verify-section:first-of-type{margin-top:0;padding-top:0;border-top:none}.verify-section-title{font-size:.7rem;color:var(--text-muted);text-transform:uppercase;font-weight:800;letter-spacing:1.5px;margin-bottom:.75rem}.verify-link{display:block;color:var(--halo-green);text-decoration:none;font-weight:600;font-size:.9rem;padding:.5rem 0}.verify-link:active{opacity:.8}.verify-link-small{font-size:.8rem;padding:.25rem 0 .5rem}.verify-hash-block{margin-top:.5rem}.verify-hash-label{display:block;font-size:.7rem;color:var(--text-muted);text-transform:uppercase;font-weight:700;letter-spacing:1px;margin-bottom:.25rem}.verify-hash-value{display:block;font-size:.7rem;color:var(--text-secondary);word-break:break-all;background:#00000026;padding:.375rem .5rem;border-radius:var(--radius-sm, 6px);font-family:var(--font-mono);line-height:1.4}.skeleton-card{pointer-events:none}.skeleton-card .game-card-header{display:flex;justify-content:space-between;align-items:center}.skeleton-card .game-card-body{display:flex;flex-direction:column;gap:.75rem}.play-skeleton{max-width:480px;margin:0 auto;width:100%;padding:1rem}.play-skeleton-row{display:flex;justify-content:space-between;align-items:center;padding:.625rem 0}@supports (padding: max(0px)){.app-header{padding-top:max(1rem,env(safe-area-inset-top))}.app-main{padding-bottom:max(1rem,env(safe-area-inset-bottom))}}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1rem;gap:1rem;color:var(--text-secondary)}.error-boundary{padding:2rem;text-align:center;color:var(--text-primary)}.error-boundary h2{margin-bottom:1rem;color:var(--color-danger)}.error-boundary button{margin-top:1rem;padding:.75rem 1.5rem;background:var(--halo-green);color:var(--deep-space);border:none;border-radius:var(--radius-pill);font-size:1rem;font-weight:700;cursor:pointer;min-height:44px}.error-boundary button:active{opacity:.8}
