:root{--bg: #f6f7f9;--surface: #ffffff;--border: #e5e7eb;--text: #1f2937;--muted: #6b7280;--accent: #4f46e5;--danger: #dc2626;--green: #16a34a;--red: #dc2626;--blue: #2563eb;font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;color:var(--text);background-color:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--bg)}h1{font-size:1.6rem;margin:0}h2{font-size:1.05rem;margin:0 0 .75rem}button{border-radius:8px;border:1px solid var(--border);padding:.5rem 1rem;font-size:.95rem;font-family:inherit;background:var(--accent);color:#fff;cursor:pointer;transition:filter .15s,border-color .15s}button:hover{filter:brightness(.95)}input,select{font-family:inherit;font-size:.95rem;padding:.5rem .6rem;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text)}@media (prefers-color-scheme: dark){:root{--bg: #0f1115;--surface: #171a21;--border: #2a2f3a;--text: #e5e7eb;--muted: #9aa4b2}}.center{display:grid;place-items:center;min-height:100vh;color:var(--muted)}.login{max-width:420px;margin:0 auto;padding:6rem 1.5rem;text-align:center}.login .subtitle{color:var(--muted)}.signin{display:flex;justify-content:center;margin:2rem 0 1rem}.shell{display:flex;min-height:100vh}.sidebar{width:240px;flex-shrink:0;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:1.25rem .9rem;position:sticky;top:0;height:100vh}.brand{font-weight:700;font-size:1.15rem;padding:.25rem .6rem 1.25rem;display:flex;align-items:center;gap:.4rem}.brand-mark{color:var(--accent)}.sidebar nav{display:flex;flex-direction:column;gap:.25rem;flex:1}.nav-group{display:flex;flex-direction:column}.nav-group-header{display:flex;align-items:center;gap:.5rem;width:100%;background:transparent;border:none;color:var(--muted);font-size:.72rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:.5rem .6rem;cursor:pointer}.nav-group-header:hover{color:var(--text)}.nav-group-label{flex:1;text-align:left}.chevron{font-size:.7rem;transition:transform .15s;transform:rotate(-90deg)}.chevron.open{transform:rotate(0)}.nav-group-items{display:flex;flex-direction:column;gap:.1rem;margin:.1rem 0 .4rem .35rem;padding-left:.35rem;border-left:1px solid var(--border)}.nav-item{display:flex;align-items:center;gap:.6rem;padding:.5rem .7rem;border-radius:8px;color:var(--text);text-decoration:none;font-weight:500}.nav-item:hover{background:var(--bg)}.nav-item.active{background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent)}.nav-icon{font-size:1.05rem}.sidebar-footer{border-top:1px solid var(--border);padding-top:.9rem}.who-name{font-weight:600;font-size:.9rem}.who-email{color:var(--muted);font-size:.78rem;margin-bottom:.6rem;overflow:hidden;text-overflow:ellipsis}.logout{width:100%;background:transparent;color:var(--text)}.logout:hover{border-color:var(--muted)}.content{flex:1;min-width:0;padding:1.75rem 2rem}.topbar{display:none;align-items:center;gap:.75rem;padding:.6rem 1rem;background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:40}.nav-toggle{background:transparent;color:var(--text);border:1px solid var(--border);font-size:1.1rem;line-height:1;padding:.35rem .6rem}.backdrop{display:none}.page{max-width:960px}.page-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}.filters{display:flex;gap:.5rem}.total-badge{font-weight:600;color:var(--muted)}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin-bottom:1.25rem}.tile{background:var(--surface);border:1px solid var(--border);border-left-width:4px;border-radius:12px;padding:1rem 1.1rem}.tile.blue{border-left-color:var(--blue)}.tile.green{border-left-color:var(--green)}.tile.red{border-left-color:var(--red)}.tile-label{color:var(--muted);font-size:.82rem}.tile-value{font-size:1.5rem;font-weight:700;margin-top:.25rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1.1rem 1.2rem;margin-bottom:1.25rem}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}@media (max-width: 780px){.grid-2{grid-template-columns:1fr}.shell{flex-direction:column}.topbar{display:flex}.sidebar{position:fixed;top:0;left:0;height:100vh;width:260px;max-width:82vw;transform:translate(-100%);transition:transform .22s ease;z-index:60;box-shadow:0 0 40px #00000040}.sidebar.open{transform:none}.backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:55}.content{padding:1rem}.page{max-width:none}.page-head{flex-wrap:wrap}.filters{flex-wrap:wrap;width:100%}.filters>*{flex:1 1 140px}.card{overflow-x:auto}.table{min-width:480px}.modal-row,.trip-dates{flex-direction:column;gap:.6rem}}.bars{list-style:none;margin:0;padding:0}.bars li{margin-bottom:.7rem}.bar-row{display:flex;justify-content:space-between;font-size:.88rem;margin-bottom:.25rem}.bar-track{height:8px;background:var(--bg);border-radius:999px;overflow:hidden}.bar-fill{height:100%;border-radius:999px}.recent{list-style:none;margin:0;padding:0}.recent li{display:flex;justify-content:space-between;align-items:center;padding:.55rem 0;border-bottom:1px solid var(--border)}.recent li:last-child{border-bottom:none}.recent-desc{font-weight:500}.table{width:100%;border-collapse:collapse}.table th{text-align:left;font-size:.78rem;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);padding:.4rem .5rem;border-bottom:1px solid var(--border)}.table td{padding:.6rem .5rem;border-bottom:1px solid var(--border)}.table tr:last-child td{border-bottom:none}.right{text-align:right}.mono{font-variant-numeric:tabular-nums}.small{font-size:.85rem}.cap{text-transform:capitalize}.muted{color:var(--muted)}.amt.income,.amt.transfer{color:var(--green)}.amt.expense{color:var(--red)}.amt.transfer{color:var(--blue)}.form-row{display:flex;gap:.6rem;flex-wrap:wrap}.form-row input,.form-row select{flex:1;min-width:120px}.txn-form{display:flex;flex-direction:column;gap:.75rem}.kind-toggle{display:inline-flex;border:1px solid var(--border);border-radius:8px;overflow:hidden;width:fit-content}.kind-toggle button{background:transparent;color:var(--text);border:none;border-radius:0;text-transform:capitalize;padding:.45rem 1rem}.kind-toggle button.active{background:var(--accent);color:#fff}.txn-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:.6rem}.link-danger{background:transparent;border:none;color:var(--danger);padding:.2rem .4rem}.link-danger:hover{text-decoration:underline}.link-edit{background:transparent;border:none;color:var(--accent);padding:.2rem .5rem;font-weight:500}.link-edit:hover{text-decoration:underline}.nowrap{white-space:nowrap}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;padding:1rem;z-index:50}.modal{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:1.5rem;width:100%;max-width:440px;box-shadow:0 20px 60px #00000040}.modal-form{display:flex;flex-direction:column;gap:.9rem;margin-top:.5rem}.modal-form label{display:flex;flex-direction:column;gap:.3rem;font-size:.85rem;color:var(--muted);font-weight:600}.modal-form input,.modal-form select{font-size:.95rem}.modal-row{display:flex;gap:.9rem;align-items:flex-end}.modal-row label{flex:1}.modal-actions{display:flex;justify-content:flex-end;gap:.6rem;margin-top:.5rem}.cat-dot{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:.5rem;vertical-align:middle}.target-input{width:110px;text-align:right;font-variant-numeric:tabular-nums}.bar-cell{width:220px}.bar-cell .bar-track{margin-bottom:.2rem}.pace-line{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.pace-badge{font-size:.68rem;font-weight:700;border-radius:999px;padding:.05rem .45rem;white-space:nowrap}.pace-badge.on{background:color-mix(in srgb,var(--green) 16%,transparent);color:var(--green)}.pace-badge.off{background:color-mix(in srgb,var(--red) 16%,transparent);color:var(--red)}.purchase-list{list-style:none;margin:0 0 1rem;padding:0}.purchase-list li{display:flex;align-items:center;gap:.7rem;padding:.5rem 0;border-bottom:1px solid var(--border)}.purchase-list li:last-child{border-bottom:none}.purchase-list li.bought .purchase-desc{text-decoration:line-through;color:var(--muted)}.purchase-desc{flex:1;font-weight:500}.purchase-cat{font-size:.78rem;color:var(--muted);border:1px solid var(--border);border-radius:999px;padding:.1rem .5rem}.session-list{list-style:none;margin:0;padding:0}.session-link{display:flex;align-items:center;justify-content:space-between;padding:.8rem .4rem;border-bottom:1px solid var(--border);text-decoration:none;color:var(--text)}.session-list li:last-child .session-link{border-bottom:none}.session-link:hover{background:var(--bg)}.session-name{font-weight:600}.card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.card-head h2{margin:0}.balance-list,.member-list{list-style:none;margin:0;padding:0}.balance-list li,.member-list li{display:flex;align-items:center;justify-content:space-between;padding:.5rem 0;border-bottom:1px solid var(--border)}.balance-list li:last-child,.member-list li:last-child{border-bottom:none}.settle-box{margin-top:.9rem}.settle-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.5rem .7rem;background:var(--bg);border-radius:8px;margin-top:.4rem}.settle-row button{padding:.35rem .9rem}.settled-box{margin-top:.75rem}.settled-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.4rem .7rem;color:var(--green);font-size:.9rem}.code-row{display:flex;align-items:center;gap:.6rem;margin-top:.9rem;color:var(--muted);font-size:.9rem}.join-code{font-weight:700;letter-spacing:.08em;background:var(--bg);padding:.2rem .5rem;border-radius:6px;color:var(--text)}.income-input{width:90px;text-align:right}.split-badge{font-size:.75rem;border:1px solid var(--border);border-radius:999px;padding:.1rem .5rem;color:var(--muted)}.tag-shared,.tag-personal{font-size:.72rem;font-weight:600;border-radius:999px;padding:.12rem .55rem}.tag-shared{background:color-mix(in srgb,var(--accent) 15%,transparent);color:var(--accent)}.tag-personal{background:var(--bg);color:var(--muted);border:1px solid var(--border)}.split-grid{display:flex;flex-direction:column;gap:.4rem;background:var(--bg);padding:.7rem;border-radius:8px}.split-grid-row{display:flex;align-items:center;gap:.6rem}.split-grid-row span:first-child{flex:1}.split-grid-row input{width:120px}.error{color:var(--danger)}.upload-row{display:flex;align-items:center;gap:.9rem}.file-label{display:inline-block;background:var(--accent);color:#fff;padding:.5rem 1rem;border-radius:8px;cursor:pointer;font-size:.95rem}.file-label:hover{filter:brightness(.95)}.import-controls{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;justify-content:space-between}.import-summary{color:var(--text)}.import-actions{margin-top:.75rem}.preview-scroll{max-height:460px;overflow:auto}.row-invalid{opacity:.55}.badge-error,.badge-warn{display:inline-block;font-size:.72rem;padding:.1rem .4rem;border-radius:6px;margin-left:.3rem}.badge-error{background:color-mix(in srgb,var(--danger) 18%,transparent);color:var(--danger)}.badge-warn{background:color-mix(in srgb,#d97706 20%,transparent);color:#b45309}.today-list{display:flex;flex-direction:column;gap:.6rem}.today-habit{display:flex;align-items:center;gap:.9rem;width:100%;text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:.9rem 1rem;color:var(--text);cursor:pointer}.today-habit.done{background:color-mix(in srgb,var(--green) 8%,var(--surface))}.today-check{width:28px;height:28px;border-radius:50%;border:2px solid var(--border);display:grid;place-items:center;color:#fff;font-weight:700;flex:0 0 auto}.today-name{flex:1;font-weight:600}.today-streak{color:var(--muted);font-size:.9rem}.habit-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.75rem}.heatmap{display:grid;grid-template-columns:repeat(auto-fill,26px);gap:4px}.heat{width:26px;height:26px;padding:0;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--muted);font-size:.65rem;cursor:pointer}.heat.on{color:#fff}.goal-done{opacity:.75}.goal-progress{display:flex;align-items:center;gap:.6rem;margin:.6rem 0}.goal-progress .bar-track{flex:1}.milestone-list{list-style:none;margin:.5rem 0;padding:0}.milestone-list li{display:flex;align-items:center;justify-content:space-between;padding:.3rem 0}.milestone-list label{display:flex;align-items:center;gap:.5rem;cursor:pointer}.milestone-list .done{text-decoration:line-through;color:var(--muted)}.manual-progress{display:flex;align-items:center;gap:.75rem;margin:.5rem 0}.manual-progress input[type=range]{flex:1}.mood-row{display:flex;gap:.4rem;margin-bottom:.75rem}.mood{background:transparent;border:1px solid var(--border);border-radius:10px;font-size:1.3rem;padding:.25rem .5rem;cursor:pointer;filter:grayscale(.6)}.mood.selected{filter:none;border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent)}.reflection-body{width:100%;font-family:inherit;font-size:.95rem;padding:.6rem;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);resize:vertical}.shortcut-field{margin:1rem 0}.shortcut-label{display:block;font-size:.8rem;font-weight:600;color:var(--muted);margin-bottom:.35rem}.shortcut-value{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem}.shortcut-value code{background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:.3rem .5rem;font-size:.85rem;word-break:break-all}.shortcut-value button{padding:.35rem .8rem;font-size:.85rem}.shortcut-steps{margin-top:1rem}.shortcut-steps summary{cursor:pointer;font-weight:600}.shortcut-steps ol{margin:.75rem 0;padding-left:1.2rem;line-height:1.6}.shortcut-steps ul{margin:.25rem 0}button.ghost{background:transparent;color:var(--danger);border-color:var(--danger)}button.ghost:hover{background:color-mix(in srgb,var(--danger) 10%,transparent)}.categorize{max-width:620px;margin:0 auto}.cat-progress{color:var(--muted);font-size:.95rem}.cat-stage{display:flex;flex-direction:column;align-items:center}.cat-card{width:100%;background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:2.25rem 1.5rem;text-align:center;box-shadow:0 8px 30px #0000000f;animation:cat-in .22s ease}@keyframes cat-in{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}.cat-kind{display:inline-block;text-transform:capitalize;font-size:.72rem;letter-spacing:.04em;padding:.15rem .6rem;border-radius:999px;margin-bottom:.75rem}.cat-kind.expense{background:color-mix(in srgb,var(--red) 15%,transparent);color:var(--red)}.cat-kind.income{background:color-mix(in srgb,var(--green) 15%,transparent);color:var(--green)}.cat-amount{font-size:2.4rem;font-weight:800}.cat-amount.expense{color:var(--red)}.cat-amount.income{color:var(--green)}.cat-desc{font-size:1.15rem;font-weight:600;margin:.5rem 0 .25rem}.cat-choices{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center;margin:1.5rem 0 .5rem}.cat-chip{background:var(--surface);border:1.5px solid var(--border);border-radius:999px;padding:.55rem 1.1rem;font-weight:600;font-size:.95rem;transition:transform .08s,background .15s}.cat-chip:hover{transform:translateY(-1px);filter:none}.cat-chip:active{transform:translateY(0) scale(.97)}.cat-controls{display:flex;gap:.75rem;margin-top:1rem}.ghost-neutral{background:transparent;color:var(--muted);border-color:var(--border)}.ghost-neutral:hover:not(:disabled){color:var(--text);border-color:var(--muted)}.ghost-neutral:disabled{opacity:.45;cursor:not-allowed}.cat-empty{text-align:center;padding:3rem 1.5rem}.cat-empty-emoji{font-size:3rem}.color-input{width:40px;height:40px;padding:2px;border:1px solid var(--border);border-radius:8px;background:var(--surface);cursor:pointer;flex:0 0 auto}.cat-manage-list{display:flex;flex-direction:column;gap:.5rem}.cat-manage-row{display:flex;align-items:center;gap:.75rem}.cat-name-input{flex:1;min-width:0}.trip-list{list-style:none;margin:0;padding:0}.trip-link{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.8rem .4rem;border-bottom:1px solid var(--border);text-decoration:none;color:var(--text)}.trip-list li:last-child .trip-link{border-bottom:none}.trip-link:hover{background:var(--bg)}.trip-name{font-weight:600}.trip-main{min-width:0}.when-badge{flex-shrink:0;font-size:.75rem;font-weight:600;padding:.2rem .6rem;border-radius:999px;background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent);white-space:nowrap}.when-badge.inline{padding:.05rem .5rem}.trip-create{display:flex;flex-direction:column;gap:.6rem}.trip-dates{display:flex;gap:.9rem}.trip-dates label,.modal-form label{flex:1}.trip-dates label{display:flex;flex-direction:column;gap:.3rem;font-size:.85rem;color:var(--muted);font-weight:600}.budget-list{list-style:none;margin:0;padding:0}.budget-list li{display:flex;align-items:baseline;gap:.75rem;padding:.45rem 0;border-bottom:1px solid var(--border)}.budget-list li:last-child{border-bottom:none}.budget-cur{font-weight:700;font-variant-numeric:tabular-nums;min-width:3rem}.cat-filter{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:1.25rem}.chip{background:var(--surface);border:1.5px solid var(--border);border-radius:999px;padding:.4rem .85rem;font-weight:600;font-size:.85rem;color:var(--text)}.chip:hover{border-color:var(--muted)}.chip.active{background:color-mix(in srgb,var(--accent) 14%,transparent);border-color:var(--accent);color:var(--accent)}.show-cancelled{margin-left:auto;display:flex;align-items:center;gap:.4rem;color:var(--muted);font-size:.85rem}.item-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.8rem}.item-card{background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:.8rem .9rem;display:flex;flex-direction:column;gap:.5rem}.item-card.cancelled{opacity:.55}.item-card.cancelled .item-title{text-decoration:line-through}.item-top{display:flex;align-items:center;gap:.5rem}.item-cat{font-size:1.1rem}.item-title{font-weight:600;flex:1;min-width:0}.item-meta{display:flex;flex-wrap:wrap;gap:.6rem}.item-notes{font-size:.85rem;color:var(--text);border-left:2px solid var(--border);padding-left:.6rem}.item-actions{display:flex;align-items:center;gap:.4rem;border-top:1px solid var(--border);padding-top:.5rem}.item-actions-spacer{flex:1}.added-by{white-space:nowrap}.status-badge{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;border-radius:999px;padding:.12rem .5rem;white-space:nowrap}.status-badge.s-idea{background:var(--surface);color:var(--muted);border:1px solid var(--border)}.status-badge.s-proposed{background:color-mix(in srgb,var(--blue) 16%,transparent);color:var(--blue)}.status-badge.s-confirmed{background:color-mix(in srgb,var(--accent) 16%,transparent);color:var(--accent)}.status-badge.s-booked{background:color-mix(in srgb,var(--green) 18%,transparent);color:var(--green)}.status-badge.s-cancelled{background:color-mix(in srgb,var(--danger) 16%,transparent);color:var(--danger)}.vote-btn{background:var(--surface);border:1.5px solid var(--border);border-radius:999px;padding:.25rem .7rem;font-weight:600;font-size:.82rem;font-variant-numeric:tabular-nums;color:var(--text)}.vote-btn:hover{border-color:var(--muted)}.vote-btn.voted{background:color-mix(in srgb,var(--green) 16%,transparent);border-color:var(--green);color:var(--green)}.itinerary{display:flex;flex-direction:column;gap:1.1rem}.day-block{display:flex;flex-direction:column;gap:.6rem}.day-heading{font-weight:700;font-size:.9rem;padding-bottom:.35rem;border-bottom:2px solid var(--border)}.day-empty{padding:.2rem 0}.modal.modal-wide{max-width:560px}.modal-form textarea{font:inherit;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:.5rem;resize:vertical}@media (max-width: 780px){.item-grid{grid-template-columns:1fr}}.week-nav{display:flex;align-items:center;justify-content:space-between;gap:.6rem;margin-bottom:1rem}.week-label{display:flex;flex-direction:column;align-items:center;gap:.15rem;text-align:center}.week-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.6rem}.week-day{display:flex;flex-direction:column;gap:.4rem;min-height:120px;padding:.5rem;border:1px solid var(--border);border-radius:10px;background:var(--bg)}.week-day.today{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.week-day-head{font-weight:600;font-size:.85rem}.week-day-meals{display:flex;flex-direction:column;gap:.35rem;flex:1}.meal-chip{display:flex;align-items:center;gap:.3rem;padding:.3rem .4rem;border-radius:8px;background:var(--surface);border:1px solid var(--border);font-size:.82rem}.meal-icon{flex-shrink:0}.meal-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.meal-remove{background:none;border:none;color:var(--muted);cursor:pointer;padding:0;font-size:.75rem;line-height:1}.meal-remove:hover{color:var(--red)}.day-add{align-self:stretch;background:none;border:1px dashed var(--border);border-radius:8px;color:var(--muted);cursor:pointer;padding:.25rem;font-size:1rem;line-height:1}.day-add:hover{border-color:var(--accent);color:var(--accent)}.recipe-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.7rem}.recipe-item{padding-bottom:.7rem;border-bottom:1px solid var(--border)}.recipe-item:last-child{border-bottom:none;padding-bottom:0}.recipe-top{display:flex;align-items:center;gap:.4rem}.recipe-name{font-weight:600}.recipe-actions-spacer{flex:1}.recipe-ings{margin-top:.25rem}.recipe-notes{margin-top:.25rem;font-size:.85rem;color:var(--muted);white-space:pre-wrap}.shopping-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.15rem}.shop-item{display:flex;align-items:center;justify-content:space-between;gap:.6rem;padding:.35rem 0;border-bottom:1px solid var(--border)}.shop-item:last-child{border-bottom:none}.shop-item label{display:flex;align-items:center;gap:.5rem;cursor:pointer;flex:1}.shop-name{font-weight:500}.shop-item.done .shop-name,.shop-item.done .shop-qty{text-decoration:line-through;color:var(--muted)}.shop-from{flex-shrink:0;max-width:40%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.modal-row label.grow{flex:2}.modal-row label.narrow{flex:0 0 90px}.ing-editor{display:flex;flex-direction:column;gap:.4rem}.ing-editor-head{display:flex;align-items:baseline;justify-content:space-between;font-size:.9rem;font-weight:600}.ing-row{display:flex;gap:.4rem;align-items:center}.ing-row .ing-qty,.ing-row .ing-unit{flex:0 0 70px}.ing-row .ing-name{flex:1}@media (max-width: 780px){.week-grid{grid-template-columns:repeat(2,1fr)}.shop-from{max-width:35%}}.repay-badge{display:inline-block;margin-left:.5rem;padding:.05rem .4rem;border-radius:6px;font-size:.72rem;color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent);white-space:nowrap}.net-line{margin-top:.15rem}.repay-editor{display:flex;flex-direction:column;gap:.5rem;padding:.7rem;border:1px solid var(--border);border-radius:10px;background:var(--bg)}.repay-toggle{flex-direction:row;align-items:center;gap:.5rem;font-weight:500}.repay-toggle input{width:auto}.cat-repay-btn{width:100%;padding:.9rem 1rem;margin-bottom:.9rem;border:1px solid var(--accent);border-radius:12px;background:color-mix(in srgb,var(--accent) 10%,transparent);color:var(--accent);font-weight:600;font-size:1rem;cursor:pointer}.cat-repay-btn:active{transform:scale(.99)}.cat-repay{display:flex;flex-direction:column;gap:.7rem}.cat-repay-head{display:flex;align-items:center;gap:.75rem;font-weight:600}.cat-repay-search{width:100%;padding:.8rem 1rem;font-size:1rem;border:1px solid var(--border);border-radius:12px;background:var(--surface);color:var(--text)}.repay-options{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem;max-height:55vh;overflow-y:auto}.repay-option{display:flex;align-items:center;justify-content:space-between;gap:.75rem;width:100%;padding:.9rem 1rem;border:1px solid var(--border);border-radius:12px;background:var(--surface);color:var(--text);text-align:left;cursor:pointer}.repay-option:active{background:var(--bg)}.repay-option-main{display:flex;flex-direction:column;gap:.15rem;min-width:0}.repay-option-desc{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.repay-option-amt{flex-shrink:0;font-weight:600;font-variant-numeric:tabular-nums}.alloc-rows{display:flex;flex-direction:column;gap:.5rem}.alloc-row{display:flex;gap:.4rem;align-items:center}.alloc-row select{flex:1;min-width:0}.alloc-row .alloc-amt{flex:0 0 96px}.alloc-summary{margin-top:.2rem;font-size:.9rem}.alloc-summary.over{color:var(--red)}.repay-options li.selected .repay-option{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,transparent)}.repay-check{flex-shrink:0;width:1.5rem;height:1.5rem;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid var(--border);font-weight:700;color:var(--accent)}.repay-options li.selected .repay-check{background:var(--accent);color:#fff;border-color:var(--accent)}.repay-amount-row{display:flex;align-items:center;gap:.6rem;padding:.5rem .6rem .1rem}.repay-amount-row input{flex:1;padding:.6rem .8rem;font-size:1rem;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text)}.repay-footer{position:sticky;bottom:0;display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-top:.4rem;padding:.75rem 0;background:var(--bg);border-top:1px solid var(--border)}.repay-total{font-size:.95rem}.repay-total.over{color:var(--red)}.repay-footer button{flex-shrink:0}.shared-badge{display:inline-block;margin-left:.5rem;padding:.05rem .4rem;border-radius:6px;font-size:.72rem;color:var(--blue);background:color-mix(in srgb,var(--blue) 12%,transparent);white-space:nowrap}.shared-in-list{display:flex;flex-direction:column;gap:.4rem;margin-bottom:.9rem}.shared-in-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.5rem .7rem;border:1px solid var(--border);border-radius:10px;background:var(--bg)}.deductions-editor{margin-top:.75rem;padding-top:.75rem;border-top:1px dashed var(--border);display:flex;flex-direction:column;gap:.5rem}.deductions-head{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;font-weight:600}.deduction-row{display:flex;gap:.4rem;align-items:center}.deduction-row .ded-desc{flex:1;min-width:0}.deduction-row .ded-amt{flex:0 0 96px}.deduction-row .ded-cat{flex:0 0 150px}.deductions-foot{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.paycheck-badge{display:inline-block;margin-left:.5rem;padding:.05rem .4rem;border-radius:6px;font-size:.72rem;color:var(--green);background:color-mix(in srgb,var(--green) 12%,transparent);white-space:nowrap}.deduction-badge{display:inline-block;margin-left:.5rem;padding:.05rem .4rem;border-radius:6px;font-size:.72rem;color:var(--muted);background:color-mix(in srgb,var(--muted) 14%,transparent);white-space:nowrap}@media (max-width: 780px){.deduction-row{flex-wrap:wrap}.deduction-row .ded-desc{flex:1 0 100%}}
