:root{--ink-black: #0a0a0a;--ink: #1a1a1a;--ink-light: #525252;--paper-cream: #fffcf5;--paper: #faf8f3;--paper-stone: #f5f3ee;--paper-parchment: #ebe8e0;--border: #ebe8e0;--border-dark: #d6d3d1;--crimson: #c1121f;--forest: #2d6a4f;--emerald: #1b9073;--emerald-light: #d1fae5;--navy: #003049;--azure: #0077b6;--gold: #d4a574;--amber: #ffa500;--plum: #5a189a;--mauve: #9d4edd;--rose: #f43f5e;--rose-light: #ffe4e6;--sky: #0ea5e9;--sky-light: #e0f2fe;--need-color: #0077b6;--want-color: #9d4edd;--income-color: #2d6a4f;--savings-color: #c1121f;--font-display: "Playfair Display", serif;--font-heading: "Libre Baskerville", serif;--font-subheading: "DM Sans", sans-serif;--font-body: "DM Sans", sans-serif;--font-mono: "IBM Plex Mono", monospace;--font-decorative: "Italiana", serif;--text-display: 4.5rem;--text-headline-xl: 3rem;--text-headline-lg: 2.25rem;--text-headline-md: 1.5rem;--text-body-lg: 1.125rem;--text-body: 1rem;--text-body-sm: .875rem;--text-caption: .75rem;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: .875rem;--spacing-lg: 1.25rem;--spacing-xl: 1.5rem;--spacing-2xl: 2rem;--spacing-3xl: 2.75rem;--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--shadow-layered: 0 1px 2px 0 rgb(0 0 0 / .05), 0 4px 6px -1px rgb(0 0 0 / .08), 0 10px 15px -3px rgb(0 0 0 / .1);--timing-quick: .15s;--timing-base: .25s;--timing-slow: .4s;--ease-smooth: cubic-bezier(.4, 0, .2, 1)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-body);background-color:var(--paper);color:var(--ink);line-height:1.5}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:700;line-height:1.2}h1{font-size:2rem}h2{font-size:1.5rem}h3{font-size:1.25rem}.app{min-height:100vh;display:flex;flex-direction:column}.app-header{background:linear-gradient(to bottom,var(--paper-cream),var(--paper));border-bottom:2px solid var(--border);padding:var(--spacing-md) var(--spacing-2xl);display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:100;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.app-logo{font-family:var(--font-heading);font-size:1.5rem;font-weight:700;color:var(--ink-black);display:flex;align-items:center;gap:var(--spacing-sm);letter-spacing:-.02em}.app-logo-icon{height:2rem;width:2rem;object-fit:contain}.app-nav{display:flex;gap:var(--spacing-sm)}.nav-tab{padding:var(--spacing-sm) var(--spacing-md);border:none;background:transparent;font-family:var(--font-body);font-size:var(--text-caption);font-weight:700;text-transform:uppercase;letter-spacing:.15em;color:var(--ink-light);cursor:pointer;border-bottom:2px solid transparent;transition:all var(--timing-base) var(--ease-smooth);position:relative}.nav-tab:hover{color:var(--ink);border-bottom-color:var(--border-dark)}.nav-tab.active{color:var(--ink-black);border-bottom-color:var(--gold)}.app-controls{display:flex;align-items:center;gap:var(--spacing-md)}.month-selector{padding:var(--spacing-sm) var(--spacing-lg);border:2px solid var(--gold);border-radius:var(--radius-xl);font-family:var(--font-body);font-size:var(--text-body-sm);font-weight:600;background-color:var(--paper-cream);color:var(--ink-black);cursor:pointer;transition:all var(--timing-base) var(--ease-smooth);box-shadow:var(--shadow-sm)}.month-selector:hover{border-color:var(--amber);box-shadow:var(--shadow-md)}.month-selector:focus{outline:none;border-color:var(--amber);box-shadow:0 0 0 4px #d4a57433}.no-transactions-hint{font-size:.875rem;color:var(--ink-light);font-style:italic}.app-main{flex:1;padding:var(--spacing-2xl) var(--spacing-3xl);max-width:1600px;margin:0 auto;width:100%}.grid-12{display:grid;grid-template-columns:repeat(12,1fr);gap:var(--spacing-lg)}.col-span-1{grid-column:span 1}.col-span-2{grid-column:span 2}.col-span-3{grid-column:span 3}.col-span-4{grid-column:span 4}.col-span-5{grid-column:span 5}.col-span-6{grid-column:span 6}.col-span-7{grid-column:span 7}.col-span-8{grid-column:span 8}.col-span-9{grid-column:span 9}.col-span-10{grid-column:span 10}.col-span-11{grid-column:span 11}.col-span-12{grid-column:span 12}.layout-asymmetric-hero{display:grid;grid-template-columns:2fr 1fr;gap:var(--spacing-xl)}.layout-content-sidebar{display:grid;grid-template-columns:7fr 5fr;gap:var(--spacing-xl)}.layout-three-col{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-lg)}.card{background-color:#fff;border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--spacing-xl);box-shadow:var(--shadow-md);transition:all var(--timing-base) var(--ease-smooth)}.card:hover{box-shadow:var(--shadow-lg)}.card-title{font-family:var(--font-body);font-size:var(--text-caption);font-weight:700;color:var(--ink);margin-bottom:var(--spacing-md);text-transform:uppercase;letter-spacing:.15em}.card-value{font-family:var(--font-display);font-size:2.5rem;font-weight:700;color:var(--ink-black);line-height:1.1;font-variant-numeric:tabular-nums}.card-subtitle{font-size:var(--text-body-sm);color:var(--ink-light);margin-top:var(--spacing-sm);font-style:italic}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:2px solid var(--border);border-radius:50%;background-color:#fff;color:var(--ink-light);cursor:pointer;transition:all var(--timing-base) var(--ease-smooth);box-shadow:var(--shadow-sm)}.icon-btn:hover{background-color:var(--paper-stone);color:var(--ink-black);border-color:var(--border-dark);transform:scale(1.1);box-shadow:var(--shadow-md)}.icon-btn:active{transform:scale(.95)}.icon-btn-danger{color:var(--crimson);border-color:var(--rose)}.icon-btn-danger:hover{background:linear-gradient(135deg,var(--rose-light),#ffe4e6);color:var(--crimson);border-color:var(--crimson)}.icon-btn-success{background:linear-gradient(135deg,var(--emerald),var(--forest));color:#fff;border-color:var(--emerald)}.icon-btn-success:hover{background:linear-gradient(135deg,#059669,var(--emerald))}.icon-btn-secondary{background-color:var(--paper-stone);color:var(--ink);border-color:var(--border)}.icon-btn-secondary:hover{background-color:var(--paper-parchment);color:var(--ink-black);border-color:var(--border-dark)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:var(--spacing-sm) var(--spacing-lg);border:none;border-radius:var(--radius-md);font-family:var(--font-body);font-size:var(--text-body-sm);font-weight:600;cursor:pointer;transition:all var(--timing-base) var(--ease-smooth);box-shadow:var(--shadow-sm)}.btn:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn:active{transform:translateY(0);box-shadow:var(--shadow-sm)}.btn-sm{padding:var(--spacing-xs) var(--spacing-md);font-size:var(--text-caption)}.btn-primary{background:linear-gradient(135deg,var(--ink-black),var(--ink));color:#fff}.btn-primary:hover{background:linear-gradient(135deg,var(--ink),#333)}.btn-secondary{background-color:var(--paper-stone);color:var(--ink);border:2px solid var(--border)}.btn-secondary:hover{background-color:var(--paper-parchment);border-color:var(--border-dark)}.btn-danger{background:linear-gradient(135deg,var(--crimson),var(--rose));color:#fff}.btn-danger:hover{background:linear-gradient(135deg,#e11d48,var(--crimson))}.edit-input{padding:var(--spacing-sm) var(--spacing-md);border:2px solid var(--border);border-radius:var(--radius-md);font-family:var(--font-body);font-size:var(--text-body-sm);width:100%;transition:all var(--timing-base) var(--ease-smooth);background-color:#fff}.edit-input:hover{border-color:var(--border-dark)}.edit-input:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 4px #d4a57433;background-color:var(--paper-cream)}.edit-amount{width:120px;font-family:var(--font-mono);font-variant-numeric:tabular-nums}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#0a0a0a99;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn var(--timing-base) var(--ease-smooth)}.modal{background:linear-gradient(to bottom,white,var(--paper-cream));border-radius:var(--radius-xl);padding:var(--spacing-3xl);max-width:500px;width:90%;box-shadow:var(--shadow-xl);border:2px solid var(--gold);animation:slideIn var(--timing-slow) var(--ease-smooth)}.modal h3{font-family:var(--font-heading);font-size:var(--text-headline-md);color:var(--ink-black);margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-sm);border-bottom:2px solid var(--border)}.modal p{color:var(--ink);line-height:1.6;margin-bottom:var(--spacing-xl)}.modal-actions{display:flex;gap:var(--spacing-md);justify-content:flex-end}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.8}}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@media(max-width:1200px){.layout-asymmetric-hero,.layout-content-sidebar{grid-template-columns:1fr}.layout-three-col{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.app-header{flex-direction:column;gap:var(--spacing-md);padding:var(--spacing-md)}.app-nav{order:3;width:100%;justify-content:center}.app-main{padding:var(--spacing-lg)}.layout-three-col,.grid-12{grid-template-columns:1fr}[class^=col-span-]{grid-column:span 1}}.loading-state,.error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px;gap:var(--spacing-md);color:var(--ink-light)}.loading-state p,.error-state p{font-size:1.125rem}.error-state .error-message{color:var(--rose);font-weight:500}.dashboard{position:relative}.dashboard-controls{display:flex;justify-content:flex-end;align-items:center;margin-bottom:var(--spacing-lg);padding:var(--spacing-sm) 0;border-bottom:1px solid var(--border)}.decimal-toggle{display:flex;align-items:center;gap:var(--spacing-sm);cursor:pointer;font-size:var(--text-body-sm);font-weight:500;color:var(--ink);-webkit-user-select:none;user-select:none;padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-md);transition:all var(--timing-base) var(--ease-smooth)}.decimal-toggle input[type=checkbox]{cursor:pointer;width:18px;height:18px;accent-color:var(--gold)}.decimal-toggle:hover{background-color:var(--paper-stone)}.summary-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--spacing-xl);margin-bottom:var(--spacing-2xl)}.summary-card{position:relative;background:#fff;border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--spacing-xl);box-shadow:var(--shadow-layered);transition:all var(--timing-base) var(--ease-smooth);overflow:hidden}.summary-card:before{content:"";position:absolute;top:0;left:0;width:6px;height:100%;transition:width var(--timing-base) var(--ease-smooth)}.summary-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-xl)}.summary-card:hover:before{width:8px}.summary-card.income:before{background:linear-gradient(to bottom,var(--income-color),var(--emerald))}.summary-card.savings:before{background:linear-gradient(to bottom,var(--savings-color),var(--crimson))}.summary-card.expenses:before{background:linear-gradient(to bottom,var(--rose),var(--plum))}.summary-card.balance:before{background:linear-gradient(to bottom,var(--gold),var(--amber))}.summary-card .card-title{font-family:var(--font-body);font-size:var(--text-caption);font-weight:700;text-transform:uppercase;letter-spacing:.15em;color:var(--ink-light);margin-bottom:var(--spacing-md)}.summary-card .card-value{font-family:var(--font-display);font-size:2.5rem;font-weight:700;line-height:1.2;color:var(--ink-black);margin-bottom:var(--spacing-sm);font-variant-numeric:tabular-nums}.variance{display:inline-flex;align-items:center;gap:var(--spacing-xs);font-family:var(--font-mono);font-size:var(--text-caption);font-weight:600;padding:.25rem .75rem;border-radius:var(--radius-xl);margin-top:var(--spacing-sm);box-shadow:var(--shadow-sm);transition:all var(--timing-quick) var(--ease-smooth)}.variance.positive{background:linear-gradient(135deg,var(--emerald-light),#d1fae5);color:var(--forest);border:1px solid var(--emerald)}.variance.negative{background:linear-gradient(135deg,var(--rose-light),#ffe4e6);color:var(--crimson);border:1px solid var(--rose)}.variance:hover{transform:scale(1.05);box-shadow:var(--shadow-md)}.charts-section{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-xl);margin-bottom:var(--spacing-3xl)}.chart-card{position:relative;background:#fff;border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--spacing-xl);min-height:380px;box-shadow:var(--shadow-md);transition:all var(--timing-base) var(--ease-smooth)}.chart-card:after{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(to right,var(--gold),var(--amber),var(--gold));opacity:0;transition:opacity var(--timing-base) var(--ease-smooth)}.chart-card:hover{box-shadow:var(--shadow-xl);border-color:var(--gold)}.chart-card:hover:after{opacity:1}.chart-card h3{font-family:var(--font-heading);font-size:var(--text-headline-md);font-weight:700;color:var(--ink-black);margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-sm);border-bottom:2px solid var(--border)}.chart-container{width:100%;height:300px;position:relative}.chart-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--spacing-md);margin-top:var(--spacing-lg);padding-top:var(--spacing-md);border-top:1px solid var(--border)}.legend-item{display:flex;align-items:center;gap:var(--spacing-sm);font-size:var(--text-body-sm);color:var(--ink);transition:all var(--timing-quick) var(--ease-smooth)}.legend-item:hover{transform:translateY(-1px)}.legend-bullet{width:14px;height:14px;border-radius:50%;box-shadow:var(--shadow-sm);border:2px solid white}.legend-label{font-weight:600;font-family:var(--font-body)}.tables-section{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-xl);margin-bottom:var(--spacing-2xl)}.table-section{margin-bottom:0;background:#fff;border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--spacing-xl);box-shadow:var(--shadow-md)}.table-section h3{font-family:var(--font-heading);font-size:var(--text-headline-md);font-weight:700;color:var(--ink-black);margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-md);border-bottom:3px double var(--border-dark)}.budget-table{width:100%;border-collapse:collapse}.budget-table th,.budget-table td{padding:var(--spacing-md) var(--spacing-lg);text-align:left;border-bottom:1px solid var(--border)}.budget-table th{font-family:var(--font-body);font-weight:700;font-size:var(--text-caption);text-transform:uppercase;letter-spacing:.15em;color:var(--ink);background:linear-gradient(to bottom,var(--paper-stone),var(--paper));border-top:2px solid var(--border-dark);border-bottom:2px solid var(--border-dark);position:sticky;top:0;z-index:10}.budget-table td{font-size:var(--text-body-sm);color:var(--ink);transition:background-color var(--timing-quick) var(--ease-smooth)}.budget-table tbody tr{transition:all var(--timing-quick) var(--ease-smooth)}.budget-table tbody tr:nth-child(odd){background-color:var(--paper-cream)}.budget-table tbody tr:hover{background-color:var(--paper-stone);box-shadow:inset 0 0 0 1px var(--border-dark)}.budget-table tfoot .total-row{border-top:3px double var(--ink);background:linear-gradient(to bottom,var(--paper-stone),var(--paper-parchment));font-weight:700}.budget-table tfoot .total-row td{padding-top:var(--spacing-md);padding-bottom:var(--spacing-md);font-size:var(--text-body);color:var(--ink-black);font-family:var(--font-mono)}.budget-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color .15s ease}.budget-table th.sortable:hover{background-color:var(--border)}.sort-indicator{margin-left:var(--spacing-xs);font-size:.65rem}.sort-indicator.inactive{opacity:.3}.sort-indicator.active{color:var(--sky)}.planned-cell{position:relative}.editable-planned{cursor:pointer;padding:.25rem .5rem;border-radius:var(--radius-sm);transition:background-color .15s ease}.editable-planned:hover{background-color:var(--sky-light)}.planned-edit{display:flex;align-items:center;gap:var(--spacing-xs)}.planned-input{width:80px;padding:.25rem .5rem;border:1px solid var(--border-dark);border-radius:var(--radius-sm);font-size:.875rem;font-family:var(--font-body)}.planned-input:focus{outline:none;border-color:var(--sky);box-shadow:0 0 0 2px var(--sky-light)}.btn-icon{width:24px;height:24px;border:none;border-radius:var(--radius-sm);cursor:pointer;font-size:.75rem;display:flex;align-items:center;justify-content:center;transition:background-color .15s ease}.btn-icon.save{background-color:var(--emerald-light);color:var(--emerald)}.btn-icon.save:hover{background-color:var(--emerald);color:#fff}.btn-icon.cancel{background-color:var(--rose-light);color:var(--rose)}.btn-icon.cancel:hover{background-color:var(--rose);color:#fff}.type-badge{display:inline-block;padding:.25rem .75rem;border-radius:var(--radius-xl);font-size:var(--text-caption);font-weight:700;text-transform:uppercase;letter-spacing:.1em;box-shadow:var(--shadow-sm);transition:all var(--timing-quick) var(--ease-smooth)}.type-badge:hover{transform:scale(1.05)}.type-badge.need{background:linear-gradient(135deg,#dbeafe,#bfdbfe);color:var(--navy);border:1px solid var(--need-color)}.type-badge.want{background:linear-gradient(135deg,#f3e8ff,#e9d5ff);color:var(--plum);border:1px solid var(--want-color)}.type-badge.income{background:linear-gradient(135deg,var(--emerald-light),#a7f3d0);color:var(--forest);border:1px solid var(--income-color)}.type-badge.savings{background:linear-gradient(135deg,var(--sky-light),#bae6fd);color:var(--crimson);border:1px solid var(--savings-color)}.amount{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-weight:600;font-size:var(--text-body-sm)}.amount.positive{color:var(--forest)}.amount.negative{color:var(--crimson)}.difference{font-family:var(--font-mono);font-weight:700;font-size:var(--text-body-sm)}.difference.under-budget{color:var(--emerald)}.difference.over-budget{color:var(--crimson)}.difference.on-budget{color:var(--ink-light)}.recharts-tooltip-wrapper{outline:none}.custom-tooltip{background:linear-gradient(to bottom,white,var(--paper-cream));border:2px solid var(--gold);border-radius:var(--radius-lg);padding:var(--spacing-md) var(--spacing-lg);box-shadow:var(--shadow-xl);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.custom-tooltip .label{font-family:var(--font-heading);font-weight:700;font-size:var(--text-body);color:var(--ink-black);margin-bottom:var(--spacing-sm);padding-bottom:var(--spacing-xs);border-bottom:1px solid var(--border)}.custom-tooltip .value{font-family:var(--font-mono);font-weight:600;color:var(--ink);font-size:var(--text-body-sm)}@media(max-width:768px){.summary-cards,.charts-section,.tables-section{grid-template-columns:1fr}.budget-table{font-size:.75rem}.budget-table th,.budget-table td{padding:var(--spacing-xs) var(--spacing-sm)}}.transactions{display:flex;flex-direction:column;gap:var(--spacing-lg)}.transactions-filters{display:flex;flex-wrap:wrap;gap:var(--spacing-md);align-items:flex-end;padding:var(--spacing-lg);background:linear-gradient(to bottom,white,var(--paper-cream));border:2px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);margin-bottom:var(--spacing-lg)}.filter-group{display:flex;flex-direction:column;gap:var(--spacing-xs)}.filter-group label{font-size:var(--text-caption);font-weight:700;text-transform:uppercase;letter-spacing:.15em;color:var(--ink)}.filter-group select{padding:var(--spacing-sm) var(--spacing-md);border:2px solid var(--border);border-radius:var(--radius-md);font-family:var(--font-body);font-size:var(--text-body-sm);font-weight:500;background-color:#fff;min-width:140px;transition:all var(--timing-base) var(--ease-smooth)}.filter-group select:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 4px #d4a57433}.filter-group select:disabled{background-color:var(--paper-dark);color:var(--ink-light);cursor:not-allowed}.category-filter-group{position:relative}.category-filter-container{display:flex;gap:var(--spacing-xs);position:relative}.category-filter-button{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--border);border-radius:var(--radius-md);font-family:var(--font-body);font-size:.875rem;background-color:#fff;min-width:180px;cursor:pointer;transition:all .15s ease}.category-filter-button:hover:not(:disabled){border-color:var(--sky);background-color:var(--paper-dark)}.category-filter-button:disabled{background-color:var(--paper-dark);color:var(--ink-light);cursor:not-allowed}.category-filter-button .dropdown-arrow{font-size:.625rem;color:var(--ink-light)}.clear-filter-btn{display:flex;align-items:center;justify-content:center;width:32px;height:36px;padding:0;border:1px solid var(--border);border-radius:var(--radius-md);background-color:#fff;color:var(--ink-light);font-size:1.25rem;cursor:pointer;transition:all .15s ease}.clear-filter-btn:hover:not(:disabled){background-color:var(--rose-light);color:var(--rose);border-color:var(--rose)}.clear-filter-btn:disabled{background-color:var(--paper-dark);cursor:not-allowed;opacity:.5}.category-filter-dropdown{position:absolute;top:calc(100% + 4px);left:0;background-color:#fff;border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:0 4px 12px #0000001a;max-height:300px;overflow-y:auto;z-index:100;min-width:200px}.category-checkbox-label{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);cursor:pointer;transition:background-color .15s ease}.category-checkbox-label:hover{background-color:var(--paper-dark)}.category-checkbox-label input[type=checkbox]{cursor:pointer;width:16px;height:16px}.category-checkbox-label span{font-size:.875rem;color:var(--ink)}.checkbox-label{display:flex;align-items:center;gap:var(--spacing-sm);font-size:.875rem;font-weight:500;color:var(--ink);cursor:pointer;text-transform:none;letter-spacing:normal}.checkbox-label input[type=checkbox]{width:1rem;height:1rem;cursor:pointer}.uncategorized-badge{display:inline-flex;align-items:center;justify-content:center;min-width:1.25rem;height:1.25rem;padding:0 .375rem;background-color:var(--rose);color:#fff;font-size:.7rem;font-weight:700;border-radius:9999px}.filter-stats{margin-left:auto;font-size:.875rem;color:var(--ink-light)}.bulk-actions{display:flex;align-items:center;gap:var(--spacing-sm);margin-left:var(--spacing-md);padding-left:var(--spacing-md);border-left:1px solid var(--border)}.bulk-actions .selected-count{font-size:.875rem;font-weight:500;color:var(--ink)}.bulk-category-select{padding:.375rem .75rem;font-size:.875rem;border:1px solid var(--border-dark);border-radius:var(--radius-sm);background-color:#fff;cursor:pointer}.bulk-category-select:focus{outline:none;border-color:var(--sky);box-shadow:0 0 0 2px var(--sky-light)}.apply-rules-section{display:flex;align-items:center;gap:var(--spacing-sm);margin-left:var(--spacing-md)}.apply-rules-result{font-size:.75rem;color:var(--emerald);font-weight:500}.checkbox-cell{width:50px;text-align:center}.checkbox-cell input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:var(--gold)}.transactions-table{width:100%;border-collapse:collapse;background:#fff;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-md)}.transactions-table th,.transactions-table td{padding:var(--spacing-sm) var(--spacing-md);text-align:left;border-bottom:1px solid var(--border)}.transactions-table th{font-family:var(--font-body);font-weight:700;font-size:var(--text-caption);text-transform:uppercase;letter-spacing:.15em;color:var(--ink);background:linear-gradient(to bottom,var(--paper-stone),var(--paper));border-top:3px solid var(--gold);border-bottom:2px solid var(--border-dark);position:sticky;top:0;z-index:10;box-shadow:0 2px 4px #0000000d}.transactions-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:all var(--timing-base) var(--ease-smooth)}.transactions-table th.sortable:hover{background:var(--paper-stone);color:var(--ink-black)}.transactions-table td{font-size:var(--text-body-sm);vertical-align:top;transition:all var(--timing-quick) var(--ease-smooth)}.transactions-table tbody tr{cursor:pointer;transition:all var(--timing-base) var(--ease-smooth);border-left:3px solid transparent}.transactions-table tbody tr:nth-child(2n){background-color:var(--paper-cream)}.transactions-table tbody tr:hover{background-color:var(--paper-stone);border-left-color:var(--gold);box-shadow:inset 0 0 0 1px var(--border-dark)}.transactions-table tbody tr.uncategorized{background:linear-gradient(to right,var(--rose-light),transparent 5%);border-left-color:var(--crimson)}.transactions-table tbody tr.uncategorized:hover{background:linear-gradient(to right,#fecdd3,var(--paper-stone) 5%)}.transactions-table tbody tr.selected{background:linear-gradient(to right,var(--sky-light),transparent 5%);border-left-color:var(--azure)}.transactions-table tbody tr.selected:hover{background:linear-gradient(to right,#bae6fd,var(--paper-stone) 5%)}.transactions-table tbody tr.selected.uncategorized{background:linear-gradient(to right,#fecdd3,transparent 5%);border-left-color:var(--crimson)}.transactions-table tbody tr.editing{background:linear-gradient(to right,var(--sky-light),var(--paper-cream) 5%);box-shadow:inset 0 0 0 2px var(--azure)}.date-cell{white-space:nowrap;font-family:var(--font-mono);color:var(--ink-light);font-size:var(--text-body-sm)}.description-cell{max-width:350px}.description-text{font-weight:600;color:var(--ink-black);line-height:1.4}.original-description{font-size:var(--text-caption);color:var(--ink-light);margin-top:var(--spacing-xs);font-style:italic}.transaction-notes{font-size:var(--text-caption);color:var(--azure);font-style:italic;margin-top:var(--spacing-xs);padding-left:var(--spacing-sm);border-left:2px solid var(--azure)}.amount-cell{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-weight:700;font-size:var(--text-body);white-space:nowrap}.amount-cell.positive{color:var(--forest)}.amount-cell.negative{color:var(--ink-black)}.uncategorized-label{color:var(--crimson);font-weight:700;font-style:italic;text-transform:uppercase;font-size:var(--text-caption);letter-spacing:.05em}.type-badge.none{background-color:var(--paper-dark);color:var(--ink-light)}.type-cell-content{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-sm)}.edit-type-row{display:flex;align-items:center;gap:var(--spacing-sm)}.row-actions{display:flex;align-items:center;gap:var(--spacing-xs);flex-shrink:0}.edit-input{padding:.25rem .5rem;border:1px solid var(--border);border-radius:var(--radius-sm);font-family:var(--font-body);font-size:.875rem;width:100%}.edit-input:focus{outline:none;border-color:var(--sky);box-shadow:0 0 0 2px var(--sky-light)}.edit-amount{width:100px}.empty-state{text-align:center;padding:var(--spacing-xl)!important;color:var(--ink-light)}@media(max-width:768px){.transactions-filters{flex-direction:column;align-items:stretch}.filter-stats{margin-left:0}.transactions-table{font-size:.75rem}.transactions-table th,.transactions-table td{padding:var(--spacing-xs) var(--spacing-sm)}.description-cell{max-width:150px}}.import{max-width:800px;margin:0 auto}.import-mapping{max-height:calc(100vh - 120px);overflow-y:auto;display:flex;flex-direction:column}.import-mapping .import-actions{position:sticky;bottom:0;background:linear-gradient(to top,white,var(--paper-cream));padding-top:var(--spacing-lg);margin-top:var(--spacing-xl);border-top:2px solid var(--border);box-shadow:0 -4px 8px #0000000d}.import-header{margin-bottom:var(--spacing-xl);text-align:center}.import-header h2{font-family:var(--font-heading);font-size:var(--text-headline-lg);color:var(--ink-black);margin-bottom:var(--spacing-sm);letter-spacing:-.02em}.import-header p{color:var(--ink);font-size:var(--text-body-lg);line-height:1.6}.upload-zone{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-2xl);border:3px dashed var(--border-dark);border-radius:var(--radius-xl);background:linear-gradient(to bottom,white,var(--paper-cream));cursor:pointer;transition:all var(--timing-base) var(--ease-smooth);color:var(--ink-light);position:relative;overflow:hidden}.upload-zone:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,transparent,var(--gold));opacity:0;transition:opacity var(--timing-base) var(--ease-smooth)}.upload-zone:hover{border-color:var(--gold);background:linear-gradient(to bottom,var(--paper-cream),white);color:var(--ink-black);transform:translateY(-2px);box-shadow:var(--shadow-xl)}.upload-zone:hover:before{opacity:.05}.upload-zone svg{margin-bottom:var(--spacing-lg);position:relative;z-index:1;transition:transform var(--timing-base) var(--ease-smooth)}.upload-zone:hover svg{transform:scale(1.1)}.upload-text{font-family:var(--font-heading);font-weight:700;font-size:var(--text-body-lg);color:var(--ink-black);margin-bottom:var(--spacing-sm);position:relative;z-index:1}.upload-hint{font-size:var(--text-body-sm);color:var(--ink-light);position:relative;z-index:1}.import-error{margin-top:var(--spacing-lg);padding:var(--spacing-md) var(--spacing-lg);background:linear-gradient(135deg,var(--rose-light),#ffe4e6);color:var(--crimson);border-radius:var(--radius-lg);border:2px solid var(--rose);font-size:var(--text-body-sm);font-weight:600;box-shadow:var(--shadow-md)}.mapping-form{display:flex;flex-direction:column;gap:var(--spacing-md);margin-bottom:var(--spacing-xl);padding:var(--spacing-lg);background:#fff;border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.mapping-field{display:flex;flex-direction:column;gap:var(--spacing-sm)}.mapping-field label{font-size:var(--text-caption);font-weight:700;text-transform:uppercase;letter-spacing:.15em;color:var(--ink)}.mapping-field input,.mapping-field select{padding:var(--spacing-sm) var(--spacing-md);border:2px solid var(--border);border-radius:var(--radius-md);font-family:var(--font-body);font-size:var(--text-body-sm);font-weight:500;background-color:#fff;transition:all var(--timing-base) var(--ease-smooth)}.mapping-field input:hover,.mapping-field select:hover{border-color:var(--border-dark)}.mapping-field input:focus,.mapping-field select:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 4px #d4a57433;background-color:var(--paper-cream)}.mapping-checkbox{flex-direction:row;align-items:center;padding-bottom:var(--spacing-md);border-bottom:2px solid var(--border);margin-bottom:var(--spacing-md)}.mapping-checkbox label{display:flex;align-items:center;gap:var(--spacing-md);cursor:pointer;font-weight:600;color:var(--ink);transition:color var(--timing-quick) var(--ease-smooth)}.mapping-checkbox label:hover{color:var(--ink-black)}.mapping-checkbox input[type=checkbox]{width:18px;height:18px;accent-color:var(--gold);cursor:pointer}.raw-data-preview{margin-bottom:var(--spacing-xl)}.raw-data-preview h4{font-family:var(--font-heading);font-size:var(--text-headline-md);font-weight:700;margin-bottom:var(--spacing-md);color:var(--ink-black);padding-bottom:var(--spacing-xs);border-bottom:2px solid var(--border)}.raw-data-table-wrapper{overflow-x:auto;border:2px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);background:#fff}.raw-data-table{font-size:var(--text-caption);white-space:nowrap;font-family:var(--font-mono)}.raw-data-table td{max-width:200px;overflow:hidden;text-overflow:ellipsis;padding:var(--spacing-sm) var(--spacing-md)}.raw-data-table .row-label{font-weight:700;color:var(--ink);background:linear-gradient(to bottom,var(--paper-stone),var(--paper));min-width:80px;text-transform:uppercase;letter-spacing:.05em}.raw-data-table .header-row{background:linear-gradient(135deg,var(--sky-light),#e0f2fe);border-bottom:2px solid var(--azure)}.raw-data-table .header-row .row-label{background:linear-gradient(135deg,var(--sky-light),#e0f2fe);color:var(--navy);font-weight:700}.raw-data-table .skipped-row{background-color:var(--paper-parchment);opacity:.7}.raw-data-table .skipped-row .row-label{background-color:var(--paper-parchment);color:var(--ink-light);font-style:italic}.raw-data-table .column-numbers th{font-size:var(--text-caption);font-weight:700;color:var(--ink);background:linear-gradient(to bottom,var(--paper-stone),var(--paper));text-align:center;padding:var(--spacing-sm);text-transform:uppercase;letter-spacing:.1em}.mapping-preview{margin-bottom:var(--spacing-3xl)}.mapping-preview h4{font-family:var(--font-heading);font-size:var(--text-headline-md);font-weight:700;margin-bottom:var(--spacing-lg);color:var(--ink-black);padding-bottom:var(--spacing-sm);border-bottom:2px solid var(--border)}.preview-table{width:100%;border-collapse:collapse;font-size:var(--text-body-sm)}.preview-table th,.preview-table td{padding:var(--spacing-md) var(--spacing-lg);text-align:left;border-bottom:1px solid var(--border)}.preview-table th{font-weight:700;font-size:var(--text-caption);text-transform:uppercase;letter-spacing:.15em;color:var(--ink);background:linear-gradient(to bottom,var(--paper-stone),var(--paper));border-top:3px solid var(--gold);border-bottom:2px solid var(--border-dark)}.preview-table tbody tr:nth-child(2n){background-color:var(--paper-cream)}.preview-table tbody tr:hover{background-color:var(--paper-stone)}.preview-table td.positive{color:var(--forest);font-family:var(--font-mono);font-weight:700}.preview-table td.negative{color:var(--ink-black);font-family:var(--font-mono);font-weight:700}.preview-scroll{max-height:450px;overflow-y:auto;margin-bottom:var(--spacing-3xl);border:2px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);background:#fff}.preview-scroll .preview-table{margin:0}.preview-scroll .preview-table th{position:sticky;top:0;z-index:10;box-shadow:0 2px 4px #0000000d}.import-filter{display:flex;align-items:center;gap:var(--spacing-lg);margin-bottom:var(--spacing-xl);padding:var(--spacing-lg) var(--spacing-xl);background:linear-gradient(to bottom,var(--paper-stone),var(--paper-cream));border-radius:var(--radius-lg);border:2px solid var(--border);box-shadow:var(--shadow-sm)}.import-filter label{font-size:var(--text-caption);font-weight:700;text-transform:uppercase;letter-spacing:.15em;color:var(--ink);white-space:nowrap}.import-filter select{flex:1;max-width:350px}.import-actions{display:flex;gap:var(--spacing-md);justify-content:flex-end}.import-complete{text-align:center;padding:var(--spacing-3xl);background:linear-gradient(to bottom,white,var(--paper-cream));border-radius:var(--radius-xl);border:2px solid var(--emerald);box-shadow:var(--shadow-xl)}.complete-icon{color:var(--forest);margin-bottom:var(--spacing-lg);animation:fadeIn var(--timing-slow) var(--ease-smooth)}.import-complete h2{font-family:var(--font-heading);font-size:var(--text-headline-lg);color:var(--ink-black);margin-bottom:var(--spacing-md)}.import-complete p{color:var(--ink);font-size:var(--text-body-lg);line-height:1.6}.complete-hint{margin-top:var(--spacing-lg);font-size:var(--text-body-sm);color:var(--ink-light);font-style:italic}.import-complete .import-actions{justify-content:center;margin-top:var(--spacing-3xl)}.categories{max-width:1200px;margin:0 auto}.categories-tabs{display:flex;gap:var(--spacing-sm);margin-bottom:var(--spacing-xl);border-bottom:3px solid var(--border);padding-bottom:var(--spacing-xs)}.tab-btn{padding:var(--spacing-sm) var(--spacing-md);border:none;background:transparent;font-family:var(--font-body);font-size:var(--text-body-sm);font-weight:700;text-transform:uppercase;letter-spacing:.15em;color:var(--ink-light);cursor:pointer;border-radius:var(--radius-md) var(--radius-md) 0 0;transition:all var(--timing-base) var(--ease-smooth);position:relative}.tab-btn:hover{color:var(--ink);background-color:var(--paper-cream)}.tab-btn.active{color:var(--ink-black);background-color:var(--paper-stone)}.tab-btn.active:after{content:"";position:absolute;bottom:-3px;left:0;right:0;height:3px;background:linear-gradient(to right,var(--gold),var(--amber),var(--gold))}.content-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-xl);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--border)}.content-header p{color:var(--ink);font-size:var(--text-body-lg);line-height:1.6}.content-header .btn{display:flex;align-items:center;gap:var(--spacing-sm)}.form-card{margin-bottom:var(--spacing-xl);padding:var(--spacing-lg);background:linear-gradient(to bottom,white,var(--paper-cream));border:2px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}.form-card h3{font-family:var(--font-heading);font-size:var(--text-headline-md);color:var(--ink-black);margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-xs);border-bottom:2px solid var(--border)}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.form-field{display:flex;flex-direction:column;gap:var(--spacing-sm)}.form-field label{font-size:var(--text-caption);font-weight:700;text-transform:uppercase;letter-spacing:.15em;color:var(--ink)}.form-field input,.form-field select{padding:var(--spacing-sm) var(--spacing-md);border:2px solid var(--border);border-radius:var(--radius-md);font-family:var(--font-body);font-size:var(--text-body-sm);font-weight:500;background-color:#fff;transition:all var(--timing-base) var(--ease-smooth)}.form-field input:hover,.form-field select:hover{border-color:var(--border-dark)}.form-field input:focus,.form-field select:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 4px #d4a57433;background-color:var(--paper-cream)}.field-hint{font-size:var(--text-caption);color:var(--ink-light);font-style:italic}.color-picker{display:flex;gap:var(--spacing-sm);flex-wrap:wrap}.color-swatch{width:36px;height:36px;border-radius:50%;border:3px solid transparent;cursor:pointer;transition:all var(--timing-base) var(--ease-smooth);box-shadow:var(--shadow-sm)}.color-swatch:hover{transform:scale(1.15);box-shadow:var(--shadow-md)}.color-swatch.selected{border-color:var(--gold);box-shadow:0 0 0 2px #fff,0 0 0 5px var(--gold);transform:scale(1.1)}.form-error{padding:var(--spacing-md) var(--spacing-lg);background:linear-gradient(135deg,var(--rose-light),#ffe4e6);color:var(--crimson);border-radius:var(--radius-lg);border:2px solid var(--rose);font-size:var(--text-body-sm);font-weight:600;margin-bottom:var(--spacing-lg);box-shadow:var(--shadow-sm)}.form-actions{display:flex;gap:var(--spacing-md);justify-content:flex-end;padding-top:var(--spacing-md);border-top:1px solid var(--border)}.categories-table-container{display:flex;flex-direction:column;gap:var(--spacing-xl)}.category-group{min-height:auto;background:#fff;border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--spacing-lg);box-shadow:var(--shadow-md);transition:all var(--timing-base) var(--ease-smooth)}.category-group:hover{box-shadow:var(--shadow-lg)}.group-title{font-family:var(--font-heading);font-size:var(--text-headline-md);font-weight:700;text-transform:uppercase;letter-spacing:.1em;margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-sm);border-bottom:3px solid var(--border);position:relative}.group-title:before{content:"";position:absolute;bottom:-3px;left:0;width:60px;height:3px}.group-title.type-need{color:var(--navy)}.group-title.type-need:before{background:linear-gradient(to right,var(--need-color),var(--azure))}.group-title.type-want{color:var(--plum)}.group-title.type-want:before{background:linear-gradient(to right,var(--want-color),var(--mauve))}.group-title.type-income{color:var(--forest)}.group-title.type-income:before{background:linear-gradient(to right,var(--income-color),var(--emerald))}.group-title.type-savings{color:var(--crimson)}.group-title.type-savings:before{background:linear-gradient(to right,var(--savings-color),var(--rose))}.categories-table{width:100%;border-collapse:collapse}.categories-table th,.categories-table td{padding:var(--spacing-sm) var(--spacing-md);text-align:left;border-bottom:1px solid var(--border)}.categories-table th{font-family:var(--font-body);font-weight:700;font-size:var(--text-caption);text-transform:uppercase;letter-spacing:.15em;color:var(--ink);background:linear-gradient(to bottom,var(--paper-stone),var(--paper-cream));border-bottom:2px solid var(--border-dark)}.categories-table td{font-size:var(--text-body-sm);transition:all var(--timing-quick) var(--ease-smooth)}.categories-table tbody tr{transition:all var(--timing-base) var(--ease-smooth)}.categories-table tbody tr:nth-child(2n){background-color:var(--paper-cream)}.categories-table tbody tr:hover{background-color:var(--paper-stone);box-shadow:inset 0 0 0 1px var(--border-dark)}.categories-table .category-color{width:16px;height:16px;border-radius:50%;display:inline-block;box-shadow:var(--shadow-sm);border:2px solid white}.categories-table .category-name{font-weight:600;color:var(--ink-black)}.categories-table .amount-header{text-align:right}.categories-table .amount{font-family:var(--font-mono);font-weight:700;text-align:right;font-variant-numeric:tabular-nums}.categories-table .actions-cell{width:100px;text-align:right}.categories-table .actions-cell .icon-btn{opacity:0;transition:opacity .2s ease}.categories-table tbody tr:hover .icon-btn{opacity:1}.categories-table .inline-input{width:100%;padding:.25rem .5rem;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.875rem;font-family:var(--font-body);background-color:var(--paper);color:var(--ink)}.categories-table .inline-input:focus{outline:none;border-color:var(--need-color)}.categories-table .amount .inline-input{text-align:right}.categories-table .inline-select{width:100%;padding:.25rem .5rem;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.875rem;font-family:var(--font-body);background-color:var(--paper);color:var(--ink)}.categories-table .inline-select:focus{outline:none;border-color:var(--need-color)}.color-picker-inline{display:flex;gap:.25rem;flex-wrap:wrap;max-width:120px}.color-swatch-small{width:16px;height:16px;border-radius:50%;border:2px solid transparent;cursor:pointer;padding:0;transition:all .2s ease}.color-swatch-small:hover{transform:scale(1.2)}.color-swatch-small.selected{border-color:var(--ink);transform:scale(1.15)}.categories-table tbody tr .icon-btn{opacity:0}.categories-table tbody tr:hover .icon-btn,.categories-table tbody tr .icon-btn:focus{opacity:1}.categories-table .actions-cell .icon-btn.icon-btn-success,.categories-table tbody tr .icon-btn.icon-btn-success,.categories-table .actions-cell:has(.icon-btn-success) .icon-btn,.categories-table tbody tr:has(.inline-input) .actions-cell .icon-btn{opacity:1!important}.empty-text{color:var(--ink-light);font-size:.875rem;font-style:italic}.rules-table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-md)}.rules-table th,.rules-table td{padding:var(--spacing-md) var(--spacing-lg);text-align:left;border-bottom:1px solid var(--border)}.rules-table th{font-family:var(--font-body);font-weight:700;font-size:var(--text-caption);text-transform:uppercase;letter-spacing:.15em;color:var(--ink);background:linear-gradient(to bottom,var(--paper-stone),var(--paper-cream));border-bottom:2px solid var(--border-dark)}.rules-table td{font-size:var(--text-body-sm)}.rules-table tbody tr:nth-child(2n){background-color:var(--paper-cream)}.rules-table tbody tr:hover{background-color:var(--paper-stone);box-shadow:inset 0 0 0 1px var(--border-dark)}.priority-cell{font-family:var(--font-mono);font-weight:700;color:var(--ink);font-size:var(--text-body)}.pattern-cell code{background:linear-gradient(135deg,var(--paper-stone),var(--paper-parchment));padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-md);font-family:var(--font-mono);font-size:var(--text-body-sm);color:var(--navy);border:1px solid var(--border);box-shadow:var(--shadow-sm)}.settings-container{padding:var(--spacing-3xl);max-width:1000px;margin:0 auto}.settings-container h1{font-family:var(--font-heading);font-size:var(--text-headline-xl);margin-bottom:var(--spacing-3xl);color:var(--ink-black);text-align:center;letter-spacing:-.02em;padding-bottom:var(--spacing-lg);border-bottom:3px solid var(--gold)}.settings-section{background:linear-gradient(to bottom,white,var(--paper-cream));border-radius:var(--radius-lg);padding:var(--spacing-3xl);box-shadow:var(--shadow-lg);border:2px solid var(--border);transition:all var(--timing-base) var(--ease-smooth)}.settings-section:hover{box-shadow:var(--shadow-xl);border-color:var(--border-dark)}.settings-section h2{font-family:var(--font-heading);font-size:var(--text-headline-lg);margin-bottom:var(--spacing-md);color:var(--ink-black);padding-bottom:var(--spacing-sm);border-bottom:2px solid var(--border)}.section-description{color:var(--ink);margin-bottom:var(--spacing-xl);line-height:1.7;font-size:var(--text-body-lg)}.database-info-card{background:linear-gradient(to bottom,var(--paper-stone),var(--paper-cream));border:2px solid var(--border);border-radius:var(--radius-lg);padding:var(--spacing-xl);margin-bottom:var(--spacing-3xl);box-shadow:var(--shadow-md)}.info-row{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md) 0;transition:background-color var(--timing-quick) var(--ease-smooth)}.info-row:not(:last-child){border-bottom:1px solid var(--border)}.info-row:hover{background-color:var(--paper-cream);padding-left:var(--spacing-sm);padding-right:var(--spacing-sm);margin:0 calc(-1 * var(--spacing-sm))}.info-label{font-weight:700;font-size:var(--text-caption);text-transform:uppercase;letter-spacing:.15em;color:var(--ink)}.info-value{font-family:var(--font-mono);font-size:var(--text-body-sm);color:var(--ink-black);word-break:break-all;font-weight:600}.path-input-group{margin-bottom:var(--spacing-xl)}.path-input-group label{display:block;font-weight:700;font-size:var(--text-caption);text-transform:uppercase;letter-spacing:.15em;margin-bottom:var(--spacing-md);color:var(--ink)}.path-input-row{display:flex;gap:var(--spacing-md);margin-bottom:var(--spacing-sm)}.path-input{flex:1;padding:var(--spacing-md) var(--spacing-lg);border:2px solid var(--border);border-radius:var(--radius-md);font-family:var(--font-mono);font-size:var(--text-body-sm);background:#fff;color:var(--ink-black);transition:all var(--timing-base) var(--ease-smooth)}.path-input:hover{border-color:var(--border-dark)}.path-input:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 4px #d4a57433;background-color:var(--paper-cream)}.input-hint{display:block;color:var(--ink-light);font-size:var(--text-body-sm);line-height:1.6;font-style:italic;margin-top:var(--spacing-sm)}.validation-error,.error-message{background:linear-gradient(135deg,var(--rose-light),#ffe4e6);border:2px solid var(--crimson);color:var(--crimson);padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--radius-lg);margin-bottom:var(--spacing-lg);font-weight:600;font-size:var(--text-body-sm);box-shadow:var(--shadow-md)}.validation-success,.success-message{background:linear-gradient(135deg,var(--emerald-light),#d1fae5);border:2px solid var(--forest);color:var(--forest);padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--radius-lg);margin-bottom:var(--spacing-lg);font-weight:700;font-size:var(--text-body-sm);box-shadow:var(--shadow-md)}.button-group{display:flex;gap:var(--spacing-md);margin-top:var(--spacing-xl);padding-top:var(--spacing-md);border-top:2px solid var(--border)}.loading{text-align:center;padding:var(--spacing-3xl) var(--spacing-xl);color:var(--ink-light);font-size:var(--text-body-lg);font-style:italic}.error{text-align:center;padding:var(--spacing-3xl) var(--spacing-xl);color:var(--crimson);font-size:var(--text-body-lg);font-weight:600}.create-new-section{background:linear-gradient(to bottom,var(--paper-cream),white);border:3px dashed var(--gold);border-radius:var(--radius-xl);padding:var(--spacing-xl);margin-bottom:var(--spacing-xl);text-align:center;transition:all var(--timing-base) var(--ease-smooth)}.create-new-section:hover{background:linear-gradient(to bottom,white,var(--paper-cream));border-color:var(--amber);box-shadow:var(--shadow-lg)}.create-new-section h3{font-family:var(--font-heading);font-size:var(--text-headline-md);margin-bottom:var(--spacing-sm);color:var(--ink-black)}.create-new-section>p{color:var(--ink);font-size:var(--text-body);margin-bottom:var(--spacing-lg);line-height:1.6}.create-new-form{margin-top:1rem;display:flex;flex-direction:column;gap:1rem}.create-new-form .path-input-row{display:flex;gap:.5rem}.create-new-form .path-input{flex:1}.divider{text-align:center;margin:var(--spacing-xl) 0;color:var(--ink);font-weight:700;font-size:var(--text-caption);text-transform:uppercase;letter-spacing:.2em;position:relative}.divider:before,.divider:after{content:"";position:absolute;top:50%;width:42%;height:2px;background:linear-gradient(to right,transparent,var(--border-dark),transparent)}.divider:before{left:0}.divider:after{right:0}.settings-section+.settings-section{margin-top:var(--spacing-xl)}.file-operations{display:flex;gap:var(--spacing-md);flex-wrap:wrap}.browser-notice{background:linear-gradient(135deg,#fff3cd,#ffe8a1);border:2px solid var(--amber);color:#856404;padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--radius-lg);margin-bottom:var(--spacing-xl);font-size:var(--text-body-sm);font-weight:600;box-shadow:var(--shadow-sm)}.export-section{margin-top:var(--spacing-xl);padding-top:var(--spacing-xl);border-top:2px solid var(--border)}.export-hint{color:var(--ink);margin-bottom:var(--spacing-md);font-size:var(--text-body-sm);line-height:1.6}.status-unsaved{color:var(--amber);font-weight:700;font-family:var(--font-mono)}.status-saved{color:var(--forest);font-weight:700;font-family:var(--font-mono)}.about-section{background:linear-gradient(to bottom,var(--paper-stone),var(--paper-parchment));border:2px solid var(--border);padding:var(--spacing-xl);border-radius:var(--radius-lg)}.about-section p{color:var(--ink);line-height:1.7;margin-bottom:var(--spacing-lg);font-size:var(--text-body)}.about-section p:last-child{margin-bottom:0}.version-info{font-size:var(--text-body-sm);font-style:italic;font-family:var(--font-mono);color:var(--ink-light);padding:var(--spacing-sm) var(--spacing-md);background-color:var(--paper-cream);border-radius:var(--radius-md);display:inline-block}.file-status-bar{display:flex;align-items:center;justify-content:space-between;padding:.5rem 1rem;background:var(--bg-secondary);border-bottom:1px solid var(--border-color);font-size:.85rem;color:var(--text-secondary)}.file-status-left{display:flex;align-items:center;gap:.5rem}.file-icon{font-size:1rem}.file-name{font-weight:500;color:var(--text-primary);max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.unsaved-indicator{color:#ffc107;font-size:.75rem;margin-left:.25rem}.file-status-right{display:flex;align-items:center;gap:1rem}.last-saved{color:var(--text-secondary)}.save-button{padding:.25rem .75rem;background:var(--primary-color);color:#fff;border:none;border-radius:4px;font-size:.8rem;font-weight:600;cursor:pointer;transition:background .2s}.save-button:hover{background:var(--primary-hover)}.browser-hint{font-size:.75rem;color:var(--text-secondary);background:var(--border-color);padding:.25rem .5rem;border-radius:4px}.wizard-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:9999}.wizard-card{background:var(--card-bg);border-radius:12px;padding:3rem;max-width:600px;width:90%;box-shadow:0 10px 40px #0003;text-align:center}.wizard-card h1{font-family:Libre Baskerville,serif;font-size:2rem;margin-bottom:1rem;color:var(--text-primary)}.wizard-description{color:var(--text-secondary);font-size:1.1rem;line-height:1.6;margin-bottom:2rem}.wizard-form{text-align:left}.wizard-form label{display:block;font-weight:600;margin-bottom:.5rem;color:var(--text-primary)}.wizard-input-row{display:flex;gap:.5rem;margin-bottom:.5rem}.wizard-input{flex:1;padding:.75rem 1rem;border:2px solid var(--border-color);border-radius:6px;font-size:1rem;font-family:DM Sans,sans-serif;transition:border-color .2s;background:var(--bg-primary);color:var(--text-primary)}.wizard-input:focus{outline:none;border-color:var(--primary-color)}.wizard-input:disabled{opacity:.6;cursor:not-allowed}.wizard-browse-button{padding:.75rem 1.5rem;background:var(--bg-secondary);color:var(--text-primary);border:2px solid var(--border-color);border-radius:6px;font-size:1rem;font-weight:600;font-family:DM Sans,sans-serif;cursor:pointer;transition:background .2s;white-space:nowrap}.wizard-browse-button:hover:not(:disabled){background:var(--border-color)}.wizard-browse-button:disabled{opacity:.6;cursor:not-allowed}.wizard-hint{font-size:.875rem;color:var(--text-secondary);margin-bottom:1.5rem}.wizard-error{background:#fee;border:1px solid #fcc;color:#c33;padding:.75rem;border-radius:6px;margin-bottom:1rem;font-size:.9rem}.wizard-button{width:100%;padding:1rem;background:#000;color:#fff;border:none;border-radius:6px;font-size:1.1rem;font-weight:600;font-family:DM Sans,sans-serif;cursor:pointer;transition:background .2s;display:flex;align-items:center;justify-content:center;gap:.5rem}.wizard-button:hover:not(:disabled){background:#333}.wizard-button:disabled{opacity:.6;cursor:not-allowed}.success-icon{width:80px;height:80px;background:#22c55e;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:3rem;margin:0 auto 1.5rem;animation:scaleIn .3s ease-out}@keyframes scaleIn{0%{transform:scale(0)}to{transform:scale(1)}}.wizard-card h2{font-family:Libre Baskerville,serif;font-size:1.5rem;margin-bottom:.5rem;color:var(--text-primary)}.spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.wizard-notice{background:#fff3cd;border:1px solid #ffc107;color:#856404;padding:.75rem 1rem;border-radius:6px;margin-bottom:1.5rem;font-size:.9rem;text-align:left}.wizard-options{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem}.wizard-option-button{display:flex;align-items:center;gap:1rem;padding:1.25rem 1.5rem;background:var(--bg-secondary);border:2px solid var(--border-color);border-radius:8px;cursor:pointer;transition:all .2s;text-align:left}.wizard-option-button:hover:not(:disabled){border-color:var(--primary-color);background:var(--bg-primary)}.wizard-option-button:disabled{opacity:.6;cursor:not-allowed}.wizard-option-primary{background:#000;border-color:#000;color:#fff}.wizard-option-primary:hover:not(:disabled){background:#333;border-color:#333}.wizard-option-icon{font-size:1.5rem;width:40px;text-align:center}.wizard-option-text{display:flex;flex-direction:column;gap:.25rem}.wizard-option-text strong{font-size:1.1rem}.wizard-option-text small{font-size:.875rem;opacity:.8}.wizard-loading{display:flex;align-items:center;justify-content:center;gap:.75rem;padding:1rem;color:var(--text-secondary)}.wizard-loading .spinner{border-color:#0003;border-top-color:var(--text-primary)}.wizard-footer{font-size:.875rem;color:var(--text-secondary);margin-top:1rem;margin-bottom:0}
