:root{--ink:#16332d;--ink-soft:#2e4943;--pine:#1d5046;--lake:#236f66;--cream:#f4f0e5;--paper:#fffdf7;--white:#fff;--line:#d8d1c1;--line-light:#e9e4d8;--sun:#e57a4e;--sun-dark:#ae4e2c;--muted:#66736d;--danger:#9f3c2d;--shadow:0 14px 40px #16332d14}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:radial-gradient(circle at 7% 5%, #236f660f 0 1px, transparent 1.5px) 0 0 / 18px 18px, var(--cream);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}body:has(.modal-backdrop){overflow:hidden}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.58}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}:focus-visible{outline-offset:3px;outline:3px solid #236f666b}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.site-shell{width:min(1180px,100% - 40px);margin:0 auto;padding:24px 0 48px}.tool-header{justify-content:space-between;align-items:center;gap:20px;min-height:68px;display:flex}.tool-header h1{letter-spacing:-.035em;margin:0;font:500 28px/1 Georgia,Times New Roman,serif}.tool-header p{color:var(--muted);margin:5px 0 0;font-size:11px}.eyebrow{color:var(--lake);text-transform:uppercase;letter-spacing:.15em;margin:0;font-size:10px;font-weight:850;line-height:1.25}.secondary-button{border:1px solid var(--ink);min-height:44px;color:var(--ink);background:0 0;border-radius:999px;align-items:center;gap:10px;padding:0 17px;font-size:13px;font-weight:760;transition:background .18s,color .18s;display:inline-flex}.secondary-button:hover{background:var(--ink);color:#fff}.summary-grid{background:var(--pine);color:#fff;box-shadow:var(--shadow);border:1px solid #ffffff14;border-radius:17px;grid-template-columns:1.45fr 1fr 1fr;display:grid;overflow:hidden}.summary-grid article{border-right:1px solid #ffffff26;justify-content:space-between;align-items:baseline;gap:18px;min-width:0;padding:22px 25px;display:flex}.summary-grid article:last-child{border:0}.summary-grid span{color:#cfe0db;text-transform:uppercase;letter-spacing:.11em;font-size:10px;font-weight:800}.summary-grid strong{white-space:nowrap;font:500 27px/1 Georgia,serif}.content-grid{grid-template-columns:minmax(0,1.63fr) minmax(310px,.77fr);align-items:start;gap:24px;margin-top:24px;display:grid}.panel{background:var(--paper);border:1px solid var(--line);border-radius:18px;box-shadow:0 2px #16332d05}.expense-form{padding:31px}.section-heading{justify-content:space-between;align-items:end;gap:24px;display:flex}.section-heading h2,.history-heading h2,.modal h2{letter-spacing:-.035em;margin:6px 0 0;font:500 31px/1.08 Georgia,Times New Roman,serif}.section-heading>p{color:var(--muted);margin:0;font-size:13px}.form-row{grid-template-columns:1fr 1fr;gap:14px;display:grid}.expense-basics{grid-template-columns:1.55fr .7fr;margin-top:28px}.details-row{grid-template-columns:.7fr 1.55fr;margin-top:15px}label{color:var(--ink);font-size:12px;font-weight:760;line-height:1.35}label>input,label>select,.amount-field>span{border:1px solid var(--line);background:var(--white);width:100%;height:49px;color:var(--ink);border-radius:10px;outline:0;margin-top:8px}label>input,label>select{padding:0 14px}label>select{-webkit-appearance:none;appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--muted) 50%), linear-gradient(135deg, var(--muted) 50%, transparent 50%);background-position:calc(100% - 17px) 21px,calc(100% - 12px) 21px;background-repeat:no-repeat;background-size:5px 5px,5px 5px}label>input::placeholder{color:#919b96}label>input:focus,label>select:focus,.amount-field>span:focus-within{border-color:var(--lake);box-shadow:0 0 0 3px #236f6624}.amount-field>span{align-items:center;padding-left:13px;display:flex}.amount-field b{color:var(--muted);font-size:14px}.amount-field input{width:100%;min-width:0;height:100%;color:var(--ink);background:0 0;border:0;outline:0;padding:0 12px 0 7px}.optional-label{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-left:4px;font-size:9px;font-weight:700}fieldset{border:0;margin:28px 0 0;padding:0}legend{padding:0;font-size:14px;font-weight:820}fieldset>p,.legend-row p{color:var(--muted);margin:5px 0 13px;font-size:12px;line-height:1.45}.legend-row{justify-content:space-between;align-items:start;gap:16px;display:flex}.legend-row>p{min-width:0;margin:5px 0 13px}.selection-actions{white-space:nowrap;align-items:center;gap:8px;padding-top:3px;display:flex}.selection-actions span{color:var(--muted);font-size:10px;font-weight:700}.selection-actions button{border:0;border-bottom:1px solid var(--lake);color:var(--lake);background:0 0;padding:2px 0;font-size:10px;font-weight:800}.people-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;display:grid}.person-option{border:1px solid var(--line);background:var(--white);cursor:pointer;border-radius:10px;align-items:center;gap:8px;min-width:0;min-height:61px;padding:9px;display:flex;position:relative}.person-option:has(input:checked){border-color:var(--lake);box-shadow:inset 0 0 0 1px var(--lake);background:#ecf4f1}.person-option.archived-person{border-style:dashed}.person-option input{opacity:0;width:1px;height:1px;position:absolute}.person-option:has(input:focus-visible){outline-offset:2px;outline:3px solid #236f664d}.person-option>span:nth-of-type(2){text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:12px;overflow:hidden}.check-mark{background:var(--lake);color:#fff;opacity:0;border-radius:50%;place-items:center;width:16px;height:16px;font-size:9px;transition:all .15s;display:grid;position:absolute;top:6px;right:7px;transform:scale(.7)}.person-option:has(input:checked) .check-mark{opacity:1;transform:scale(1)}.avatar{width:34px;height:34px;color:var(--pine);letter-spacing:.02em;background:#cfe1d9;border-radius:50%;flex:none;place-items:center;font-size:10px;font-weight:850;display:grid}.avatar.sage{background:#cfe1d9}.avatar.clay{color:#723f2d;background:#f0d2bf}.avatar.mist{color:#315a69;background:#cbdde5}.avatar.rose{color:#6c3f53;background:#e7cfda}.avatar.sand{color:#625827;background:#e6ddbd}.split-preview{background:#f1f7f4;border:1px solid #cfdfd9;border-radius:10px;align-items:flex-start;gap:11px;margin-top:25px;padding:14px 16px;display:flex}.preview-dot{background:var(--sun);border-radius:50%;flex:none;width:8px;height:8px;margin-top:5px;box-shadow:0 0 0 4px #e57a4e29}.split-preview p{color:var(--ink-soft);margin:0;font-size:12px;line-height:1.5}.form-error{border-left:3px solid var(--danger);color:#783126;background:#faebe7;border-radius:0 8px 8px 0;margin:14px 0 0;padding:11px 13px;font-size:12px;line-height:1.45}.form-footer{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:18px;margin-top:24px;padding-top:22px;display:flex}.form-footer>p{max-width:330px;color:var(--muted);margin:0;font-size:11px;line-height:1.45}.primary-button{background:var(--sun);color:#2d211c;min-height:48px;box-shadow:0 3px 0 var(--sun-dark);border:0;border-radius:9px;justify-content:center;align-items:center;gap:22px;padding:0 19px;font-size:12px;font-weight:850;transition:transform .15s,box-shadow .15s;display:inline-flex}.primary-button:hover:not(:disabled){box-shadow:0 4px 0 var(--sun-dark);transform:translateY(-1px)}.primary-button:active:not(:disabled){box-shadow:0 1px 0 var(--sun-dark);transform:translateY(2px)}.empty-callout{text-align:center;background:#f4f8f6;border:1px dashed #b9c9c3;border-radius:13px;margin-top:26px;padding:28px}.empty-callout h3{margin:0;font:500 23px/1.2 Georgia,serif}.empty-callout p{color:var(--muted);margin:8px 0 18px;font-size:13px}.balances{padding:27px}.balance-list{margin:20px 0 22px;padding:0;list-style:none}.balance-list li{border-bottom:1px solid var(--line-light);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;min-height:59px;padding:10px 0;display:grid}.balance-list li:last-child{border-bottom:0}.balance-list li>div{gap:2px;min-width:0;display:grid}.balance-list strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.balance-list small{color:var(--muted);font-size:10px}.balance-list b{white-space:nowrap;font-size:12px}.balance-list b.positive{color:var(--lake)}.balance-list b.negative{color:#704338}.balance-list b.neutral{color:var(--muted)}.settlement-card{background:#e9f1ee;border:1px solid #d5e3de;border-radius:11px;padding:17px}.suggestion-summary{color:var(--muted);margin:7px 0 0;font-size:10px;line-height:1.4}.suggestion-list{margin:9px 0 0;padding:0;list-style:none;display:grid}.suggestion-list li{min-width:0}.suggestion-list button{width:100%;min-height:44px;color:var(--ink);text-align:left;background:0 0;border:0;border-bottom:1px solid #236f6624;justify-content:space-between;align-items:center;gap:12px;padding:8px 0;display:flex}.suggestion-list button:hover span{text-underline-offset:3px;text-decoration:underline}.suggestion-list button span{min-width:0;font-size:13px;line-height:1.35}.suggestion-list button strong{white-space:nowrap;font-size:13px}.text-button{color:var(--lake);text-underline-offset:3px;background:0 0;border:0;align-items:center;gap:9px;margin-top:14px;padding:0;font-size:11px;font-weight:850;text-decoration:underline;display:flex}.settlement-links{flex-wrap:wrap;align-items:center;gap:0 18px;display:flex}.balance-empty{text-align:center;padding:46px 8px 26px}.balance-empty>span{width:43px;height:43px;color:var(--lake);background:#d7e8e1;border-radius:50%;place-items:center;margin:0 auto 15px;font-weight:900;display:grid}.balance-empty h3{margin:0;font:500 21px/1.2 Georgia,serif}.balance-empty p{color:var(--muted);margin:7px 0 0;font-size:11px}.settled-banner{color:var(--lake);background:#edf5f2;border-radius:9px;align-items:center;gap:9px;padding:12px 13px;font-size:11px;font-weight:800;display:flex}.settled-banner span{background:#cfe2da;border-radius:50%;place-items:center;width:20px;height:20px;display:grid}.history-panel{margin-top:24px;padding:30px}.history-heading{justify-content:space-between;align-items:end;gap:24px;display:flex}.search-field{width:min(270px,100%)}.search-field input{background-image:radial-gradient(circle at 19px 21px, transparent 5px, var(--muted) 5.5px 6.5px, transparent 7px), linear-gradient(45deg, transparent 48%, var(--muted) 49% 54%, transparent 55%);background-position:0 0,24px 27px;background-repeat:no-repeat;background-size:auto,8px 8px;margin-top:0;padding-left:39px}.filter-row{gap:7px;margin-top:20px;display:flex}.filter-row button{border:1px solid var(--line);min-height:34px;color:var(--muted);background:0 0;border-radius:999px;padding:0 13px;font-size:10px;font-weight:800}.filter-row button.active{border-color:var(--pine);background:var(--pine);color:#fff}.history-list{border-top:1px solid var(--line);margin-top:13px}.history-entry{border-bottom:1px solid var(--line)}.history-entry summary,.payment-entry{cursor:pointer;grid-template-columns:minmax(0,1fr) auto 28px;align-items:center;gap:16px;min-height:76px;list-style:none;display:grid}.history-entry summary::-webkit-details-marker{display:none}.entry-main{gap:4px;min-width:0;display:grid}.entry-main strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.entry-main small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.entry-amount{white-space:nowrap;font:500 17px/1 Georgia,serif}.entry-toggle{border:1px solid var(--line);width:27px;height:27px;color:var(--lake);border-radius:50%;place-items:center;transition:transform .18s;display:grid}.history-entry[open] .entry-toggle{transform:rotate(45deg)}.entry-details{border-top:1px dashed var(--line);grid-template-columns:1fr 1fr 1.2fr;gap:30px;padding:19px 0 24px;display:grid}.entry-details h4{color:var(--muted);text-transform:uppercase;letter-spacing:.1em;margin:0 0 9px;font-size:9px}.entry-details p{justify-content:space-between;align-items:baseline;gap:12px;margin:5px 0;font-size:10px;line-height:1.4;display:flex}.entry-note>p{color:var(--muted);display:block}.entry-actions{align-items:center;gap:15px;margin-top:10px;display:flex}.edit-button,.danger-button{text-underline-offset:3px;background:0 0;border:0;padding:0;font-size:10px;font-weight:800;text-decoration:underline}.edit-button{color:var(--lake)}.danger-button{color:var(--danger)}.payment-entry{cursor:default;grid-template-columns:minmax(0,1fr) auto 64px}.entry-controls{justify-content:flex-end;align-items:center;gap:7px;display:flex}.edit-entry,.delete-entry{border:1px solid var(--line);width:28px;height:28px;color:var(--muted);background:0 0;border-radius:50%;place-items:center;font-size:16px;display:grid}.edit-entry{color:var(--lake);font-size:14px}.edit-entry:hover{background:#edf5f2;border-color:#9fc6bb}.delete-entry:hover{color:var(--danger);background:#faece8;border-color:#d5a99f}.history-empty{text-align:center;padding:55px 20px 38px}.receipt-mark{width:52px;height:59px;color:var(--lake);clip-path:polygon(0 0,100% 0,100% 92%,90% 100%,80% 92%,70% 100%,60% 92%,50% 100%,40% 92%,30% 100%,20% 92%,10% 100%,0 92%);background:#edf5f2;border:1px solid #b9cdc5;place-items:center;margin:0 auto 16px;font:500 20px/1 Georgia,serif;display:grid}.history-empty h3{margin:0;font:500 21px/1.2 Georgia,serif}.history-empty p{color:var(--muted);margin:7px 0 0;font-size:12px}.modal-backdrop{z-index:50;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#0a1f1ba6;place-items:center;padding:24px;animation:.15s both fade-in;display:grid;position:fixed;inset:0;overflow:auto}.modal{background:var(--paper);border:1px solid #ffffff4d;border-radius:17px;width:min(570px,100%);max-height:min(780px,100vh - 48px);padding:31px;animation:.2s both modal-in;position:relative;overflow:auto;box-shadow:0 28px 90px #0000004d}.modal-close{border:1px solid var(--line);width:36px;height:36px;color:var(--ink);background:0 0;border-radius:50%;place-items:center;font-size:21px;display:grid;position:absolute;top:18px;right:18px}.modal-intro{color:var(--muted);margin:9px 42px 0 0;font-size:12px;line-height:1.5}.add-person-form{grid-template-columns:1fr auto;align-items:end;gap:10px;margin-top:24px;display:grid}.add-person-form .primary-button{height:49px}.member-list{border-top:1px solid var(--line);margin-top:24px}.member-row{border-bottom:1px solid var(--line-light);align-items:center;gap:11px;min-height:66px;display:flex}.member-row.archived{opacity:.68}.member-name{gap:2px;min-width:0;display:grid}.member-name strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.member-name small{color:var(--muted);font-size:9px}.member-actions{gap:12px;margin-left:auto;display:flex}.member-actions button,.rename-form button{color:var(--lake);background:0 0;border:0;border-bottom:1px solid;padding:3px 0;font-size:9px;font-weight:800}.member-actions button:last-child{color:var(--muted)}.rename-form{flex:1;align-items:center;gap:9px;min-width:0;display:flex}.rename-form input{border:1px solid var(--lake);border-radius:8px;outline:0;flex:1;min-width:0;height:39px;padding:0 10px}.payment-modal form{margin-top:24px}.payment-modal .form-row+.form-row{margin-top:14px}.edit-expense-modal{width:min(760px,100%)}.edit-expense-modal form{margin-top:24px}.edit-expense-modal .expense-basics{margin-top:0}.calculation-modal{width:min(690px,100%)}.formula-key{color:var(--ink-soft);background:#f1f7f4;border:1px solid #cfdfd9;border-radius:10px;flex-wrap:wrap;align-items:center;gap:7px;margin-top:23px;padding:13px 15px;font-size:11px;display:flex}.formula-key strong{color:var(--ink)}.calculation-list{border-top:1px solid var(--line);margin:17px 0 0;padding:0;list-style:none}.calculation-list li{border-bottom:1px solid var(--line-light);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:11px;min-height:68px;padding:10px 0;display:grid}.calculation-list li>div{min-width:0}.calculation-list li>div>strong{font-size:12px}.calculation-list p{color:var(--muted);margin:4px 0 0;font-size:10px;line-height:1.4}.calculation-list li>b{white-space:nowrap;justify-items:end;gap:2px;font-size:12px;display:grid}.calculation-list b.positive{color:var(--lake)}.calculation-list b.negative{color:#704338}.calculation-list b.neutral{color:var(--muted)}.calculation-list small{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:8px;font-weight:700}.minimum-explanation{background:#e9f1ee;border-radius:11px;margin-top:21px;padding:18px}.minimum-explanation h3{margin:0;font:500 19px/1.2 Georgia,serif}.minimum-explanation>p{color:var(--ink-soft);margin:7px 0 0;font-size:11px;line-height:1.55}.minimum-explanation ol{gap:7px;margin:13px 0 0;padding:0;list-style:none;display:grid}.minimum-explanation li{color:var(--ink-soft);justify-content:space-between;gap:15px;font-size:11px;display:flex}.minimum-explanation li strong{color:var(--ink);white-space:nowrap}.full-field{margin-top:14px;display:block}.modal-actions{border-top:1px solid var(--line);justify-content:flex-end;align-items:center;gap:16px;margin-top:24px;padding-top:19px;display:flex}.modal-actions>button:first-child{color:var(--muted);background:0 0;border:0;font-size:11px;font-weight:800}.toast{z-index:80;background:var(--ink);color:#fff;opacity:0;pointer-events:none;border-radius:9px;max-width:min(360px,100% - 44px);padding:13px 17px;font-size:12px;font-weight:730;transition:opacity .18s,transform .18s;position:fixed;bottom:22px;right:22px;transform:translateY(14px);box-shadow:0 12px 36px #00000040}.toast.visible{opacity:1;transform:translateY(0)}.loading-page,.error-page{text-align:center;place-content:center;justify-items:center;gap:17px;min-height:100vh;padding:30px;display:grid}.loading-page p,.error-page p{color:var(--muted);margin:0;font-size:13px}.error-page h1{margin:0;font:500 31px/1.1 Georgia,serif}@keyframes fade-in{0%{opacity:0}}@keyframes modal-in{0%{opacity:0;transform:translateY(12px)scale(.985)}}@media (max-width:860px){.site-shell{width:min(100% - 26px,680px)}.summary-grid{grid-template-columns:1fr 1fr 1fr}.summary-grid article{gap:8px;padding:17px 13px;display:grid}.summary-grid strong{font-size:20px}.content-grid{grid-template-columns:1fr}.balances{position:static}.history-entry summary{grid-template-columns:minmax(0,1fr) auto 28px}.payment-entry{grid-template-columns:minmax(0,1fr) auto 64px}}@media (max-width:600px){html{scroll-behavior:auto}.site-shell{width:min(100% - 20px,520px);padding-top:12px}.tool-header{min-height:64px}.tool-header h1{font-size:24px}.secondary-button{min-height:42px;padding:0 12px;font-size:11px}.summary-grid{border-radius:13px}.summary-grid article{min-height:74px;padding:13px 10px}.summary-grid span{font-size:8px;line-height:1.2}.summary-grid strong{font-size:16px}.content-grid{gap:15px;margin-top:15px}.panel{border-radius:14px}.expense-form,.balances,.history-panel{padding:21px 17px}.section-heading{gap:7px;display:grid}.section-heading h2,.history-heading h2,.modal h2{font-size:27px}.expense-basics,.details-row,.form-row{grid-template-columns:1fr}.people-grid{grid-template-columns:1fr 1fr}.person-option{min-height:58px}.legend-row{flex-direction:column;align-items:start;gap:0}.selection-actions{padding:0 0 12px}.selection-actions span{min-width:62px}.form-footer{flex-direction:column;align-items:stretch}.primary-button{justify-content:space-between;width:100%;min-height:50px}.balances{padding-bottom:22px}.history-heading{flex-direction:column;align-items:stretch}.search-field{width:100%}.history-entry summary{grid-template-columns:minmax(0,1fr) auto 27px;gap:6px 11px;min-height:86px;padding:12px 0}.payment-entry{grid-template-columns:minmax(0,1fr) auto 64px;gap:6px 11px;min-height:86px;padding:12px 0}.entry-main small{white-space:normal;line-height:1.35}.entry-details{grid-template-columns:1fr 1fr;gap:22px;padding:17px 0 23px}.entry-note{grid-column:1/-1}.modal-backdrop{align-items:end;padding:10px}.modal{border-radius:17px 17px 10px 10px;width:100%;max-height:calc(100vh - 20px);padding:27px 19px 21px}.add-person-form{grid-template-columns:1fr}.add-person-form .primary-button{width:100%}.member-actions{gap:9px}.rename-form{flex-wrap:wrap}.rename-form input{flex-basis:100%}.payment-modal .form-row{grid-template-columns:1fr}.modal-actions{flex-direction:column-reverse;align-items:stretch}.modal-actions .primary-button{width:100%}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
