*,*:before,*:after{box-sizing:border-box}:root{--bg: #f7f5f2;--surface: #ffffff;--surface2: #f0ede9;--border: #e8e3dc;--border2: #d9d3ca;--text: #1a1714;--text2: #6b6460;--text3: #9c9490;--primary: #5b6af0;--primary-bg: #eef0fe;--green: #3dab7b;--green-bg: #e8f7f0;--red: #e05252;--red-bg: #fdeeee;--amber: #d4880a;--amber-bg: #fef5e4;--shadow: 0 1px 3px rgba(0, 0, 0, .06), 0 1px 2px rgba(0, 0, 0, .04);--shadow-md: 0 4px 16px rgba(0, 0, 0, .08);--radius: 8px;--radius-lg: 12px;--radius-xl: 16px;--font-head: "Plus Jakarta Sans", Inter, ui-sans-serif, system-ui, sans-serif;--font-body: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;color-scheme:light;color:var(--text);background:var(--bg);font-family:var(--font-body);font-synthesis:none;line-height:1.5;text-rendering:optimizeLegibility}[data-theme=dark]{--bg: #0f1117;--surface: #1a1d27;--surface2: #222636;--border: #2e3347;--border2: #3d4460;--text: #f0ede9;--text2: #9ba3c0;--text3: #636b88;--primary: #7b8fff;--primary-bg: #1e2347;--green: #4dc991;--green-bg: #0d2b1e;--red: #ff7070;--red-bg: #2b1010;--amber: #f5a623;--amber-bg: #2b1e06;--shadow: 0 1px 3px rgba(0, 0, 0, .3);--shadow-md: 0 4px 16px rgba(0, 0, 0, .4);color-scheme:dark}html,body,#root{min-height:100%}body{margin:0;min-width:320px;background:var(--bg);color:var(--text);font-size:14px;-webkit-font-smoothing:antialiased}button,input,select{font:inherit}button{cursor:pointer}h1,h2,h3,p{margin:0}.app-shell,.screen{min-height:100vh}.auth-screen{align-items:center;background:var(--bg);display:flex;justify-content:center;padding:1rem}.auth-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);display:grid;gap:1rem;max-width:400px;padding:2.5rem 2rem;width:100%}.auth-logo{align-items:center;display:flex;gap:8px;justify-content:center;margin-bottom:.75rem}.auth-logo-icon,.topbar-logo-icon{align-items:center;background:var(--primary);border-radius:10px;color:#fff;display:flex;font-family:var(--font-head);font-weight:700;justify-content:center}.auth-logo-icon{height:36px;width:36px}.auth-logo-name,.topbar-logo-name{color:var(--text);font-family:var(--font-head);font-weight:700}.auth-logo-name{font-size:20px}.auth-heading{display:grid;gap:4px}.auth-title{color:var(--text);font-family:var(--font-head);font-size:22px;font-weight:700}.auth-sub{color:var(--text2);font-size:13px}.auth-form{display:grid;gap:1rem}.form-group{display:grid;gap:6px}.form-label,.sidebar-section-title,.tile-label{color:var(--text3);font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.form-input,.mini-input,.inline-input,.family-select,select,input{background:var(--surface2);border:1px solid var(--border2);border-radius:var(--radius);color:var(--text);min-width:0;outline:none;transition:border-color .15s,box-shadow .15s}.form-input,input,select{min-height:40px;padding:9px 12px}.form-input::placeholder,.mini-input::placeholder,.inline-input::placeholder,input::placeholder{color:var(--text3)}.form-input:focus,.mini-input:focus,.inline-input:focus,.family-select:focus,select:focus,input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #5b6af01f}.btn,.primary-button,.secondary-button,.text-button{align-items:center;border:0;border-radius:var(--radius);display:inline-flex;font-size:13px;font-weight:500;justify-content:center;min-height:38px;padding:9px 16px;text-decoration:none;transition:all .15s;white-space:nowrap}.btn-primary,.primary-button{background:var(--primary);color:#fff}.btn-primary:hover,.primary-button:hover{opacity:.9;transform:translateY(-1px)}.btn-danger{background:var(--red-bg);border:1px solid color-mix(in srgb,var(--red) 24%,transparent);color:var(--red)}.btn-danger:hover{background:color-mix(in srgb,var(--red-bg) 74%,var(--red))}.btn-block{width:100%}.btn-sm{min-height:30px;padding:6px 12px}.secondary-button,.text-button,.btn-ghost{background:transparent;border:1px solid var(--border2);color:var(--text2)}.btn-ghost:hover{background:var(--surface2);color:var(--text)}.btn:disabled,.primary-button:disabled{cursor:not-allowed;opacity:.55;transform:none}.text-button{border:0;justify-self:center;padding:0}.btn-icon{align-items:center;background:transparent;border:1px solid var(--border);border-radius:var(--radius);color:var(--text2);display:inline-flex;font-size:12px;font-weight:600;justify-content:center;min-height:34px;padding:7px 10px;transition:all .15s}.btn-icon:hover,.secondary-button:hover{background:var(--surface2);color:var(--text)}.auth-card-actions{display:flex;justify-content:center;margin-top:.25rem}.topbar{align-items:center;background:var(--surface);border-bottom:1px solid var(--border);display:flex;gap:12px;height:56px;padding:0 1.5rem;position:sticky;top:0;z-index:100}.topbar-logo{align-items:center;display:flex;gap:8px;margin-right:auto}.topbar-logo-icon{border-radius:7px;font-size:14px;height:28px;width:28px}.topbar-logo-name{font-size:15px}.topbar-user{align-items:center;color:var(--text2);display:flex;gap:8px;font-size:13px}.topbar-user-button{background:transparent;border:0;border-radius:var(--radius);padding:4px 7px 4px 4px;transition:background .15s,color .15s}.topbar-user-button:hover,.topbar-user-button:focus-visible{background:var(--surface2);color:var(--text);outline:none}.topbar-avatar{align-items:center;background:var(--primary-bg);border-radius:50%;color:var(--primary);display:flex;font-size:11px;font-weight:700;height:28px;justify-content:center;width:28px}.user-name{color:var(--text);font-weight:500}.topbar-actions{align-items:center;display:flex;gap:8px}.app-body{display:flex;min-height:calc(100vh - 56px)}.sidebar{background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;flex-shrink:0;gap:1.25rem;overflow-y:auto;padding:1.25rem;width:260px}.family-select{appearance:none;cursor:pointer;font-size:13px;font-weight:500;margin-top:.5rem;min-height:34px;padding:7px 10px;width:100%}.inline-form{display:flex;gap:6px;margin-top:6px}.inline-input{flex:1;font-size:12px;min-height:32px;padding:7px 10px}.section-divider{background:var(--border);height:1px}.member-list{display:flex;flex-direction:column;gap:6px;margin-top:.5rem}.member-chip{align-items:center;background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);display:flex;gap:8px;padding:6px 8px}.member-avatar{align-items:center;background:var(--primary-bg);border-radius:50%;color:var(--primary);display:flex;flex-shrink:0;font-size:10px;font-weight:700;height:24px;justify-content:center;width:24px}.member-info{flex:1;min-width:0}.member-name{color:var(--text);font-size:12px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.member-role{color:var(--text3);font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.role-badge{border-radius:4px;font-size:9px;font-weight:700;letter-spacing:.04em;padding:2px 6px;text-transform:uppercase}.role-owner{background:var(--primary-bg);color:var(--primary)}.role-member{background:var(--surface);color:var(--text3)}.main-content{flex:1;min-width:0;overflow-y:auto;padding:1.5rem}.content-heading{align-items:center;display:flex;justify-content:space-between;margin-bottom:1.25rem}.content-heading h1{color:var(--text);font-family:var(--font-head);font-size:24px;line-height:1.1}.eyebrow{color:var(--text3);font-size:11px;font-weight:600;letter-spacing:.06em;margin-bottom:4px;text-transform:uppercase}.summary-grid{display:grid;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:1.5rem}.summary-tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);min-width:0;padding:1.1rem 1.25rem}.tile-label{display:block;margin-bottom:6px}.tile-value{display:block;font-family:var(--font-head);font-size:22px;font-weight:700;line-height:1;overflow-wrap:anywhere}.tile-income .tile-value{color:var(--green)}.tile-expense .tile-value{color:var(--red)}.tile-balance .tile-value{color:var(--primary)}.alert{background:var(--red-bg);border:1px solid color-mix(in srgb,var(--red) 30%,transparent);border-radius:var(--radius-lg);color:var(--red);font-size:13px;font-weight:600;margin-bottom:1rem;padding:10px 14px}.notice{background:var(--green-bg);border:1px solid color-mix(in srgb,var(--green) 30%,transparent);border-radius:var(--radius-lg);color:var(--green);font-size:13px;font-weight:600;margin-bottom:1rem;padding:10px 14px}.profile-page{display:grid;gap:1.25rem}.profile-header{align-items:center;display:flex;gap:1rem;justify-content:space-between}.profile-title{align-items:center;display:flex;gap:12px}.profile-title h1{color:var(--text);font-family:var(--font-head);font-size:24px;line-height:1.1}.profile-title p:not(.eyebrow){color:var(--text2);font-size:13px}.profile-avatar{align-items:center;background:var(--primary-bg);border-radius:var(--radius-lg);color:var(--primary);display:flex;font-family:var(--font-head);font-size:18px;font-weight:700;height:48px;justify-content:center;width:48px}.modal-backdrop{align-items:center;background:color-mix(in srgb,#111827 42%,transparent);display:flex;inset:0;justify-content:center;padding:1rem;position:fixed;z-index:30}.confirmation-modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);display:grid;gap:1.25rem;max-width:420px;padding:1.25rem;width:min(100%,420px)}.confirmation-modal h2{color:var(--text);font-family:var(--font-head);font-size:18px;line-height:1.2}.confirmation-modal p:not(.eyebrow){color:var(--text2);font-size:13px;line-height:1.5;margin-top:.4rem}.modal-actions{display:flex;gap:.75rem;justify-content:flex-end}.profile-grid{display:grid;gap:1rem;grid-template-columns:repeat(2,minmax(0,1fr))}.profile-tabs{align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);display:inline-flex;gap:4px;padding:4px}.profile-tab{background:transparent;border:0;border-radius:var(--radius);color:var(--text2);cursor:pointer;font-size:13px;font-weight:600;min-height:34px;padding:8px 14px;transition:all .15s}.profile-tab:hover{background:var(--surface2);color:var(--text)}.profile-tab.active{background:var(--primary-bg);color:var(--primary)}.profile-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);display:grid;gap:1rem;padding:1.25rem}.danger-zone{border-color:color-mix(in srgb,var(--red) 26%,var(--border))}.profile-card h2{color:var(--text);font-family:var(--font-head);font-size:16px}.profile-card-wide{grid-column:1 / -1}.profile-card-heading{align-items:center;display:flex;gap:1rem;justify-content:space-between}.profile-form{align-content:start;display:grid;gap:.85rem}.profile-form button{justify-self:start}.profile-form-narrow{max-width:520px}.profile-help{color:var(--text3);font-size:12px}.profile-family-grid{display:grid;gap:1rem;grid-template-columns:repeat(3,minmax(0,1fr))}.profile-member-grid{display:grid;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:.5rem}.family-list{display:grid;gap:8px;margin-top:.5rem}.family-list-item{align-items:center;background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);display:flex;gap:1rem;justify-content:space-between;padding:.75rem}.family-list-main,.family-list-actions{align-items:center;display:flex;gap:8px;min-width:0}.family-list-main{flex:1}.family-list-actions{flex-shrink:0}.family-avatar{align-items:center;background:var(--primary-bg);border-radius:50%;color:var(--primary);display:flex;flex-shrink:0;font-size:11px;font-weight:700;height:30px;justify-content:center;width:30px}.customization-row{align-items:center;display:flex;gap:1rem;justify-content:space-between}.customization-row strong,.customization-row span{display:block}.customization-row strong{color:var(--text);font-size:13px}.customization-row span{color:var(--text3);font-size:12px}.budget-board,.budget-grid{display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr))}.lane{min-width:0}.lane-header,.col-header{align-items:center;display:flex;gap:8px;margin-bottom:12px}.col-title{color:var(--text);flex:1;font-family:var(--font-head);font-size:15px;font-weight:600}.col-total{border-radius:99px;font-size:12px;font-weight:600;padding:3px 8px}.col-income .col-total{background:var(--green-bg);color:var(--green)}.col-expense .col-total{background:var(--red-bg);color:var(--red)}.category-form,.add-cat-form{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);display:grid;gap:8px;grid-template-columns:minmax(0,1fr) 90px auto auto;margin-bottom:12px;padding:1rem}.mini-input{font-size:12px;min-height:30px;padding:5px 8px;width:100%}.swatches{align-items:center;display:flex;flex-wrap:wrap;gap:6px}.color-swatch,.swatch{border:2px solid transparent;border-radius:50%;height:22px;padding:0;transition:all .12s;width:22px}.color-swatch.selected,.color-swatch:hover,.swatch.active,.swatch:hover{border-color:var(--text);transform:scale(1.08)}[data-theme=dark] .color-swatch.selected,[data-theme=dark] .color-swatch:hover,[data-theme=dark] .swatch.active,[data-theme=dark] .swatch:hover{box-shadow:0 0 0 2px color-mix(in srgb,var(--text) 35%,transparent)}.category-list{display:grid;gap:12px}.category-card{background:color-mix(in srgb,var(--accent) 36%,var(--surface));border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);min-width:0;overflow:hidden}[data-theme=dark] .category-card{background:color-mix(in srgb,var(--accent) 72%,var(--surface));border-color:color-mix(in srgb,var(--accent-strong) 28%,var(--border))}.category-header,.category-top{align-items:center;display:grid;gap:8px;grid-template-columns:auto auto minmax(0,1fr) auto;padding:.8rem 1rem}.drag-handle{color:var(--text3);cursor:grab;font-size:13px;font-weight:700;width:14px}.cat-color-dot{background:color-mix(in srgb,var(--accent-strong) 72%,var(--primary));border-radius:50%;height:10px;width:10px}[data-theme=dark] .cat-name{color:color-mix(in srgb,var(--accent-strong) 18%,var(--text))}[data-theme=dark] .cat-target{color:color-mix(in srgb,var(--accent-strong) 45%,var(--text3))}.cat-name{color:var(--text);font-size:13px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cat-target,.category-top p{color:var(--text3);font-size:11px}.cat-action-btn,.icon-button,.small-delete,.item-del{align-items:center;background:transparent;border:0;border-radius:4px;color:var(--text3);display:inline-flex;font-size:13px;justify-content:center;min-height:24px;padding:3px 6px}.cat-action-btn:hover,.icon-button:hover,.small-delete:hover,.item-del:hover{background:var(--surface2);color:var(--red)}.cat-body,.entry-stack{display:grid;gap:4px;padding:.5rem .75rem .75rem}.budget-item,.entry-card{align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);cursor:grab;display:flex;gap:8px;margin-bottom:0;min-height:38px;padding:6px 8px;transition:box-shadow .15s}.budget-item:hover,.entry-card:hover{box-shadow:var(--shadow-md)}.item-drag{color:var(--text3);flex-shrink:0;font-size:11px}.item-info{flex:1;min-width:0}.item-title,.entry-card strong{color:var(--text);display:block;font-size:12px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.item-note,.entry-card span{color:var(--text3);display:block;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.entry-actions{align-items:center;display:flex;gap:6px;white-space:nowrap}.item-amount,.entry-actions b{color:var(--text);font-size:12px;font-weight:700}.add-item-row,.entry-form{align-items:center;border-top:1px dashed var(--border);display:grid;gap:6px;grid-template-columns:minmax(0,1.6fr) 80px 126px minmax(0,1.2fr) 26px;margin:6px .75rem .75rem;padding-top:6px}.add-item-date{min-width:0}.add-item-btn{align-items:center;background:var(--primary-bg);border:0;border-radius:5px;color:var(--primary);display:flex;font-size:14px;height:26px;justify-content:center;width:26px}.add-item-btn:hover{background:var(--primary);color:#fff}@media(max-width:900px){.app-body{flex-direction:column}.sidebar{border-bottom:1px solid var(--border);border-right:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.section-divider{display:none}.member-list{grid-column:1 / -1}.budget-board,.budget-grid,.summary-grid,.profile-grid,.profile-family-grid,.profile-member-grid{grid-template-columns:1fr}.category-form,.add-cat-form{grid-template-columns:minmax(0,1fr) 90px}.swatches{grid-column:1 / -1}}@media(max-width:640px){.topbar{align-items:center;height:auto;min-height:56px;padding:.75rem 1rem}.topbar-user .user-name{display:none}.profile-header,.profile-card-heading,.family-list-item,.customization-row{align-items:stretch;flex-direction:column}.profile-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%}.profile-tab{padding-inline:8px}.family-list-actions{justify-content:space-between;width:100%}.modal-actions{flex-direction:column-reverse}.modal-actions .btn{width:100%}.topbar-actions{gap:6px}.btn-icon{padding:7px}.sidebar{grid-template-columns:1fr;padding:1rem}.main-content{padding:1rem}.content-heading h1{font-size:20px}.category-form,.add-cat-form,.add-item-row,.entry-form{grid-template-columns:1fr}.add-item-note{display:none}.budget-item,.entry-card{align-items:stretch;flex-direction:column}.entry-actions{justify-content:space-between;width:100%}}
