:root{color-scheme:light dark;--color-bg:#f6f7fb;--color-surface:#fff;--color-border:#e3e5ee;--color-text:#14161f;--color-text-muted:#565a6e;--color-primary:#4f46e5;--color-primary-hover:#4338ca;--color-primary-contrast:#fff;--color-danger:#b42318;--color-danger-bg:#fef3f2;--color-danger-border:#fecdca;--color-success:#067647;--color-success-bg:#ecfdf3;--color-success-border:#abefc6;--color-warning:#b54708;--color-warning-bg:#fffaeb;--color-warning-border:#fedf89;--font-sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;--radius:10px;--shadow-card:0 1px 2px rgba(20,22,31,.04),0 8px 24px rgba(20,22,31,.06)}@media (prefers-color-scheme:dark){:root{--color-bg:#0f1115;--color-surface:#171922;--color-border:#2a2d3a;--color-text:#eef0f6;--color-text-muted:#a2a6b8;--color-primary:#818cf8;--color-primary-hover:#a5b4fc;--color-primary-contrast:#14161f;--color-danger:#f97066;--color-danger-bg:#2b1615;--color-danger-border:#55201c;--color-success:#47cd89;--color-success-bg:#0f2419;--color-success-border:#1b4030;--color-warning:#fdb022;--color-warning-bg:#2b1d0e;--color-warning-border:#5a3a0f;--shadow-card:0 1px 2px rgba(0,0,0,.3),0 8px 24px rgba(0,0,0,.4)}}*{box-sizing:border-box}body{margin:0;font-family:var(--font-sans);background:var(--color-bg);color:var(--color-text);line-height:1.5;-webkit-font-smoothing:antialiased}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,h4{line-height:1.25}input,select,textarea{font:inherit;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;padding:.5rem .7rem}input:focus,select:focus,textarea:focus{outline:2px solid var(--color-primary);outline-offset:1px}input[type=checkbox]{width:auto;padding:0}label{font-size:.9rem;color:var(--color-text-muted)}a.btn,button,label.btn,span.btn{font:inherit;cursor:pointer;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);border-radius:8px;padding:.55rem 1.1rem;font-weight:600;transition:background .15s ease,border-color .15s ease,opacity .15s ease}a.btn:hover,button:hover,label.btn:hover{border-color:var(--color-text-muted)}button:disabled{opacity:.6;cursor:not-allowed}a.btn,a.btn:hover{text-decoration:none}label.btn{display:inline-block}.btn[aria-disabled=true]{opacity:.5;cursor:not-allowed;pointer-events:none}form button[type=submit]:last-child,form>button[type=submit]{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-primary-contrast)}form button[type=submit]:last-child:hover,form>button[type=submit]:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover)}table{border-collapse:collapse;width:100%}th{text-align:left;font-size:.8rem;text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-muted);padding:.5rem .6rem}td{padding:.6rem;border-top:1px solid var(--color-border)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem}.btn-primary{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-primary-contrast)}.btn-primary:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.btn-danger{background:transparent;border-color:var(--color-danger-border);color:var(--color-danger)}.btn-danger:hover{background:var(--color-danger-bg)}.btn-block{width:100%}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-card);padding:1.5rem}.table-scroll{overflow-x:auto}.field-group{display:flex;flex-direction:column;gap:.35rem}.banner{border-radius:8px;padding:.65rem .9rem;font-size:.9rem;border:1px solid}.banner-error{background:var(--color-danger-bg);border-color:var(--color-danger-border);color:var(--color-danger)}.banner-warning{background:var(--color-warning-bg);border-color:var(--color-warning-border);color:var(--color-warning)}.banner-success{background:var(--color-success-bg);border-color:var(--color-success-border);color:var(--color-success)}.auth-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem 1.25rem}.auth-card{width:100%;max-width:380px}.auth-logo{display:flex;align-items:center;gap:.5rem;font-weight:700;font-size:1.1rem;margin-bottom:1.5rem;justify-content:center}.auth-card h1{font-size:1.4rem;margin:0 0 .35rem;text-align:center}.auth-subtitle{text-align:center;color:var(--color-text-muted);font-size:.9rem;margin:0 0 1.5rem}.auth-form{display:flex;flex-direction:column;gap:1rem}.auth-footer{text-align:center;font-size:.85rem;color:var(--color-text-muted);margin-top:1.25rem}.auth-links{display:flex;justify-content:space-between;font-size:.85rem;margin-top:-.25rem}.app-shell{display:flex;min-height:100vh}.app-shell-main{flex:1 1;min-width:0;display:flex;flex-direction:column}.app-logo{display:flex;align-items:center;gap:.4rem;font-weight:700;white-space:nowrap}.app-content{max-width:1040px;width:100%;margin:0 auto;padding:2rem 1.5rem;flex:1 1}.sidebar{--sidebar-width:232px;width:var(--sidebar-width);flex-shrink:0;background:var(--color-surface);border-right:1px solid var(--color-border);display:flex;flex-direction:column;position:-webkit-sticky;position:sticky;top:0;height:100vh;transition:width .15s ease}.sidebar-collapsed{--sidebar-width:72px}.sidebar-header{display:flex;align-items:center;gap:.5rem;padding:1.25rem 1rem;position:relative}.sidebar-collapsed .sidebar-header{justify-content:center}.sidebar-logo-mark{flex-shrink:0}.sidebar-brand{font-weight:700;white-space:nowrap;overflow:hidden}.sidebar-toggle{margin-left:auto;width:22px;height:22px;border-radius:999px;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-muted);display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;flex-shrink:0}.sidebar-collapsed .sidebar-toggle{position:absolute;right:-11px;top:1.25rem;box-shadow:var(--shadow-card)}.sidebar-nav{display:flex;flex-direction:column;gap:.15rem;padding:.5rem .75rem;overflow-y:auto}.sidebar-link{display:flex;align-items:center;gap:.75rem;padding:.55rem .75rem;border-radius:8px;color:var(--color-text-muted);font-weight:500;font-size:.9rem;white-space:nowrap;overflow:hidden}.sidebar-link:hover{background:var(--color-bg);color:var(--color-text);text-decoration:none}.sidebar-link-active,.sidebar-link-active:hover{background:var(--color-primary);color:var(--color-primary-contrast)}.sidebar-collapsed .sidebar-link{justify-content:center;padding:.6rem}.sidebar-footer{margin-top:auto;padding:.75rem;border-top:1px solid var(--color-border);display:flex;flex-direction:column;gap:.6rem}.sidebar-lang{padding:0 .25rem}.sidebar-email{font-size:.78rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-email,.sidebar-logout{color:var(--color-text-muted);padding:0 .25rem}.sidebar-logout{display:flex;align-items:center;gap:.5rem}.sidebar-logout button{background:none;border:none;color:inherit;font:inherit;font-size:.85rem;cursor:pointer;padding:0}.sidebar-collapsed .sidebar-logout{justify-content:center}.app-topbar-mobile{display:none}@media (max-width:900px){.sidebar{display:none}.app-topbar-mobile{display:flex;align-items:center;justify-content:space-between;padding:0 1.25rem;height:60px;background:var(--color-surface);border-bottom:1px solid var(--color-border);position:-webkit-sticky;position:sticky;top:0;z-index:10}}.mobile-nav{display:none}@media (max-width:900px){.mobile-nav{display:block}}.mobile-nav-toggle{display:flex;flex-direction:column;justify-content:center;gap:4px;width:36px;height:36px;border:1px solid var(--color-border);border-radius:6px;background:var(--color-surface);cursor:pointer;padding:0}.mobile-nav-toggle span{display:block;width:18px;height:2px;margin:0 auto;background:var(--color-text)}.mobile-nav-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.35);border:none;z-index:20;cursor:default}.mobile-nav-panel{position:fixed;top:60px;right:0;bottom:0;width:min(280px,80vw);background:var(--color-surface);border-left:1px solid var(--color-border);z-index:21;padding:1.25rem 1rem;display:flex;flex-direction:column;gap:1.25rem;overflow-y:auto}.mobile-nav-panel nav{display:flex;flex-direction:column;gap:.25rem}.mobile-nav-panel nav a{display:flex;align-items:center;gap:.65rem;padding:.6rem .5rem;border-radius:6px;color:var(--color-text);font-weight:500}.mobile-nav-panel nav a:hover{background:var(--color-bg);text-decoration:none}.mobile-nav-lang{padding:.75rem .25rem;border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border)}.mobile-nav-footer{display:flex;flex-direction:column;gap:.5rem;font-size:.85rem;color:var(--color-text-muted);margin-top:auto}.spend-summary{margin:1rem 0 1.5rem}.spend-stats{display:flex;flex-wrap:wrap;gap:1.5rem;margin-bottom:1.25rem}.spend-stat{display:flex;flex-direction:column;gap:.15rem}.spend-stat-value{font-size:1.4rem;font-weight:700}.spend-stat-label{font-size:.8rem;color:var(--color-text-muted)}.spend-bars{display:flex;flex-direction:column;gap:.6rem}.spend-bar-row{display:grid;grid-template-columns:120px 1fr auto;align-items:center;grid-gap:.75rem;gap:.75rem;font-size:.85rem}.spend-bar-track{background:var(--color-bg);border-radius:999px;height:10px;overflow:hidden}.spend-bar-fill{height:100%;background:var(--color-primary);border-radius:999px}.spend-bar-value{text-align:right;white-space:nowrap}.spend-bar-value,.spend-note{color:var(--color-text-muted)}.spend-note{margin-top:.75rem;font-size:.8rem}@media (max-width:480px){.spend-bar-row{grid-template-columns:90px 1fr auto;font-size:.78rem}}.section-blurb{color:var(--color-text-muted);margin-top:.25rem}@media (max-width:900px){.section-blurb{display:none}}.item-form{display:flex;flex-direction:column;gap:1.5rem;max-width:640px}.item-form-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:.85rem 1rem;gap:.85rem 1rem}.item-form-grid .field-span-2{grid-column:1/-1}@media (max-width:560px){.item-form-grid{grid-template-columns:1fr}}.item-form-section-title{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);margin:0 0 .75rem}.item-form .field-group label{font-weight:500}.item-form-actions{display:flex;align-items:center;gap:.75rem}.chip-toggle{display:inline-flex;align-items:center;gap:.4rem;padding:.4rem .85rem;border-radius:999px;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-muted);font-size:.85rem;font-weight:600;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease}.chip-toggle:hover{border-color:var(--color-text-muted)}.chip-toggle.chip-toggle-active{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-primary-contrast)}.chip-toggle input{position:absolute;opacity:0;pointer-events:none}.settings-sections{display:flex;flex-direction:column;gap:1.25rem;max-width:640px}.settings-section-head{margin-bottom:1rem}.settings-section-head h2{margin:0;font-size:1.05rem}.settings-section-desc{color:var(--color-text-muted);font-size:.85rem;margin:.25rem 0 0}.badge{display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .6rem;border-radius:999px;font-size:.78rem;font-weight:600;background:var(--color-bg);border:1px solid var(--color-border);color:var(--color-text-muted)}.badge-primary{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-primary-contrast)}.members-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.6rem}.members-list li{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.6rem .8rem;border:1px solid var(--color-border);border-radius:8px;font-size:.9rem;flex-wrap:wrap}.members-list-email{font-weight:600}.data-export-list{display:flex;flex-direction:column;gap:.6rem}.data-export-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.6rem .8rem;border:1px solid var(--color-border);border-radius:8px;flex-wrap:wrap}.data-export-label{font-weight:600;font-size:.9rem}.data-export-actions{align-items:center}.data-export-actions,.plan-picker{display:flex;gap:.5rem;flex-wrap:wrap}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-gap:1px;gap:1px;background:var(--color-border);border:1px solid var(--color-border);border-radius:var(--radius);overflow:hidden;margin-top:1rem}.calendar-weekday{background:var(--color-bg);padding:.5rem .3rem;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.02em;color:var(--color-text-muted);text-align:center}.calendar-cell{background:var(--color-surface);min-height:92px;min-width:0;padding:.35rem;display:flex;flex-direction:column;gap:.2rem}.calendar-cell-outside{background:var(--color-bg);opacity:.55}.calendar-cell-today{box-shadow:inset 0 0 0 2px var(--color-primary)}.calendar-day-number{font-size:.78rem;font-weight:600;color:var(--color-text-muted)}.calendar-item{display:block;font-size:.7rem;background:var(--color-primary);color:var(--color-primary-contrast);padding:.15rem .35rem;border-radius:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-decoration:none}.calendar-more{font-size:.68rem;color:var(--color-text-muted)}@media (max-width:640px){.calendar-weekday{font-size:.6rem;padding:.3rem .15rem}.calendar-cell{min-height:56px;padding:.2rem}.calendar-day-number{font-size:.68rem}.calendar-item{font-size:.62rem;padding:.1rem .25rem}}