*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #f4f4f0;--surface: #ffffff;--surface-2: #f9f9f7;--border: #e4e2dc;--text: #1a1a18;--text-muted: #72706a;--text-faint: #a8a69e;--primary: #2d6a4f;--primary-hover: #1b4332;--primary-light: #d8f3dc;--primary-faint: #eef8f1;--offer-color: #2d6a4f;--offer-bg: #d8f3dc;--request-color: #92400e;--request-bg: #fde8d0;--danger: #b91c1c;--danger-bg: #fee2e2;--warning-bg: #fffbeb;--warning-border: #f59e0b;--radius-sm: 6px;--radius: 12px;--radius-lg: 16px;--shadow-sm: 0 1px 2px rgba(0,0,0,.06);--shadow: 0 2px 8px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.04);--shadow-lg: 0 8px 24px rgba(0,0,0,.1), 0 2px 6px rgba(0,0,0,.06);--nav-height: 56px;--bottom-nav-height: 64px;--sidebar-width: 220px;--transition: .16s ease}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;background:var(--bg);color:var(--text);line-height:1.5;-webkit-font-smoothing:antialiased}.app-shell{display:flex;min-height:100dvh}.sidebar{display:none}.topbar{position:fixed;top:0;left:0;right:0;height:var(--nav-height);background:var(--primary);color:#fff;display:flex;align-items:center;padding:0 1rem;z-index:100;gap:.75rem}.topbar-brand{font-weight:700;font-size:1.1rem;flex:1}.topbar-balance{font-size:.85rem;background:#ffffff26;padding:.25rem .65rem;border-radius:999px;font-weight:600}.bottom-nav{position:fixed;bottom:0;left:0;right:0;height:var(--bottom-nav-height);background:var(--surface);border-top:1px solid var(--border);display:flex;z-index:100}.bottom-nav a{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:.7rem;font-weight:500;color:var(--text-muted);text-decoration:none;padding-bottom:env(safe-area-inset-bottom,0);transition:color var(--transition)}.bottom-nav a.active{color:var(--primary)}.bottom-nav svg{width:22px;height:22px}.main-content{flex:1;padding:calc(var(--nav-height) + 1rem) 1rem calc(var(--bottom-nav-height) + 1rem);max-width:680px;margin:0 auto;width:100%}@media (min-width: 768px){.topbar,.bottom-nav{display:none}.sidebar{display:flex;flex-direction:column;width:var(--sidebar-width);min-height:100dvh;background:var(--surface);border-right:1px solid var(--border);padding:1.5rem 1rem;position:fixed;top:0;left:0;bottom:0;gap:.25rem}.sidebar-brand{font-size:1.25rem;font-weight:800;color:var(--primary);margin-bottom:1.5rem;padding:0 .5rem}.sidebar a{display:flex;align-items:center;gap:.65rem;padding:.6rem .75rem;border-radius:var(--radius-sm);color:var(--text-muted);text-decoration:none;font-size:.9rem;font-weight:500;transition:background var(--transition),color var(--transition)}.sidebar a:hover{background:var(--bg);color:var(--text)}.sidebar a.active{background:var(--primary-faint);color:var(--primary)}.sidebar svg{width:18px;height:18px}.sidebar-balance{margin-top:auto;padding:.75rem;background:var(--primary-faint);border-radius:var(--radius);font-size:.85rem}.sidebar-balance .val{font-size:1.4rem;font-weight:700;color:var(--primary)}.main-content{margin-left:var(--sidebar-width);padding:2rem;max-width:calc(var(--sidebar-width) + 680px)}}.auth-page{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding:1.25rem;background:var(--bg)}.auth-logo{color:var(--primary);font-size:2rem;font-weight:800;letter-spacing:-.02em}.auth-tagline{color:var(--text-muted);margin-bottom:.75rem;font-size:.95rem}.auth-card{width:100%;max-width:400px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.75rem;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;gap:1rem}.auth-card h2{font-size:1.3rem;margin-bottom:-.25rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem;box-shadow:var(--shadow-sm)}label{display:flex;flex-direction:column;gap:.3rem;font-size:.875rem;font-weight:500;color:var(--text)}input,select,textarea{padding:.6rem .8rem;border:1.5px solid var(--border);border-radius:var(--radius-sm);font-size:.95rem;font-family:inherit;background:var(--bg);color:var(--text);transition:border-color var(--transition),box-shadow var(--transition)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #2d6a4f1f}.hint{font-size:.78rem;color:var(--text-muted);font-weight:400}.toggle-group{display:flex;background:var(--bg);border:1.5px solid var(--border);border-radius:var(--radius-sm);padding:3px;gap:3px}.toggle-group button{flex:1;padding:.5rem .75rem;border:none;border-radius:5px;background:transparent;cursor:pointer;font-size:.875rem;font-weight:500;color:var(--text-muted);transition:background var(--transition),color var(--transition)}.toggle-group button.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.tabs{display:flex;border-bottom:2px solid var(--border);gap:0;margin-bottom:1.25rem}.tabs button{padding:.6rem 1.1rem;border:none;background:none;cursor:pointer;font-size:.9rem;font-weight:500;color:var(--text-muted);position:relative;transition:color var(--transition)}.tabs button:after{content:"";position:absolute;bottom:-2px;left:0;right:0;height:2px;background:var(--primary);transform:scaleX(0);transition:transform var(--transition)}.tabs button.active{color:var(--primary)}.tabs button.active:after{transform:scaleX(1)}.chips{display:flex;flex-wrap:wrap;gap:.4rem}.chip{padding:.3rem .75rem;border-radius:999px;border:1.5px solid var(--border);background:var(--surface);font-size:.8rem;font-weight:500;cursor:pointer;color:var(--text-muted);transition:all var(--transition);-webkit-user-select:none;user-select:none}.chip.active{background:var(--primary);border-color:var(--primary);color:#fff}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;border:none;border-radius:var(--radius-sm);padding:.6rem 1.25rem;font-size:.9rem;font-weight:600;cursor:pointer;text-decoration:none;transition:background var(--transition),opacity var(--transition);white-space:nowrap}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-hover)}.btn-secondary{background:var(--surface);color:var(--primary);border:1.5px solid var(--primary)}.btn-ghost{background:transparent;color:var(--text-muted)}.btn-ghost:hover{background:var(--bg);color:var(--text)}.btn-danger{background:var(--danger-bg);color:var(--danger)}.btn-danger:hover{background:#fecaca}.btn-sm{padding:.35rem .75rem;font-size:.8rem}.btn-link{background:none;border:none;color:var(--primary);cursor:pointer;font-size:.875rem;text-decoration:underline;padding:0}.credit-symbol:before{content:"◈";margin-right:.1em}.credits-pill{display:inline-flex;align-items:center;gap:.25rem;background:var(--primary-light);color:var(--primary);font-weight:700;padding:.2rem .6rem;border-radius:999px;font-size:.85rem}.balance-display{display:flex;align-items:baseline;gap:.3rem}.balance-display .amount{font-size:2.25rem;font-weight:800;line-height:1;color:var(--primary)}.balance-display.negative .amount{color:var(--danger)}.balance-display .symbol{font-size:1.1rem;font-weight:700;color:inherit;opacity:.7}.balance-display .label{font-size:.8rem;color:var(--text-muted);align-self:flex-end;margin-bottom:.2rem}.badge{display:inline-flex;align-items:center;padding:.15rem .55rem;border-radius:999px;font-size:.75rem;font-weight:600;gap:.2rem}.badge-offer{background:var(--offer-bg);color:var(--offer-color)}.badge-request{background:var(--request-bg);color:var(--request-color)}.badge-category{background:var(--surface-2);color:var(--text-muted);border:1px solid var(--border)}.badge-high-risk{background:#fee2e2;color:var(--danger)}.task-grid{display:flex;flex-direction:column;gap:.75rem}.task-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.1rem;box-shadow:var(--shadow-sm);transition:box-shadow var(--transition),border-color var(--transition)}.task-card:hover{box-shadow:var(--shadow);border-color:#ccc}.task-card-meta{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:.5rem;align-items:center}.task-card h3{font-size:1rem;margin-bottom:.25rem;line-height:1.3}.task-card p{color:var(--text-muted);font-size:.875rem;margin-bottom:.75rem}.task-card-footer{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.task-card-actions{display:flex;gap:.5rem;align-items:center}.stepper{display:flex;align-items:flex-start;gap:0;margin:1.25rem 0;overflow-x:auto;padding-bottom:.25rem}.step{display:flex;flex-direction:column;align-items:center;flex:1;min-width:60px;position:relative}.step:not(:last-child):after{content:"";position:absolute;top:11px;left:calc(50% + 12px);right:calc(-50% + 12px);height:2px;background:var(--border);z-index:0}.step.done:not(:last-child):after{background:var(--primary)}.step-dot{width:24px;height:24px;border-radius:50%;background:var(--bg);border:2px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:700;position:relative;z-index:1;flex-shrink:0}.step.done .step-dot{background:var(--primary);border-color:var(--primary);color:#fff}.step.active .step-dot{border-color:var(--primary);color:var(--primary);background:var(--primary-faint)}.step-label{font-size:.65rem;color:var(--text-faint);text-align:center;margin-top:.3rem;line-height:1.2;max-width:64px}.step.active .step-label{color:var(--primary);font-weight:600}.step.done .step-label{color:var(--text-muted)}.profile-card{background:linear-gradient(135deg,var(--primary) 0%,var(--primary-hover) 100%);color:#fff;border-radius:var(--radius-lg);padding:1.5rem;margin-bottom:1.25rem}.profile-name{font-size:1.25rem;font-weight:700}.profile-neighborhood{opacity:.8;font-size:.875rem;margin-bottom:1rem}.profile-stats{display:flex;gap:2rem;margin-top:.25rem}.profile-stat{display:flex;flex-direction:column;gap:.15rem}.profile-stat-value{font-size:1.6rem;font-weight:800;color:#fff;line-height:1}.profile-stat-label{font-size:.75rem;color:#ffffffa6}.toast-container{position:fixed;bottom:calc(var(--bottom-nav-height) + .75rem);left:50%;transform:translate(-50%);display:flex;flex-direction:column;gap:.5rem;z-index:200;pointer-events:none;align-items:center;width:calc(100% - 2rem);max-width:420px}@media (min-width: 768px){.toast-container{bottom:1.5rem;left:calc(var(--sidebar-width) + 1.5rem);transform:none}}.toast{background:var(--text);color:#fff;padding:.65rem 1rem;border-radius:var(--radius-sm);font-size:.875rem;font-weight:500;box-shadow:var(--shadow-lg);pointer-events:all;animation:toast-in .2s ease;display:flex;align-items:center;gap:.5rem}.toast.success{background:var(--primary)}.toast.error{background:var(--danger)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.empty-state{display:flex;flex-direction:column;align-items:center;padding:3rem 1rem;text-align:center;gap:.75rem}.empty-state-icon{font-size:2.5rem;opacity:.3}.empty-state h3{font-size:1.05rem;color:var(--text-muted)}.empty-state p{font-size:.875rem;color:var(--text-faint);max-width:260px}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.section-title{font-size:1rem;font-weight:700}.section-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin:1.25rem 0 .5rem}.error-msg{color:var(--danger);font-size:.875rem}.warning-box{background:var(--warning-bg);border:1px solid var(--warning-border);border-radius:var(--radius-sm);padding:.75rem 1rem;font-size:.875rem;color:#92400e}.divider{border:none;border-top:1px solid var(--border);margin:1rem 0}.loading-screen{display:flex;align-items:center;justify-content:center;height:100dvh;color:var(--text-muted);font-size:.9rem}.tx-action-row{display:flex;flex-direction:column;gap:.75rem;margin-top:1.25rem}.form-stack{display:flex;flex-direction:column;gap:.9rem}
