:root{--bg:#0e1116;--panel:#161b22;--panel-2:#1c2230;--border:#30363d;--text:#e6edf3;--text-muted:#8b949e;--accent:#2f81f7;--accent-hover:#1f6feb;--danger:#f85149;--success:#3fb950;--warning:#d29922}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover);text-decoration:underline}button{font:inherit;cursor:pointer}h1,h2,h3{margin-top:0}.container{max-width:1200px;margin:0 auto;padding:24px}.header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:24px}.header .who{color:var(--text-muted);font-size:.9rem}.header .who a{margin-left:12px}.btn{display:inline-block;padding:8px 16px;background:var(--accent);border:none;border-radius:6px;font-weight:500}.btn,.btn:hover{color:white;text-decoration:none}.btn:hover{background:var(--accent-hover)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:transparent;border:1px solid var(--border);color:var(--text)}.btn-secondary:hover{background:var(--panel)}.btn-danger{background:transparent;border:1px solid var(--danger);color:var(--danger)}.btn-danger:hover{background:rgba(248,81,73,.1);color:var(--danger)}.btn-sm{padding:4px 10px;font-size:.85rem}.panel{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:24px;margin-bottom:16px}.panel h2{margin-bottom:8px}.muted{color:var(--text-muted)}.error{color:var(--danger)}.success{color:var(--success)}.row{display:flex;gap:12px;align-items:center}.row>*{flex-shrink:0}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.field label{font-size:.85rem;color:var(--text-muted)}.field input,.field select{background:var(--bg);border:1px solid var(--border);border-radius:6px;color:var(--text);padding:8px 12px;font:inherit}.field input:not([type=checkbox]):not([type=radio]):not([type=color]),.field select{width:100%;max-width:360px}.field input[type=checkbox],.field input[type=radio]{width:auto;padding:0;margin:0}.field input[type=color]{width:48px;height:32px;padding:2px;cursor:pointer}.field input:focus,.field select:focus{outline:none;border-color:var(--accent)}.checkbox-row{display:flex;align-items:center;gap:8px;font-size:.9rem;cursor:pointer}.progress-bar{height:8px;background:var(--panel-2);border-radius:4px;overflow:hidden}.progress-fill{height:100%;background:var(--accent);transition:width .3s ease}.progress-fill.complete{background:var(--success)}.progress-fill.behind{background:var(--warning)}.goal-card{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:20px;display:grid;grid-gap:12px;gap:12px}.goal-header{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}.goal-amounts{font-size:1.5rem;font-weight:600}.goal-meta{color:var(--text-muted);font-size:.9rem;display:flex;flex-wrap:wrap;gap:12px;align-items:center}.goal-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));grid-gap:16px;gap:16px}.data-table{width:100%;border-collapse:collapse}.data-table thead th{text-align:left;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-weight:500}.data-table tbody td,.data-table thead th{padding:8px 12px;border-bottom:1px solid var(--border)}.data-table tbody td{vertical-align:middle}.data-table tr:last-child td{border-bottom:none}.data-table-total td{background:var(--panel-2);font-weight:600}.list{list-style:none;padding:0;margin:0}.list li{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid var(--border)}.list li:last-child{border-bottom:none}.badge{display:inline-block;padding:2px 8px;border-radius:12px;font-size:.75rem;background:var(--panel-2);border:1px solid var(--border);color:var(--text-muted)}.badge-owner{color:var(--success);border-color:var(--success)}.badge-editor{color:var(--accent);border-color:var(--accent)}.badge-viewer{color:var(--text-muted)}.badge-admin,.badge-pending{color:var(--warning);border-color:var(--warning)}.invite-link{display:flex;gap:8px;align-items:center;margin-top:8px;padding:8px 12px;background:var(--panel-2);border-radius:6px;border:1px solid var(--border);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem;overflow-wrap:anywhere}.divider{border:none;border-top:1px solid var(--border);margin:24px 0}.section-title{font-size:1rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin:24px 0 8px}.topbar{background:var(--panel);border-bottom:1px solid var(--border)}.topbar-inner{max-width:1200px;margin:0 auto;padding:0 24px;height:56px;display:flex;align-items:center;gap:24px}.topbar-logo{font-weight:700;font-size:1.1rem}.topbar-logo,.topbar-logo:hover{color:var(--text);text-decoration:none}.topbar-nav{display:flex;gap:4px;flex:1 1}.topbar-nav-link{color:var(--text-muted);text-decoration:none;padding:6px 12px;border-radius:6px;font-size:.95rem;font-weight:500}.topbar-nav-link:hover{text-decoration:none}.topbar-nav-link.is-active,.topbar-nav-link:hover{color:var(--text);background:var(--panel-2)}.topbar-right{display:flex;align-items:center;gap:12px}.household-pill{display:inline-flex;align-items:center;gap:6px;font-size:.9rem}.chevron{font-size:.75rem;transition:transform .12s ease}.chevron.open{transform:rotate(180deg)}.avatar{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:var(--panel-2);border:1px solid var(--border);font-size:.85rem;font-weight:600;color:var(--text)}.dropdown{position:relative;display:inline-block}.dropdown-trigger{background:transparent;border:none;padding:4px 8px;border-radius:6px;color:var(--text);cursor:pointer;font:inherit;display:inline-flex;align-items:center;gap:8px}.dropdown-trigger:hover{background:var(--panel-2)}.dropdown-menu{position:absolute;top:calc(100% + 4px);background:var(--panel);border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.4);padding:4px;z-index:100;min-width:200px}.dropdown-header{padding:10px 12px}.dropdown-label{padding:8px 12px 4px;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.dropdown-item{display:block;width:100%;background:transparent;border:none;padding:8px 12px;border-radius:4px;font:inherit;text-align:left;cursor:pointer}.dropdown-item,.dropdown-item:hover{color:var(--text);text-decoration:none}.dropdown-item:hover{background:var(--panel-2)}.dropdown-item-danger{color:var(--danger)}.dropdown-item-danger:hover{background:rgba(248,81,73,.1);color:var(--danger)}.dropdown-item-disabled{color:var(--text-muted);cursor:not-allowed}.dropdown-item-disabled:hover{background:transparent;color:var(--text-muted)}.dropdown-divider{height:1px;background:var(--border);margin:4px 0}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));grid-gap:16px;gap:16px;margin-bottom:16px}.stat{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:20px}.stat-label{font-size:.85rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px}.stat-value{font-size:1.75rem;font-weight:600}.stat-sub{font-size:.85rem;color:var(--text-muted);margin-top:4px}.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.6);display:flex;align-items:flex-start;justify-content:center;z-index:200;padding:64px 24px 24px;overflow:auto}.modal{background:var(--panel);border:1px solid var(--border);border-radius:12px;width:100%;box-shadow:0 16px 48px rgba(0,0,0,.6)}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;border-bottom:1px solid var(--border)}.modal-close{background:transparent;border:none;color:var(--text-muted);font-size:1.5rem;cursor:pointer;padding:0 8px;line-height:1}.modal-close:hover{color:var(--text)}.modal-body{padding:24px}.field-label-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.link-button{background:transparent;border:none;padding:0;color:var(--accent);font:inherit;font-size:.85rem;cursor:pointer}.link-button:hover{color:var(--accent-hover);text-decoration:underline}.form-grid{display:grid;grid-template-columns:repeat(12,1fr);grid-gap:12px;gap:12px;align-items:end}.form-grid .field input,.form-grid .field select{max-width:none}@media (max-width:720px){.form-grid{grid-template-columns:repeat(6,1fr)}}