:root{--bg: #0a0a0a;--card: #141414;--border: #2a2a2a;--accent: #00ff88;--warning: #ff4444;--text: #ffffff;--text-dim: #888888}*{margin:0;padding:0;box-sizing:border-box}body{font-family:JetBrains Mono,monospace;background:var(--bg);color:var(--text);min-height:100vh;-webkit-font-smoothing:antialiased}.page,.login-container,.setup-container{max-width:420px;margin:0 auto;padding:1.5rem;padding-bottom:100px}.page{padding-bottom:120px}.page{min-height:100vh;background:var(--bg);background-image:radial-gradient(ellipse at top,rgba(0,255,136,.03) 0%,transparent 50%),linear-gradient(180deg,var(--bg) 0%,#050505 100%)}h1{font-family:Bebas Neue,sans-serif;font-size:clamp(2rem,8vw,3rem);letter-spacing:.05em;text-align:center}h1 span{color:var(--accent);text-shadow:0 0 30px rgba(0,255,136,.5)}.subtitle{color:var(--text-dim);font-size:.875rem;text-align:center;margin-top:.5rem;margin-bottom:2rem;text-transform:uppercase;letter-spacing:.1em}.error{background:#ff44441a;border:1px solid var(--warning);border-radius:8px;padding:.75rem;margin-bottom:1rem;color:var(--warning);font-size:.875rem}.input-group{margin-bottom:1rem}.input-group label{display:block;font-size:.75rem;color:var(--text-dim);margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.1em}input[type=email],input[type=password],input[type=number],input[type=date],input[type=text]{width:100%;background:var(--card);border:1px solid var(--border);border-radius:8px;padding:1rem;color:var(--text);font-family:JetBrains Mono,monospace;font-size:1rem;outline:none;transition:border-color .2s,box-shadow .2s}input:focus{border-color:var(--accent);box-shadow:0 0 20px #00ff881a}.input-prefix{position:relative}.input-prefix:before{content:"$";position:absolute;left:1rem;top:50%;transform:translateY(-50%);color:var(--accent);font-size:1rem;font-weight:700;z-index:1}.input-prefix input{padding-left:2rem}.btn-primary{width:100%;background:var(--accent);color:var(--bg);border:none;border-radius:8px;padding:1rem;font-family:Bebas Neue,sans-serif;font-size:1.125rem;letter-spacing:.1em;cursor:pointer;transition:transform .2s,box-shadow .2s}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 10px 30px #00ff884d}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-delete-challenge{width:100%;background:transparent;color:var(--warning);border:2px solid var(--warning);border-radius:8px;padding:.875rem;font-family:Bebas Neue,sans-serif;font-size:1rem;letter-spacing:.1em;cursor:pointer;transition:all .2s}.btn-delete-challenge:hover{background:var(--warning);color:var(--bg)}.delete-card{margin-top:1rem}.delete-confirm{text-align:center}.delete-question{color:var(--warning);font-weight:700;margin-bottom:.5rem}.delete-warning{color:var(--text-dim);font-size:.875rem;margin-bottom:1rem}.delete-buttons{display:flex;gap:.75rem}.btn-delete-cancel,.btn-delete-confirm{flex:1;padding:.75rem;border-radius:8px;font-family:Bebas Neue,sans-serif;font-size:.875rem;letter-spacing:.1em;cursor:pointer;transition:all .2s}.btn-delete-cancel{background:transparent;color:var(--text-dim);border:1px solid var(--border)}.btn-delete-cancel:hover:not(:disabled){border-color:var(--text);color:var(--text)}.btn-delete-confirm{background:var(--warning);color:var(--bg);border:none}.btn-delete-confirm:hover:not(:disabled){opacity:.8}.btn-delete-cancel:disabled,.btn-delete-confirm:disabled{opacity:.5;cursor:not-allowed}.btn-link{display:block;width:100%;background:none;border:none;color:var(--text-dim);padding:1rem;font-size:.875rem;cursor:pointer;text-decoration:underline}.btn-link:hover{color:var(--text)}.dashboard-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.5rem}.dashboard-header h1{text-align:left;font-size:1.5rem}.user-email{font-size:.75rem;color:var(--text-dim);margin-top:.25rem}.btn-logout{background:transparent;border:1px solid var(--border);color:var(--text-dim);padding:.5rem 1rem;border-radius:6px;font-size:.75rem;cursor:pointer;transition:all .2s}.btn-logout:hover{border-color:var(--warning);color:var(--warning)}.card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:1.25rem;margin-bottom:1rem}.card-title{font-family:Bebas Neue,sans-serif;font-size:1rem;letter-spacing:.1em;margin-bottom:1rem;color:var(--text-dim)}.meta-card{text-align:center}.meta-label{font-size:.625rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.15em}.meta-value{font-size:2rem;font-weight:700;color:var(--accent);margin:.5rem 0}.meta-date{font-size:.75rem;color:var(--text-dim)}.balance-card{text-align:center}.balance-card.positive{border-color:#00ff884d}.balance-card.negative{border-color:#ff44444d}.balance-label{font-size:.625rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.15em}.balance-value{font-size:2.5rem;font-weight:700}.balance-card.positive .balance-value{color:var(--accent);text-shadow:0 0 30px rgba(0,255,136,.3)}.balance-card.negative .balance-value{color:var(--warning);text-shadow:0 0 30px rgba(255,68,68,.3)}.performance-card{text-align:center}.performance-card.ahead{border-color:#00ff884d}.performance-card.behind{border-color:#ff44444d}.performance-label{font-size:.875rem;font-weight:700}.performance-card.ahead .performance-label{color:var(--accent)}.performance-card.behind .performance-label{color:var(--warning)}.performance-value{font-size:2.5rem;font-weight:700;margin:.5rem 0}.performance-card.ahead .performance-value{color:var(--accent)}.performance-card.behind .performance-value{color:var(--warning)}.performance-detail{font-size:.625rem;color:var(--text-dim);margin-bottom:1rem}.progress-bar{height:6px;background:var(--border);border-radius:3px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,var(--accent),#00cc6a);border-radius:3px;transition:width .5s ease-out}.progress-text{font-size:.625rem;color:var(--text-dim);margin-top:.5rem}.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;margin-bottom:1rem}.stat-card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:1rem;text-align:center}.stat-label{font-size:.625rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.1em}.stat-value{font-size:1.25rem;font-weight:700;color:var(--text);margin-top:.25rem}.type-toggle{display:flex;gap:.5rem;margin-bottom:1rem}.type-btn{flex:1;background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:.75rem;color:var(--text-dim);font-family:JetBrains Mono,monospace;font-size:.875rem;cursor:pointer;transition:all .2s}.type-btn.active.income{background:#00ff881a;border-color:var(--accent);color:var(--accent)}.type-btn.active.expense{background:#ff44441a;border-color:var(--warning);color:var(--warning)}.transactions-list{display:flex;flex-direction:column;gap:.5rem}.transaction-item{display:flex;justify-content:space-between;align-items:center;padding:.75rem;background:var(--bg);border-radius:6px;border-left:3px solid}.transaction-item.income{border-color:var(--accent)}.transaction-item.expense{border-color:var(--warning)}.tx-info{display:flex;flex-direction:column}.tx-desc{font-size:.875rem}.tx-date{font-size:.625rem;color:var(--text-dim)}.tx-amount{font-weight:700;font-size:.875rem}.tx-amount.income{color:var(--accent)}.tx-amount.expense{color:var(--warning)}.no-data{text-align:center;color:var(--text-dim);font-size:.875rem;padding:1rem}@media (min-width: 480px){.page,.login-container,.setup-container{padding-top:2rem}h1{font-size:2.5rem}}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.card{animation:fadeIn .3s ease-out}.bottom-nav{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:420px;display:flex;justify-content:space-around;background:var(--card);border-top:1px solid var(--border);padding:.75rem 0;z-index:100}.nav-item{display:flex;flex-direction:column;align-items:center;text-decoration:none;color:var(--text-dim);padding:.5rem 1rem;border-radius:8px;transition:all .2s}.nav-item:hover,.nav-item.active{color:var(--accent);background:#00ff881a}.nav-icon{font-size:1.25rem;margin-bottom:.25rem}.nav-label{font-size:.625rem;text-transform:uppercase;letter-spacing:.05em}.promote-header{margin-bottom:1.5rem}.promote-header h1{text-align:left}.promo-form{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:1.25rem;margin-bottom:1.5rem}.promo-form .card-title,.promo-input{margin-bottom:1rem}.promo-input label{display:block;font-size:.75rem;color:var(--text-dim);margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.1em}.promo-input input,.promo-input textarea{width:100%;background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:.875rem;color:var(--text);font-family:JetBrains Mono,monospace;font-size:.875rem;outline:none;transition:border-color .2s}.promo-input textarea{resize:none;height:80px}.promo-input input:focus,.promo-input textarea:focus{border-color:var(--accent)}.char-count{font-size:.625rem;color:var(--text-dim);text-align:right;margin-top:.25rem}.char-count.warning{color:var(--warning)}.promo-list{display:flex;flex-direction:column;gap:1rem}.promo-card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:1rem;display:flex;align-items:center;gap:1rem}.promo-card-icon{font-size:2rem;width:50px;height:50px;display:flex;align-items:center;justify-content:center;background:#00ff881a;border-radius:8px;flex-shrink:0}.promo-card-content{flex:1;min-width:0}.promo-card-title{font-weight:700;font-size:.875rem;margin-bottom:.25rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.promo-card-desc{font-size:.75rem;color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.promo-card-check{background:transparent;border:1px solid var(--border);color:var(--text-dim);padding:.5rem .75rem;border-radius:6px;font-size:.75rem;cursor:pointer;transition:all .2s;white-space:nowrap;text-decoration:none;display:inline-block}.promo-card-check:hover{border-color:var(--accent);color:var(--accent)}.promo-card-check.disabled{opacity:.3;cursor:default}.promo-card-link{font-size:.625rem;color:var(--accent);margin-top:.25rem;word-break:break-all}.no-promos{text-align:center;color:var(--text-dim);padding:2rem}.no-promos-icon{font-size:2rem;margin-bottom:.5rem}
