:root{--bg: #f8fafc;--card: #ffffff;--text: #0f172a;--text-dim: #64748b;--border: #e2e8f0;--accent: #3b82f6;--green: #22c55e;--red: #ef4444}[data-theme=dark]{--bg: #0f172a;--card: #1e293b;--text: #f8fafc;--text-dim: #94a3b8;--border: #334155;--accent: #60a5fa;--green: #4ade80;--red: #f87171}[data-theme=taupe]{--bg: #e6e2dd;--card: #f2f0ed;--text: #4a403a;--text-dim: #8c8279;--border: #d4cdc5;--accent: #9f8ea1;--green: #7d9c7e;--red: #c97c7c}.theme-btn-group{display:flex;gap:10px;width:100%}.theme-btn{flex:1;padding:15px;border-radius:8px;border:2px solid transparent;cursor:pointer;font-size:.9rem;font-weight:600;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .2s}.theme-btn.light{background:#f8fafc;color:#0f172a;border-color:#e2e8f0}.theme-btn.dark{background:#1e293b;color:#f8fafc;border-color:#334155}.theme-btn.taupe{background:#e6e2dd;color:#4a403a;border-color:#d4cdc5}.theme-btn.active{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}body{margin:0;font-family:Inter,system-ui,sans-serif;background-color:var(--bg);color:var(--text);transition:background-color .3s,color .3s}.app-container{display:flex;min-height:100vh}.sidebar{width:240px;background:var(--sidebar);padding:24px;border-right:1px solid var(--border);display:flex;flex-direction:column;gap:8px;transition:background-color .3s}.logo{display:flex;align-items:center;gap:12px;font-size:1.2rem;font-weight:700;color:var(--accent);margin-bottom:40px}.nav-item{background:none;border:none;color:var(--text-dim);padding:12px;text-align:left;cursor:pointer;border-radius:8px;font-weight:500;display:flex;align-items:center;gap:10px;font-size:.95rem}.nav-item:hover{background:#7d7d7d1a;color:var(--text)}.nav-item.active{background:var(--accent);color:#fff}.main-content{flex:1;padding:32px;overflow-y:auto}.page-header{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:30px}h1{margin:0;font-size:2rem}.subtitle{color:var(--text-dim);margin-top:5px}.summary-card{background:var(--card);padding:15px 25px;border-radius:12px;text-align:right;border:1px solid var(--border);box-shadow:0 4px 6px -1px #0000000d}.summary-label{font-size:.8rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.5px}.summary-amount{font-size:1.8rem;font-weight:800}.text-green{color:var(--green)}.text-red{color:var(--red)}.controls-bar{margin-bottom:20px;display:flex;justify-content:flex-end}.balance-btn{background:var(--accent);color:#fff;border:none;padding:10px 20px;border-radius:8px;font-weight:600;cursor:pointer;display:flex;gap:8px;align-items:center}.balance-btn:hover{opacity:.9}.board{display:grid;grid-template-columns:1fr 1fr;gap:24px}@media(max-width:900px){.board{grid-template-columns:1fr}}.pay-column{background:var(--sidebar);border-radius:16px;padding:20px;border:1px solid var(--border)}.col-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.col-header h2{margin:0;font-size:1.2rem}.income-input-group{display:flex;align-items:center;gap:10px}.income-input-group input{width:90px;background:var(--bg);border:1px solid var(--border);color:var(--green);padding:8px;border-radius:6px;text-align:right;font-size:1.1rem;font-weight:700}.scoreboard{background:var(--bg);padding:15px;border-radius:12px;display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;border:2px solid transparent}.scoreboard.success{border-color:var(--green);color:var(--green)}.scoreboard.danger{border-color:var(--red);color:var(--red)}.scoreboard .amount{font-size:1.4rem;font-weight:700}.bill-list-area{background:var(--bg);border-radius:12px;padding:12px;min-height:400px}.bill-list-area.dragging-over{background:var(--card);box-shadow:inset 0 0 0 2px var(--accent)}.draggable-bill{background:var(--card);color:var(--text);padding:12px;margin-bottom:10px;border-radius:8px;display:flex;align-items:center;gap:12px;box-shadow:0 2px 4px #0000000d;-webkit-user-select:none;user-select:none;border:1px solid var(--border)}.draggable-bill:hover{transform:translateY(-2px);border-color:var(--accent)}.bill-content{flex:1}.bill-name{font-weight:600}.bill-sub{font-size:.8rem;color:var(--text-dim)}.bill-amt{font-weight:600}.form-card{background:var(--card);padding:24px;border-radius:16px;max-width:600px;margin-bottom:30px;border:1px solid var(--border)}.add-bill-form{display:flex;flex-direction:column;gap:16px;margin-top:16px}.form-row{display:flex;gap:16px}.input-field{padding:12px;background:var(--bg);border:1px solid var(--border);border-radius:8px;color:var(--text);flex:1}.form-actions{display:flex;gap:10px}.btn-primary{background:var(--accent);color:#fff;padding:12px 24px;border:none;border-radius:8px;cursor:pointer;font-weight:600;display:flex;align-items:center;gap:8px}.btn-cancel{background:transparent;color:var(--text-dim);border:none;cursor:pointer}.bill-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px}.bill-card-item{background:var(--card);padding:20px;border-radius:12px;border:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}.bill-actions{display:flex;gap:8px}.bill-actions button{background:none;border:none;color:var(--text-dim);cursor:pointer}.bill-actions button.del:hover{color:var(--red)}.split-summary-card{background:var(--card);border:1px solid var(--border);padding:15px 25px;border-radius:12px;min-width:250px}.split-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.split-row.highlight{margin-bottom:0;margin-top:8px}.split-divider{height:1px;background:var(--border);width:100%}.text-accent{color:var(--accent);font-weight:800;font-size:1.2rem}.label{display:flex;align-items:center;gap:8px;font-size:.9rem;color:var(--text-dim)}.income-bar{background:var(--sidebar);padding:15px;border-radius:12px;margin-bottom:30px;display:flex;gap:30px;justify-content:center;border:1px solid var(--border)}.balance-section{margin-bottom:30px}.balance-section h3{margin-bottom:10px;font-size:1.1rem;display:flex;align-items:center;gap:8px}.balance-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.mini-column{background:var(--bg);border:1px solid var(--border);border-radius:12px;padding:10px;min-height:100px;transition:background .2s}.mini-column.drag-active{background:var(--sidebar);border-color:var(--accent)}.mini-header{display:flex;justify-content:space-between;padding:0 5px 10px;font-size:.85rem;color:var(--text-dim);font-weight:600;border-bottom:1px solid var(--border);margin-bottom:10px}.mini-total{color:var(--text)}.mini-bill{padding:8px 12px;font-size:.9rem;margin-bottom:8px}.owner-toggle-row{display:flex;gap:8px;margin-top:5px;flex-wrap:wrap}.owner-btn{flex:1;min-width:80px;background:var(--bg);border:1px solid var(--border);color:var(--text-dim);padding:8px;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;font-size:.85rem}.owner-btn:hover{background:var(--card)}.owner-btn.selected{background:var(--accent);color:#fff;border-color:var(--accent)}.bill-owner-tag{font-size:.7rem;font-weight:700;text-transform:uppercase;margin-bottom:2px}.theme-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:15px}.theme-card{border:1px solid var(--border);border-radius:12px;padding:15px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:10px;transition:transform .2s}.theme-card:hover{transform:translateY(-3px);border-color:var(--accent)}.theme-preview{width:100%;height:60px;border-radius:8px;display:flex;overflow:hidden}.theme-preview .c1{flex:1}.theme-preview .c2{flex:2}.owner-list{display:flex;flex-direction:column;gap:10px}.owner-item{display:flex;justify-content:space-between;align-items:center;background:var(--bg);padding:12px;border-radius:8px;border:1px solid var(--border)}.income-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;margin-bottom:40px}.person-income-card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:16px;box-shadow:0 4px 6px -1px #0000001a}.person-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;font-weight:700;font-size:1.1rem}.free-cash-badge{font-size:.85rem;padding:4px 8px;border-radius:6px;font-weight:800}.free-cash-badge.pos{background:#22c55e26;color:var(--green)}.free-cash-badge.neg{background:#ef444426;color:var(--red)}.income-inputs{display:flex;gap:12px}.inp-group{flex:1}.inp-group label{display:block;font-size:.75rem;color:var(--text-dim);margin-bottom:4px}.inp-group input{width:100%;background:var(--bg);border:1px solid var(--border);color:var(--text);padding:8px;border-radius:6px;font-weight:600;box-sizing:border-box}.inp-group input:focus{outline:none;border-color:var(--accent)}.mini-free{font-size:.75rem;margin-top:6px;font-weight:700;text-align:right}.mini-free.pos{color:var(--green)}.mini-free.neg{color:var(--red)}.section-header-row{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border);padding-bottom:8px;margin-bottom:15px}.section-header-row h3{margin:0;border-bottom:none!important;padding-bottom:0!important}.section-balance-btn{background:var(--card);border:1px solid var(--border);color:var(--text-dim);padding:6px 12px;border-radius:6px;font-size:.8rem;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:6px;transition:all .2s}.section-balance-btn:hover{background:var(--accent);color:#fff;border-color:var(--accent)}.stats-stack{margin-top:6px;display:flex;flex-direction:column;align-items:flex-end;gap:2px}.mini-due{font-size:.7rem;color:var(--text-dim);font-weight:500}.mini-free{font-size:.8rem;font-weight:800}.bill-vertical-list{display:flex;flex-direction:column;gap:30px}.owner-group{display:flex;flex-direction:column}.owner-group-title{margin:0 0 12px;font-size:1.1rem;border-bottom:1px solid var(--border);padding-bottom:8px;display:flex;align-items:center;gap:8px}.owner-group-items{display:flex;flex-direction:column;gap:10px}.bill-list-item{background:var(--card);padding:15px 20px;border-radius:8px;border:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;transition:transform .2s}.bill-list-item:hover{transform:translate(4px);border-color:var(--accent)}.bill-list-item .bill-info{flex:1}.bill-list-item .bill-amt{font-size:1.1rem;font-weight:700;margin-right:20px}.btn-balance-all{background:var(--red);color:#fff;border:none;padding:12px 24px;border-radius:8px;font-size:1rem;font-weight:700;cursor:pointer;display:flex;align-items:center;gap:8px;transition:transform .2s,opacity .2s;box-shadow:0 4px 6px #ef444433}.btn-balance-all:hover{opacity:.9;transform:translateY(-2px);box-shadow:0 6px 12px #ef44444d}.btn-balance-all:active{transform:translateY(0)}.month-selector{display:flex;align-items:center;justify-content:center;gap:20px;margin-bottom:30px;background:var(--card);padding:10px;border-radius:12px;border:1px solid var(--border)}.month-selector h2{margin:0;font-size:1.5rem;width:200px;text-align:center}.month-selector button{background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:6px;cursor:pointer;display:flex;align-items:center;justify-content:center}.month-selector button:hover{background:var(--accent);color:#fff;border-color:var(--accent)}.draggable-bill{position:relative}.draggable-bill.is-paid{opacity:.5;background:var(--bg)}.draggable-bill.is-paid .bill-name,.draggable-bill.is-paid .bill-amt{text-decoration:line-through;color:var(--text-dim)}.btn-toggle-paid{background:none;border:none;cursor:pointer;padding:0 5px 0 0;display:flex;align-items:center}.btn-del-month{background:none;border:none;cursor:pointer;color:var(--text-dim);margin-left:8px;opacity:0;transition:opacity .2s}.draggable-bill:hover .btn-del-month{opacity:1}.btn-del-month:hover{color:var(--red)}.mini-header>div{display:flex;align-items:center;gap:8px}.btn-add-quick{background:transparent;border:1px dashed var(--text-dim);color:var(--text-dim);border-radius:4px;padding:2px 4px;cursor:pointer;display:flex;align-items:center}.btn-add-quick:hover{background:var(--card);color:var(--text);border-color:var(--text)}.modal-overlay{position:fixed;inset:0;background:#0009;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:9999}.modal-card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:24px;width:100%;max-width:400px;box-shadow:0 20px 25px -5px #0003,0 10px 10px -5px #0000001a}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;border-bottom:1px solid var(--border);padding-bottom:15px}.btn-close{background:transparent;border:none;color:var(--text-dim);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:4px;border-radius:4px}.btn-close:hover{background:var(--bg);color:var(--text)}.savings-widget{background:var(--sidebar);border:1px solid var(--border);border-radius:12px;padding:20px;margin-bottom:30px}.savings-widget-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:15px}.savings-mini-card{background:var(--bg);border:1px solid var(--border);padding:12px;border-radius:8px}.goal-progress-bar{height:8px;background:var(--border);border-radius:4px;overflow:hidden;margin:10px 0}.goal-progress-fill{height:100%;background:var(--accent);transition:width .4s ease-out}.goals-master-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}.goal-master-card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:20px;display:flex;flex-direction:column}.goal-master-card.complete{border-color:var(--green);background:#22c55e0d}.goal-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:15px}.goal-header h4{margin:5px 0 0;font-size:1.1rem}.goal-owner-badge{font-size:.7rem;font-weight:700;text-transform:uppercase;color:var(--accent)}.goal-actions{display:flex;gap:8px}.goal-actions button{background:none;border:none;color:var(--text-dim);cursor:pointer}.goal-actions button.del:hover{color:var(--red)}.goal-stats{display:flex;justify-content:space-between;font-weight:600;font-size:.9rem;margin-bottom:5px}.goal-footer{display:flex;justify-content:space-between;margin-top:15px;font-size:.85rem;color:var(--text-dim)}.complete-badge{color:var(--green);font-weight:700}.is-savings-bill{background:#3b82f60d}.btn-sync{background:var(--sidebar);color:var(--text);border:1px solid var(--border);padding:10px 16px;border-radius:8px;font-size:.9rem;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:8px;transition:all .2s}.btn-sync:hover{border-color:var(--accent);color:var(--accent)}.view-toggle{display:flex;background:var(--bg);border:1px solid var(--border);border-radius:8px;overflow:hidden}.view-toggle button{background:transparent;border:none;color:var(--text-dim);padding:8px 16px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:6px;transition:all .2s}.view-toggle button:hover{color:var(--text)}.view-toggle button.active{background:var(--card);color:var(--accent);box-shadow:inset 0 -2px 0 var(--accent)}.chart-container{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:30px;margin-top:20px;display:flex;flex-direction:column;align-items:center}.chart-container h3{margin-top:0;color:var(--text);font-size:1.2rem;margin-bottom:20px}.chart-tooltip{background:var(--bg);border:1px solid var(--border);padding:10px 15px;border-radius:8px;box-shadow:0 4px 6px #0000004d}.chart-tooltip .label{margin:0 0 5px;color:var(--text-dim);font-weight:600;font-size:.9rem}.chart-tooltip .value{margin:0;color:var(--text);font-weight:800;font-size:1.2rem}.recharts-legend-item-text{color:var(--text)!important}.charts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:20px;margin-top:20px}.chart-card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:20px;display:flex;flex-direction:column;align-items:center}.chart-card h3{margin-top:0;margin-bottom:15px;color:var(--text);font-size:1.1rem}.chart-card.full-width{grid-column:1 / -1}.chart-header-row{width:100%;display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.chart-header-row h3{margin:0;font-size:1.1rem}.select-wrapper-small{position:relative;display:flex;align-items:center}.select-wrapper-small .icon{position:absolute;left:8px;color:var(--text-dim);pointer-events:none}.select-wrapper-small select{background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:4px 8px 4px 26px;font-size:.8rem;font-weight:500;cursor:pointer;outline:none;appearance:none}.select-wrapper-small select:hover{border-color:var(--accent)}.btn-icon-only{background:transparent;border:none;color:var(--text-dim);cursor:pointer;padding:4px;border-radius:4px;display:flex;align-items:center;justify-content:center}.btn-icon-only:hover{background:var(--bg);color:var(--accent)}.chart-modal-overlay{position:fixed;inset:0;background:#000000d9;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:10000;display:flex;align-items:center;justify-content:center;padding:20px}.chart-modal-content{background:var(--card);border:1px solid var(--border);border-radius:16px;width:90vw;height:85vh;padding:30px;position:relative;display:flex;flex-direction:column;box-shadow:0 25px 50px -12px #00000080}.btn-close-chart{position:absolute;top:20px;right:20px;background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:50%;width:40px;height:40px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;z-index:10}.btn-close-chart:hover{background:var(--red);color:#fff;border-color:var(--red)}.todo-widget{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:20px;margin-bottom:30px}.todo-list{list-style:none;padding:0;margin:0}.todo-item{display:flex;align-items:center;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--border);transition:all .2s}.todo-item:last-child{border-bottom:none}.todo-input-row{display:flex;gap:10px;margin-top:15px}.checklist-widget{background:var(--bg);border-radius:8px;overflow:hidden}.checklist-widget.global{background:var(--card);border:1px solid var(--border);padding:20px;margin-bottom:30px}.checklist-widget.global .checklist-title{margin-top:0;font-size:1.1rem;margin-bottom:15px;display:flex;align-items:center;gap:8px}.checklist-widget.mini{background:#0000000d;border:1px dashed var(--border);padding:10px}[data-theme=dark] .checklist-widget.mini{background:#ffffff08}.checklist-items{display:flex;flex-direction:column;gap:0}.checklist-item{display:flex;align-items:center;justify-content:space-between;padding:6px 0;border-bottom:1px solid var(--border);font-size:.9rem}.checklist-item:last-child{border-bottom:none}.checklist-item .completed{text-decoration:line-through;color:var(--text-dim)}.checklist-widget.mini .checklist-item{font-size:.8rem;padding:4px 0}.checklist-form{display:flex;gap:8px;margin-top:10px}.checklist-form input{flex:1;background:var(--bg);border:1px solid var(--border);border-radius:4px;padding:6px;font-size:.9rem;color:var(--text);outline:none}.checklist-form input:focus{border-color:var(--accent)}.checklist-form button{background:var(--card);border:1px solid var(--border);color:var(--text);border-radius:4px;padding:0 10px;cursor:pointer;display:flex;align-items:center}.checklist-form button:hover{border-color:var(--accent);color:var(--accent)}.btn-check{background:none;border:none;cursor:pointer;padding:0;display:flex;align-items:center;margin-right:8px}.btn-del{background:none;border:none;cursor:pointer;color:var(--text-dim);opacity:.5;padding:0 0 0 8px}.btn-del:hover{color:var(--red);opacity:1}.calendar-widget{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:20px;margin-bottom:30px}.calendar-strip{display:flex;gap:8px;overflow-x:auto;padding-bottom:10px}.calendar-strip::-webkit-scrollbar{height:6px}.calendar-strip::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.day-card{flex:0 0 46px;height:60px;border-radius:8px;background:var(--bg);border:1px solid var(--border);display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:default;position:relative;transition:all .2s}.day-card.is-today{border:2px solid var(--accent)}.day-name{font-size:.7rem;color:var(--text-dim);text-transform:uppercase}.day-number{font-size:1rem;font-weight:700;color:var(--text)}.day-card.intensity-low{background:#22c55e26;border-color:#22c55e4d}.day-card.intensity-med{background:#f59e0b33;border-color:#f59e0b66}.day-card.intensity-high{background:#ef444433;border-color:#ef444466}.day-tooltip{position:absolute;bottom:110%;left:50%;transform:translate(-50%);background:var(--card);border:1px solid var(--border);border-radius:8px;padding:10px;width:200px;box-shadow:0 10px 20px #0000004d;z-index:100;opacity:0;visibility:hidden;transition:all .2s;pointer-events:none}.day-card:hover .day-tooltip{opacity:1;visibility:visible;bottom:120%}.tooltip-header{font-weight:700;border-bottom:1px solid var(--border);padding-bottom:6px;margin-bottom:6px;text-align:center}.tooltip-row{display:flex;justify-content:space-between;font-size:.85rem;margin-bottom:4px}.big-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;width:100%}.cal-header{text-align:center;font-size:.8rem;font-weight:600;color:var(--text-dim);text-transform:uppercase;padding-bottom:8px}.cal-cell{background:var(--bg);border:1px solid var(--border);border-radius:8px;min-height:80px;padding:6px;display:flex;flex-direction:column}.cal-cell.empty{background:transparent;border:none}.cal-date{font-size:.85rem;font-weight:600;color:var(--text-dim);margin-bottom:4px}.cal-pills{display:flex;flex-direction:column;gap:4px}.cal-pill{font-size:.7rem;background:var(--card);border:1px solid var(--border);border-radius:4px;padding:2px 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text)}.cal-pill.paid{text-decoration:line-through;opacity:.5}.cal-pill.shared{border-left:3px solid var(--accent)}.upcoming-list{display:flex;flex-direction:column;gap:12px}.upcoming-item{display:flex;align-items:center;gap:12px;padding:10px;background:var(--bg);border:1px solid var(--border);border-radius:8px}.upcoming-date{display:flex;flex-direction:column;align-items:center;background:var(--card);border:1px solid var(--border);padding:4px 8px;border-radius:6px;min-width:40px}.upcoming-date .day{font-size:1.1rem;font-weight:700;color:var(--text)}.upcoming-date .ordinal{font-size:.7rem;color:var(--text-dim)}.upcoming-details{flex:1}.upcoming-details .name{font-weight:600;font-size:.95rem}.upcoming-details .meta{font-size:.75rem;color:var(--text-dim)}.upcoming-amount{font-weight:600;color:var(--text);font-size:1rem}@media(max-width:1000px){.forecast-grid{grid-template-columns:1fr!important}}.forecast-section{margin-bottom:30px}.upcoming-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:15px}.upcoming-card{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:15px;display:flex;align-items:center;gap:15px;transition:transform .2s,box-shadow .2s}.upcoming-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a;border-color:var(--accent)}.upcoming-left{display:flex;flex-direction:column;align-items:center;background:var(--bg);padding:8px 12px;border-radius:8px;border:1px solid var(--border);min-width:50px}.upcoming-day{font-size:1.2rem;font-weight:800;color:var(--text);line-height:1}.upcoming-ordinal{font-size:.7rem;color:var(--text-dim);text-transform:uppercase;font-weight:700}.upcoming-right{flex:1;display:flex;flex-direction:column}.upcoming-right .bill-name{font-weight:600;font-size:.95rem;margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:140px}.upcoming-right .bill-sub{font-size:.75rem;color:var(--text-dim);margin-bottom:4px}.upcoming-right .bill-amount{font-weight:700;color:var(--accent)}.empty-state-card{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:30px;color:var(--text-dim);font-weight:500}.mini-date-input{background:transparent;border:none;border-bottom:1px dashed var(--border);color:var(--text-dim);width:24px;text-align:center;font-size:.75rem;padding:0;outline:none}.mini-date-input:focus{border-bottom-color:var(--accent);color:var(--accent)}.mini-date-input::-webkit-outer-spin-button,.mini-date-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.day-picker-container{position:relative;display:inline-block}.day-picker-trigger{display:flex;align-items:center;gap:6px;background:transparent;border:1px solid var(--border);color:var(--text);padding:4px 8px;border-radius:6px;cursor:pointer;font-size:.75rem;transition:all .2s}.day-picker-trigger:hover{border-color:var(--accent);color:var(--accent)}.day-picker-trigger .icon{color:var(--text-dim)}.day-picker-popover{position:absolute;top:110%;left:0;z-index:500;background:var(--card);border:1px solid var(--border);border-radius:8px;padding:10px;width:220px;box-shadow:0 10px 25px #00000080}.day-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:10px}.day-btn{width:26px;height:26px;border-radius:4px;background:var(--bg);border:none;color:var(--text);font-size:.8rem;cursor:pointer;display:flex;align-items:center;justify-content:center}.day-btn:hover{background:var(--border)}.day-btn.active{background:var(--accent);color:#fff;font-weight:700}.btn-clear-date{width:100%;background:transparent;border:1px dashed var(--border);color:var(--text-dim);font-size:.75rem;padding:6px;border-radius:4px;cursor:pointer}.btn-clear-date:hover{border-color:var(--red);color:var(--red)}.bill-owner-label{font-size:.65rem;color:var(--accent);margin-top:2px;font-weight:600;opacity:.8;text-transform:uppercase;letter-spacing:.5px}.bills-list{display:flex;flex-direction:column;gap:10px}.bill-row-card{display:flex;justify-content:space-between;align-items:center;background:var(--card);border:1px solid var(--border);padding:16px;border-radius:12px;transition:all .2s ease}.bill-row-card:hover{border-color:var(--accent);transform:translate(4px);box-shadow:0 4px 12px #0000001a}.bill-info{display:flex;align-items:center;gap:20px;flex:1}.bill-date{font-size:1.2rem;font-weight:800;color:var(--text-dim);width:40px;text-align:center;line-height:1}.bill-details{display:flex;flex-direction:column;justify-content:center}.bill-details .name{font-size:1rem;font-weight:600;color:var(--text);margin-bottom:4px}.bill-details .owner-badge{display:flex;align-items:center;font-size:.75rem;color:var(--text-dim);background:var(--bg);padding:2px 8px;border-radius:4px;border:1px solid var(--border);width:fit-content}.bill-actions{display:flex;align-items:center;gap:20px}.bill-actions .amount{font-weight:700;font-size:1rem;color:var(--text)}.edit-form-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1fr auto auto;gap:10px;align-items:center;width:100%}.edit-form-grid input,.edit-form-grid select{background:var(--bg);border:1px solid var(--border);padding:8px;border-radius:6px;color:var(--text);font-size:.9rem;width:100%}.input-group{display:flex;align-items:center;border:1px solid var(--border);border-radius:6px;background:var(--bg);padding-left:8px;overflow:hidden}.input-group .prefix{font-size:.75rem;color:var(--text-dim);white-space:nowrap;margin-right:4px}.input-group input{border:none;background:transparent;padding:8px 4px}@media(max-width:900px){.edit-form-grid{grid-template-columns:1fr 1fr;grid-template-rows:auto auto auto}.edit-form-grid button{width:100%}}.owner-group-section{margin-bottom:30px}.group-header{font-size:1.1rem;color:var(--accent);border-bottom:1px solid var(--border);padding-bottom:8px;margin-bottom:15px;text-transform:uppercase;letter-spacing:1px}.labeled-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:15px;align-items:end;width:100%}.card .labeled-form-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));row-gap:20px}.form-field{display:flex;flex-direction:column;gap:6px;min-width:0}.form-field label{font-size:.7rem;color:var(--text-dim);font-weight:700;text-transform:uppercase;letter-spacing:.5px;margin-left:2px;white-space:nowrap}.form-field input,.form-field select{background:var(--bg);border:1px solid var(--border);padding:0 12px;border-radius:8px;color:var(--text);font-size:.9rem;width:100%;height:42px;box-sizing:border-box;transition:border-color .2s}.form-field input:focus,.form-field select:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 2px #3b82f61a}.form-actions-cell{display:flex;align-items:center;height:42px;gap:8px;min-width:80px}@media(max-width:1200px){.bill-row-card .labeled-form-grid{grid-template-columns:repeat(auto-fit,minmax(100px,1fr))}}@media(max-width:768px){.labeled-form-grid,.card .labeled-form-grid,.bill-row-card .labeled-form-grid{grid-template-columns:1fr 1fr}.form-field:first-child{grid-column:1 / -1}.form-actions-cell{grid-column:1 / -1;justify-content:flex-end;margin-top:10px}}.categories-list{display:flex;flex-direction:column;gap:8px;margin-bottom:15px;max-height:200px;overflow-y:auto}.category-item{display:flex;justify-content:space-between;align-items:center;padding:8px;background:var(--bg);border:1px solid var(--border);border-radius:6px;font-size:.9rem}.color-dot{width:12px;height:12px;border-radius:50%}.add-category-form{display:flex;gap:10px;align-items:center}.color-picker-input{width:40px;height:40px;padding:0;border:none;background:none;cursor:pointer}.settings-grid{display:flex;flex-direction:column;gap:20px;max-width:600px;margin:0 auto;width:100%}.settings-card{padding:25px;border:1px solid var(--border);background:var(--card);border-radius:12px}.settings-card h3{margin-top:0;margin-bottom:20px;font-size:1.1rem;border-bottom:1px solid var(--border);padding-bottom:10px;color:var(--text)}.categories-list,.owners-list{display:flex;flex-direction:column;gap:8px;margin-bottom:20px;max-height:300px;overflow-y:auto;padding-right:5px}.category-item,.owner-item{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;background:var(--bg);border:1px solid var(--border);border-radius:8px;font-size:.95rem;color:var(--text);transition:border-color .2s}.category-item:hover,.owner-item:hover{border-color:var(--accent)}.add-category-form,.add-owner-form{display:flex;gap:10px;align-items:center;width:100%}.add-category-form input[type=text],.add-owner-form input.input-field{flex:1;min-width:0;height:42px;background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:0 12px;color:var(--text);font-size:.9rem}.add-category-form input:focus,.add-owner-form input:focus{border-color:var(--accent);outline:none}.color-picker-input{width:42px;height:42px;padding:0;border:1px solid var(--border);background:var(--bg);cursor:pointer;border-radius:8px;overflow:hidden;flex-shrink:0}.color-picker-input::-webkit-color-swatch-wrapper{padding:2px}.color-picker-input::-webkit-color-swatch{border:none;border-radius:4px}.add-category-form button,.add-owner-form button{height:42px;width:42px;flex-shrink:0;display:flex;align-items:center;justify-content:center;padding:0}.balance-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;padding:8px 0;border-bottom:1px dashed var(--border)}.balance-row input{width:120px;text-align:right;background:var(--bg);border:1px solid var(--border);padding:6px 10px;border-radius:6px;color:var(--text)}.categories-list::-webkit-scrollbar,.owners-list::-webkit-scrollbar{width:6px}.categories-list::-webkit-scrollbar-thumb,.owners-list::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.btn-close-books{background:var(--bg);color:var(--accent);border:1px solid var(--accent);padding:0 12px;border-radius:6px;cursor:pointer;display:flex;align-items:center;gap:6px;font-size:.85rem;font-weight:600;transition:all .2s;height:36px}.btn-close-books:hover{background:var(--accent);color:#fff}.closed-badge{font-size:.7rem;background:var(--bg);color:var(--text-dim);border:1px solid var(--border);padding:2px 8px;border-radius:12px;display:flex;align-items:center;gap:4px;font-weight:600;text-transform:uppercase}.btn-reopen-books{background:var(--bg);color:var(--text-dim);border:1px solid var(--text-dim);padding:0 12px;border-radius:6px;cursor:pointer;display:flex;align-items:center;gap:6px;font-size:.85rem;font-weight:600;transition:all .2s;height:36px}.btn-reopen-books:hover{border-color:var(--accent);color:var(--accent)}@media(max-width:768px){.app-container{flex-direction:column}.sidebar{width:100%;height:auto;flex-direction:row;padding:10px 5px;position:fixed;bottom:0;left:0;z-index:1000;border-right:none;border-top:1px solid var(--border);justify-content:space-around;box-sizing:border-box;background:var(--card)}.logo{display:none}.sidebar .nav-item{flex-direction:column;font-size:.65rem;padding:6px;gap:4px;align-items:center;justify-content:center;flex:1;text-align:center}.sidebar .nav-item[style*="margin-top: auto"]{margin-top:0!important}.main-content{padding:15px 15px 90px}.page-header>div:first-child{flex-direction:column!important;align-items:flex-start!important;gap:15px!important}.page-header>div:first-child>div:last-child{flex-wrap:wrap;width:100%;justify-content:flex-start}.balance-grid,.charts-grid{grid-template-columns:1fr}.income-inputs{flex-direction:column}.stats-stack{flex-direction:row;justify-content:space-between;margin-bottom:10px}.modal-card{max-width:90vw}}.report-hero-card{display:flex;justify-content:space-around;align-items:center;background:var(--card);border:1px solid var(--border);border-radius:16px;padding:30px;margin-bottom:30px;box-shadow:0 4px 6px -1px #0000000d;flex-wrap:wrap;gap:20px}.hero-metric{display:flex;flex-direction:column;align-items:center;min-width:150px}.hero-label{font-size:.85rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.5px;font-weight:700;margin-bottom:8px}.hero-value{font-size:2rem;font-weight:800;line-height:1;margin-bottom:6px}.hero-value.pos{color:var(--green)}.hero-value.neg{color:var(--red)}.hero-value.text-default{color:var(--text)}.hero-sub{font-size:.85rem;color:var(--text-dim);display:flex;align-items:center;gap:4px}.hero-divider{width:1px;height:60px;background:var(--border)}@media(max-width:768px){.hero-divider{display:none}.report-hero-card{flex-direction:column;align-items:stretch;gap:30px}.hero-metric{border-bottom:1px solid var(--border);padding-bottom:20px}.hero-metric:last-child{border-bottom:none;padding-bottom:0}}.reports-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:20px}.report-card{padding:20px;min-height:300px;display:flex;flex-direction:column}.report-card h3{margin-top:0;font-size:1.1rem;display:flex;align-items:center;gap:8px;margin-bottom:20px}.report-card.full-width{grid-column:1 / -1;min-height:auto}.category-rank-list{display:flex;flex-direction:column;gap:15px}.rank-item{position:relative;padding:8px 0}.rank-info{display:flex;justify-content:space-between;position:relative;z-index:2;font-weight:600;font-size:.9rem}.rank-bar-bg{position:absolute;bottom:0;left:0;height:6px;width:100%;background:var(--bg);border-radius:3px;overflow:hidden}.rank-bar-fill{height:100%;border-radius:3px}.forecast-stat{text-align:center;display:flex;flex-direction:column;gap:4px}.f-label{font-size:.8rem;color:var(--text-dim);text-transform:uppercase}.f-val{font-size:1.4rem;font-weight:700;color:var(--text)}.f-sub{font-size:.75rem;color:var(--text-dim)}.forecast-stat.highlight .f-val{font-size:1.8rem}.split-list-container{display:grid;grid-template-columns:1fr 1fr;gap:40px}@media(max-width:768px){.split-list-container{grid-template-columns:1fr;gap:30px}}.split-col h4{margin:0 0 15px;padding-bottom:8px;font-size:.9rem;text-transform:uppercase;letter-spacing:.5px}.detail-list{display:flex;flex-direction:column;gap:0;max-height:400px;overflow-y:auto;padding-right:5px}.detail-list::-webkit-scrollbar{width:4px}.detail-list::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.detail-row{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px dashed var(--border);font-size:.9rem}.detail-row:last-child{border-bottom:none}.d-name{color:var(--text);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-right:10px}.d-val{font-weight:600;color:var(--text-dim)}.empty-msg{font-size:.85rem;color:var(--text-dim);font-style:italic;padding:10px 0}.view-toggle button{white-space:nowrap}.trend-row{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;padding:12px 0;border-bottom:1px solid var(--border);align-items:center}.trend-val{font-weight:600;text-align:right}.trend-diff{font-weight:700;text-align:right;display:flex;flex-direction:column;align-items:flex-end;line-height:1.2}.tool-tabs{display:flex;gap:15px;border-bottom:1px solid var(--border);padding-bottom:10px}.tool-tab{background:transparent;border:none;font-size:1rem;font-weight:600;color:var(--text-dim);cursor:pointer;padding:8px 12px;border-radius:6px;transition:all .2s}.tool-tab.active{background:var(--card);color:var(--accent);box-shadow:0 2px 4px #0000000d}.tools-grid-layout{display:grid;grid-template-columns:350px 1fr;gap:30px;align-items:start}@media(max-width:900px){.tools-grid-layout{grid-template-columns:1fr}}.inputs-column,.results-column{display:flex;flex-direction:column;gap:20px}.debt-list{display:flex;flex-direction:column;gap:10px;margin-bottom:20px;max-height:300px;overflow-y:auto}.debt-item{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:12px;display:flex;justify-content:space-between;align-items:center}.debt-name{font-weight:600;font-size:.95rem}.debt-sub{font-size:.75rem;color:var(--text-dim)}.debt-bal{font-weight:700;color:var(--red);margin-right:10px}.add-debt-form{display:flex;flex-direction:column;gap:10px}.add-debt-form input{background:var(--bg);border:1px solid var(--border);padding:10px;border-radius:6px;color:var(--text);width:100%;box-sizing:border-box}.split-inputs{display:grid;grid-template-columns:1fr 1fr;gap:10px}.control-group{margin-bottom:20px}.control-group label{display:block;font-size:.9rem;font-weight:600;margin-bottom:10px;display:flex;justify-content:space-between}.highlight-val{color:var(--accent)}.slider{width:100%;accent-color:var(--accent);cursor:pointer}.slider-labels{display:flex;justify-content:space-between;font-size:.75rem;color:var(--text-dim);margin-top:4px}.strategy-toggle{display:flex;background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:4px;margin-bottom:8px}.strategy-toggle button{flex:1;background:transparent;border:none;padding:8px;border-radius:6px;color:var(--text-dim);font-size:.9rem;cursor:pointer;font-weight:600}.strategy-toggle button.active{background:var(--card);color:var(--text);box-shadow:0 2px 4px #0000001a}.strategy-desc{font-size:.8rem;color:var(--text-dim);margin:0;line-height:1.4}.sim-stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.sim-stat-card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:20px;display:flex;align-items:center;gap:15px}.sim-stat-card.success{border-color:var(--green);background:#22c55e0d}.sim-stat-card .icon-box{width:40px;height:40px;border-radius:50%;background:var(--card);display:flex;align-items:center;justify-content:center;box-shadow:0 2px 5px #0000000d}.sim-stat-card .label{font-size:.8rem;color:var(--text-dim);text-transform:uppercase;display:block;margin-bottom:4px}.sim-stat-card .value{font-size:1.4rem;font-weight:800;display:block;line-height:1;margin-bottom:4px;color:var(--text)}.sim-stat-card .sub{font-size:.8rem;color:var(--green);font-weight:600}
