:root{--bg:#0f1117;--surface:#171a23;--border:#262b38;--text:#e6e8ee;--text-secondary:#9aa1b1;--accent:#7c3aed;--danger-text:#ff7b7b;--danger-bg:#ff5c5c24;--danger-border:#ff5c5c59;--warning-text:#ffc069;--warning-bg:#ffb84d24;--warning-border:#ffb84d59;--success-text:#4ade9b;--success-bg:#3ddc9724;--success-border:#3ddc9759;--radius:14px;--radius-small:12px;--font:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);font-family:var(--font);-webkit-tap-highlight-color:transparent;min-height:100vh;font-size:16px;line-height:1.5}.hidden{display:none!important}.view{max-width:640px;padding:24px 16px calc(24px + env(safe-area-inset-bottom));margin:0 auto}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:16px;margin-top:10vh;padding:28px 24px;display:flex;box-shadow:0 8px 24px #00000059}.card-title{text-align:center;font-size:24px;font-weight:700}.card-subtitle{color:var(--text-secondary);text-align:center;margin-bottom:12px;font-size:14px}.config-text{color:var(--text-secondary);font-size:14px}.config-steps{flex-direction:column;gap:8px;margin-bottom:8px;padding-left:20px;font-size:14px;display:flex}.config-steps code{background:var(--bg);border:1px solid var(--border);color:var(--accent);border-radius:6px;padding:1px 6px;font-size:13px}.field-label{color:var(--text-secondary);margin:0 0 6px;font-size:13px;font-weight:600;display:block}.field-input,.field-select,.edit-input,.edit-select{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-small);width:100%;color:var(--text);font-family:var(--font);outline:none;padding:12px 14px;font-size:16px;transition:border-color .15s,box-shadow .15s}.field-input::placeholder{color:var(--text-secondary);opacity:.7}.field-input:focus,.field-select:focus,.edit-input:focus,.edit-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px #7c3aed40}.auth-form{flex-direction:column;gap:14px;margin-top:6px;display:flex}.form-actions{flex-direction:column;gap:10px;margin-top:6px;display:flex}.btn{border-radius:var(--radius-small);min-height:44px;font-family:var(--font);cursor:pointer;border:none;padding:10px 18px;font-size:16px;font-weight:600;transition:background-color .15s,border-color .15s,opacity .15s}.btn:focus-visible,.link-button:focus-visible,.icon-btn:focus-visible,.filter-btn:focus-visible,.task-check:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn-block{width:100%;display:block}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:#8b5cf6}.btn-primary:active{background:#6d28d9}.btn-secondary{color:var(--text);border:1px solid var(--border);background:0 0}.btn-secondary:hover{background:var(--bg)}.btn-ghost{color:var(--text-secondary);border:1px solid var(--border);background:0 0;padding:8px 14px;font-size:14px}.btn-ghost:hover{color:var(--text);background:var(--bg)}.btn-small{min-height:40px;padding:6px 14px;font-size:14px}.link-button{color:var(--accent);font-family:var(--font);cursor:pointer;text-align:center;background:0 0;border:none;width:100%;min-height:44px;margin-top:4px;padding:8px 0;font-size:14px}.link-button:hover{text-decoration:underline}.app-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;display:flex}.app-title{font-size:26px;font-weight:700}.pending-counter{color:var(--text-secondary);font-size:14px}.offline-banner{background:var(--warning-bg);border:1px solid var(--warning-border);color:var(--warning-text);border-radius:var(--radius-small);text-align:center;margin-bottom:16px;padding:10px 14px;font-size:14px}.add-form{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);gap:8px;margin-bottom:20px;padding:12px;display:flex}.add-input{flex:1;min-width:0}.add-priority{flex-shrink:0;width:auto;max-width:104px}.add-form .btn{flex-shrink:0}.filters{gap:8px;margin-bottom:16px;display:flex}.filter-btn{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-small);min-height:44px;color:var(--text-secondary);font-family:var(--font);cursor:pointer;flex:1;font-size:14px;font-weight:600;transition:background-color .15s,color .15s,border-color .15s}.filter-btn:hover{color:var(--text)}.filter-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.task-list{flex-direction:column;gap:10px;list-style:none;display:flex}.task-row{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);align-items:center;gap:8px;padding:8px 10px;animation:.18s task-in;display:flex}@keyframes task-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.task-row.completed .task-title{color:var(--text-secondary);opacity:.7;text-decoration:line-through}.task-content{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.task-title{word-break:break-word;font-size:16px}.task-check{cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;padding:0;display:flex}.task-check-box{border:2px solid var(--border);background:var(--bg);border-radius:7px;justify-content:center;align-items:center;width:24px;height:24px;transition:background-color .15s,border-color .15s;display:flex}.task-check .icon{fill:#fff;opacity:0;width:16px;height:16px;transition:opacity .15s}.task-check.checked .task-check-box{background:var(--accent);border-color:var(--accent)}.task-check.checked .icon{opacity:1}.task-check:hover .task-check-box{border-color:var(--accent)}.badge{text-transform:capitalize;border:1px solid #0000;border-radius:999px;align-self:flex-start;padding:3px 10px;font-size:12px;font-weight:600}.badge.alta{color:var(--danger-text);background:var(--danger-bg);border-color:var(--danger-border)}.badge.media{color:var(--warning-text);background:var(--warning-bg);border-color:var(--warning-border)}.badge.baja{color:var(--success-text);background:var(--success-bg);border-color:var(--success-border)}.task-actions{flex-shrink:0;gap:2px;display:flex}.icon-btn{border-radius:var(--radius-small);width:44px;height:44px;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;transition:color .15s,background-color .15s;display:flex}.icon-btn:hover{color:var(--text);background:var(--bg)}.icon-btn .icon{fill:currentColor;pointer-events:none;width:22px;height:22px}.icon-btn.danger{width:auto;min-width:80px;font-family:var(--font);color:var(--danger-text);background:var(--danger-bg);border:1px solid var(--danger-border);padding:0 10px;font-size:13px;font-weight:700}.task-row.editing{padding:8px}.edit-form{flex-wrap:wrap;gap:8px;width:100%;display:flex}.edit-input{flex:1;min-width:160px}.edit-select{flex-shrink:0;width:auto}.empty-state{text-align:center;color:var(--text-secondary);background:var(--surface);border:1px dashed var(--border);border-radius:var(--radius);padding:36px 20px;font-size:15px;list-style:none}.toast{left:50%;bottom:calc(24px + env(safe-area-inset-bottom));background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-small);text-align:center;opacity:0;pointer-events:none;z-index:100;max-width:calc(100vw - 48px);padding:12px 20px;font-size:14px;transition:opacity .2s,transform .2s;position:fixed;transform:translate(-50%,16px);box-shadow:0 10px 30px #00000073}.toast.show{opacity:1;transform:translate(-50%)}@media (width>=641px){.view{padding-top:40px}.card{margin-top:6vh}}.bottom-nav{background:var(--surface);border-top:1px solid var(--border);z-index:50;padding-bottom:env(safe-area-inset-bottom);display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-nav-btn{min-height:60px;color:var(--text-secondary);font-family:var(--font);cursor:pointer;background:0 0;border:none;flex:1;font-size:14px;font-weight:600;transition:color .15s}.bottom-nav-btn.active{color:var(--accent)}.view.has-nav{padding-bottom:calc(96px + env(safe-area-inset-bottom))}.view.has-nav .card{gap:8px;margin-top:0;padding:20px}.dashboard-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:20px;display:grid}.stat-title{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;font-size:13px}.stat-value{font-size:24px;font-weight:700}.text-green{color:var(--success-text)}.text-red{color:var(--danger-text)}.btn-success{color:var(--success-text);background:#4ade9b1a;border:1px solid #4ade9b59}.btn-danger{color:var(--danger-text);background:#ff7b7b1a;border:1px solid #ff7b7b59}.transaction-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;padding:12px 14px;display:flex}.transaction-info h4{margin:0;font-size:16px}.transaction-info p{color:var(--text-secondary);font-size:13px}.amount-wrapper{font-weight:700}.modal-overlay{z-index:1000;background:#0009;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal-content{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:450px;padding:24px}.form-group{margin-bottom:14px}.form-group label{color:var(--text-secondary);margin:0 0 6px;font-size:13px;font-weight:600;display:block}.category-legend{flex-direction:column;gap:8px;margin-top:12px;display:flex}.legend-dot{border-radius:50%;flex-shrink:0;width:12px;height:12px}.date-filter{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:16px;display:flex}@media (width<=600px){.transaction-item{flex-direction:column;align-items:flex-start}.transaction-item .amount-wrapper{align-self:flex-end}}
