:root{--bg-primary: #1a1a2e;--bg-secondary: #16213e;--bg-card: rgba(255, 255, 255, .05);--bg-card-hover: rgba(255, 255, 255, .1);--text-primary: #e0e0e0;--text-secondary: #888;--text-muted: #666;--accent-cyan: #00d9ff;--accent-green: #00ff88;--accent-gradient: linear-gradient(90deg, #00d9ff, #00ff88);--color-positive: #00ff88;--color-warning: #ffa502;--color-negative: #ff4757;--color-danger-bg: rgba(255, 71, 87, .1);--border-subtle: rgba(255, 255, 255, .1);--border-input: #444;--border-color: rgba(255, 255, 255, .1);--spacing-xs: 5px;--spacing-sm: 10px;--spacing-md: 20px;--spacing-lg: 30px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 16px;--shadow-sm: 0 2px 4px rgba(0, 0, 0, .2);--shadow-md: 0 4px 12px rgba(0, 0, 0, .3);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .4);--transition-fast: .15s ease;--transition-normal: .3s ease}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:Frutiger LT Pro,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;background:linear-gradient(135deg,var(--bg-primary) 0%,var(--bg-secondary) 100%);color:var(--text-primary);min-height:100vh;line-height:1.5}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}#root{min-height:100vh}h1,h2,h3,h4,h5,h6{font-weight:700;line-height:1.2}h1{font-size:2.5rem}h2{font-size:1.8rem}h3{font-size:1.4rem}a{color:var(--accent-cyan);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--accent-green)}button{font-family:inherit;cursor:pointer;border:none;background:transparent;font-size:1rem;transition:all var(--transition-fast)}button:focus-visible{outline:2px solid var(--accent-cyan);outline-offset:2px}input,select,textarea{font-family:inherit;font-size:1rem;background:var(--bg-card);border:1px solid var(--border-input);color:var(--text-primary);padding:var(--spacing-sm);border-radius:var(--radius-sm);transition:border-color var(--transition-fast)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent-cyan)}.text-positive{color:var(--color-positive)}.text-warning{color:var(--color-warning)}.text-negative{color:var(--color-negative)}.text-muted{color:var(--text-muted)}.bg-positive{background:var(--color-positive)}.bg-warning{background:var(--color-warning)}.bg-negative{background:var(--color-negative)}.gradient-text{background:var(--accent-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.card{background:var(--bg-card);border-radius:var(--radius-md);padding:var(--spacing-md);border:1px solid var(--border-subtle);transition:all var(--transition-normal)}.card:hover{background:var(--bg-card-hover);box-shadow:var(--shadow-md)}@media(max-width:768px){h1{font-size:1.8rem}.container{padding:var(--spacing-sm)}}@media(max-width:480px){h1{font-size:1.5rem}body{background:#000}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--border-subtle);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}::selection{background:var(--accent-cyan);color:var(--bg-primary)}.scenario-toggle{display:flex;gap:0;align-items:center;background:#ffffff0d;border-radius:9999px;padding:4px;margin-top:10px}.scenario-button{padding:8px 18px;border:none;background:transparent;color:#888;border-radius:9999px;cursor:pointer;font-size:.8rem;transition:all .2s;font-family:inherit;font-weight:300;white-space:nowrap}.scenario-button:hover:not(.active){color:#fff;background:#ffffff0d}.scenario-button.active{background:#00d9ff;color:#0a0a0f;font-weight:700;box-shadow:0 2px 8px #00d9ff4d}@media(max-width:768px){.scenario-toggle{padding:5px;margin:12px 0}.scenario-button{padding:14px 24px;font-size:.95rem}}@media(max-width:480px){.scenario-toggle{margin:6px 0}.scenario-button{padding:11px 20px;font-size:.9rem}}.tabs-container{display:flex;gap:0;align-items:center;background:#ffffff0d;border-radius:9999px;padding:4px}.tab-button{padding:8px 18px;border:none;background:transparent;color:#888;border-radius:9999px;cursor:pointer;font-size:.8rem;font-weight:300;transition:all .2s ease;font-family:inherit;white-space:nowrap}.tab-button:hover:not(.active){color:#fff;background:#ffffff0d}.tab-button.active{background:#00d9ff;color:#0a0a0f;font-weight:700;box-shadow:0 2px 8px #00d9ff4d}@media(max-width:768px){.tabs-container{padding:5px;margin:12px 0}.tab-button{padding:14px 24px;font-size:.95rem}}@media(max-width:480px){.tabs-container{margin:6px 0}.tab-button{padding:11px 20px;font-size:.9rem}}.header{padding:1.5rem 0 0;margin-bottom:0;display:flex;flex-direction:column;gap:.75rem}.header-content{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:1.5rem}.header-text{flex:1;min-width:300px;text-align:left}.header-title{font-size:2rem;font-weight:700;margin:0;color:#00d9ff;letter-spacing:-.5px}.header-subtitle{font-size:.9rem;color:#888;margin:.25rem 0 0;padding-bottom:20px;font-weight:300}.header-controls{display:flex;flex-direction:column;align-items:flex-end;gap:.5rem}.tabs-row{display:flex;justify-content:space-between;align-items:center}.data-source-info{display:flex;align-items:center;gap:1rem;font-size:.8rem;color:#666;white-space:nowrap;margin-left:50px}.data-source-highlight{color:#00d9ff;font-weight:700}.user-info{display:flex;align-items:center;gap:12px;margin-left:auto;padding-left:20px}.user-email{font-size:.8rem;color:#888}.logout-button{padding:6px 14px;background:transparent;border:1px solid rgba(255,255,255,.2);border-radius:50px;color:#888;font-size:.8rem;cursor:pointer;transition:all .2s}.logout-button:hover{border-color:var(--color-negative);color:var(--color-negative);background:#ff47571a}@media(max-width:1024px){.header-title{font-size:1.75rem}.header-text{min-width:250px}}@media(max-width:768px){.header{padding:1rem 0 0;gap:.75rem;align-items:center}.header-content{flex-direction:column;align-items:center;gap:1rem}.header-text{min-width:auto;width:100%;text-align:center}.header-controls{width:100%;align-items:center}.header-title{font-size:1.75rem}.header-subtitle{font-size:.95rem}.tabs-row{flex-direction:column;align-items:center;gap:.75rem}.data-source-info{font-size:.8rem;text-align:center;margin-left:0}.user-info{margin-left:0;padding-left:0;justify-content:center}}@media(max-width:480px){.header{padding:30px 0 0;background:#1a1a2e;border-radius:8px;margin:.75rem 0}.header-content{gap:.75rem}.header-title{font-size:2.3rem;letter-spacing:-.3px}.header-subtitle,.data-source-info{display:none}.user-info{padding-bottom:20px}}.summary-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;width:100%;margin:1rem 0}.card{background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:.875rem 1rem;display:flex;flex-direction:column;gap:.25rem;transition:background .2s ease}.card:hover{background:#ffffff0d}.card-title{font-size:.8rem;font-weight:300;color:#888;letter-spacing:.2px}.card-value{font-size:1.95rem;font-weight:300;color:#fff;line-height:1.1}.card-subtitle{font-size:.7rem;color:#666;font-weight:300}.card-value.positive{color:#0f8}.card-value.warning{color:#ffa502}.card-value.negative{color:#ff4757}.card-value.neutral{color:#fff}@media(max-width:1024px){.summary-cards{grid-template-columns:repeat(4,1fr);gap:.75rem}.card-value{font-size:1.5rem}}@media(max-width:768px){.summary-cards{grid-template-columns:repeat(2,1fr);gap:.75rem}.card{padding:1rem}.card-title{font-size:.85rem}.card-value{font-size:2.6rem}.card-subtitle{font-size:.7rem}}@media(max-width:480px){.summary-cards{grid-template-columns:repeat(2,1fr);gap:.5rem;margin:.75rem 0 1.5rem;margin-top:20px;background:#1a1a2e;padding:.75rem;border-radius:8px}.card{padding:.875rem;border-radius:8px;background:#16213e;border:1px solid rgba(255,255,255,.08)}.card-title{font-size:.8rem;margin-bottom:2px}.card-value{font-size:2.4rem;font-weight:300}.card-subtitle{font-size:.65rem}}.calendar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;gap:20px}.nav-button{padding:12px 24px;border:2px solid #444;background:transparent;color:#888;border-radius:9999px;cursor:pointer;font-size:1rem;transition:all .3s}.nav-button:hover:not(:disabled){border-color:#00d9ff;color:#00d9ff}.nav-button:disabled{opacity:.3;cursor:not-allowed}.month-title{font-size:1.3rem;color:#fff;margin:0}.daily-chart-container{margin-bottom:25px;padding:15px 0;background:#ffffff08;border-radius:12px}.daily-chart-title{color:#888;margin-bottom:15px;font-size:.9rem;padding-left:10px}.daily-chart{display:block}.bill-calendar{background:#ffffff08;border-radius:16px;padding:30px;border:1px solid rgba(255,255,255,.1);box-sizing:border-box;width:100%;max-width:100%;overflow:hidden}.calendar-container{width:100%;max-width:100%;overflow:hidden;box-sizing:border-box}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;width:100%;box-sizing:border-box}.day-header{text-align:center;font-size:.85rem;color:#888;padding:10px;font-weight:700;min-width:0;overflow:hidden;box-sizing:border-box}.day-cell{background:#ffffff08;border-radius:8px;padding:8px;min-height:110px;border:1px solid rgba(255,255,255,.08);transition:all .2s;min-width:0;overflow:hidden;box-sizing:border-box}.day-cell:hover{background:#ffffff0f;transform:translateY(-1px)}.day-num{font-size:1rem;color:#ccc;margin-bottom:6px;font-weight:300}.day-weekday{margin-left:6px;font-size:.75rem;color:#888;font-weight:400}.day-bills{font-size:.75rem}.bill-item{background:#ff475733;color:#ff6b7a;padding:3px 6px;border-radius:4px;margin:2px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.72rem}.bill-item.income{background:#0f83;color:#0f8;font-weight:700}.bill-item.variable{background:#ff8c0033;color:#ff8c00;font-style:italic}.bill-item.actual-data{background:#00d9ff40;color:#00d9ff;font-style:normal;font-weight:600;border-left:2px solid #00d9ff}.bill-item.variable.actual-data{background:#00d9ff33;color:#00d9ff}.bill-item.matched-bill{text-decoration:line-through;color:#0f8;opacity:.7}.day-balance{font-size:.75rem;margin-top:6px;font-weight:700;border-top:1px solid rgba(255,255,255,.1);padding-top:4px}.balance-override-container{margin-top:4px;padding-top:3px;border-top:1px dashed rgba(255,255,255,.1)}.balance-override-input{width:100%;padding:3px 5px;background:#0000004d;border:1px solid rgba(255,255,255,.15);border-radius:4px;color:#888;font-size:.65rem;box-sizing:border-box;transition:all .2s ease}.balance-override-input::placeholder{color:#555;font-style:italic}.balance-override-input:focus{outline:none;border-color:#00d9ff;background:#00d9ff1a;color:#fff}.balance-override-input.has-value{background:#00d9ff26;border-color:#00d9ff;color:#00d9ff;font-weight:600}.month-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:15px;margin-top:20px;padding:15px;background:#ffffff08;border-radius:12px}.summary-item{text-align:center}.summary-label{color:#888;font-size:.8rem}.summary-value{font-size:1.2rem;font-weight:700}.summary-value.positive{color:#0f8}.summary-value.negative{color:#ff6b7a}.summary-value.warning{color:#ffa502}.summary-sub{color:#666;font-size:.7rem}.month-selector-container{margin-top:20px;text-align:center}.month-select{padding:10px 20px;border-radius:9999px;background:#2a2a4a;color:#e0e0e0;border:1px solid #444;font-size:1rem;cursor:pointer}.month-select:focus{outline:none;border-color:#00d9ff}@media(min-width:1281px){.daily-chart{height:270px}}@media(max-width:1024px)and (min-width:769px){.bill-calendar{padding:20px;width:100%;max-width:100%;box-sizing:border-box}.calendar-container{width:100%;max-width:100%;box-sizing:border-box;overflow:hidden}.calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;width:100%;box-sizing:border-box}.day-header{font-size:.8rem;padding:8px 4px;min-width:0}.day-cell{min-height:100px;padding:6px;min-width:0}.bill-item{font-size:.68rem;padding:2px 5px}}@media(max-width:768px){.bill-calendar{padding:10px;border-radius:12px;width:100%;box-sizing:border-box;overflow:hidden}.calendar-header{gap:10px;margin-bottom:15px}.nav-button{padding:8px 16px;font-size:.85rem}.month-title{font-size:1.1rem}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;width:100%;overflow:hidden}.day-header{font-size:.7rem;padding:6px 2px;min-width:0;overflow:hidden}.day-cell{min-height:80px;min-width:0;padding:4px;overflow:hidden}.day-num{font-size:.8rem}.day-bills{overflow:hidden}.bill-item{font-size:.6rem;padding:2px 3px;max-width:100%}.day-balance{font-size:.65rem}.balance-override-input{font-size:.6rem;padding:2px 4px}.daily-chart-container{padding:12px;margin-bottom:15px}.daily-chart-title{font-size:.8rem}.month-summary{grid-template-columns:repeat(2,1fr);gap:10px;padding:12px}}@media(max-width:480px){.bill-calendar{padding:6px;border-radius:10px;background:#1a1a2e;border:1px solid rgba(255,255,255,.08)}.calendar-header{flex-wrap:wrap;justify-content:center;gap:8px}.nav-button{padding:6px 10px;font-size:.75rem}.month-title{width:100%;text-align:center;order:-1;font-size:1rem;margin-bottom:4px}.calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:2px}.day-header{font-size:.55rem;padding:4px 1px}.day-cell{min-height:65px;padding:3px;background:#16213e;border:1px solid rgba(255,255,255,.08)}.day-cell:hover{background:#ffffff14}.day-num{font-size:.7rem;margin-bottom:2px}.bill-item{font-size:.5rem;padding:1px 2px;margin:1px 0;border-radius:2px}.day-balance{font-size:.55rem;margin-top:2px;padding-top:2px}.daily-chart-container{padding:8px;background:#1a1a2e;border:1px solid rgba(255,255,255,.08);border-radius:8px}.month-summary{grid-template-columns:1fr 1fr;gap:8px;padding:10px;background:#1a1a2e;border:1px solid rgba(255,255,255,.08);border-radius:8px}.summary-label{font-size:.7rem}.summary-value{font-size:1rem}}.bill-item.search-highlight{background:#00d9ff26;border:1px solid #00d9ff;border-radius:4px;box-shadow:0 0 8px #00d9ff66,0 0 16px #00d9ff33;animation:searchGlow 1.5s ease-in-out infinite alternate;padding:2px 4px;margin:1px 0}.bill-item.income.search-highlight{background:#00ff8826;border-color:#0f8;box-shadow:0 0 8px #0f86,0 0 16px #0f83}@keyframes searchGlow{0%{box-shadow:0 0 8px #00d9ff66,0 0 16px #00d9ff33}to{box-shadow:0 0 12px #00d9ff99,0 0 24px #00d9ff4d}}.day-cell.has-search-match{border:2px solid rgba(0,217,255,.5)!important;background:#00d9ff0d}.mobile-bill-item.search-highlight{background:#00d9ff26;border:1px solid #00d9ff;border-radius:6px;box-shadow:0 0 10px #00d9ff66;animation:searchGlow 1.5s ease-in-out infinite alternate}.mobile-bill-item.income.search-highlight{background:#00ff8826;border-color:#0f8;box-shadow:0 0 10px #0f86}.month-selector{display:flex;justify-content:center;align-items:center;flex:1}.month-name{font-size:1.5rem;font-weight:700;color:#fff;text-align:center}.mobile-day-view{display:none;flex-direction:column;gap:0;padding:0;border-radius:12px;background:#ffffff08;border:1px solid rgba(255,255,255,.1);min-height:100vh;width:100%;box-sizing:border-box}@media(max-width:480px){.mobile-day-view{display:flex;background:#1a1a2e;border:none}}.mobile-month-header{display:flex;flex-direction:row;gap:12px;align-items:center;justify-content:center;padding:16px 12px;border-bottom:1px solid rgba(255,255,255,.1);margin-bottom:12px}.mobile-month-year-title{margin:0;font-size:2rem;font-weight:700;background:linear-gradient(90deg,#00d9ff,#0f8);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;text-align:center;white-space:nowrap;flex:1}.mobile-month-arrow{width:40px;height:40px;padding:0;border:2px solid #00d9ff;background:transparent;color:#00d9ff;border-radius:20px;cursor:pointer;font-size:1.5rem;transition:all .2s;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.mobile-month-arrow:hover:not(:disabled){background:#00d9ff1f;border-color:#0f8;color:#0f8;box-shadow:0 0 8px #00d9ff66}.mobile-month-arrow:active:not(:disabled){transform:scale(.92)}.mobile-month-arrow:disabled{opacity:.2;cursor:not-allowed;border-color:#00d9ff}.mobile-day-header{display:flex;flex-direction:column;gap:10px;align-items:center;padding-bottom:8px}.mobile-month-year{margin:0;font-size:1.3rem;color:#fff;font-weight:500;text-align:center}.mobile-month-nav{display:flex;gap:8px;justify-content:center;width:100%}.mobile-month-btn{padding:8px 12px;border:1px solid #444;background:transparent;color:#888;border-radius:6px;cursor:pointer;font-size:.75rem;transition:all .2s;flex:1;max-width:120px;font-weight:500}.mobile-month-btn:hover:not(:disabled){border-color:#00d9ff;color:#00d9ff;background:#00d9ff14}.mobile-month-btn:disabled{opacity:.2;cursor:not-allowed}.mobile-day-container{flex:1;display:flex;align-items:center;justify-content:center;touch-action:pan-y;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;position:relative;min-height:300px;width:100%;padding:0;margin:0}.mobile-day-container .day-cell{width:100%;min-height:280px;padding:16px;background:#1a1a2e;border-radius:10px;border:1px solid rgba(255,255,255,.1);box-sizing:border-box}.mobile-day-container .day-num{font-size:1.68rem;color:#ccc;margin-bottom:12px;font-weight:400;display:flex;align-items:center;gap:8px}.mobile-day-container .day-weekday{font-size:1.68rem;color:#888;font-weight:400;margin-left:0}.mobile-day-container .day-bills{font-size:1.02rem;max-height:400px;overflow-y:auto}.mobile-day-container .bill-item{padding:6px 8px;margin:4px 0;border-radius:5px;font-size:.96rem}.mobile-day-container .day-balance{font-size:1.2rem;margin-top:12px;padding-top:8px;font-weight:700;border-top:1px solid rgba(255,255,255,.15)}.mobile-day-nav{display:flex;gap:8px;align-items:center;width:100%;box-sizing:border-box;padding:0;margin:0}@media(max-width:480px){.mobile-day-nav{padding-bottom:20px}}.day-nav-btn{width:48px;height:48px;border:2px solid #00d9ff;background:transparent;color:#00d9ff;border-radius:50%;cursor:pointer;font-size:1.5rem;transition:all .2s;font-weight:500;display:flex;align-items:center;justify-content:center;flex-shrink:0;padding:0}.day-nav-btn:hover:not(:disabled){border-color:#00d9ff;color:#00d9ff;background:#00d9ff26;box-shadow:0 0 8px #00d9ff66}.day-nav-btn:active:not(:disabled){transform:scale(.95)}.day-nav-btn:disabled{opacity:.2;cursor:not-allowed}.day-indicator{flex:1;display:flex;align-items:center;min-width:60px}.day-progress-bar{width:100%;height:5px;background:#ffffff1a;border-radius:3px;overflow:visible;box-shadow:0 0 8px #00d9ff26;position:relative;touch-action:none;cursor:pointer}.day-progress-fill{height:100%;background:linear-gradient(90deg,#00d9ff,#0f8);border-radius:3px;transition:width .3s ease-out;box-shadow:0 0 6px #00d9ff99;pointer-events:none}.day-progress-thumb{position:absolute;top:50%;width:16px;height:16px;background:radial-gradient(circle,#0f8,#00d9ff);border:2px solid rgba(255,255,255,.8);border-radius:50%;box-shadow:0 0 12px #00d9ffcc,0 0 24px #0f86;cursor:grab;transition:all .1s ease-out;z-index:10;pointer-events:auto;transform:translate(-50%,-50%);padding:12px;margin:0}.day-progress-thumb:active{cursor:grabbing;width:20px;height:20px;box-shadow:0 0 16px #00d9ff,0 0 32px #0f89}@keyframes slideInFromRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes slideInFromLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}.mobile-day-container .day-cell{animation:slideInFromRight .3s ease-out}@media(max-height:600px)and (max-width:480px){.mobile-day-view{min-height:auto}.mobile-day-header{padding-bottom:6px;gap:6px}.mobile-month-year{font-size:1.1rem}.mobile-month-header{padding:12px 8px;gap:8px}.mobile-month-year-title{font-size:1.5rem}.mobile-month-arrow{width:36px;height:36px;font-size:1.2rem}.mobile-day-container{min-height:200px;padding:0;margin:0}.mobile-day-container .day-cell{min-height:180px;padding:12px}.mobile-day-container .day-num{font-size:1.32rem;margin-bottom:8px}.mobile-day-container .day-weekday{font-size:1.32rem}.mobile-day-container .bill-item{padding:4px 6px;font-size:.9rem;margin:2px 0}}.mobile-day-container{-webkit-tap-highlight-color:rgba(0,217,255,.1)}.day-nav-btn:active{-webkit-tap-highlight-color:rgba(0,217,255,.2)}.mobile-day-container .day-bills{-webkit-overflow-scrolling:touch;scroll-behavior:smooth}input,button,select{font-size:16px}.analysis-panel{position:fixed;top:0;right:0;width:320px;height:100vh;background:#12121a;border-left:1px solid rgba(255,255,255,.1);transform:translate(100%);transition:transform .3s ease;z-index:1000;display:flex;flex-direction:column;box-shadow:-4px 0 20px #00000080}.analysis-panel.open{transform:translate(0)}.flexible-spending-section{padding:1rem;background:#0a0a0f;border-bottom:1px solid rgba(255,255,255,.1)}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.section-header h3{margin:0;font-size:1.17rem;font-weight:700;color:#fff}.flexible-totals{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.flex-monthly{font-size:.85rem;font-weight:700;color:#ffa502}.flex-daily{font-size:.7rem;color:#888}.flexible-categories{display:flex;flex-direction:column;gap:6px}.flexible-item{display:flex;justify-content:space-between;align-items:center;gap:.5rem}.flexible-label{font-size:.8rem;color:#888;flex:1;font-weight:300}.flexible-input-wrapper{display:flex;align-items:baseline;background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:6px 12px;width:105px}.dollar-sign{color:#ffa502;font-size:.9rem;margin-right:0;font-weight:300}.flexible-input{background:transparent;border:none;color:#ffa502;font-size:1.1rem;font-weight:300;width:100%;text-align:right;outline:none;font-family:inherit}.flexible-input:focus{color:#fff}.flexible-input::-webkit-outer-spin-button,.flexible-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.flexible-input[type=number]{-moz-appearance:textfield}.flexible-save-section{display:flex;flex-direction:column;gap:.5rem;margin-top:1rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.1)}.save-changes-btn{width:100%;padding:.65rem 1rem;background:#ffa502;color:#0a0a0f;border:none;border-radius:50px;font-size:.9rem;font-weight:700;cursor:pointer;transition:all .2s}.save-changes-btn:hover:not(:disabled){background:#ffb626;transform:translateY(-2px);box-shadow:0 4px 12px #ffa5024d}.save-changes-btn:disabled{opacity:.6;cursor:not-allowed}.save-status{padding:.5rem .75rem;border-radius:6px;font-size:.8rem;font-weight:500;text-align:center;animation:slideIn .3s ease}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.save-status-success{background:#00ff8826;color:#0f8;border:1px solid rgba(0,255,136,.3)}.save-status-error{background:#ff6b6b26;color:#ff6b6b;border:1px solid rgba(255,107,107,.3)}.panel-divider{height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.15),transparent);margin:0}.analysis-panel-header{padding:1rem;border-bottom:1px solid rgba(255,255,255,.1);background:#0d0d12}.analysis-panel-header h3{margin:0 0 .5rem;font-size:1.17rem;font-weight:700;color:#fff}.analysis-summary{display:flex;gap:1rem;font-size:.75rem}.summary-active{color:#0f8}.summary-excluded{color:#666}.analysis-panel-content{flex:1;overflow-y:auto;padding:.5rem}.analysis-item{display:flex;align-items:center;gap:.75rem;padding:.6rem .75rem;border-radius:6px;transition:all .2s;background:#ffffff05;margin-bottom:2px}.analysis-item:hover{background:#ffffff0d}.analysis-item.excluded{opacity:.4}.analysis-item.excluded .item-name,.analysis-item.excluded .item-amount{text-decoration:line-through;color:#555}.item-info{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.item-name{font-size:1.02rem;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.item-day{font-size:.78rem;color:#666}.item-amount{font-size:1.02rem;color:#ff6b6b;font-weight:700;min-width:70px;text-align:right}.item-toggle{padding:8px 24px;border:none;border-radius:9999px;font-size:.78rem;font-weight:700;cursor:pointer;transition:all .2s;min-width:80px}.item-toggle.on{background:#0f8;color:#0a0a0f}.item-toggle.off{background:#333;color:#666}.item-toggle:hover{transform:scale(1.05)}.bills-save-section{display:flex;flex-direction:column;gap:.5rem;padding:1rem .75rem;border-top:1px solid rgba(255,255,255,.1);background:#0000004d}.analysis-panel-content::-webkit-scrollbar{width:6px}.analysis-panel-content::-webkit-scrollbar-track{background:transparent}.analysis-panel-content::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:3px}.analysis-panel-content::-webkit-scrollbar-thumb:hover{background:#fff3}@media(max-width:1024px){.analysis-panel{width:280px}}@media(max-width:768px){.analysis-panel{position:relative;top:auto;right:auto;width:100%;height:auto;max-height:none;transform:none;border-left:none;border-top:1px solid rgba(255,255,255,.1);box-shadow:0 -4px 20px #00000080}.analysis-panel.open{transform:none}.flexible-spending-section{padding:16px}.section-header h3{font-size:1.25rem}.flex-monthly{font-size:1.1rem}.flex-daily{font-size:.9rem}.flexible-categories{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}.flexible-item{flex-direction:column;align-items:flex-start;gap:.25rem;background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:.875rem 1rem}.flexible-label{font-size:.85rem;font-weight:300;color:#888;letter-spacing:.2px}.flexible-input-wrapper{width:100%;padding:0;background:transparent;border:none;border-radius:0;gap:0}.dollar-sign{font-size:1.95rem;font-weight:300;color:#ffa502;margin-right:0}.flexible-input{font-size:1.95rem;font-weight:300;text-align:left;padding-left:0}.flexible-save-section{margin-top:1.5rem;padding-top:1.5rem}.save-changes-btn{padding:.75rem 1rem;font-size:1rem}.analysis-panel-header{padding:16px}.analysis-panel-header h3{font-size:1.25rem}.analysis-summary{font-size:.9rem}.analysis-panel-content{overflow-y:visible;padding:8px}.analysis-item{padding:10px;gap:10px}.item-name{font-size:1.14rem}.item-day{font-size:.84rem}.item-amount{min-width:70px;font-size:1.14rem}.item-toggle{padding:12px 28px;font-size:.84rem;min-width:84px}}@media(max-width:480px){.flexible-spending-section{padding:14px;background:#000;border-radius:8px;margin:.75rem 0;margin-top:20px}.section-header{flex-direction:column;align-items:flex-start;gap:4px}.flexible-totals{flex-direction:row;align-items:center;gap:12px}.flexible-categories{grid-template-columns:repeat(2,1fr);gap:.5rem}.flexible-item{padding:.875rem;background:#16213e;border:1px solid rgba(255,255,255,.08)}.flexible-label{font-size:.8rem;margin-bottom:2px}.dollar-sign,.flexible-input{font-size:2.4rem;font-weight:300}.analysis-panel-header{background:#000;border-radius:8px;margin:.75rem 0;margin-top:20px}.analysis-panel-content{overflow-y:visible;background:#000;border-radius:8px}.analysis-item{padding:8px 10px;background:#16213e;border:1px solid rgba(255,255,255,.08);margin-bottom:4px}.item-name{font-size:1.08rem}.item-day{font-size:.78rem}.item-amount{font-size:1.08rem}.item-toggle{padding:8px 20px;font-size:.72rem;min-width:75px}}.search-row{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem}.search-bar-container{flex:1;margin:0;padding:0}.search-bar{display:flex;align-items:center;gap:.75rem;background:#1a1a2e;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:.5rem .75rem;transition:all .2s ease}.search-bar:focus-within{border-color:#fff3;box-shadow:0 0 0 2px #00d9ff1a}.search-icon{color:#666;flex-shrink:0}.search-input{flex:1;background:transparent;border:none;outline:none;color:#fff;font-size:.95rem;font-family:inherit;padding:.5rem 0}.search-input::placeholder{color:#555}.search-clear-btn{background:transparent;border:none;color:#666;cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s}.search-clear-btn:hover{color:#ff4757;background:#ff47571a}.search-btn{background:#00d9ff;color:#0a0a0f;border:none;border-radius:50px;padding:.6rem 1.5rem;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s;white-space:nowrap}.search-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #00d9ff66;background:#33e1ff}.search-btn:active{transform:translateY(0)}.last-updated{font-size:.8rem;color:#666;white-space:nowrap}@media(max-width:480px){.search-row{flex-direction:column;gap:.75rem;padding:0 .75rem;margin-bottom:1rem}.search-bar-container{width:100%}.search-bar{padding:.4rem .6rem;gap:.5rem}.search-input{font-size:.9rem;padding:.4rem 0}.search-input::placeholder{font-size:.8rem}.search-btn{padding:.5rem 1rem;font-size:.85rem}.last-updated{display:none}}.csv-import-trigger{display:inline-block}.import-btn{display:flex;align-items:center;gap:.5rem;background:transparent;color:#00d9ff;border:1px solid #00d9ff;border-radius:9999px;padding:.5rem 1rem;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s;white-space:nowrap}.import-btn:hover{background:#00d9ff1a;transform:translateY(-1px)}.import-btn svg{width:16px;height:16px}.import-modal-overlay{position:fixed;inset:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.import-modal{background:#ffffff0d;border-radius:16px;width:100%;max-width:600px;max-height:80vh;display:flex;flex-direction:column;border:1px solid rgba(255,255,255,.1);box-shadow:0 20px 60px #00000080;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.import-modal-wide{max-width:800px;max-height:85vh}.import-modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;border-bottom:1px solid rgba(255,255,255,.1)}.import-modal-header h2{margin:0;font-size:1.25rem;font-weight:600;color:#fff}.modal-close-btn{background:transparent;border:none;color:#666;font-size:1.5rem;cursor:pointer;padding:0;line-height:1;transition:color .2s;border-radius:9999px}.modal-close-btn:hover{color:#ff4757}.import-modal-content{flex:1;overflow-y:auto;padding:1.5rem}.import-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;gap:1rem}.spinner{width:40px;height:40px;border:3px solid rgba(0,217,255,.2);border-top-color:#00d9ff;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.import-loading p{color:#888;margin:0}.import-section{margin-bottom:1.5rem}.import-section h3{margin:0 0 .5rem;font-size:1rem;color:#fff}.section-desc{margin:0 0 1rem;font-size:.85rem;color:#888}.balance-impact{background:#00d9ff0d;border:1px solid rgba(0,217,255,.2);border-radius:12px;padding:1.25rem}.balance-impact-row{display:flex;align-items:center;gap:1rem;margin-bottom:.75rem}.balance-label{font-size:1rem;color:#888;font-weight:500}.balance-value{font-size:1.5rem;font-weight:700}.balance-value.positive{color:#0f8}.balance-value.negative{color:#ff6b6b}.balance-note{margin:0;font-size:.85rem;color:#666;line-height:1.4}.amount-input-wrapper{display:flex;align-items:center;background:#0000004d;border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:0 .75rem;transition:border-color .2s}.amount-input-wrapper:focus-within{border-color:#00d9ff}.amount-input-wrapper.small{padding:0 .5rem}.currency-symbol{color:#666;font-size:.9rem;margin-right:.25rem}.transactions-list{border:1px solid rgba(255,255,255,.1);border-radius:12px;overflow:hidden}.transactions-header{display:grid;grid-template-columns:40px 1fr 120px 100px 100px;gap:.5rem;padding:.75rem 1rem;background:#0000004d;border-bottom:1px solid rgba(255,255,255,.1);font-size:.75rem;color:#666;text-transform:uppercase;letter-spacing:.5px}.transaction-row{display:grid;grid-template-columns:40px 1fr 120px 100px 100px;gap:.5rem;padding:.75rem 1rem;border-bottom:1px solid rgba(255,255,255,.05);transition:background .2s;align-items:center}.transaction-row:last-child{border-bottom:none}.transaction-row:hover{background:#ffffff08}.transaction-row.selected{background:#00d9ff14}.col-check{display:flex;align-items:center;justify-content:center}.col-check input[type=checkbox]{width:18px;height:18px;accent-color:#00d9ff;cursor:pointer}.col-name{cursor:pointer;min-width:0}.vendor-name{color:#fff;font-size:.9rem;font-weight:500;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.col-amount .amount-input-wrapper{width:100%}.amount-input{background:transparent;border:none;color:#fff;font-size:.9rem;padding:.4rem 0;width:100%;outline:none;border-radius:0}.amount-input:disabled{color:#666}.col-day{display:flex;align-items:center}.day-select{background:#0000004d;border:1px solid rgba(255,255,255,.1);border-radius:6px;color:#fff;font-size:.85rem;padding:.4rem .5rem;width:100%;cursor:pointer;outline:none}.day-select:disabled{color:#666;cursor:not-allowed}.day-select:focus{border-color:#00d9ff}.col-info{display:flex;align-items:center;gap:.5rem;font-size:.8rem}.occurrence-badge{background:#ffffff1a;color:#888;padding:.15rem .4rem;border-radius:4px;font-weight:500}.last-date{color:#666;white-space:nowrap}.import-summary-footer{display:flex;flex-wrap:wrap;gap:.5rem;padding:.75rem 1rem;background:#0003;border-radius:8px;margin-top:1rem}.summary-text{font-size:.85rem;color:#888}.import-modal-footer{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;border-top:1px solid rgba(255,255,255,.1)}.cancel-btn{background:transparent;color:#888;border:1px solid rgba(255,255,255,.2);border-radius:9999px;padding:.6rem 1.5rem;font-size:.9rem;cursor:pointer;transition:all .2s}.cancel-btn:hover{color:#fff;border-color:#fff6}.apply-btn{background:#00d9ff;color:#0a0a0f;border:none;border-radius:9999px;padding:.6rem 1.5rem;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s}.apply-btn:hover:not(:disabled){background:#33e1ff;transform:translateY(-1px)}.apply-btn:disabled{background:#444;color:#888;cursor:not-allowed}@media(max-width:768px){.import-modal-wide{max-width:100%;max-height:95vh;margin:.5rem}.transactions-header{display:none}.transaction-row{display:flex;flex-wrap:wrap;gap:.75rem;padding:1rem}.col-check{order:1}.col-name{order:2;flex:1}.col-amount{order:4;width:calc(50% - .375rem)}.col-day{order:5;width:calc(50% - .375rem)}.col-info{order:3}}@media(max-width:480px){.import-modal{max-height:90vh;margin:.5rem}.import-modal-header,.import-modal-content{padding:1rem}.import-modal-footer{padding:.75rem 1rem}}.csv-import-trigger{display:flex;align-items:center;gap:.75rem}.reconciliation-status{display:flex;align-items:center;gap:.5rem;background:#00ff881a;border:1px solid rgba(0,255,136,.3);border-radius:9999px;padding:.35rem .75rem;font-size:.75rem}.status-indicator{width:8px;height:8px;border-radius:50%;background:#666}.status-indicator.active{background:#0f8;box-shadow:0 0 6px #00ff8880}.status-text{color:#0f8;white-space:nowrap}.clear-btn{background:transparent;border:none;color:#666;font-size:1rem;cursor:pointer;padding:0 .25rem;line-height:1;transition:color .2s}.clear-btn:hover{color:#ff4757}.reconciliation-summary{background:#0000004d;border-radius:12px;padding:1.25rem}.summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.summary-stat{text-align:center;padding:.75rem;background:#ffffff08;border-radius:8px}.summary-stat .stat-value{display:block;font-size:1.5rem;font-weight:700;color:#fff;margin-bottom:.25rem}.summary-stat .stat-label{display:block;font-size:.7rem;color:#888;text-transform:uppercase;letter-spacing:.5px}.summary-stat.matched{background:#00ff881a;border:1px solid rgba(0,255,136,.2)}.summary-stat.matched .stat-value{color:#0f8}.summary-stat.unmatched{background:#ffa5021a;border:1px solid rgba(255,165,2,.2)}.summary-stat.unmatched .stat-value{color:#ffa502}.text-green{color:#0f8}.text-orange{color:#ffa502}.transactions-list.compact .transactions-header,.transactions-list.compact .transaction-row{grid-template-columns:1fr 100px 100px 80px}.matched-row .col-name{display:flex;align-items:center;gap:.5rem}.match-arrow{color:#0f8;font-size:.8rem}.bill-name{color:#0f8;font-weight:500;font-size:.85rem}.col-amount.expected{color:#666;font-size:.85rem}.unmatched-row{background:#ffa50208}.unmatched-row .col-amount{color:#ffa502}.section-note{margin:0 0 .75rem;font-size:.8rem;color:#888}.matched-bills-list{display:flex;flex-direction:column;gap:.5rem;max-height:200px;overflow-y:auto}.matched-date-row{display:flex;align-items:center;gap:1rem;padding:.5rem .75rem;background:#00ff880d;border-radius:6px;border:1px solid rgba(0,255,136,.1)}.matched-date{color:#0f8;font-weight:600;font-size:.85rem;min-width:70px}.matched-bills{color:#ccc;font-size:.85rem}.suggested-bills-list{display:flex;flex-direction:column;gap:.5rem;max-height:200px;overflow-y:auto}.suggested-bill-row{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.5rem .75rem;background:#ffa5020d;border-radius:6px;border:1px solid rgba(255,165,2,.1)}.suggested-name{color:#ffa502;font-weight:500;font-size:.85rem}.suggested-details{color:#888;font-size:.8rem}.more-items{padding:.75rem 1rem;text-align:center;color:#666;font-size:.85rem;font-style:italic;background:#0003}.reconcile-btn{display:flex;align-items:center;gap:.5rem}.reconcile-btn svg{width:16px;height:16px}@media(max-width:768px){.csv-import-trigger{flex-wrap:wrap}.reconciliation-status{order:2;width:100%;justify-content:center;margin-top:.5rem}.summary-grid{grid-template-columns:repeat(2,1fr)}.transactions-list.compact .transactions-header{display:none}.transactions-list.compact .transaction-row{display:flex;flex-direction:column;gap:.5rem;padding:1rem}.transactions-list.compact .col-name{flex-wrap:wrap}.transactions-list.compact .col-amount,.transactions-list.compact .col-info{width:auto}}.instructions{background:#00d9ff0d;border:1px solid rgba(0,217,255,.2);border-radius:12px;padding:1rem}.instructions p{margin:0;font-size:.9rem;color:#aaa;line-height:1.5}.summary-grid-3{grid-template-columns:repeat(3,1fr)}.vendor-list{display:flex;flex-direction:column;gap:.5rem}.vendor-row{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 1rem;background:#ffffff05;border:1px solid rgba(255,255,255,.08);border-radius:8px;transition:background .2s}.vendor-row:hover{background:#ffffff0d}.vendor-info{flex:1;min-width:0}.vendor-info .vendor-name{font-weight:600;color:#fff;font-size:.95rem;margin-bottom:.25rem}.vendor-details{font-size:.8rem;color:#888;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.confidence-badge{padding:.15rem .5rem;border-radius:4px;font-size:.7rem;font-weight:600;text-transform:uppercase}.confidence-badge.high{background:#00ff8826;color:#0f8}.confidence-badge.medium{background:#ffa50226;color:#ffa502}.confidence-badge.low{background:#ff475726;color:#ff4757}.confidence-badge.user-defined{background:#00d9ff26;color:#00d9ff}.vendor-assignment{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.assignment-select{background:#0006;border:1px solid rgba(255,255,255,.15);border-radius:6px;color:#fff;font-size:.85rem;padding:.5rem .75rem;min-width:200px;cursor:pointer;outline:none}.assignment-select:focus{border-color:#00d9ff}.assignment-select.bill{border-color:#0f86;background:#00ff8814}.assignment-select.new-bill{border-color:#00d9ff66;background:#00d9ff14}.suggestion-btn{background:transparent;border:1px dashed rgba(0,255,136,.4);color:#0f8;padding:.4rem .75rem;border-radius:6px;font-size:.75rem;cursor:pointer;white-space:nowrap;transition:all .2s}.suggestion-btn:hover{background:#00ff881a;border-style:solid}.new-bill-form{display:flex;flex-direction:column;gap:.5rem;background:#00d9ff0d;border:1px solid rgba(0,217,255,.2);border-radius:8px;padding:.75rem;min-width:280px}.new-bill-input{background:#0000004d;border:1px solid rgba(255,255,255,.1);border-radius:6px;color:#fff;font-size:.85rem;padding:.5rem .75rem;outline:none}.new-bill-input:focus{border-color:#00d9ff}.new-bill-row{display:flex;gap:.5rem}.new-bill-row .amount-input-wrapper{flex:1}.new-bill-row .day-select{width:100px}.new-bill-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:.25rem}.btn-small{padding:.4rem .75rem;border-radius:6px;font-size:.8rem;cursor:pointer;transition:all .2s}.btn-cancel{background:transparent;border:1px solid rgba(255,255,255,.2);color:#888}.btn-cancel:hover{border-color:#fff6;color:#fff}.btn-create{background:#00d9ff;border:none;color:#0a0a0f;font-weight:600}.btn-create:hover:not(:disabled){background:#33e1ff}.btn-create:disabled{background:#444;color:#666;cursor:not-allowed}@media(max-width:768px){.summary-grid-3{grid-template-columns:repeat(3,1fr)}.vendor-row{flex-direction:column;align-items:stretch;gap:.75rem}.vendor-assignment{flex-direction:column;align-items:stretch}.assignment-select{min-width:100%}.suggestion-btn{text-align:center}.new-bill-form{min-width:100%}.new-bill-row{flex-direction:column}.new-bill-row .day-select{width:100%}}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#000;padding:var(--spacing-md)}.login-card{width:100%;max-width:400px;background:var(--bg-secondary);border-radius:var(--radius-lg);padding:var(--spacing-lg);border:1px solid var(--border-subtle)}.login-welcome{text-align:center;color:#fff;font-family:Frutiger LT Pro,-apple-system,BlinkMacSystemFont,sans-serif;font-weight:300;font-size:2.8rem;margin-bottom:var(--spacing-md)}.login-header{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:8px}.login-title{font-family:Frutiger LT Pro,-apple-system,BlinkMacSystemFont,sans-serif;font-weight:700;font-size:2.34rem;color:var(--accent-cyan);margin:0;text-align:center}.login-favicon{display:block;width:90px;height:90px;margin:0 auto 20px;border-radius:12px}.login-subtitle{text-align:center;color:var(--text-secondary);margin-bottom:var(--spacing-md);font-size:.95rem}.login-form{display:flex;flex-direction:column;gap:var(--spacing-md)}.form-group{display:flex;flex-direction:column;gap:6px}.form-group label{font-size:.85rem;color:var(--text-secondary);font-weight:500}.form-group input{padding:12px 14px;border:1px solid var(--border-input);border-radius:var(--radius-md);background:#ffffff0d;color:var(--text-primary);font-size:1rem;transition:border-color .2s,box-shadow .2s}.form-group input:focus{outline:none;border-color:var(--accent-cyan);box-shadow:0 0 0 3px #00d9ff1a}.form-group input::placeholder{color:var(--text-muted)}.form-group input:disabled{opacity:.6;cursor:not-allowed}.login-button{padding:14px;background:var(--accent-gradient);border:none;border-radius:50px;color:var(--bg-primary);font-size:1rem;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s;margin-top:var(--spacing-sm)}.login-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #00d9ff4d}.login-button:disabled{opacity:.7;cursor:not-allowed;transform:none}.login-error{background:#ff475726;border:1px solid var(--color-negative);color:var(--color-negative);padding:12px;border-radius:var(--radius-md);font-size:.9rem;margin-bottom:var(--spacing-sm)}.login-message{background:#00ff8826;border:1px solid var(--color-positive);color:var(--color-positive);padding:12px;border-radius:var(--radius-md);font-size:.9rem;margin-bottom:var(--spacing-sm)}.login-footer{display:flex;flex-direction:column;align-items:center;gap:8px;margin-top:var(--spacing-md);padding-top:var(--spacing-md);border-top:1px solid var(--border-subtle)}.link-button{background:none;border:none;color:var(--accent-cyan);font-size:.9rem;cursor:pointer;padding:4px;transition:opacity .2s}.link-button:hover{opacity:.8;text-decoration:underline}@media(max-width:480px){.login-card{padding:var(--spacing-md)}.login-title{font-size:1.5rem}.login-welcome{font-size:2.4rem}.login-favicon{width:80px;height:80px;margin:0 auto 16px}}.app{min-height:100vh;padding-bottom:var(--spacing-lg);transition:margin-right .3s ease}.app.panel-open{margin-right:320px}.container{width:100%;max-width:100%;margin:0;padding:var(--spacing-md);box-sizing:border-box}.chart-section{margin-top:var(--spacing-md);background:var(--bg-card);border-radius:var(--radius-lg);padding:var(--spacing-md);border:1px solid var(--border-subtle)}@media(max-width:480px){.chart-section{background:#1a1a2e;padding:.75rem;border:1px solid rgba(255,255,255,.08);margin:.75rem 0;border-radius:8px}}.loading{display:flex;align-items:center;justify-content:center;min-height:300px;color:var(--text-muted);font-size:1.2rem}.error{display:flex;align-items:center;justify-content:center;min-height:200px;color:var(--color-negative);background:var(--color-danger-bg);border-radius:var(--radius-md);padding:var(--spacing-md)}.section{margin-bottom:var(--spacing-lg)}@media(max-width:1024px){.app.panel-open{margin-right:280px}}@media(max-width:768px){.app.panel-open{margin-right:0;padding-bottom:0}.container{padding:12px;max-width:100%;width:100%;box-sizing:border-box;overflow-x:hidden}.chart-section{padding:var(--spacing-sm);border-radius:var(--radius-md)}}@media(max-width:480px){.app{padding-bottom:var(--spacing-md);background:#000}.container{padding:8px;width:100%;max-width:100%}.section{margin-bottom:.75rem}}
