:root{--gray-25:#fdfdfc;--gray-50:#fafaf8;--gray-100:#f4f3f1;--gray-150:#edece9;--gray-200:#e4e2de;--gray-300:#d2cfc9;--gray-400:#b3afa7;--gray-500:#928d84;--gray-600:#6f6a62;--gray-700:#55514a;--gray-800:#383530;--gray-900:#201e1b;--bg:#f6f6f5;--surface:#fff;--surface-soft:var(--gray-50);--surface-hover:var(--gray-100);--border:var(--gray-200);--border-strong:var(--gray-300);--text:var(--gray-900);--text-muted:var(--gray-600);--text-light:var(--gray-500);--ink:var(--gray-900);--accent:#5965c7;--accent-soft:#eff0fb;--red:#dd5b3a;--red-soft:#f6d7cc;--red-tint:#fdf3ef;--yellow:#9a6400;--yellow-soft:#faf2dd;--green:#17795f;--green-soft:#e2f2ec;--shadow-card:none;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:Switzer,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0}button{cursor:pointer;background:var(--ink);color:#fff;border:none;border-radius:2.4px;justify-content:center;align-items:center;gap:6px;padding:7px 14px;font-family:inherit;font-size:.87rem;font-weight:500;transition:background .12s,opacity .12s;display:inline-flex}button:hover{background:#000}.button-accent{background:var(--accent);transition:background .12s,opacity .12s,box-shadow .12s;box-shadow:0 2px 5px #5965c759}.button-accent:hover{background:#4853ae;box-shadow:0 2px 6px #4853ae66}.button-accent:disabled{box-shadow:none}button:disabled{opacity:.5;cursor:not-allowed}.ghost-icon-button{color:var(--text-muted);background:0 0;border:none;border-radius:2.4px;justify-content:center;align-items:center;padding:6px;display:inline-flex}.ghost-icon-button:hover{background:var(--surface-hover);color:var(--text)}input,select{background:var(--surface);border:1px solid var(--border-strong);color:var(--text);border-radius:2.4px;padding:8px 10px;font-family:inherit;font-size:.9rem}select{appearance:none;background-color:var(--surface);cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='m3 4.5 3 3 3-3' stroke='%235965c7' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 8px center;background-repeat:no-repeat;background-size:12px;transition:background-color .15s,border-color .15s,box-shadow .15s}select:hover{background-color:var(--surface-hover);border-color:var(--accent)}input:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}label{color:var(--text-muted);flex-direction:column;flex:1;gap:4px;font-size:.78rem;font-weight:450;display:flex}.amount{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1;letter-spacing:-.006em;color:var(--text);font-weight:500}.amount-fade{animation:.15s amount-fade-in;display:inline-block}.amount-placeholder{visibility:hidden;display:inline-block}@keyframes amount-fade-in{0%{opacity:0}to{opacity:1}}.amount-positive{color:var(--green)}.amount-negative{color:var(--red)}.section-total{letter-spacing:-.012em;font-size:.98rem;font-weight:500}.login-page{background:var(--surface-soft);justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-card);border-radius:4.8px;flex-direction:column;gap:14px;width:320px;padding:32px;display:flex}.login-card h1{align-items:center;margin:0;font-size:1.4rem;display:flex}.login-subtitle{color:var(--text-muted);margin:0 0 8px;font-size:.82rem}.app-shell{min-height:100vh}.app-header{background:var(--surface);border-bottom:1px solid var(--border);align-items:stretch;gap:24px;min-height:62px;padding:0 max(24px,50% - 660px);display:flex}.brand-logo{letter-spacing:-.03em;font-family:Outfit,Switzer,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:600}.brand-accent{color:var(--accent)}.brand-mark{background:var(--gray-600);flex:none;width:.95em;height:.915em;display:inline-block;transform:translateY(.048em);-webkit-mask:url(/logos/sisplay-icon.svg) 50%/contain no-repeat;mask:url(/logos/sisplay-icon.svg) 50%/contain no-repeat}.brand-logo{gap:.24em}.app-title{align-items:center;font-size:1.3rem;display:flex;position:relative}.app-title:after{content:"";background:var(--border);width:1px;height:24px;position:absolute;top:50%;right:-12px;transform:translateY(-50%)}.app-nav{flex:1;gap:20px;display:flex;position:relative}.app-nav a{color:var(--text-muted);align-items:center;padding:0 2px;font-size:.84rem;font-weight:500;text-decoration:none;display:flex}.app-nav a:hover{color:var(--text)}.app-nav a.active{color:var(--text);font-weight:600}.nav-indicator{background:var(--accent);pointer-events:none;height:2px;transition:transform .25s,width .25s,opacity .15s;position:absolute;bottom:0;left:0}.app-user{color:var(--text-muted);align-items:center;gap:12px;font-size:.83rem;display:flex}.app-main{padding:28px 24px 60px}.page-constrained{max-width:1000px;margin:0 auto}.page-wide{max-width:1320px;margin:0 auto}.page-loading{text-align:center;color:var(--text-muted);padding:40px}.page-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.page-header h1{letter-spacing:-.02em;margin:0;font-size:1.55rem;font-weight:600}.section{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-card);border-radius:4px;margin-bottom:16px;padding:20px}.section h2{margin:0;font-size:.95rem;font-weight:600}.section>h2{margin-bottom:14px}.section h2.entity-section-title{border-bottom:1px solid var(--border);margin:0 -20px 20px;padding:0 20px 14px;font-family:Arimo,-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;font-size:1.05rem;font-weight:700}.section-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.section-header-divided{border-bottom:1px solid var(--border);align-items:flex-start;margin:0 -20px 16px;padding:0 20px 16px}.section-header-divided h2{font-size:1.14rem}.section-header-divided.section-header-center{align-items:center}.section-heading{flex-direction:column;align-items:flex-start;gap:8px;display:flex}.section-header-actions{color:var(--text-muted);align-items:center;gap:16px;font-size:.85rem;display:flex}.list-organizer{color:var(--text-muted);white-space:nowrap;flex-direction:row;align-items:center;gap:8px;font-size:.8rem;display:inline-flex;position:relative}.sort-select{width:140px;position:relative}.list-organizer .sort-select{width:119px}.list-organizer .sort-select-trigger{border-radius:2.5px;gap:7px;height:24px;padding:3px 10px;font-size:.64rem}.list-organizer .sort-select-arrow{border-bottom-width:1.3px;border-right-width:1.3px;width:6px;height:6px}.list-organizer .sort-select-menu{width:162px;padding:3px}.list-organizer .sort-select-option{gap:7px;padding:6px 10px;font-size:.64rem}.sort-select.form-select{width:100%}.sort-select-trigger{background:var(--surface);width:100%;height:28px;color:var(--text);border:1px solid var(--border-strong);text-align:left;white-space:nowrap;border-radius:3px;justify-content:flex-start;gap:8px;padding:4px 12px;font-size:.75rem;font-weight:400;overflow:hidden}.form-select .sort-select-trigger{height:37px;min-height:37px;padding:8px 14px;font-size:.95rem}.form-select .sort-select-arrow{width:9px;height:9px}.sort-select-trigger:hover{background:var(--surface-hover);color:var(--text)}.sort-select-trigger:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.sort-select-arrow{border-right:1.5px solid var(--accent);border-bottom:1.5px solid var(--accent);flex-shrink:0;width:7px;height:7px;margin-left:auto;margin-right:1px;transition:transform .15s;transform:rotate(45deg)translateY(-2px)}.sort-select-label{text-overflow:ellipsis;min-width:0;overflow:hidden}.sort-select-option-icon{object-fit:cover;border-radius:3px;flex:0 0 18px;width:18px;height:18px}.sort-select-option-icon[src*=sisplay-icon]{background:#8dc63f;padding:3px}.form-select .sort-select-option-icon{flex-basis:20px;width:20px;height:20px}.sort-select-arrow.open{transform:rotate(225deg)translate(-1px,-1px)}.sort-select-menu{z-index:10;background:var(--surface);border:1px solid var(--border);border-radius:5px;width:190px;padding:4px;animation:.12s ease-out both sort-menu-fade;position:absolute;top:calc(100% + 4px);left:0;box-shadow:0 8px 18px #201e1b1f}.form-select .sort-select-menu{width:100%}.entry-form select{display:none}.entry-form input:not([type=checkbox]){height:37px;min-height:37px;font-size:.95rem;line-height:1.2}.entry-form input[type=number]{font-variant-numeric:tabular-nums;font-weight:500}.entry-form input[type=date]{accent-color:var(--accent);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;cursor:pointer;transition:border-color .15s,box-shadow .15s,background-color .15s}.entry-form input[type=date]:hover{background-color:var(--surface-hover)}.entry-form input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.8;filter:invert(42%)sepia(34%)saturate(1100%)hue-rotate(198deg)brightness(88%)contrast(92%);width:17px;height:17px;margin-left:6px;transition:opacity .15s,transform .15s}.entry-form input[type=date]::-webkit-calendar-picker-indicator:hover{opacity:1;transform:scale(1.08)}.date-picker{width:100%;min-width:0;position:relative}.date-picker-trigger{background:var(--surface);width:100%;height:37px;color:var(--text);border:1px solid var(--border-strong);text-align:left;border-radius:2.4px;justify-content:space-between;padding:8px 10px;font-size:.95rem;font-weight:400}.date-picker-trigger:hover{background:var(--surface-hover);color:var(--text)}.date-picker-trigger:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.date-picker-icon{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20' fill='none'%3E%3Crect x='2.75' y='4.25' width='14.5' height='13' rx='2.25' stroke='%235965c7' stroke-width='1.2'/%3E%3Cpath d='M6.25 2.75v3M13.75 2.75v3M2.75 8h14.5' stroke='%235965c7' stroke-width='1.2' stroke-linecap='round'/%3E%3Cpath d='M6 11.5h.01M10 11.5h.01M14 11.5h.01M6 14.5h.01M10 14.5h.01' stroke='%235965c7' stroke-width='1.4' stroke-linecap='round'/%3E%3C/svg%3E") 50%/contain no-repeat;flex:0 0 20px;width:20px;height:20px}.date-picker-popover{z-index:20;background:var(--surface);border:1px solid var(--border);border-radius:7px;width:252px;padding:12px;animation:.14s ease-out both sort-menu-fade;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 12px 28px #201e1b2e}.date-picker-header,.date-picker-footer{justify-content:space-between;align-items:center;display:flex}.date-picker-header{color:var(--text);text-transform:capitalize;margin-bottom:12px;font-size:.82rem}.date-picker-nav{width:26px;height:26px;color:var(--accent);background:0 0;padding:0;font-size:1.35rem;line-height:1}.date-picker-nav:hover{background:var(--accent-soft);color:var(--accent)}.date-picker-weekdays,.date-picker-days{text-align:center;grid-template-columns:repeat(7,1fr);gap:3px;display:grid}.date-picker-weekdays{color:var(--text-muted);margin-bottom:4px;font-size:.62rem;font-weight:700}.date-picker-day{width:28px;height:28px;color:var(--text);background:0 0;border-radius:4px;padding:0;font-size:.76rem;font-weight:400}.date-picker-day:hover{background:var(--accent-soft);color:var(--accent)}.date-picker-day.today{box-shadow:inset 0 0 0 1px var(--accent)}.date-picker-day.selected{background:var(--accent);color:#fff;font-weight:600}.date-picker-footer{border-top:1px solid var(--border);justify-content:flex-end;margin-top:10px;padding-top:9px}.date-picker-footer button{color:var(--accent);background:0 0;padding:3px 6px;font-size:.75rem}.date-picker-footer button:hover{background:var(--accent-soft);color:var(--accent)}.sort-select-option{width:100%;color:var(--text);text-align:left;white-space:nowrap;background:0 0;border-radius:3px;justify-content:flex-start;align-items:center;gap:8px;padding:7px 12px;font-size:.75rem;font-weight:400;display:flex}.sort-select-option:hover,.sort-select-option.selected{background:var(--accent-soft);color:var(--accent)}.sort-select-option.selected{font-weight:600}@keyframes sort-menu-fade{0%{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:translateY(0)}}.empty-state{color:var(--text-light);font-size:.87rem}.modal-backdrop{z-index:100;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#201e1b61;justify-content:center;align-items:center;padding:20px;animation:.16s ease-out both modal-fade-in;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{background:var(--surface);border:1px solid var(--border);border-radius:6px;width:min(560px,100%);max-height:none;animation:.18s ease-out both modal-slide-in;overflow:visible;box-shadow:0 18px 45px #201e1b33}.modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.modal-header h2{margin:0;font-size:1.05rem}.modal-close{width:28px;height:28px;color:var(--text-muted);background:0 0;padding:0;font-size:1.35rem;line-height:1}.modal-close:hover{background:var(--surface-hover);color:var(--text)}.modal-content{padding:20px}.modal-content .entry-form{margin-bottom:0}@keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-slide-in{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.month-selector{align-items:center;gap:4px;display:flex}.month-selector-label{text-align:center;min-width:140px;font-size:.92rem;font-weight:600}.summary-cards{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-bottom:16px;display:grid}.summary-card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-card);border-radius:4px;flex-direction:column;gap:4.2px;padding:16px;display:flex}.summary-card.alert{border-color:var(--red-soft)}.summary-card-label{color:var(--gray-500);font-family:Arimo,-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;font-size:.83rem;font-weight:450}.summary-card-value{letter-spacing:-.02em;text-shadow:.1px 0,-.1px 0;font-size:1.65rem;font-weight:500}.summary-card-split{flex-wrap:wrap;align-items:baseline;gap:4px;display:flex}.summary-card-sep{color:var(--text-light);font-weight:400}.entity-badge{background:var(--gray-100);color:var(--gray-800);border-radius:999px;align-items:center;gap:6px;padding:3px 10px 3px 8px;font-size:.75rem;font-weight:500;display:inline-flex}.entity-badge-dot{border-radius:4px;flex-shrink:0;width:6px;height:6px}.entity-profile{flex-shrink:0;align-self:flex-start;align-items:center;gap:4px;display:inline-flex}.entity-avatar{background:var(--gray-100);border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;display:flex;overflow:hidden}.entity-avatar img{object-fit:cover;width:100%;height:100%;display:block}.entity-avatar-fill img{object-fit:contain;width:58%;height:58%}.entity-profile-sm .entity-avatar{width:17px;height:17px}.entity-profile-sm .entity-profile-name{color:var(--gray-800);font-size:.75rem;font-weight:500}.entity-profile-md{gap:7px}.entity-profile-md .entity-avatar{width:26px;height:26px}.entity-profile-md .entity-profile-name{color:var(--text);font-size:.95rem;font-weight:600}.entity-cards{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;display:grid}.dashboard-columns{grid-template-columns:1fr 1fr;align-items:start;gap:16px;display:grid}@media (width<=900px){.dashboard-columns{grid-template-columns:1fr}}.entity-card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-card);border-radius:4px;flex-direction:column;gap:14px;padding:16px;display:flex;container-type:inline-size}.entity-card-body{grid-template:"badge chart""stats chart"1fr/minmax(128px,.5fr) 1fr;gap:14px 12px;display:grid}.entity-card-badge{grid-area:badge}.entity-card-stats{grid-area:stats}.entity-chart{grid-area:chart}@container (width<=300px){.entity-card-body{grid-template:"badge""stats""chart"/1fr}.entity-chart{min-height:130px}}.entity-chart{min-width:0;min-height:150px;position:relative}.entity-chart-svg{--chart-color:var(--green);animation:.15s amount-fade-in;display:block;position:absolute;inset:0;overflow:visible}.entity-chart-svg.negative{--chart-color:var(--red)}.entity-chart-zero{stroke:var(--border-strong);stroke-width:1px;stroke-dasharray:1.5 4;stroke-linecap:round}.entity-chart-line{fill:none;stroke:var(--chart-color);stroke-width:1.8px;stroke-linejoin:round;stroke-linecap:round}.entity-chart-halo{fill:var(--chart-color);opacity:.18}.entity-chart-end{fill:var(--chart-color);stroke:var(--surface);stroke-width:1.5px}.entity-chart-hit{fill:#0000;stroke:none;cursor:default}.entity-chart-hit:hover{fill:var(--chart-color);fill-opacity:.35}.entity-chart-axis{fill:var(--text-light);font-family:Arimo,-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;font-size:10px}.entity-card.alert{border-color:var(--red-soft)}.entity-card-stats{flex-direction:column;gap:10px;display:flex}.entity-stat{border-top:1px solid var(--border);flex-direction:column;gap:2px;padding-top:10px;display:flex}.entity-stat:first-child{border-top:none;padding-top:0}.entity-stat-label{color:var(--text-muted);font-size:.73rem;font-weight:450}.entity-stat-value{letter-spacing:-.012em;font-size:1.05rem;font-weight:500}.expense-checklist{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.expense-row{background:var(--surface);border:1px solid var(--border);border-radius:3.2px;align-items:center;gap:12px;padding:10px 14px;display:flex}.expense-checklist input[type=checkbox]{appearance:none;border:1.5px solid var(--border-strong);background:var(--surface);cursor:pointer;border-radius:3.2px;flex-shrink:0;width:17px;min-width:17px;height:17px;margin:0;padding:0;transition:background .12s,border-color .12s;position:relative}.expense-checklist input[type=checkbox]:hover{border-color:var(--accent)}.expense-checklist input[type=checkbox]:checked{background:var(--accent);border-color:var(--accent);animation:.22s ease-out checkbox-pop}.expense-checklist input[type=checkbox].checkbox-unpaid{animation:.18s ease-out checkbox-uncheck}.expense-checklist input[type=checkbox]:checked:after{content:"";border:1.6px solid #fff;border-width:0 1.6px 1.6px 0;width:4px;height:8px;animation:.18s ease-out both checkbox-check-fade;position:absolute;top:1px;left:5px;transform:rotate(45deg)}@keyframes checkbox-check-fade{0%{opacity:0;transform:rotate(45deg)scale(.7)}to{opacity:1;transform:rotate(45deg)scale(1)}}@keyframes checkbox-pop{0%{transform:scale(.82)}65%{transform:scale(1.12)}to{transform:scale(1)}}@keyframes checkbox-uncheck{0%{opacity:.7;transform:scale(1.08)}to{opacity:1;transform:scale(1)}}.expense-checklist input[type=checkbox]:focus-visible{box-shadow:0 0 0 3px var(--accent-soft);outline:none}.expense-row.overdue{background:var(--surface);border:1px solid var(--red-soft)}.expense-row.overdue .expense-row-amount .amount{color:var(--red);font-weight:600}.expense-row-main{flex-direction:column;flex:1;gap:2px;display:flex}.expense-row-title{align-items:center;gap:8px;display:flex}.expense-name{font-weight:500}.expense-name.paid{color:var(--text-light);font-weight:400;text-decoration:line-through}.expense-row-dates{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:.76rem}.expense-row-amount{text-align:right;justify-content:flex-end;align-items:center;gap:8px;min-width:110px;display:flex}.badge-overdue{background:var(--red);color:#fff;border-radius:1.6px;padding:2px 7px;font-size:.67rem;font-weight:600}.icon-button{color:var(--text-light);background:0 0;padding:4px 8px}.icon-button:hover{color:var(--red);background:var(--red-tint)}.icon-button-hidden{visibility:hidden}.entry-form{flex-direction:column;gap:12px;margin-bottom:16px;display:flex}.form-row{gap:12px;display:flex}.form-row>label,.form-select{min-width:0}.checkbox-label{flex-direction:row;align-items:center;gap:8px}.form-error{color:var(--red);margin:0;font-size:.84rem}
