:root{--board:#2c322a;--board-2:#343b32;--chalk:#f2ede2;--chalk-dim:#c9c4b6;--card:#f1ead9;--card-2:#e7dfc9;--ink:#2c2416;--ink-dim:#6b6353;--yellow:#e3ae4c;--sage:#7fa889;--tomato:#c4543f;--line:rgba(242,237,226,0.14);--radius:18px;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}body,html{margin:0;padding:0}body{background:var(--board);color:var(--chalk);font-family:Karla,sans-serif;min-height:100vh;overflow-x:hidden}button{font:inherit}#app{max-width:460px;position:relative}#app,.auth-wrap{margin:0 auto;min-height:100vh;display:flex;flex-direction:column}.auth-wrap{max-width:380px;justify-content:center;padding:24px}.auth-card{background:var(--board-2);border:1px solid var(--line);border-radius:var(--radius);padding:28px 24px}.auth-card h1{font-family:Caveat,cursive;font-size:40px;margin:0 0 4px;display:flex;align-items:center;gap:6px}.auth-card h1 .logo-mark{height:36px;width:auto;display:block}.auth-card p.sub{color:var(--chalk-dim);font-size:13.5px;margin:0 0 22px;line-height:1.5}.auth-field{margin-bottom:14px}.auth-field label{display:block;font-size:12px;font-weight:700;color:var(--chalk-dim);text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px}.auth-field input{width:100%;background:var(--board);border:1px solid var(--line);color:var(--chalk);padding:12px 14px;border-radius:10px;font-family:Karla,sans-serif;font-size:16px}.auth-submit{width:100%;background:var(--yellow);color:#2c2416;border:none;padding:13px;border-radius:12px;font-weight:700;font-size:14.5px;cursor:pointer;margin-top:6px}.auth-submit:active{transform:scale(.98)}.auth-submit:disabled{opacity:.6}.auth-toggle{text-align:center;margin-top:18px;font-size:13.5px;color:var(--chalk-dim)}.auth-toggle button{background:none;border:none;color:var(--yellow);font-weight:700;cursor:pointer;font-size:13.5px;padding:0;margin-left:4px}.auth-msg{font-size:13px;padding:10px 12px;border-radius:10px;margin-bottom:14px}.auth-msg.error{background:rgba(196,84,63,.18);color:#e08874}.auth-msg.success{background:rgba(127,168,137,.18);color:var(--sage)}.auth-secondary{width:100%;background:transparent;border:1.5px solid var(--line);color:var(--chalk);padding:13px;border-radius:12px;font-weight:700;font-size:14.5px;cursor:pointer;margin-top:10px}.landing-footer{text-align:center;font-size:11.5px;color:var(--chalk-dim);opacity:.7;margin-top:26px;line-height:1.5}.color-picker{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:18px}.color-swatch{width:34px;height:34px;border-radius:50%;border:2.5px solid transparent;cursor:pointer;padding:0}.color-swatch.selected{border-color:var(--chalk)}.legal-page{max-width:640px;margin:0 auto;padding:calc(32px + var(--safe-top)) 20px calc(48px + var(--safe-bottom))}.legal-page .back-link{display:inline-block;color:var(--yellow);text-decoration:none;font-weight:700;font-size:13.5px;margin-bottom:22px}.legal-page h1{font-family:Caveat,cursive;font-size:40px;margin:0 0 6px;color:var(--chalk)}.legal-page .updated{color:var(--chalk-dim);font-size:12.5px;margin:0 0 28px}.legal-page h2{font-family:Caveat,cursive;font-size:24px;color:var(--yellow);margin:30px 0 8px}.legal-page li,.legal-page p{font-size:14.5px;line-height:1.6;color:var(--chalk-dim)}.legal-page ol,.legal-page ul{margin:6px 0;padding-left:20px}.legal-page a{color:var(--yellow)}.legal-page strong{color:var(--chalk)}header.top{padding:calc(20px + var(--safe-top)) 20px 14px;display:flex;align-items:flex-start;justify-content:space-between;gap:10px}header.top .eyebrow{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--chalk-dim);font-weight:600}header.top h1{font-family:Caveat,cursive;font-size:42px;margin:2px 0 0;font-weight:700;color:var(--chalk);line-height:1;display:flex;align-items:center;gap:6px}header.top h1 .logo-mark{height:38px;width:auto;display:block}header.top .underline{width:64px;height:3px;background:var(--yellow);margin:10px 0 0;border-radius:2px}.logout-btn{background:var(--board-2);border:1px solid var(--line);color:var(--chalk-dim);font-size:12px;font-weight:700;padding:8px 12px;border-radius:20px;cursor:pointer;white-space:nowrap;margin-top:4px}nav.tabs{position:fixed;bottom:0;left:0;right:0;max-width:460px;margin:0 auto;background:rgba(44,50,42,.96);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-top:1px solid var(--line);display:flex;padding:6px 10px calc(6px + var(--safe-bottom));z-index:10}nav.tabs button{flex:1 1;background:none;border:none;color:var(--chalk-dim);font-family:Karla,sans-serif;font-size:11px;font-weight:600;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:8px 0;cursor:pointer;border-radius:12px}nav.tabs button.active{color:var(--yellow);background:rgba(227,174,76,.12)}nav.tabs .icon{font-size:18px;position:relative}.news-dot{position:absolute;top:-2px;right:-4px;width:8px;height:8px;border-radius:50%;background:var(--tomato);border:1.5px solid var(--board)}.fab.center{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(56px + var(--safe-bottom));width:56px;height:56px;border-radius:50%;background:var(--yellow);color:#2c2416;border:3px solid var(--board);font-size:24px;box-shadow:0 4px 14px rgba(0,0,0,.4);cursor:pointer;z-index:11;display:flex;align-items:center;justify-content:center}.fab.center:active{transform:translateX(-50%) scale(.94)}.app-content{flex:1 1;padding-bottom:calc(90px + var(--safe-bottom))}.fab.corner{position:fixed;right:max(20px,calc(50% - 230px + 20px));bottom:calc(76px + var(--safe-bottom));width:58px;height:58px;border-radius:50%;background:var(--yellow);color:#2c2416;border:none;font-size:30px;font-weight:700;box-shadow:0 4px 14px rgba(0,0,0,.4);cursor:pointer;z-index:11;display:flex;align-items:center;justify-content:center}.fab.corner:active{transform:scale(.94)}.panel{padding:0 20px}.panel-title{font-family:Caveat,cursive;font-size:28px;font-weight:700;color:var(--yellow);margin:6px 0 10px}.empty{color:var(--chalk-dim);font-size:14px}.balance-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;background:var(--card);color:var(--ink);border-radius:14px;padding:14px 16px;margin-bottom:10px}.balance-name{font-weight:700;font-size:16px}.balance-amount{font-weight:700;font-size:15px;color:var(--ink-dim);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.balance-amount.owes{color:var(--tomato)}.balance-amount.owed{color:#4f7a5b}.sheet-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.55);display:flex;align-items:flex-end;z-index:20}.sheet{background:var(--board-2);border-radius:22px 22px 0 0;padding:20px 20px calc(24px + var(--safe-bottom));width:100%;max-width:460px;margin:0 auto;max-height:86vh;overflow-y:auto}.sheet h2{font-family:Caveat,cursive;font-size:30px;margin:0 0 4px}.sheet .source-quote{font-size:12.5px;color:var(--chalk-dim);font-style:italic;margin:0 0 16px}.interp-field{margin-bottom:16px}.interp-field label{display:block;font-size:12px;font-weight:700;color:var(--chalk-dim);text-transform:uppercase;letter-spacing:.06em;margin-bottom:7px}.interp-field input:not([type=checkbox]):not([type=file]){width:100%;background:var(--board);border:1px solid var(--line);color:var(--chalk);padding:11px 13px;border-radius:10px;font-family:Karla,sans-serif;font-size:15px}.interp-field .guess-tag{color:var(--yellow);font-size:11.5px;font-weight:700;margin-left:6px;text-transform:none;letter-spacing:normal}.chip-row{display:flex;flex-wrap:wrap;gap:8px}.pick-chip{background:var(--board);border:1.5px solid var(--line);color:var(--chalk-dim);padding:7px 13px;border-radius:16px;font-size:13.5px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:6px}.pick-chip.selected{border-color:var(--yellow);color:var(--chalk);background:rgba(227,174,76,.14)}.pick-chip .person-dot{width:8px;height:8px}.clarify-banner{background:rgba(227,174,76,.14);border:1px solid rgba(227,174,76,.4);padding:10px 12px;border-radius:10px;margin-bottom:16px}.checkline,.clarify-banner{color:var(--chalk);font-size:13.5px}.checkline{display:flex;align-items:center;gap:8px;text-transform:none;font-weight:600;cursor:pointer;letter-spacing:normal}.checkline input[type=checkbox]{width:17px;height:17px;flex-shrink:0;accent-color:var(--yellow)}.sheet-actions{display:flex;gap:10px;margin-top:6px}.sheet-actions button{flex:1 1;padding:13px;border-radius:12px;font-weight:700;font-size:14.5px;cursor:pointer}.sheet-actions .cancel{background:transparent;border:1.5px solid var(--line);color:var(--chalk)}.sheet-actions .confirm{background:var(--yellow);border:none;color:#2c2416}.sheet-actions .confirm:disabled{opacity:.6}.interp-field textarea.freetext{width:100%;background:var(--board);border:1px solid var(--line);color:var(--chalk);padding:12px 14px;border-radius:12px;font-family:Karla,sans-serif;font-size:16px;resize:none}.interp-field .optional{text-transform:none;letter-spacing:normal;font-weight:500;opacity:.7;margin-left:4px}.field-hint{font-size:12.5px;color:var(--chalk-dim);margin:6px 0 0 25px;line-height:1.4}.field-pair{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px}.interp-field input[type=date]{color-scheme:dark}.amount-input{display:flex;align-items:center;gap:8px}.amount-input input{font-size:26px!important;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.amount-input span{font-size:18px;font-weight:700;color:var(--chalk-dim)}.manual-link{display:block;margin:14px auto 0;background:none;border:none;color:var(--yellow);font-weight:700;font-size:14px;cursor:pointer;font-family:Karla,sans-serif}.effect-preview{background:var(--card);color:var(--ink);border-radius:12px;padding:12px 14px;margin-bottom:14px;font-weight:700;font-size:15px}.effect-preview .effect-label{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-dim);margin-bottom:3px}.fab.corner:disabled{opacity:.5}.activity-list{display:flex;flex-direction:column;gap:8px}.activity-row{display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--board-2);border:1px solid var(--line);border-radius:12px;padding:11px 14px}.activity-row.masked{border-style:dashed}.activity-main{min-width:0}.activity-title{font-weight:700;font-size:14.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.activity-meta{font-size:12.5px;color:var(--chalk-dim);margin-top:2px}.activity-amount{font-weight:700;font-size:14.5px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.header-actions{display:flex;gap:6px}a.logout-btn{text-decoration:none}.chip-row.locked{pointer-events:none;opacity:.55}.interp-field input:disabled{opacity:.55}button.balance-row{width:100%;border:none;font:inherit;cursor:pointer;text-align:left}.activity-row.clickable:active,button.balance-row:active{opacity:.75}.balance-row .chevron{margin-left:8px;color:var(--ink-dim);font-size:18px}.activity-row.clickable{width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer}.settle-headline{font-weight:700;font-size:18px;background:var(--card);color:var(--ink);border-radius:12px;padding:14px 16px;margin:6px 0 14px}.settle-headline.owes{color:var(--tomato)}.settle-headline.owed{color:#4f7a5b}.settle-list{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.settle-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:9px 2px;border-bottom:1px solid var(--line)}.danger-zone{margin-top:22px;padding-top:16px;border-top:1px solid var(--line)}.danger-btn{width:100%;background:transparent;border:1.5px solid rgba(196,84,63,.6);color:#e08874;padding:12px;border-radius:12px;font-weight:700;font-size:14px;cursor:pointer;font-family:Karla,sans-serif}.manual-links{display:flex;justify-content:center;align-items:baseline;gap:8px;margin-top:14px;font-size:13.5px;color:var(--chalk-dim)}.manual-links .manual-link{display:inline;margin:0}.partial-box{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}.activity-row.transfer .activity-title{color:var(--yellow)}