:root{--sl-color-white: hsl(0, 0%, 100%);--sl-color-gray-1: hsl(224, 20%, 94%);--sl-color-gray-2: hsl(224, 6%, 77%);--sl-color-gray-3: hsl(224, 6%, 56%);--sl-color-gray-4: hsl(224, 7%, 36%);--sl-color-gray-5: hsl(224, 10%, 23%);--sl-color-gray-6: hsl(224, 14%, 16%);--sl-color-black: hsl(224, 10%, 10%);--sl-hue-orange: 41;--sl-color-orange-low: hsl(var(--sl-hue-orange), 39%, 22%);--sl-color-orange: hsl(var(--sl-hue-orange), 82%, 63%);--sl-color-orange-high: hsl(var(--sl-hue-orange), 82%, 87%);--sl-hue-green: 101;--sl-color-green-low: hsl(var(--sl-hue-green), 39%, 22%);--sl-color-green: hsl(var(--sl-hue-green), 82%, 63%);--sl-color-green-high: hsl(var(--sl-hue-green), 82%, 80%);--sl-hue-blue: 234;--sl-color-blue-low: hsl(var(--sl-hue-blue), 54%, 20%);--sl-color-blue: hsl(var(--sl-hue-blue), 100%, 60%);--sl-color-blue-high: hsl(var(--sl-hue-blue), 100%, 87%);--sl-hue-purple: 281;--sl-color-purple-low: hsl(var(--sl-hue-purple), 39%, 22%);--sl-color-purple: hsl(var(--sl-hue-purple), 82%, 63%);--sl-color-purple-high: hsl(var(--sl-hue-purple), 82%, 89%);--sl-hue-red: 339;--sl-color-red-low: hsl(var(--sl-hue-red), 39%, 22%);--sl-color-red: hsl(var(--sl-hue-red), 82%, 63%);--sl-color-red-high: hsl(var(--sl-hue-red), 82%, 87%);--sl-color-accent-low: hsl(224, 54%, 20%);--sl-color-accent: hsl(224, 100%, 60%);--sl-color-accent-high: hsl(224, 100%, 85%);--sl-color-text: var(--sl-color-gray-2);--sl-color-bg: var(--sl-color-black);--sl-color-hairline-light: var(--sl-color-gray-5);--sl-color-hairline: var(--sl-color-gray-6);--sl-shadow-sm: 0px 1px 1px hsla(0, 0%, 0%, .12), 0px 2px 1px hsla(0, 0%, 0%, .24);--sl-shadow-md: 0px 8px 4px hsla(0, 0%, 0%, .08), 0px 5px 2px hsla(0, 0%, 0%, .08), 0px 3px 2px hsla(0, 0%, 0%, .12), 0px 1px 1px hsla(0, 0%, 0%, .15);--sl-shadow-lg: 0px 25px 7px hsla(0, 0%, 0%, .03), 0px 16px 6px hsla(0, 0%, 0%, .1), 0px 9px 5px hsla(223, 13%, 10%, .33), 0px 4px 4px hsla(0, 0%, 0%, .75), 0px 4px 2px hsla(0, 0%, 0%, .25);--color-bg: var(--sl-color-bg);--color-surface: var(--sl-color-black);--color-surface-secondary: var(--sl-color-gray-6);--color-text: var(--sl-color-text);--color-text-secondary: var(--sl-color-gray-3);--color-text-muted: var(--sl-color-gray-4);--color-border: var(--sl-color-hairline);--color-border-light: var(--sl-color-hairline-light);--color-primary: var(--sl-color-accent);--color-primary-hover: var(--sl-color-accent-high);--color-primary-light: var(--sl-color-accent-low);--color-danger: var(--sl-color-red);--color-danger-hover: var(--sl-color-red-high);--color-danger-light: var(--sl-color-red-low);--color-success: var(--sl-color-green);--color-success-light: var(--sl-color-green-low);--shadow-sm: var(--sl-shadow-sm);--shadow-md: var(--sl-shadow-md);--shadow-lg: var(--sl-shadow-lg);--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--transition-fast: .15s ease;--transition-normal: .2s ease;--color-card-amex: var(--sl-color-orange);--color-card-freee: var(--sl-color-blue)}:root[data-theme=light]{--sl-color-white: hsl(224, 10%, 10%);--sl-color-gray-1: hsl(224, 14%, 16%);--sl-color-gray-2: hsl(224, 10%, 23%);--sl-color-gray-3: hsl(224, 7%, 36%);--sl-color-gray-4: hsl(224, 6%, 56%);--sl-color-gray-5: hsl(224, 6%, 77%);--sl-color-gray-6: hsl(224, 20%, 94%);--sl-color-gray-7: hsl(224, 19%, 97%);--sl-color-black: hsl(0, 0%, 100%);--sl-color-orange-high: hsl(var(--sl-hue-orange), 80%, 25%);--sl-color-orange: hsl(var(--sl-hue-orange), 90%, 60%);--sl-color-orange-low: hsl(var(--sl-hue-orange), 90%, 88%);--sl-color-green-high: hsl(var(--sl-hue-green), 80%, 22%);--sl-color-green: hsl(var(--sl-hue-green), 90%, 46%);--sl-color-green-low: hsl(var(--sl-hue-green), 85%, 90%);--sl-color-blue-high: hsl(var(--sl-hue-blue), 80%, 30%);--sl-color-blue: hsl(var(--sl-hue-blue), 90%, 60%);--sl-color-blue-low: hsl(var(--sl-hue-blue), 88%, 90%);--sl-color-purple-high: hsl(var(--sl-hue-purple), 90%, 30%);--sl-color-purple: hsl(var(--sl-hue-purple), 90%, 60%);--sl-color-purple-low: hsl(var(--sl-hue-purple), 80%, 90%);--sl-color-red-high: hsl(var(--sl-hue-red), 80%, 30%);--sl-color-red: hsl(var(--sl-hue-red), 90%, 60%);--sl-color-red-low: hsl(var(--sl-hue-red), 80%, 90%);--sl-color-accent-high: hsl(234, 80%, 30%);--sl-color-accent: hsl(234, 90%, 60%);--sl-color-accent-low: hsl(234, 88%, 90%);--sl-shadow-sm: 0px 1px 1px hsla(0, 0%, 0%, .06), 0px 2px 1px hsla(0, 0%, 0%, .06);--sl-shadow-md: 0px 8px 4px hsla(0, 0%, 0%, .03), 0px 5px 2px hsla(0, 0%, 0%, .03), 0px 3px 2px hsla(0, 0%, 0%, .06), 0px 1px 1px hsla(0, 0%, 0%, .06);--sl-shadow-lg: 0px 25px 7px hsla(0, 0%, 0%, .01), 0px 16px 6px hsla(0, 0%, 0%, .03), 0px 9px 5px hsla(224, 10%, 10%, .1), 0px 4px 4px hsla(0, 0%, 0%, .1), 0px 4px 2px hsla(0, 0%, 0%, .06)}*,*:before,*:after{box-sizing:border-box}html{overflow-x:hidden}body{margin:0;padding:0;overflow-x:hidden;background:var(--color-bg);width:100%;min-width:0}.expense-manager{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,sans-serif;padding:var(--spacing-lg);background:var(--color-bg);min-height:100vh;color:var(--color-text);width:100%;min-width:0}.back-link{margin-bottom:var(--spacing-md)}.back-link a{color:var(--color-text-secondary);text-decoration:none;font-size:14px;display:inline-flex;align-items:center;gap:var(--spacing-xs);transition:color var(--transition-fast)}.back-link a:hover{color:var(--color-primary)}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-lg)}.page-header h1{color:var(--color-text);margin:0;font-size:28px;font-weight:700;letter-spacing:-.02em}.year-selector{flex-shrink:0}.year-selector .SelectTrigger{min-width:140px}@media(max-width:640px){.page-header{flex-direction:column;align-items:flex-start;gap:var(--spacing-md)}.year-selector,.year-selector .SelectTrigger{width:100%}}.actions{display:flex;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg);flex-wrap:wrap}.expense-filter{background:var(--color-surface);padding:var(--spacing-lg);border-radius:var(--radius-lg);margin-bottom:var(--spacing-lg);box-shadow:var(--shadow-sm);border:1px solid var(--color-border-light);position:sticky;top:0;z-index:20}.filter-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--spacing-md)}.filter-item{display:flex;flex-direction:column;gap:var(--spacing-xs)}.filter-item-wide{grid-column:span 2}.filter-item label,.filter-label{font-size:13px;font-weight:500;color:var(--color-text-secondary)}.filter-input{height:2.5rem;padding:10px 12px;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:14px;background:var(--color-surface);color:var(--color-text);transition:all var(--transition-fast)}.filter-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.filter-input::placeholder{color:var(--color-text-muted)}.filter-result-count{margin-top:var(--spacing-sm);font-size:13px;color:var(--color-text-secondary)}@media(max-width:640px){.filter-grid{grid-template-columns:1fr}.filter-item-wide{grid-column:span 1}}button,.btn{background:var(--color-primary);color:#fff;border:none;padding:10px 20px;border-radius:var(--radius-md);cursor:pointer;font-size:14px;font-weight:500;text-decoration:none;display:inline-flex;align-items:center;gap:var(--spacing-sm);transition:all var(--transition-fast)}button:hover,.btn:hover{background:var(--color-primary-hover);transform:translateY(-1px)}button:active,.btn:active{transform:translateY(0)}button.danger,.btn-danger{background:var(--color-danger)}button.danger:hover,.btn-danger:hover{background:var(--color-danger-hover)}.btn-secondary{background:var(--color-surface-secondary);color:var(--color-text);border:1px solid var(--color-border)}.btn-secondary:hover{background:var(--color-border)}.btn:disabled,button:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn-text{background:none;border:none;color:var(--color-text-secondary);cursor:pointer;padding:6px 12px;font-size:14px;border-radius:var(--radius-sm);transition:all var(--transition-fast)}.btn-text:hover{background:var(--color-surface-secondary);color:var(--color-text);transform:none}.btn-text-danger{color:var(--color-danger)}.btn-text-danger:hover{background:var(--color-danger-light);color:var(--color-danger)}.stats-container{display:flex;gap:var(--spacing-lg);margin-bottom:var(--spacing-lg)}.stats-container>*{flex:1;min-width:0}@media(max-width:1200px){.stats-container{flex-direction:column}}.stats{margin-bottom:0}.monthly-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md)}.monthly-header .card-label{margin-bottom:0}.monthly-header .SelectTrigger{min-width:120px;height:2rem;padding:6px 10px;font-size:13px}.monthly-list{display:flex;flex-direction:column;gap:var(--spacing-xs)}.monthly-row{display:flex;align-items:center;gap:var(--spacing-sm);padding:2px 0;border-bottom:1px solid var(--color-border-light)}.monthly-row:last-child{border-bottom:none}.monthly-label{flex:1;font-size:12px;color:var(--color-text-secondary)}.monthly-count{font-size:11px;color:var(--color-text-muted);font-variant-numeric:tabular-nums}.monthly-amount{font-size:13px;font-weight:600;color:var(--color-text);font-variant-numeric:tabular-nums;text-align:right;min-width:85px}.monthly-total{border-bottom:none}.monthly-total .monthly-label{font-weight:600;color:var(--color-text)}.monthly-collapsible{display:flex;flex-direction:column;border-bottom:1px solid var(--color-border-light)}.monthly-chevron{width:10px;height:10px;flex-shrink:0;transition:transform .15s ease-out;color:var(--color-text-muted)}.monthly-row-trigger{all:unset;display:flex;align-items:center;gap:var(--spacing-sm);padding:2px 0;cursor:pointer;transition:background var(--transition-fast);border-radius:var(--radius-sm);width:100%;box-sizing:border-box}.monthly-row-trigger:hover{background:var(--color-surface-secondary)}.monthly-row-trigger[data-panel-open] .monthly-chevron{transform:rotate(90deg)}.monthly-row-empty{cursor:default}.monthly-panel{height:var(--collapsible-panel-height);overflow:hidden;transition:height .15s ease-out}.monthly-panel[data-starting-style],.monthly-panel[data-ending-style]{height:0}.monthly-details{padding:var(--spacing-xs) 0 var(--spacing-sm) 18px;display:flex;flex-direction:column;gap:2px}.monthly-detail-row{display:flex;align-items:center;gap:var(--spacing-sm);font-size:11px;color:var(--color-text-secondary)}.monthly-detail-name{flex:1;color:var(--color-text-muted)}.monthly-detail-count{font-size:10px;color:var(--color-text-muted);font-variant-numeric:tabular-nums}.monthly-detail-amount{font-size:12px;font-weight:500;color:var(--color-text-secondary);font-variant-numeric:tabular-nums;text-align:right;min-width:75px}.monthly-content{display:flex;gap:var(--spacing-lg);align-items:stretch}.monthly-chart{flex:1;min-width:0;display:flex;align-items:flex-end}.monthly-chart .recharts-responsive-container{min-height:150px}.monthly-content .monthly-list{flex-shrink:0;width:280px}@media(max-width:768px){.monthly-content{flex-direction:column}.monthly-chart{width:100%;min-width:auto}.monthly-content .monthly-list{width:100%}}.recharts-tooltip-wrapper{outline:none}.chart-tooltip{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--spacing-sm) var(--spacing-md);box-shadow:var(--shadow-md)}.chart-tooltip-row{display:flex;justify-content:space-between;gap:var(--spacing-lg);font-size:13px;color:var(--color-text)}.chart-tooltip-row:first-child{margin-bottom:var(--spacing-xs)}.chart-tooltip-row span:first-child{color:var(--color-text-secondary)}.chart-tooltip-row span:last-child{font-weight:600;font-variant-numeric:tabular-nums}.chart-tooltip-stacked{min-width:200px}.chart-tooltip-stacked .chart-tooltip-row{gap:var(--spacing-sm);margin-bottom:0;align-items:center}.chart-tooltip-stacked .chart-tooltip-row:first-child{margin-bottom:0}.chart-tooltip-header{font-weight:600;margin-bottom:var(--spacing-sm);padding-bottom:var(--spacing-xs);border-bottom:1px solid var(--color-border-light);font-size:13px}.chart-tooltip-indicator{display:inline-block;width:10px;height:10px;border-radius:2px;flex-shrink:0}.chart-tooltip-label{flex:1;color:var(--color-text-secondary);font-size:12px}.chart-tooltip-value{font-weight:600;font-variant-numeric:tabular-nums;font-size:12px}.chart-tooltip-count{font-size:11px;color:var(--color-text-muted)}.chart-tooltip-total{margin-top:var(--spacing-sm);padding-top:var(--spacing-xs);border-top:1px solid var(--color-border-light);display:flex;justify-content:space-between;gap:var(--spacing-sm);font-weight:600;font-size:12px}.chart-tooltip-total span:last-child{color:var(--color-text-muted);font-weight:400;font-size:11px}.recharts-legend-wrapper{padding-top:var(--spacing-sm)}.recharts-legend-item{margin-right:var(--spacing-md)}.category-stats .card{height:100%;display:flex;flex-direction:column}.category-content{display:flex;gap:var(--spacing-lg);align-items:stretch;flex:1}.category-chart{flex:1;min-width:0;display:flex;align-items:center}.category-chart .recharts-responsive-container{min-height:150px}.category-content .category-list{flex-shrink:0;width:220px}.category-empty{display:flex;align-items:center;justify-content:center;width:100%;height:100%;color:var(--color-text-muted);font-size:14px}.category-list{display:flex;flex-direction:column;gap:var(--spacing-xs)}.category-row{display:flex;align-items:center;gap:var(--spacing-sm);padding:2px 0;border-bottom:1px solid var(--color-border-light)}.category-row:last-child{border-bottom:none}.category-indicator{display:inline-block;width:10px;height:10px;border-radius:2px;flex-shrink:0}.category-label{flex:1;font-size:12px;color:var(--color-text-secondary)}.category-count{font-size:11px;color:var(--color-text-muted);font-variant-numeric:tabular-nums}.category-amount{font-size:13px;font-weight:600;color:var(--color-text);font-variant-numeric:tabular-nums;text-align:right;min-width:75px}.category-total{border-bottom:none}.category-total .category-label{font-weight:600;color:var(--color-text)}@media(max-width:768px){.category-content{flex-direction:column}.category-chart{width:100%;min-width:auto}.category-content .category-list{width:100%}}.card{background:var(--color-surface);padding:var(--spacing-lg);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);border:1px solid var(--color-border-light)}.card-label{font-size:13px;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--spacing-xs)}.card-value{font-size:32px;font-weight:700;color:var(--color-text);font-variant-numeric:tabular-nums}.import-section{background:var(--color-surface);padding:var(--spacing-lg);border-radius:var(--radius-lg);margin-bottom:var(--spacing-lg);box-shadow:var(--shadow-sm);border:1px solid var(--color-border-light)}.import-section h2{margin:0 0 var(--spacing-md);font-size:18px;font-weight:600;color:var(--color-text)}.import-section form{display:flex;align-items:center;gap:var(--spacing-md);flex-wrap:wrap}.import-section .file-input-wrapper{flex:1;min-width:250px}.import-section input[type=file]{width:100%;padding:var(--spacing-md);border:2px dashed var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-secondary);cursor:pointer;transition:all var(--transition-fast);color:var(--color-text)}.import-section input[type=file]:hover{border-color:var(--color-primary);background:var(--color-primary-light)}.import-section input[type=file]:disabled{opacity:.5;cursor:not-allowed}.file-drop-zone{flex:1;min-width:250px}.file-input-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.file-drop-label{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-xl) var(--spacing-lg);border:2px dashed var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-secondary);cursor:pointer;transition:all var(--transition-fast);text-align:center}.file-drop-label:hover{border-color:var(--color-primary);background:var(--color-primary-light)}.file-drop-zone.drag-over .file-drop-label{border-color:var(--color-primary);background:var(--color-primary-light);transform:scale(1.01)}.file-drop-zone.has-files .file-drop-label{border-color:var(--color-success);background:var(--color-success-light)}.file-drop-icon{font-size:32px;line-height:1}.file-drop-text{font-size:15px;font-weight:500;color:var(--color-text)}.file-drop-hint{font-size:13px;color:var(--color-text-muted)}.file-names{font-size:14px;font-weight:500;color:var(--color-text);word-break:break-all}.table-container{background:var(--color-surface);border-radius:var(--radius-lg);overflow:auto;box-shadow:var(--shadow-sm);border:1px solid var(--color-border-light);max-width:100%;height:60dvh}table{width:100%;border-collapse:collapse;background:var(--color-surface)}th,td{padding:8px 12px;text-align:left;border-bottom:1px solid var(--color-border)}th:nth-child(1),td:nth-child(1){white-space:nowrap;min-width:100px}th:nth-child(5),td:nth-child(5){min-width:120px}th{background:var(--color-surface-secondary);font-weight:600;font-size:13px;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.03em;position:sticky;top:0;z-index:10}th.sortable{cursor:pointer;user-select:none;transition:background var(--transition-fast)}th.sortable:hover{background:var(--color-border)}.sort-icon{opacity:.3;vertical-align:middle;margin-left:4px;transition:opacity var(--transition-fast)}.sort-icon-active{opacity:1}th.sortable:hover .sort-icon{opacity:.6}th.sortable:hover .sort-icon-active{opacity:1}tbody tr{transition:background var(--transition-fast)}tbody tr:hover{background:#00000005}tbody tr:last-child td{border-bottom:none}.amount{text-align:right;font-family:SF Mono,SFMono-Regular,Consolas,monospace;font-variant-numeric:tabular-nums}.card-badge{display:inline-block;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:600}.card-amex{color:var(--color-card-amex);background:var(--sl-color-orange-low)}.card-freee{color:var(--color-card-freee);background:var(--color-primary-light)}.card-amex-gold{color:#da620b;background:var(--sl-color-orange-low)}.card-main{color:#228ec3;background:var(--sl-color-blue-low)}.card-cloud{color:#334dcc;background:var(--sl-color-blue-low)}.card-takeuchi,.card-takeuchi-real{color:var(--sl-color-purple);background:var(--sl-color-purple-low)}.card-cash{color:#a17d12;background:#faf0d1}.card-cash-unpaid{color:#c2570a;background:#fde8d8}.card-cash-paid{color:#248f50;background:#d6f5e3}.category-badge{display:inline-block;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:600}.category-communication{color:#1773cf;background:#daebfb}.category-entertainment{color:#cf6317;background:#fbe8da}.category-meeting{color:#248f50;background:#d6f5e3}.category-books{color:#8a2eb8;background:#efdef7}.category-transport{color:#1f96ad;background:#d4f1f7}.category-training{color:#b82e73;background:#f7deeb}.category-welfare{color:#248f7d;background:#d6f5f0}.category-equipment{color:#996f33;background:#f2e8d9}.category-supplies{color:#626d84;background:#e2e4e9}.category-unset{color:#737b8c;background:#e3e5e8}.category-cell{width:140px;min-width:140px}.note-cell{width:150px;min-width:150px;max-width:150px;color:var(--color-text-secondary);font-size:13px}.note-display{display:block;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.note-input-inline{box-sizing:border-box;width:100%;height:26px;padding:0 8px;border:1px solid var(--color-primary);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);font-size:13px;font-family:inherit;outline:none;box-shadow:0 0 0 2px var(--color-primary-light)}.note-saving{display:inline-flex;align-items:center;justify-content:center;height:26px;font-size:12px;font-weight:500;color:var(--color-text-secondary);animation:pulse 1.5s ease-in-out infinite}.category-badge-display{display:inline-flex;align-items:center;justify-content:center;width:100%;height:26px;padding:0 10px;border-radius:999px;font-size:12px;font-weight:600;box-sizing:border-box}.SelectTrigger.category-select-inline{height:26px;padding:0 8px;width:116px;max-width:116px;min-width:116px;font-size:12px;box-sizing:border-box}.category-saving{display:inline-flex;align-items:center;justify-content:center;height:26px;padding:0 10px;border-radius:999px;font-size:12px;font-weight:500;color:var(--color-text-secondary);background:var(--color-surface-secondary);animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.actions-cell{width:70px;min-width:70px;white-space:nowrap}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;padding:0;border:none;border-radius:var(--radius-md);background:transparent;color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast)}.icon-button:hover{background:var(--color-surface-secondary);color:var(--color-primary)}.icon-button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.icon-button-danger:hover{background:var(--color-danger-light);color:var(--color-danger)}.table-empty{text-align:center;padding:var(--spacing-xl);color:var(--color-text-muted)}.form-overlay{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:var(--spacing-md);animation:fadeIn .2s ease}.form-overlay-backdrop{position:absolute;inset:0;background:#00000080;backdrop-filter:blur(4px);border:none;cursor:pointer;padding:0;margin:0}.form-overlay-backdrop:hover{background:#00000080;transform:none}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.edit-form{position:relative;z-index:1;background:var(--color-surface);padding:var(--spacing-lg);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:100%;max-width:600px;max-height:90vh;overflow-y:auto;animation:slideUp .2s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.edit-form h2{margin:0 0 var(--spacing-lg);font-size:20px;font-weight:600;color:var(--color-text)}.form-row{display:flex;gap:var(--spacing-md);margin-bottom:var(--spacing-md);flex-wrap:wrap}.form-group{flex:1;min-width:150px}.form-group.wide{flex:2}.form-group label{display:block;margin-bottom:var(--spacing-xs);font-weight:500;font-size:14px;color:var(--color-text)}.form-group input,.form-group select{width:100%;padding:10px 12px;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:14px;background:var(--color-surface);color:var(--color-text);transition:all var(--transition-fast)}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.form-actions{display:flex;gap:var(--spacing-sm);justify-content:flex-end;margin-top:var(--spacing-lg);padding-top:var(--spacing-md);border-top:1px solid var(--color-border)}.message{padding:12px 16px;border-radius:var(--radius-md);margin-bottom:var(--spacing-md);font-size:14px}.message.success{background:var(--color-success-light);color:var(--color-success);border:1px solid var(--color-success)}.message.error{background:var(--color-danger-light);color:var(--color-danger);border:1px solid var(--color-danger)}.progress-container{margin-top:var(--spacing-md)}.progress-bar{width:100%;height:8px;background:var(--color-border);border-radius:var(--radius-sm);overflow:hidden}.progress-bar-fill{height:100%;background:linear-gradient(90deg,var(--color-primary),var(--color-primary-hover));transition:width var(--transition-normal)}.progress-bar-fill.danger{background:linear-gradient(90deg,var(--color-danger),var(--color-danger-hover))}.progress-text{margin-top:var(--spacing-sm);font-size:13px;color:var(--color-text-secondary)}.confirm-dialog-backdrop{position:fixed;inset:0;background:#00000080;backdrop-filter:blur(4px);z-index:100}.confirm-dialog-popup{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--spacing-lg);min-width:320px;max-width:90vw;box-shadow:var(--shadow-lg);z-index:101}.confirm-dialog-title{margin:0 0 var(--spacing-sm);font-size:18px;font-weight:600;color:var(--color-text)}.confirm-dialog-description{margin:0 0 var(--spacing-lg);font-size:14px;color:var(--color-text-secondary);line-height:1.6}.confirm-dialog-actions{display:flex;justify-content:flex-end;gap:var(--spacing-sm)}.confirm-dialog-btn{padding:10px 20px;border:none;border-radius:var(--radius-md);font-size:14px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.confirm-dialog-btn-cancel{background:var(--color-surface-secondary);color:var(--color-text)}.confirm-dialog-btn-cancel:hover{background:var(--color-border)}.confirm-dialog-btn-confirm{background:var(--color-primary);color:#fff}.confirm-dialog-btn-confirm:hover{background:var(--color-primary-hover)}.confirm-dialog-btn-danger{background:var(--color-danger);color:#fff}.confirm-dialog-btn-danger:hover{background:var(--color-danger-hover)}.progress-root{width:100%}.progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-sm)}.progress-label{font-size:14px;color:var(--color-text-secondary)}.progress-value{font-size:14px;color:var(--color-text);font-weight:500;font-variant-numeric:tabular-nums}.progress-track{width:100%;height:8px;background:var(--color-border);border-radius:var(--radius-sm);overflow:hidden}.progress-indicator{height:100%;background:linear-gradient(90deg,var(--color-primary),var(--color-primary-hover));border-radius:var(--radius-sm);transition:width .1s linear}.progress-root[data-complete] .progress-indicator{background:var(--color-success)}.progress-root[data-complete] .progress-value{color:var(--color-success)}.progress-danger .progress-indicator{background:linear-gradient(90deg,var(--color-danger),var(--color-danger-hover))}.progress-danger[data-complete] .progress-indicator{background:var(--color-danger)}.progress-danger .progress-value{color:var(--color-danger)}.progress-indeterminate .progress-indicator{width:30%;animation:progress-indeterminate 1.5s ease-in-out infinite}@keyframes progress-indeterminate{0%{transform:translate(-100%)}to{transform:translate(400%)}}.toast-viewport{position:fixed;bottom:var(--spacing-lg);right:var(--spacing-lg);display:flex;flex-direction:column;gap:var(--spacing-sm);z-index:200;max-width:400px}.toast-root{position:relative;display:flex;align-items:flex-start;gap:12px;padding:14px 40px 14px 16px;background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);border-left:4px solid var(--color-text-muted);animation:toast-slide-in .3s ease-out}.toast-root[data-swipe=move]{transition:none}.toast-root[data-swipe=cancel]{transform:translate(0);transition:transform .2s ease-out}.toast-root[data-swipe=end]{animation:toast-slide-out .2s ease-out forwards}@keyframes toast-slide-in{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes toast-slide-out{0%{transform:translate(var(--toast-swipe-end-x, 0));opacity:1}to{transform:translate(100%);opacity:0}}.toast-success{border-left-color:var(--color-success)}.toast-error{border-left-color:var(--color-danger)}.toast-info{border-left-color:var(--color-primary)}.toast-title{font-size:14px;font-weight:500;color:var(--color-text);margin:0}.toast-description{font-size:13px;color:var(--color-text-secondary);margin:4px 0 0}.toast-close{position:absolute;top:8px;right:8px;background:none;border:none;font-size:20px;color:var(--color-text-muted);cursor:pointer;padding:0;line-height:1;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:all var(--transition-fast)}.toast-close:hover{background:var(--color-surface-secondary);color:var(--color-text)}.field-root{display:flex;flex-direction:column;align-items:start;gap:var(--spacing-xs);width:100%}.field-root label,.field-label{font-size:14px;line-height:1.25;font-weight:500;color:var(--color-text);margin-bottom:0}.field-control{box-sizing:border-box;padding:10px 12px;margin:0;border:1px solid var(--color-border);width:100%;height:2.5rem;border-radius:var(--radius-md);font-family:inherit;font-size:14px;background-color:var(--color-surface);color:var(--color-text);transition:all var(--transition-fast)}.field-control:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.field-control[data-invalid]{border-color:var(--color-danger)}.field-control[data-invalid]:focus{border-color:var(--color-danger);box-shadow:0 0 0 3px var(--color-danger-light)}.field-error{font-size:13px;line-height:1.25;color:var(--color-danger)}.field-description{margin:0;font-size:13px;line-height:1.25;color:var(--color-text-secondary)}.SelectTrigger{box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;gap:.75rem;height:2.5rem;padding:10px 12px;margin:0;outline:0;border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-surface);font-family:inherit;font-size:14px;line-height:1.5;color:var(--color-text);user-select:none;min-width:10rem;cursor:pointer;transition:all var(--transition-fast)}@media(hover:hover){.SelectTrigger:hover{background-color:var(--color-surface-secondary)}}.SelectTrigger[data-popup-open]{background-color:var(--color-surface-secondary)}.SelectTrigger:focus-visible{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.SelectTrigger[data-disabled]{opacity:.5;cursor:not-allowed}.SelectValue[data-placeholder]{opacity:.6}.SelectIcon{display:flex;color:var(--color-text-muted)}.SelectPositioner{outline:none;z-index:150;user-select:none}.SelectPopup{box-sizing:border-box;border-radius:var(--radius-md);background-color:var(--color-surface);background-clip:padding-box;color:var(--color-text);min-width:var(--anchor-width);border:1px solid var(--color-border);box-shadow:var(--shadow-lg);transform-origin:var(--transform-origin);transition:transform .15s,opacity .15s}.SelectPopup[data-starting-style],.SelectPopup[data-ending-style]{opacity:0;transform:scale(.95)}.SelectPopup[data-side=none]{transition:none;transform:none;opacity:1;min-width:calc(var(--anchor-width) + 1rem)}.SelectList{box-sizing:border-box;position:relative;padding-block:var(--spacing-xs);overflow-y:auto;max-height:var(--available-height);scroll-padding-block:1.5rem;list-style:none;margin:0}.SelectItem{box-sizing:border-box;outline:0;font-size:14px;line-height:1;padding:10px 16px 10px 10px;display:grid;gap:var(--spacing-sm);align-items:center;grid-template-columns:.75rem 1fr;cursor:default;user-select:none;transition:background var(--transition-fast)}@media(pointer:coarse){.SelectItem{padding-block:12px;font-size:15px}}.SelectItem[data-highlighted]{z-index:0;position:relative;background:var(--color-primary);color:#fff;border-radius:var(--radius-sm);margin-inline:var(--spacing-xs)}.SelectItem[data-highlighted]:before{display:none}.SelectItem[data-disabled]{color:var(--color-text-muted)}.SelectItemIndicator{grid-column-start:1;display:flex;align-items:center;justify-content:center;color:currentColor}.SelectItemIndicator svg{display:block;width:.75rem;height:.75rem}.SelectItemText{grid-column-start:2}@media(max-width:768px){.expense-manager{padding:var(--spacing-md)}.expense-manager h1{font-size:24px}.stats{grid-template-columns:1fr}.card-value{font-size:28px}.form-row{flex-direction:column}.form-group,.form-group.wide{flex:none;width:100%}.table-mobile-card{display:none}@media(max-width:640px){.table-container{background:transparent;border:none;box-shadow:none;overflow:visible;height:auto}table{min-width:0;background:transparent}table thead{display:none}table tbody{display:flex;flex-direction:column;gap:var(--spacing-md)}table tbody tr{display:block;padding:var(--spacing-md);border-radius:var(--radius-lg);border:1px solid var(--color-border);background:var(--color-surface);box-shadow:var(--shadow-sm)}table tbody td{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--spacing-md);padding:var(--spacing-sm) 0;border-bottom:1px solid var(--color-border-light);word-break:break-word;overflow-wrap:break-word}table tbody td:before{content:attr(data-label);font-weight:600;color:var(--color-text-secondary);font-size:12px;text-transform:uppercase;flex-shrink:0;min-width:50px}table tbody td:last-child{border-bottom:none;justify-content:flex-end;gap:var(--spacing-sm)}table tbody td:last-child:before{display:none}td.amount{text-align:left}td.amount:before{text-align:left}.category-badge-button{width:100%;text-align:center}.category-select-inline,.category-select-inline .SelectTrigger{width:100%}}}@media(max-width:480px){.actions{flex-direction:column}.actions button,.actions .btn{width:100%;justify-content:center}.import-section form{flex-direction:column}.import-section input[type=file]{width:100%}.toast-viewport{left:var(--spacing-md);right:var(--spacing-md);max-width:none}}.admin-layout{min-height:100vh;background:var(--color-bg);margin-left:220px}@media(max-width:768px){.admin-layout{margin-left:0}}.admin-sidebar{width:220px;flex-shrink:0;background:var(--sl-color-gray-6);border-right:1px solid var(--color-border);display:flex;flex-direction:column;position:fixed;top:0;left:0;height:100vh;overflow-y:auto;z-index:40}.admin-sidebar-header{padding:var(--spacing-lg);border-bottom:1px solid var(--color-border-light)}.admin-sidebar-back{display:inline-flex;align-items:center;gap:var(--spacing-xs);color:var(--color-text-secondary);text-decoration:none;font-size:14px;transition:color var(--transition-fast)}.admin-sidebar-back:hover{color:var(--color-primary)}.admin-sidebar-title{margin:var(--spacing-md) 0 0;font-size:13px;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.admin-nav{padding:var(--spacing-md);flex:1}.admin-nav-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--spacing-xs)}.admin-nav-item{margin:0}.admin-nav-link{display:flex;align-items:center;gap:var(--spacing-sm);padding:10px 12px;border-radius:var(--radius-md);color:var(--color-text-secondary);text-decoration:none;font-size:14px;font-weight:500;transition:all var(--transition-fast)}.admin-nav-link:hover{background:var(--color-surface-secondary);color:var(--color-text)}.admin-nav-link[aria-current=page]{background:var(--color-primary-light);color:var(--color-primary)}:root:not([data-theme=light]) .admin-nav-link[aria-current=page]{background:#263b73;color:var(--sl-color-accent-high)}.admin-nav-icon{width:20px;height:20px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.admin-content{min-width:0;overflow-x:hidden}.admin-mobile-header{display:none;position:sticky;top:0;z-index:50;padding:var(--spacing-md);background:var(--sl-color-gray-6);border-bottom:1px solid var(--color-border);align-items:center;gap:var(--spacing-md)}.admin-menu-toggle{display:flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border:none;border-radius:var(--radius-md);background:transparent;color:var(--color-text);cursor:pointer;transition:background var(--transition-fast)}.admin-menu-toggle:hover{background:var(--color-surface-secondary)}.admin-mobile-title{font-size:16px;font-weight:600;color:var(--color-text);margin:0}.admin-sidebar-overlay{display:none;position:fixed;inset:0;background:#00000080;backdrop-filter:blur(4px);z-index:90}@media(max-width:768px){.admin-sidebar{transform:translate(-100%);transition:transform .3s ease}.admin-sidebar[data-open=true]{transform:translate(0);z-index:300}.admin-sidebar-overlay[data-open=true]{display:block;z-index:299}.admin-mobile-header{display:flex}}.outsourcing-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:calc(100vh - 200px);padding:var(--spacing-xl);text-align:center}.outsourcing-placeholder-icon{font-size:64px;line-height:1;margin-bottom:var(--spacing-lg)}.outsourcing-placeholder h1{margin:0 0 var(--spacing-md);font-size:28px;font-weight:700;color:var(--color-text)}.outsourcing-placeholder-message{font-size:18px;color:var(--color-text-secondary);margin:0 0 var(--spacing-sm)}.outsourcing-placeholder-hint{font-size:14px;color:var(--color-text-muted);margin:0}html,body{margin:0;padding:0;overflow-x:hidden}
