:root{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;color:#202a27;background:#f6f7f4;font-synthesis:none;--ink:#202a27;--muted:#7d8883;--line:#e4e9e3;--green:#2e6d5a;--deep:#224b3f;--lime:#e8f0dd;--card:#fff;--red:#ad574c;--shadow:0 18px 52px rgba(34,62,47,.07)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.65}svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}.svg-sprite{position:absolute;width:0;height:0;overflow:hidden}.hidden{display:none!important}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}em{font-style:normal;color:var(--green)}.muted{color:var(--muted)}.eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:11px;letter-spacing:.19em;font-weight:800;color:var(--green)}.eyebrow-line{display:inline-block;width:22px;height:1px;background:var(--green)}.section-kicker{display:block;color:#8ba097;font-size:10px;font-weight:800;letter-spacing:.17em;margin-bottom:8px}.brand,.auth-brand{display:inline-flex;align-items:center;gap:10px;font-size:24px;font-weight:800;letter-spacing:-.07em;color:var(--deep)}.brand-dot{color:#a5c878}.brand-mark{display:inline-flex;justify-content:center;align-items:center;width:39px;height:39px;border-radius:13px;background:var(--green);color:#fff;transform:rotate(-6deg)}.brand-mark svg{width:23px;height:23px;transform:rotate(6deg)}.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:42px;border:1px solid transparent;border-radius:11px;padding:10px 16px;font-size:13px;font-weight:750;white-space:nowrap;transition:background .18s,transform .18s,box-shadow .18s}.button:hover:not(:disabled){transform:translateY(-1px)}.button svg{width:17px;height:17px}.button-primary{background:var(--green);color:#fff;box-shadow:0 8px 18px rgba(46,109,90,.17)}.button-primary:hover:not(:disabled){background:#255845}.button-secondary{background:#fff;color:#3f5049;border-color:#dce4da}.button-secondary:hover:not(:disabled){background:#f4f8f2}.button-dark{background:#23352e;color:white}.button-dark:hover:not(:disabled){background:#152a21}.button-light{color:var(--deep);background:#fff;border-color:#e1e8dc}.text-button{background:none;border:0;color:#72817a;font-size:12px;padding:8px 0}.text-button:hover{color:var(--deep)}

/* Access screen */
.auth-screen{min-height:100svh;display:flex;flex-direction:column;padding:34px max(30px,calc((100vw - 1180px)/2)) 20px;position:relative;overflow:hidden}.auth-screen:before{content:"";position:absolute;right:-220px;top:-340px;width:800px;height:800px;border-radius:50%;background:radial-gradient(circle,#e4eddf 0,#f6f7f4 70%);pointer-events:none}.auth-brand{position:relative;z-index:1}.auth-layout{width:100%;max-width:1180px;display:grid;grid-template-columns:minmax(0,1.07fr) minmax(380px,.83fr);gap:90px;align-items:center;flex:1;margin:auto;padding:60px 0}.auth-intro{position:relative;max-width:560px}.auth-intro h1{font-size:clamp(48px,5.1vw,78px);letter-spacing:-.067em;line-height:1.08;margin:23px 0 21px;font-weight:760}.auth-intro>p{max-width:460px;color:#677771;font-size:17px;line-height:1.7;margin:0 0 43px}.auth-feature{display:flex;align-items:center;gap:17px;color:#4c6055;font-size:14px;margin:20px 0}.feature-icon{display:flex;align-items:center;justify-content:center;flex:none;width:32px;height:32px;border:1px solid #d2dfd0;border-radius:10px;color:var(--green);font-size:11px;font-weight:800}.auth-card{position:relative;z-index:1;max-width:460px;width:100%;background:#fff;border:1px solid #e6ebe5;border-radius:23px;padding:33px 38px 28px;box-shadow:0 28px 75px rgba(38,76,54,.1)}.auth-tabs{display:flex;background:#f2f5f1;border-radius:11px;padding:4px;margin-bottom:31px}.auth-tab{flex:1;border:0;border-radius:8px;background:none;color:#7d8b82;font-weight:700;font-size:13px;padding:11px 6px}.auth-tab.active{background:#fff;color:var(--deep);box-shadow:0 3px 10px rgba(33,75,53,.07)}.auth-card h2{font-size:27px;letter-spacing:-.045em;margin:0 0 6px}.auth-card .muted{font-size:13px;line-height:1.5;margin:0 0 27px}.field{display:block;margin-bottom:19px}.field>span{display:block;font-size:12px;color:#4b5c53;font-weight:750;margin-bottom:9px}.field small{font-size:11px;font-weight:450;color:#8d9991}.field input,.field select,.field textarea{display:block;width:100%;border:1px solid #dfe6df;border-radius:10px;background:#fff;color:#25342b;padding:13px 14px;outline:none;font-size:14px;transition:border .15s,box-shadow .15s}.field input::placeholder,.field textarea::placeholder{color:#aab6ad}.field input:focus,.field select:focus,.field textarea:focus,.date-controls input:focus,.table-filters select:focus{border-color:#70a18c;box-shadow:0 0 0 3px rgba(73,138,103,.12)}.field textarea{resize:vertical;min-height:88px}.auth-submit{width:100%;justify-content:space-between;margin-top:8px;padding:13px 16px}.auth-footnote{border-top:1px solid #eef1ec;padding-top:18px;margin:24px 0 0;color:#92a096;font-size:11px;line-height:1.5;text-align:center}.auth-footer{color:#9caaa0;font-size:11px;text-align:center;position:relative}.auth-choice{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:3px 0 18px}.auth-choice label,.type-switch label{display:block}.auth-choice input,.type-switch input{position:absolute;opacity:0;pointer-events:none}.auth-choice span{display:block;border:1px solid #e0e6df;border-radius:9px;padding:10px 7px;text-align:center;font-size:11px;font-weight:700;color:#7f8d83;cursor:pointer}.auth-choice input:checked+span{background:#edf4eb;border-color:#b2ceb9;color:#275e48}.auth-choice input:focus-visible+span,.type-switch input:focus-visible+span{outline:3px solid #a8d2b4;outline-offset:2px}.form-error{color:#9e4038;background:#fff1ee;border:1px solid #f3d0ca;padding:10px 12px;border-radius:9px;font-size:12px;line-height:1.4;margin:4px 0 14px}

/* Dashboard */
.topbar{height:70px;background:#fff;border-bottom:1px solid #e8ede7}.topbar-inner{height:100%;max-width:1260px;margin:auto;padding:0 30px;display:flex;justify-content:space-between;align-items:center}.topbar-right{display:flex;align-items:center;gap:22px}.sync-indicator{display:inline-flex;align-items:center;gap:7px;color:#8b998e;font-size:11px}.sync-indicator.is-loading .sync-dot{background:#e4bd70}.sync-indicator.is-error .sync-dot{background:#e18173}.sync-dot{width:7px;height:7px;border-radius:50%;background:#82bc84;box-shadow:0 0 0 4px #eaf4e9}.account-pill{padding:8px 12px;background:#eff4ed;border-radius:25px;color:#37654e;font-size:11px;font-weight:750;max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dashboard{max-width:1260px;margin:auto;padding:49px 30px 28px}.page-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:28px}.page-heading h1{font-size:clamp(34px,3vw,44px);line-height:1.1;letter-spacing:-.06em;margin:13px 0 9px}.page-heading p{color:#87938a;font-size:13px;margin:0}.add-button{min-height:45px;padding:10px 17px;margin-bottom:1px}.invite-banner{display:flex;align-items:center;gap:17px;background:#eaf2e8;border:1px solid #d5e3d2;border-radius:15px;padding:17px 21px;margin:0 0 22px}.invite-illustration{display:flex;align-items:center;justify-content:center;flex:none;background:#d3e5cf;color:#38694e;width:44px;height:44px;border-radius:13px}.invite-banner>div:nth-child(2){flex:1}.invite-banner strong{color:#2d573b;font-size:13px}.invite-banner p{color:#6f8a73;font-size:11px;line-height:1.5;margin:4px 0 0}.invite-action{display:flex;align-items:center;gap:8px}.invite-action code{background:#fff;color:#34664c;border-radius:8px;padding:12px;font-size:13px;font-weight:800;letter-spacing:.1em}.period-toolbar{display:flex;align-items:center;gap:22px;justify-content:space-between;background:#fff;border:1px solid var(--line);border-radius:15px;padding:16px 18px;margin-bottom:18px;box-shadow:0 4px 18px rgba(40,70,49,.025)}.period-title{display:flex;align-items:center;gap:11px;min-width:166px}.period-title>svg{color:var(--green);background:#ecf4eb;box-sizing:content-box;padding:10px;border-radius:10px}.period-title strong{display:block;font-size:12px}.period-title small{display:block;margin-top:2px;font-size:10px;color:#9ba79c}.date-controls{display:flex;align-items:center;gap:10px;margin-left:auto}.date-controls label{display:flex;align-items:center;gap:8px;color:#9ca99e;font-size:11px;font-weight:700}.date-controls input{width:140px;border:1px solid #e2e9e0;border-radius:8px;background:#fff;color:#385245;font-size:11px;font-weight:700;padding:10px;outline:none}.date-separator{color:#b9c4ba}.period-actions{display:flex;gap:9px}.period-actions .button{font-size:11px;min-height:36px;padding:8px 13px}
.summary-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:16px;margin-bottom:18px}.summary-card{position:relative;overflow:hidden;min-height:163px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:23px 24px;display:flex;flex-direction:column;align-items:flex-start;box-shadow:0 5px 22px rgba(40,70,49,.025)}.summary-label{color:#819087;font-size:11px;font-weight:700;letter-spacing:.025em}.summary-value{display:block;position:relative;z-index:1;font-size:clamp(25px,2.5vw,36px);line-height:1.17;letter-spacing:-.05em;margin:16px 0 10px;white-space:nowrap}.summary-caption{position:relative;z-index:1;color:#a0aca0;font-size:11px}.summary-top{display:flex;align-items:start;justify-content:space-between;width:100%}.summary-icon{width:27px;height:27px;display:grid;place-items:center;border-radius:8px;font-size:16px;font-weight:700;margin:-3px -3px 0 0}.income-icon{color:#3b8567;background:#eaf5ee}.expense-icon{color:#c6755d;background:#f9eee8}.balance-card{background:#2d6754;color:#fff;border-color:#2d6754}.balance-card .summary-label,.balance-card .summary-caption{color:#c7dfcb}.summary-decoration{position:absolute;right:-52px;bottom:-120px;width:245px;height:245px;border:38px solid rgba(215,241,211,.13);border-radius:50%}.summary-decoration:after{content:"";position:absolute;inset:17px;border:25px solid rgba(215,241,211,.08);border-radius:50%}
.insights-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:17px;margin-bottom:18px}.panel{background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 5px 22px rgba(40,70,49,.025)}.insights-grid .panel{min-height:306px;padding:24px}.panel-heading{display:flex;align-items:start;justify-content:space-between;gap:12px}.panel-heading h2{font-size:18px;letter-spacing:-.035em;margin:0}.panel-subtitle{color:#a7b1a8;font-size:10px;margin-top:18px}.category-content{display:flex;align-items:center;gap:32px;margin-top:26px}.donut{width:164px;height:164px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex:none}.donut-center{width:112px;height:112px;background:#fff;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.donut-center small{color:#a0aca1;font-size:10px}.donut-center strong{font-size:17px;letter-spacing:-.04em;margin-top:5px}.category-list{min-width:0;flex:1;display:grid;gap:10px}.category-item{display:flex;align-items:center;gap:9px;font-size:11px}.category-color{width:8px;height:8px;border-radius:2px;flex:none}.category-item-name{flex:1;min-width:0;color:#697a6f;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.category-item-amount{color:#34463a;font-weight:750;white-space:nowrap}.category-empty,.people-empty,.empty-state{color:#9ba79e;font-size:12px;line-height:1.6}.category-empty{margin:62px auto 0;text-align:center}.people-content{margin-top:27px;display:grid;gap:17px}.person-row{display:grid;grid-template-columns:37px minmax(0,1fr);gap:12px;align-items:start}.person-avatar{width:37px;height:37px;border-radius:12px;display:grid;place-items:center;background:#e5eee5;color:#447a5b;font-weight:800;font-size:13px}.person-row:nth-child(2) .person-avatar{background:#f3eee3;color:#9b7c54}.person-info{min-width:0}.person-name-line{display:flex;justify-content:space-between;gap:8px;align-items:center;font-size:11px;margin:1px 0 9px}.person-name{font-weight:750;color:#3b5044;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.person-amount{font-weight:750;color:#3b5044;white-space:nowrap}.person-track{height:7px;background:#f0f4ef;border-radius:10px;overflow:hidden}.person-fill{height:100%;background:#67a983;border-radius:10px;min-width:2px}.person-row:nth-child(2) .person-fill{background:#c3aa79}.person-subline{color:#a3afa5;font-size:10px;margin:6px 0 0}.people-note{border-top:1px solid #edf0eb;padding-top:14px;margin:20px 0 0;color:#abb6ad;font-size:10px;line-height:1.5}
.transactions-panel{overflow:hidden}.transactions-heading{padding:23px 24px 17px}.count-badge{display:inline-block;vertical-align:middle;background:#edf3e9;color:#568066;font-size:11px;padding:4px 8px;border-radius:7px;margin-left:4px;letter-spacing:0}.icon-text-button{display:flex;align-items:center;gap:7px;background:none;border:0;color:#86988a;font-size:11px;padding:8px 0}.icon-text-button:hover{color:var(--green)}.icon-text-button svg{width:15px;height:15px}.table-filters{display:flex;align-items:center;gap:12px;border-top:1px solid #eef1ed;border-bottom:1px solid #eef1ed;padding:13px 24px;background:#fcfdfb}.table-filters label{display:flex;align-items:center;gap:8px;color:#a2afa4;font-size:10px;font-weight:700}.table-filters select{appearance:none;min-width:106px;border:1px solid #e3eae2;border-radius:7px;color:#526858;font-size:11px;font-weight:650;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='m1 1 5 5 5-5' fill='none' stroke='%23819a88' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat right 10px center;padding:8px 29px 8px 10px;outline:none}.transaction-table{width:100%;border-collapse:collapse}.transaction-table thead{background:#fff}.transaction-table th{text-align:left;color:#aab5ab;text-transform:uppercase;letter-spacing:.08em;font-size:9px;font-weight:800;padding:14px 24px 10px}.transaction-table td{padding:15px 24px;border-top:1px solid #f0f2ee;color:#506456;font-size:11px;vertical-align:middle}.transaction-table tbody tr:hover{background:#fbfdf9}.transaction-table th:nth-child(4),.transaction-table td:nth-child(4){text-align:right}.transaction-table th:last-child,.transaction-table td:last-child{text-align:right;width:82px}.transaction-category{display:flex;align-items:center;gap:11px;min-width:160px}.category-icon{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;flex:none;font-size:17px;background:#edf3e9}.transaction-main{display:flex;flex-direction:column;gap:3px;min-width:0}.transaction-main strong{color:#384f3e;font-size:11px;font-weight:750}.transaction-main small{color:#9daa9e;font-size:10px;max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.person-chip{display:inline-block;background:#f2f6f1;color:#677f6b;border-radius:7px;padding:6px 8px;font-size:10px;font-weight:700;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.transaction-amount{font-weight:800;font-size:12px!important;white-space:nowrap}.transaction-amount.expense{color:#a85e55}.transaction-amount.income{color:#3f8b67}.row-actions{display:flex;justify-content:flex-end;gap:2px}.icon-button{display:inline-flex;align-items:center;justify-content:center;border:0;background:none;color:#9cab9d;width:28px;height:28px;border-radius:7px}.icon-button:hover{background:#eef4ec;color:var(--green)}.icon-button.danger:hover{background:#fff0ed;color:#af574f}.icon-button svg{width:14px;height:14px}.empty-state{text-align:center;padding:70px 22px}.empty-icon{display:grid;place-items:center;width:50px;height:50px;border-radius:15px;margin:0 auto 16px;color:#87a790;background:#eaf3e7}.empty-state strong{display:block;font-size:15px;color:#4a6151;margin-bottom:6px}.empty-state p{margin:0 0 17px}.loading-state{padding:65px 20px;text-align:center;color:#8ba08f;font-size:12px}.dashboard-footer{text-align:center;color:#b5bfb6;font-size:10px;margin-top:25px}

.transaction-note{min-width:0;max-width:300px;color:#9daa9e;font-size:10px}
.transaction-note summary{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;list-style:none;padding:3px 0}
.transaction-note summary::-webkit-details-marker{display:none}
.transaction-note summary::before{content:"▸";margin-right:5px;color:#608773}
.transaction-note[open] summary::before{content:"▾"}
.transaction-note-full{max-width:100%;margin-top:3px;color:#657a6c;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.45}
.transaction-note summary:focus-visible{outline:2px solid #70a18c;outline-offset:2px;border-radius:3px}

/* Dialog and notifications */
.modal-backdrop{position:fixed;z-index:20;inset:0;display:flex;justify-content:center;align-items:center;background:rgba(20,39,29,.42);padding:20px;overflow:auto}.modal{width:min(100%,490px);max-height:calc(100svh - 40px);overflow:auto;background:#fff;border-radius:20px;padding:27px 29px 24px;box-shadow:0 25px 90px rgba(13,35,21,.2)}.modal-header{display:flex;justify-content:space-between;align-items:start;margin-bottom:25px}.modal-header h2{font-size:22px;letter-spacing:-.04em;margin:0}.modal-header .icon-button{width:34px;height:34px;background:#f4f6f3}.modal-header .icon-button svg{width:17px;height:17px}.type-switch{display:grid;grid-template-columns:1fr 1fr;background:#f3f6f2;padding:4px;border-radius:11px;margin-bottom:22px}.type-switch span{display:block;text-align:center;border-radius:8px;padding:10px;font-size:12px;color:#87988a;font-weight:750;cursor:pointer}.type-switch input:checked+span{background:#fff;color:var(--deep);box-shadow:0 2px 8px rgba(35,73,47,.08)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.modal-actions{border-top:1px solid #edf0eb;padding-top:17px;margin-top:12px;display:flex;justify-content:flex-end;gap:9px}.toast{position:fixed;z-index:30;right:24px;bottom:22px;max-width:min(400px,calc(100vw - 40px));background:#244b3b;color:#fff;padding:13px 18px;border-radius:11px;box-shadow:0 14px 36px rgba(13,36,23,.22);font-size:12px;line-height:1.5}.toast.error{background:#a54740}.boot-screen{position:fixed;z-index:40;inset:0;background:#f6f7f4;display:flex;align-items:center;justify-content:center;gap:13px;color:#718773;font-size:13px}.boot-screen .brand-mark{width:34px;height:34px}

@media(max-width:1000px){.auth-layout{gap:40px}.auth-intro h1{font-size:54px}.period-toolbar{flex-wrap:wrap}.period-title{min-width:unset}.date-controls{margin-left:auto}.period-actions{width:100%;justify-content:flex-end}.category-content{gap:18px}.donut{width:145px;height:145px}.donut-center{width:99px;height:99px}.transaction-table th,.transaction-table td{padding-left:15px;padding-right:15px}}
@media(max-width:760px){.auth-screen{padding:21px 20px}.auth-layout{display:block;padding:44px 0 25px}.auth-intro{margin:0 auto 36px;max-width:460px}.auth-intro h1{font-size:43px;margin:15px 0}.auth-intro>p{font-size:14px;margin-bottom:23px}.auth-feature{font-size:12px;margin:12px 0}.auth-card{margin:auto}.topbar{height:62px}.topbar-inner{padding:0 18px}.topbar-right{gap:12px}.sync-indicator{display:none}.dashboard{padding:34px 17px}.page-heading{align-items:start}.page-heading h1{font-size:35px}.page-heading p{max-width:300px;line-height:1.5}.add-button{font-size:0;gap:0;width:43px;height:43px;padding:0;flex:none}.add-button svg{width:20px;height:20px}.period-toolbar{gap:14px}.date-controls{margin-left:0;order:2;width:100%}.date-controls label{flex:1}.date-controls input{width:100%;min-width:0}.period-actions{width:auto;margin-left:auto;order:1}.period-actions .button-secondary{display:none}.summary-grid{grid-template-columns:1fr 1fr}.balance-card{grid-column:1/-1}.summary-card{min-height:135px;padding:19px}.summary-value{font-size:25px}.insights-grid{grid-template-columns:1fr}.insights-grid .panel{min-height:unset}.people-panel{min-height:240px!important}.invite-banner{flex-wrap:wrap}.invite-action{width:100%;padding-left:61px}.transaction-table thead{display:none}.transaction-table,.transaction-table tbody,.transaction-table tr,.transaction-table td{display:block;width:100%}.transaction-table tr{display:grid;grid-template-columns:1fr auto;position:relative;padding:15px 18px;border-top:1px solid #eef1ed;gap:5px}.transaction-table td{padding:0;border:0}.transaction-table td:nth-child(1){grid-column:1;grid-row:1}.transaction-table td:nth-child(2){grid-column:1;grid-row:2;padding-left:45px}.transaction-table td:nth-child(3){grid-column:1;grid-row:3;padding-left:45px}.transaction-table td:nth-child(4){grid-column:2;grid-row:1;text-align:right;align-self:center}.transaction-table td:nth-child(5){grid-column:2;grid-row:2/4;text-align:right;align-self:center}.transaction-table td:nth-child(2){font-size:10px}.transaction-category{min-width:0}.transaction-main small{max-width:180px}.table-filters{flex-wrap:wrap;padding:12px 17px}.table-filters label{flex:1;min-width:130px}.table-filters select{min-width:0;flex:1}.transactions-heading{padding:19px 18px 15px}}
@media(max-width:470px){.brand,.auth-brand{font-size:21px}.brand-mark{width:35px;height:35px}.account-pill{max-width:94px;padding:7px 9px}.text-button{font-size:11px}.auth-layout{padding:22px 0 25px}.auth-intro{margin-bottom:20px}.auth-intro h1{font-size:36px;margin:12px 0}.auth-intro>p{font-size:13px;line-height:1.45;margin-bottom:0}.auth-feature{display:none}.auth-card{padding:23px 22px}.period-toolbar{padding:14px}.period-title{width:100%}.period-actions{order:3;width:100%;margin:0}.period-actions .button{width:100%}.date-controls{order:2}.date-controls label{display:block}.date-controls input{margin-top:4px}.date-separator{margin-top:15px}.summary-grid{gap:10px}.summary-card{padding:17px;min-height:127px}.summary-value{font-size:22px}.balance-card .summary-value{font-size:30px}.summary-caption{font-size:10px}.category-content{display:block}.donut{margin:0 auto 23px}.category-list{max-width:360px;margin:auto}.invite-action{padding-left:0}.invite-action code{flex:1;text-align:center}.modal{padding:23px 19px}.form-grid{grid-template-columns:1fr;gap:0}}

/* Phone controls and long values stay readable without horizontal scrolling. */
@media(max-width:760px){
  .field input,.field select,.field textarea,.date-controls input,.table-filters select{font-size:16px}
  .date-controls input,.table-filters select{min-height:44px}
  .date-controls label{min-width:0}
  .period-actions .button,.auth-tab,.auth-choice span,.type-switch span,.text-button,.icon-text-button,.modal-actions .button{min-height:44px}
  .auth-choice span,.type-switch span{display:flex;align-items:center;justify-content:center}
  .text-button{display:inline-flex;align-items:center;min-width:44px}
  .add-button,.icon-button,.modal-header .icon-button{width:44px;height:44px}
  .row-actions{gap:4px}
  .transaction-note summary{min-height:44px;padding:12px 0}
  .summary-value,.donut-center strong{white-space:normal;overflow-wrap:anywhere}
  .donut-center strong{max-width:100%;padding:0 6px;font-size:clamp(12px,4vw,17px);line-height:1.1}
}
@media(max-width:470px){
  .invite-action{flex-direction:column;align-items:stretch}
  .invite-action code{display:block;width:100%;min-width:0;overflow-wrap:anywhere;font-size:12px;letter-spacing:.06em}
  .invite-action .button{width:100%;min-height:44px}
  .category-item-amount,.person-amount{max-width:58%;white-space:normal;overflow-wrap:anywhere;text-align:right}
  .transaction-table tr{grid-template-columns:minmax(0,1fr) minmax(0,42%)}
  .transaction-main strong,.transaction-amount{white-space:normal;overflow-wrap:anywhere}
}
@media(max-width:360px){
  .date-controls{display:grid;grid-template-columns:minmax(0,1fr);gap:7px}
  .date-controls label{width:100%}
  .date-separator{display:none}
  .summary-grid{grid-template-columns:minmax(0,1fr)}
  .balance-card{grid-column:auto}
}
