:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#172033;background:#eef2f6;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.6}h1,h2,h3,p{margin-top:0}.app-shell{width:min(100%,780px);min-height:100vh;margin:0 auto;background:#f7f8fa}.app-toolbar{position:sticky;z-index:50;top:0;display:flex;min-height:54px;align-items:center;justify-content:space-between;gap:.75rem;border-bottom:1px solid #dce2ea;background:#fffffff5;padding:.45rem .75rem;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.toolbar-title-group,.toolbar-actions{display:flex;align-items:center}.toolbar-title-group{min-width:0;gap:.25rem}.toolbar-actions{flex:0 0 auto;gap:.2rem}.app-toolbar h1{overflow:hidden;margin:0;font-size:1.2rem;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.icon-button,.user-avatar,.trash-button{display:inline-grid;place-items:center;width:40px;height:40px;border:0;border-radius:50%;background:transparent;color:#344055;padding:0}.icon-button:hover,.icon-button:focus-visible,.trash-button:hover,.trash-button:focus-visible{background:#eef2f7}.icon-button svg,.trash-button svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}.overflow-button{list-style:none;font-size:1.5rem;font-weight:700}.overflow-button::-webkit-details-marker,.user-avatar::-webkit-details-marker{display:none}.toolbar-menu{position:relative}.toolbar-menu summary{cursor:pointer}.toolbar-menu-panel{position:absolute;z-index:100;top:calc(100% + .35rem);right:0;min-width:150px;overflow:hidden;border:1px solid #d5dce6;border-radius:.7rem;background:#fff;box-shadow:0 12px 30px #1c273c29}.toolbar-menu-panel button{width:100%;min-height:44px;border:0;background:#fff;color:#283348;padding:.7rem .9rem;text-align:left}.toolbar-menu-panel button:hover,.toolbar-menu-panel button:focus-visible{background:#f4f6f9}.user-avatar{border:1px solid #d1d8e2;background:#172033;color:#fff;font-size:.9rem;font-weight:800;list-style:none}.user-menu-panel{min-width:220px}.user-menu-identity{display:grid;gap:.15rem;border-bottom:1px solid #edf0f4;padding:.8rem .9rem}.user-menu-identity span{overflow:hidden;color:#6a7486;font-size:.8rem;text-overflow:ellipsis}.is-spinning svg{animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.app-content{padding:.8rem .75rem 5.25rem}.page-section{display:grid;gap:.8rem}.card{border:1px solid #d8dee8;border-radius:.9rem;background:#fff;box-shadow:0 6px 18px #1c273c0a}.expense-form{display:grid;gap:1rem;padding:1rem}.form-grid{display:grid;gap:1rem}.field{position:relative;display:grid;gap:.4rem}.field label{font-size:.9rem;font-weight:700}.field small{color:#6b7588;line-height:1.35}input,select,textarea{width:100%;min-height:48px;border:1px solid #bfc8d5;border-radius:.7rem;background:#fff;color:#172033;padding:.75rem .85rem;outline:none}textarea{min-height:86px;resize:vertical}input:focus,select:focus,textarea:focus{border-color:#4569d4;box-shadow:0 0 0 3px #4569d41f}.combobox-menu{position:absolute;z-index:20;top:calc(100% + .25rem);left:0;right:0;overflow:hidden;border:1px solid #cbd3de;border-radius:.75rem;background:#fff;box-shadow:0 12px 30px #1c273c24}.combobox-option{display:block;width:100%;min-height:44px;border:0;border-bottom:1px solid #edf0f4;background:#fff;padding:.7rem .85rem;text-align:left}.combobox-option:last-child{border-bottom:0}.combobox-option:hover,.combobox-option:focus{background:#f4f6fa}.create-option{color:#3154b5;font-weight:700}.primary-button,.secondary-button,.danger-button,.text-button{min-height:44px;border-radius:.7rem;font-weight:700}.primary-button{min-height:50px;border:0;background:#3154b5;color:#fff;padding:.8rem 1rem}.secondary-button{border:1px solid #bfc8d5;background:#fff;color:#283348;padding:.65rem .8rem}.danger-button{align-self:flex-start;border:1px solid #e1b5b5;background:#fff7f7;color:#9c2c2c;padding:.55rem .8rem}.text-button{border:0;background:transparent;color:#3154b5;padding:.5rem}.message{margin:0;border-radius:.7rem;padding:.75rem .85rem}.compact-message{margin-bottom:.7rem}.message.success{background:#edf8ef;color:#216331}.message.error{background:#fff1f1;color:#8f2525}.expense-history{min-width:0}.history-status{margin:.5rem 0;color:#647084}.year-group+.year-group{margin-top:1.25rem}.year-heading{margin:0 0 .25rem;color:#344055;font-size:1rem;font-weight:800}.month-group+.month-group{margin-top:.75rem}.month-heading{position:sticky;z-index:20;top:54px;margin:0 -.1rem;border-bottom:1px solid #d7dee8;background:#f7f8faf5;color:#6b7588;padding:.45rem .1rem .35rem;font-size:.76rem;font-weight:800;letter-spacing:.08em;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.expense-table{overflow:hidden;border:1px solid #dbe1e9;border-radius:.75rem;background:#fff}.expense-row{--payment-accent: #9aa3b3;position:relative;border-bottom:1px solid #edf0f4;border-left:3px solid var(--payment-accent);background:#fff}.expense-row:last-child{border-bottom:0}.expense-row.is-expanded{background:#fafbfd}.payment-card{--payment-accent: #5b72d6}.payment-cash{--payment-accent: #4b9a6a}.payment-satispay{--payment-accent: #d45178}.payment-transfer{--payment-accent: #c4873d}.payment-paypal{--payment-accent: #3b76b8}.payment-other{--payment-accent: #9aa3b3}.expense-row-main{display:grid;grid-template-columns:minmax(0,1fr) 40px;align-items:center}.expense-row-toggle{display:grid;min-width:0;min-height:48px;grid-template-columns:58px 28px minmax(0,1fr) auto;align-items:center;gap:.45rem;border:0;background:transparent;color:inherit;padding:.35rem .35rem .35rem .55rem;text-align:left}.expense-row-toggle:hover,.expense-row-toggle:focus-visible{background:#f7f9fc;outline:none}.expense-row-date{color:#667185;font-size:.78rem;font-weight:650;white-space:nowrap}.expense-user-badge{display:grid;width:26px;height:26px;place-items:center;border:1px solid #d4dbe5;border-radius:50%;background:#f3f5f8;color:#465268;font-size:.72rem;font-weight:800}.expense-row-category{overflow:hidden;font-size:.88rem;font-weight:750;text-overflow:ellipsis;white-space:nowrap}.expense-row-amount{padding-left:.35rem;font-size:.92rem;white-space:nowrap}.trash-button{width:38px;height:38px;border-radius:.55rem;color:#9d4a4a}.trash-button svg{width:18px;height:18px}.expense-row-details{display:grid;gap:.2rem;border-top:1px solid #edf0f4;padding:.55rem 2.9rem .65rem 6.15rem;color:#4e596d;font-size:.8rem;line-height:1.35}.expense-row-details p{margin:0}.detail-meta{color:#737e90}.detail-notes{margin-top:.2rem!important;white-space:pre-wrap}.empty-state{padding:1rem;color:#647084}.empty-state p{margin:0}.floating-add-button{position:fixed;z-index:45;right:max(1rem,calc((100vw - 780px)/2 + 1rem));bottom:max(1rem,env(safe-area-inset-bottom));display:grid;width:56px;height:56px;place-items:center;border:0;border-radius:50%;background:#172033;color:#fff;box-shadow:0 10px 24px #17203347}.floating-add-button span{font-size:2rem;font-weight:300;line-height:1;transform:translateY(-1px)}.login-shell,.center-screen{display:grid;min-height:100vh;place-items:center;padding:1rem}.login-card{display:grid;width:min(100%,420px);gap:1rem;padding:1.25rem}@media(min-width:620px){.app-shell{min-height:calc(100vh - 2rem);margin:1rem auto;border:1px solid #dde3eb;border-radius:.9rem;box-shadow:0 10px 32px #1c273c0d}.app-toolbar{border-radius:.9rem .9rem 0 0}.app-content{padding:1rem 1rem 5.5rem}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:420px){.app-content{padding-inline:.45rem}.expense-row-toggle{grid-template-columns:52px 26px minmax(0,1fr) auto;gap:.3rem;padding-left:.4rem}.expense-row-date{font-size:.72rem}.expense-row-category,.expense-row-amount{font-size:.84rem}.expense-row-details{padding-left:5.45rem;padding-right:2.5rem}}
