*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{font-family:system-ui,-apple-system,sans-serif;font-size:14px}:root{--blue: #60b2e5;--brown: #63372c;--red: #df7373;--green: #33673b;--cream: #f2e5d7}.app[data-theme=dark]{--glass-bg: rgba(242, 229, 215, .08);--glass-bg-heavy: rgba(242, 229, 215, .13);--glass-border: rgba(242, 229, 215, .18);--glass-border-heavy: rgba(242, 229, 215, .32);--glass-shadow: 0 8px 32px rgba(0, 0, 0, .3);--row-border: rgba(255, 255, 255, .07);--close-btn-bg: rgba(255, 255, 255, .08);--close-btn-hover-bg: rgba(255, 255, 255, .15);--card-bg: rgba(255, 255, 255, .07);--card-hover-bg: rgba(255, 255, 255, .12);--text: rgba(242, 229, 215, .95);--text-muted: rgba(242, 229, 215, .55);--text-subtle: rgba(242, 229, 215, .3);--accent: #60b2e5;--accent-hover: #8ecaed;--accent-glow: rgba(96, 178, 229, .3);--accent-btn-text: #0f1e2a;--danger: #df7373;--star-filled: #df7373;--star-empty: rgba(242, 229, 215, .2);--modal-bg: rgba(26, 12, 8, .78);--row-hover: rgba(255, 255, 255, .06);--th-bg: rgba(255, 255, 255, .06);--tfoot-bg: rgba(255, 255, 255, .06);--select-option-bg: #1a0f0a;background:radial-gradient(ellipse at 15% 15%,rgba(96,178,229,.35) 0%,transparent 50%),radial-gradient(ellipse at 85% 10%,rgba(99,55,44,.6) 0%,transparent 50%),radial-gradient(ellipse at 70% 85%,rgba(51,103,59,.45) 0%,transparent 50%),radial-gradient(ellipse at 10% 80%,rgba(223,115,115,.3) 0%,transparent 45%),#1a0f0a;background-attachment:fixed}.app[data-theme=light]{--glass-bg: rgba(255, 255, 255, .45);--glass-bg-heavy: rgba(255, 255, 255, .65);--glass-border: rgba(99, 55, 44, .15);--glass-border-heavy: rgba(99, 55, 44, .28);--glass-shadow: 0 8px 32px rgba(99, 55, 44, .12);--row-border: rgba(99, 55, 44, .08);--close-btn-bg: rgba(99, 55, 44, .08);--close-btn-hover-bg: rgba(99, 55, 44, .15);--card-bg: rgba(255, 255, 255, .5);--card-hover-bg: rgba(255, 255, 255, .75);--text: #2a1208;--text-muted: rgba(42, 18, 8, .55);--text-subtle: rgba(42, 18, 8, .3);--accent: #2d8fc7;--accent-hover: #1a6f9e;--accent-glow: rgba(45, 143, 199, .25);--accent-btn-text: #ffffff;--danger: #c0392b;--star-filled: #c0392b;--star-empty: rgba(99, 55, 44, .2);--modal-bg: rgba(245, 234, 220, .9);--row-hover: rgba(99, 55, 44, .05);--th-bg: rgba(99, 55, 44, .06);--tfoot-bg: rgba(99, 55, 44, .06);--select-option-bg: #f2e5d7;background:radial-gradient(ellipse at 10% 10%,rgba(96,178,229,.18) 0%,transparent 45%),radial-gradient(ellipse at 88% 8%,rgba(242,229,215,.7) 0%,transparent 45%),radial-gradient(ellipse at 75% 90%,rgba(51,103,59,.12) 0%,transparent 45%),radial-gradient(ellipse at 5% 85%,rgba(223,115,115,.12) 0%,transparent 40%),#f5ece2;background-attachment:fixed}body{min-height:100vh}[data-theme=dark] body,:root:not([data-theme]) body{background:#1a0f0a}[data-theme=light] body{background:#f5ece2}#root{min-height:100vh}.app{min-height:100vh;display:flex;flex-direction:column;color:var(--text)}.app-header{background:var(--glass-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--glass-border);padding:20px 32px;display:flex;align-items:center;position:relative;z-index:50;justify-content:space-between}.app-header h1{font-size:22px;font-weight:700;color:var(--text);letter-spacing:-.3px;background:linear-gradient(135deg,var(--cream) 0%,var(--accent-hover) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.app-header p{font-size:13px;color:var(--text-muted);margin-top:3px}.tabs{display:flex;background:var(--glass-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--glass-border);padding:0 32px}.tab{background:none;border:none;border-bottom:2px solid transparent;padding:13px 18px;font-size:13px;font-weight:500;color:var(--text-muted);cursor:pointer;transition:all .2s;margin-bottom:-1px;letter-spacing:.1px}.tab:hover{color:var(--text)}.tab.active{color:var(--accent-hover);border-bottom-color:var(--accent)}.main-content{flex:1;padding:28px 32px;max-width:1400px;width:100%;margin:0 auto}.list-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;gap:16px;flex-wrap:wrap}.budget-summary{display:flex;align-items:center;gap:14px;background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--glass-border);border-radius:12px;padding:10px 18px}.budget-label{font-size:12px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.budget-label--upcoming{margin-left:8px}.budget-amount{font-size:20px;font-weight:700;color:var(--text)}.budget-count{font-size:11px;color:var(--text-muted);background:var(--close-btn-bg);padding:3px 10px;border-radius:999px;border:1px solid var(--glass-border)}.list-controls{display:flex;align-items:center;gap:10px}.list-controls select{padding:8px 12px;border:1px solid var(--glass-border);border-radius:8px;font-size:13px;color:var(--text);background:var(--glass-bg-heavy);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}.list-controls select option{background:var(--select-option-bg);color:var(--text)}.btn-primary{background:linear-gradient(135deg,var(--accent) 0%,var(--accent-hover) 100%);color:var(--accent-btn-text);border:none;padding:9px 18px;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s;box-shadow:0 4px 14px var(--accent-glow);letter-spacing:.1px}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 6px 20px var(--accent-glow);filter:brightness(1.1)}.btn-primary:active{transform:translateY(0)}.btn-secondary{background:var(--glass-bg);color:var(--text);border:1px solid var(--glass-border);padding:9px 18px;border-radius:8px;font-size:13px;font-weight:500;cursor:pointer;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:all .2s}.btn-secondary:hover{background:var(--glass-bg-heavy);border-color:var(--glass-border-heavy)}.btn-edit{background:#a78bfa26;color:var(--accent-hover);border:1px solid rgba(167,139,250,.25);padding:4px 11px;border-radius:6px;font-size:12px;font-weight:500;cursor:pointer;transition:all .15s}.btn-edit:hover{background:#a78bfa40}.btn-delete{background:#f871711f;color:var(--danger);border:1px solid rgba(248,113,113,.22);padding:4px 11px;border-radius:6px;font-size:12px;font-weight:500;cursor:pointer;transition:all .15s}.btn-delete:hover{background:#f8717138}.items-table{width:100%;border-collapse:collapse;background:var(--glass-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-radius:14px;overflow:hidden;border:1px solid var(--glass-border);box-shadow:var(--glass-shadow)}.items-table th{background:var(--th-bg);padding:11px 18px;text-align:left;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.8px;color:var(--text-muted);border-bottom:1px solid var(--glass-border)}.items-table td{padding:14px 18px;border-bottom:1px solid var(--row-border);vertical-align:middle}.items-table tr:last-child td{border-bottom:none}.items-table tbody tr{transition:background .15s}.items-table tbody tr:hover{background:var(--row-hover)}.item-name{font-weight:600;color:var(--text);margin-bottom:2px}.item-details{font-size:12px;color:var(--text-muted);margin-top:3px;line-height:1.4}.item-link{font-size:12px;color:var(--accent-hover);text-decoration:none;display:inline-block;margin-top:4px;opacity:.8;transition:opacity .15s}.item-link:hover{opacity:1;text-decoration:underline}.price-cell{font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--text)}.action-buttons{display:flex;gap:6px}.items-table tfoot td{background:var(--tfoot-bg);border-top:1px solid var(--glass-border);font-size:13px}.star-rating{display:inline-flex;gap:2px}.star{font-size:15px;color:var(--star-empty);line-height:1}.star.filled{color:var(--star-filled);filter:drop-shadow(0 0 4px rgba(251,191,36,.5))}.star.clickable{cursor:pointer;transition:color .1s,filter .1s}.star.clickable:hover{color:var(--star-filled)}.timeline-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;touch-action:pan-x pan-y;border-radius:14px;border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}.timeline-table{border-collapse:collapse;min-width:100%;background:var(--glass-bg)}.timeline-table th{min-width:230px;padding:14px 16px;text-align:left;background:var(--th-bg);border-bottom:1px solid var(--glass-border);border-right:1px solid var(--row-border);vertical-align:top}.timeline-table th:last-child{border-right:none}.month-header{display:flex;flex-direction:column;gap:3px}.month-name{font-size:13px;font-weight:700;color:var(--text);letter-spacing:-.1px}.month-total{font-size:12px;color:var(--accent-hover);font-weight:600}.month-upcoming{font-size:11px;color:var(--text-muted);font-weight:500}.timeline-items-row td{vertical-align:top;padding:14px;border-right:1px solid var(--row-border)}.timeline-items-row td:last-child{border-right:none}.timeline-card{background:var(--card-bg);border:1px solid var(--glass-border);border-radius:10px;padding:13px;margin-bottom:10px;transition:all .2s;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.timeline-card:last-child{margin-bottom:0}.timeline-card--purchased{opacity:.7}.timeline-purchased-tick{display:block;text-align:right;font-size:13px;font-weight:700;color:#6ab187;margin-top:6px}.timeline-card:hover{background:var(--card-hover-bg);border-color:var(--glass-border-heavy);transform:translateY(-1px);box-shadow:0 4px 16px #0003}.card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:5px;gap:8px}.card-name{font-weight:600;font-size:13px;color:var(--text)}.card-price{font-size:13px;font-weight:700;color:var(--accent-hover);margin-bottom:5px}.card-details{font-size:12px;color:var(--text-muted);margin-bottom:6px;line-height:1.4}.card-actions{display:flex;gap:6px;margin-top:10px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:100;padding:20px}.modal{background:var(--modal-bg);backdrop-filter:blur(30px);-webkit-backdrop-filter:blur(30px);border:1px solid var(--glass-border-heavy);border-radius:16px;width:100%;max-width:480px;max-height:90vh;overflow-y:auto;box-shadow:0 24px 64px #0000008c,0 0 0 1px #f2e5d70a inset}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:22px 24px 0;margin-bottom:18px}.modal-header h2{font-size:17px;font-weight:700;color:var(--text)}.close-btn{background:var(--close-btn-bg);border:1px solid var(--glass-border);border-radius:6px;font-size:14px;cursor:pointer;color:var(--text-muted);padding:4px 8px;line-height:1;transition:all .15s}.close-btn:hover{background:var(--close-btn-hover-bg);color:var(--text)}.modal form{padding:0 24px 24px;display:flex;flex-direction:column;gap:15px}.modal label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.modal input:not(.paid-by-amount),.modal textarea{padding:9px 12px;border:1px solid var(--glass-border);border-radius:8px;font-size:16px;color:var(--text);background:var(--glass-bg);transition:all .2s;font-family:inherit;width:100%}.modal input:not(.paid-by-amount)::placeholder,.modal textarea::placeholder{color:var(--text-subtle)}.modal input:not(.paid-by-amount):focus,.modal textarea:focus{outline:none;border-color:var(--accent);background:var(--glass-bg-heavy);box-shadow:0 0 0 3px var(--accent-glow)}.modal textarea{resize:vertical}.modal-actions{display:flex;justify-content:flex-end;gap:10px;padding-top:6px}.header-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.data-menu{position:relative}.data-menu-trigger{background:var(--glass-bg-heavy);border:1px solid var(--glass-border);border-radius:8px;padding:7px 12px;font-size:13px;font-weight:500;color:var(--text);cursor:pointer;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:all .2s;white-space:nowrap}.data-menu-trigger:hover{background:var(--glass-bg);border-color:var(--glass-border-heavy)}.data-menu-dropdown{position:absolute;top:calc(100% + 6px);right:0;min-width:180px;background:var(--modal-bg);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid var(--glass-border-heavy);border-radius:10px;padding:6px;box-shadow:var(--glass-shadow);z-index:200}.data-menu-section{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--text-subtle);padding:6px 10px 4px}.data-menu-item{display:block;width:100%;text-align:left;background:none;border:none;padding:8px 10px;font-size:13px;color:var(--text);cursor:pointer;border-radius:6px;transition:background .15s}.data-menu-item:hover{background:var(--glass-bg-heavy)}.data-menu-divider{height:1px;background:var(--glass-border);margin:4px 6px}.data-toast{position:absolute;top:calc(100% + 6px);right:0;background:var(--green);color:#fff;font-size:12px;font-weight:600;padding:7px 14px;border-radius:8px;white-space:nowrap;box-shadow:var(--glass-shadow-sm);animation:toast-in .2s ease;z-index:201}.data-toast-error{background:var(--danger)}@keyframes toast-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.theme-toggle{background:var(--glass-bg-heavy);border:1px solid var(--glass-border);border-radius:8px;padding:7px 11px;font-size:16px;cursor:pointer;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:all .2s;line-height:1;flex-shrink:0}.theme-toggle:hover{background:var(--glass-bg);border-color:var(--glass-border-heavy);transform:scale(1.08)}.cv-phases{display:flex;flex-direction:column;gap:20px}.cv-phase{background:var(--glass-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);border-radius:12px;overflow:hidden}.cv-phase-header{display:flex;align-items:center;justify-content:space-between;padding:12px 18px;background:var(--th-bg);border-bottom:1px solid var(--row-border);gap:12px}.cv-phase-title{font-size:13px;font-weight:700;color:var(--text)}.cv-phase-totals{display:flex;gap:8px}.cv-badge{font-size:11px;font-weight:600;padding:3px 10px;border-radius:999px}.cv-badge-paid{background:#33673b33;color:#6ab187;border:1px solid rgba(51,103,59,.4)}.cv-badge-upcoming{background:var(--accent-glow);color:var(--accent-hover);border:1px solid var(--accent)}.cv-profile-rows{display:flex;flex-direction:column}.cv-profile-row{display:flex;gap:16px;padding:14px 18px;border-bottom:1px solid var(--row-border);align-items:flex-start}.cv-profile-row:last-child{border-bottom:none}.cv-profile-meta{display:flex;align-items:center;gap:10px;min-width:130px;padding-top:2px}.cv-profile-name{font-size:13px;font-weight:600;color:var(--text)}.cv-profile-detail{display:flex;gap:24px;flex:1;flex-wrap:wrap}.cv-section{display:flex;flex-direction:column;gap:4px;min-width:160px}.cv-section-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;margin-bottom:2px}.cv-section-label.paid{color:#6ab187}.cv-section-label.upcoming{color:var(--danger)}.cv-item-list{list-style:none}.cv-item{display:flex;justify-content:space-between;gap:12px;padding:3px 0}.cv-item-name{font-size:12px;color:var(--text-muted)}.cv-item-amount{font-size:12px;font-weight:600;color:var(--text-muted);white-space:nowrap}.cv-subtotal{font-size:12px;font-weight:700;color:#6ab187;padding-top:4px;border-top:1px solid var(--row-border);margin-top:2px}.cv-subtotal.upcoming{color:var(--danger)}.contribution-avatar{width:28px;height:28px;border-radius:50%;background:var(--accent-glow);border:1px solid var(--accent);color:var(--accent-hover);font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.paid-by-section{display:flex;flex-direction:column;gap:8px}.paid-by-header{display:flex;align-items:center;justify-content:space-between}.paid-by-label{font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.btn-equal-split{font-size:11px;font-weight:600;padding:3px 9px;border-radius:4px;border:1px solid var(--accent);color:var(--accent);background:none;cursor:pointer;transition:all .15s}.btn-equal-split:hover{background:var(--accent);color:#fff}.paid-by-rows{display:flex;flex-direction:column;gap:6px}.paid-by-row{display:flex;align-items:center;gap:10px}.paid-by-name{flex:1;font-size:13px;color:var(--text)}.paid-by-amount{width:110px;padding:7px 10px;border:1px solid var(--glass-border);border-radius:6px;font-size:13px;color:var(--text);background:var(--glass-bg);font-family:inherit}.paid-by-amount:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.btn-add-profile{background:none;border:1px dashed var(--glass-border);border-radius:6px;padding:6px 12px;font-size:12px;color:var(--text-muted);cursor:pointer;transition:all .15s;text-align:left}.btn-add-profile:hover{border-color:var(--accent);color:var(--accent-hover)}.new-profile-row{display:flex;gap:6px;align-items:center}.new-profile-row input{flex:1;padding:7px 10px;border:1px solid var(--glass-border);border-radius:6px;font-size:13px;color:var(--text);background:var(--glass-bg);font-family:inherit}.new-profile-row input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.phase-columns{display:flex;gap:16px;flex-wrap:wrap;align-items:flex-start}.phase-column{background:var(--glass-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);border-radius:12px;min-width:220px;flex:1;overflow:hidden}.phase-column-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--glass-border);background:var(--th-bg)}.phase-column-title{font-size:13px;font-weight:700;color:var(--text)}.phase-column-amounts{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.phase-column-total{font-size:13px;font-weight:700;color:var(--accent-hover)}.phase-column-upcoming{font-size:11px;color:var(--text-muted);font-weight:500}.phase-item-list{list-style:none;padding:8px 0}.phase-item{display:flex;justify-content:space-between;align-items:center;padding:8px 16px;gap:12px;transition:background .15s}.phase-item:hover{background:var(--row-hover)}.phase-item-name{font-size:13px;color:var(--text)}.phase-item-price{font-size:11px;font-weight:600;color:var(--text-muted);white-space:nowrap}.phase-item-purchased .phase-item-name{text-decoration:line-through;opacity:.5}.phase-badge{display:inline-block;font-size:11px;font-weight:600;padding:3px 9px;border-radius:999px;background:var(--accent-glow);color:var(--accent-hover);border:1px solid var(--accent);white-space:nowrap;letter-spacing:.2px}.purchased-divider td{padding:6px 18px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.6px;color:var(--text-subtle);background:var(--th-bg);border-top:2px solid var(--glass-border);border-bottom:1px solid var(--row-border)}.col-check{width:40px;text-align:center}.purchase-checkbox{width:17px;height:17px;cursor:pointer;accent-color:var(--green)}.row-purchased td{opacity:.45}.row-purchased .item-name{text-decoration:line-through}.empty-state{text-align:center;padding:70px 20px;color:var(--text-muted);font-size:14px;background:var(--glass-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-radius:14px;border:1px dashed var(--glass-border)}html,body,#root,.app{max-width:100vw;overflow-x:hidden}.app-header{padding-top:calc(20px + env(safe-area-inset-top));padding-left:calc(32px + env(safe-area-inset-left));padding-right:calc(32px + env(safe-area-inset-right))}.tabs{padding-left:calc(0px + env(safe-area-inset-left));padding-right:calc(0px + env(safe-area-inset-right))}.main-content{padding-bottom:calc(24px + env(safe-area-inset-bottom))}@media (max-width: 640px){.app-header{padding-top:calc(10px + env(safe-area-inset-top));padding-left:calc(16px + env(safe-area-inset-left));padding-right:calc(16px + env(safe-area-inset-right))}.tabs{padding-left:calc(12px + env(safe-area-inset-left));padding-right:calc(12px + env(safe-area-inset-right))}.main-content{padding-bottom:calc(12px + env(safe-area-inset-bottom))}}*{min-width:0}@media (max-width: 640px){:root{font-size:clamp(13px,3.8vw,16px)}.app-header{padding:10px 16px;gap:8px}.app-header p{display:none}.app-header h1{font-size:clamp(15px,4.5vw,20px)}.header-actions{gap:6px}.data-menu-trigger,.theme-toggle{padding:6px 10px;font-size:12px}.tabs{padding:0 12px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;overscroll-behavior-x:contain}.tabs::-webkit-scrollbar{display:none}.tab{white-space:nowrap;padding:11px 13px;font-size:clamp(12px,3.2vw,14px)}.main-content{padding:12px}.list-toolbar{flex-direction:column;align-items:stretch;gap:10px}.budget-summary{flex-wrap:wrap;gap:8px 12px;padding:10px 14px}.budget-amount{font-size:clamp(16px,5vw,22px)}.list-controls{justify-content:space-between;gap:8px}.list-controls select{flex:1;min-width:0;font-size:14px}.btn-primary{font-size:13px;padding:9px 14px;white-space:nowrap}.items-table,.items-table tbody{display:block;width:100%}.items-table thead{display:none}.items-table tfoot{display:block}.items-table tfoot tr{display:flex;justify-content:space-between;padding:10px 14px;background:var(--tfoot-bg);border-radius:10px;margin-top:6px}.items-table tfoot td{display:block;padding:0;border:none}.items-table tbody tr{display:grid;grid-template-columns:28px 1fr auto;grid-template-rows:auto auto auto;gap:4px 8px;background:var(--glass-bg);border:1px solid var(--glass-border)!important;border-radius:10px;padding:12px;margin-bottom:8px;width:100%;box-sizing:border-box}.items-table tbody tr.row-purchased{opacity:.5}.items-table td{display:block;padding:0;border:none!important;overflow:hidden;text-overflow:ellipsis}.col-check{grid-column:1;grid-row:1;display:flex;align-items:flex-start;padding-top:2px;width:auto;text-align:left}.items-table tbody tr td:nth-child(2){grid-column:2;grid-row:1}.items-table tbody tr td:nth-child(3){grid-column:3;grid-row:1;text-align:right}.items-table tbody tr td:nth-child(4){grid-column:2;grid-row:2;font-size:11px;color:var(--text-muted)}.items-table tbody tr td:nth-child(5){grid-column:3;grid-row:2;text-align:right;font-size:13px}.items-table tbody tr td:nth-child(6){display:none}.items-table tbody tr td:nth-child(7){grid-column:1 / -1;grid-row:3;padding-top:8px;border-top:1px solid var(--row-border)!important;margin-top:4px}.action-buttons{justify-content:flex-end}.items-table tbody tr.purchased-divider{display:block;width:100%;padding:0;background:none;border:none!important;border-radius:8px;margin-bottom:4px}.items-table tbody tr.purchased-divider td{display:block;width:100%;box-sizing:border-box;border-radius:8px}.timeline-table th{min-width:clamp(160px,60vw,220px)}.phase-columns{flex-direction:column}.phase-column{min-width:unset;width:100%}.contributions-view .budget-summary{display:grid;grid-template-columns:auto auto;justify-content:start;gap:2px 12px;align-items:center}.budget-label--upcoming{margin-left:0}.contributions-view .budget-amount{font-size:14px;text-align:left}.cv-phase-totals{flex-direction:column;align-items:flex-start}.cv-profile-row{flex-direction:column;gap:10px}.cv-profile-meta{padding-top:0}.cv-profile-detail{flex-direction:column;gap:12px}.cv-section{min-width:unset;width:100%}.modal-backdrop{align-items:flex-end;padding:0}.modal{max-width:100%;width:100%;border-radius:20px 20px 0 0;max-height:92vh}.modal input[type=date]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;min-width:0;max-width:100%;box-sizing:border-box;padding:9px 12px;line-height:normal}.paid-by-row{flex-wrap:wrap}.paid-by-amount{width:100%}.data-menu-dropdown{right:auto;left:0;min-width:clamp(160px,50vw,200px)}}.calendar-view{display:flex;gap:20px;align-items:flex-start}.calendar-panel{flex:1;min-width:0;background:var(--glass-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);border-radius:14px;overflow:hidden;box-shadow:var(--glass-shadow)}.calendar-nav{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;background:var(--th-bg);border-bottom:1px solid var(--glass-border)}.cal-month-label{font-size:14px;font-weight:700;color:var(--text);letter-spacing:-.1px}.cal-nav-btn{background:var(--glass-bg-heavy);border:1px solid var(--glass-border);border-radius:6px;color:var(--text);font-size:18px;line-height:1;width:30px;height:30px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.cal-nav-btn:hover{background:var(--glass-bg);border-color:var(--glass-border-heavy)}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr)}.cal-day-header{padding:8px 4px;text-align:center;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);border-bottom:1px solid var(--row-border);border-right:1px solid var(--row-border)}.cal-day-header:last-child{border-right:none}.cal-cell{min-height:96px;padding:7px 8px;border-bottom:1px solid var(--row-border);border-right:1px solid var(--row-border);display:flex;flex-direction:column;gap:3px}.cal-cell:nth-child(7n){border-right:none}.cal-cell--empty{background:transparent}.cal-cell--today{background:#a78bfa0f}.cal-date-num{font-size:12px;font-weight:600;color:var(--text-muted);line-height:1;margin-bottom:2px}.cal-date-num--today{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;background:var(--accent);color:var(--accent-btn-text);border-radius:50%;font-size:11px}.cal-todo-chip{background:#a78bfa26;border:1px solid rgba(167,139,250,.25);border-radius:4px;padding:2px 5px;font-size:11px;color:var(--accent-hover);line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-payment-chip{background:var(--glass-bg-heavy);border:1px solid var(--glass-border);border-radius:4px;padding:3px 5px;display:flex;flex-direction:column;gap:1px}.cal-payment-chip--done{opacity:.4}.cal-payment-chip--clickable{cursor:pointer;text-align:left;width:100%}.cal-payment-chip--clickable:hover{border-color:var(--glass-border-heavy);background:var(--card-hover-bg)}.cal-payment-name{font-size:11px;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-payment-price{font-size:10px;color:var(--accent-hover);font-weight:600}.cal-cell-items{display:flex;flex-direction:column;gap:3px}.cal-overflow-btn{background:none;border:none;padding:1px 0;font-size:10px;font-weight:600;color:var(--text-subtle);cursor:pointer;text-align:left;letter-spacing:.1px;transition:color .15s;flex-shrink:0}.cal-overflow-btn:hover{color:var(--accent-hover)}.cal-todo-chip--full,.cal-payment-chip--full{white-space:normal}.cal-day-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:150;padding:20px}.cal-day-modal{background:var(--modal-bg);backdrop-filter:blur(30px);-webkit-backdrop-filter:blur(30px);border:1px solid var(--glass-border-heavy);border-radius:14px;width:100%;max-width:340px;max-height:80vh;overflow-y:auto;box-shadow:0 20px 60px #00000080}.cal-day-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 18px 12px;border-bottom:1px solid var(--glass-border)}.cal-day-modal-title{font-size:14px;font-weight:700;color:var(--text)}.cal-day-modal-body{padding:14px 18px;display:flex;flex-direction:column;gap:14px}.cal-day-modal-section{display:flex;flex-direction:column;gap:6px}.cal-day-modal-section-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--text-subtle);margin-bottom:2px}.cal-right-panel{width:300px;flex-shrink:0;display:flex;flex-direction:column;gap:16px}.cal-overview-panel{background:var(--glass-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);border-radius:14px;overflow:hidden;box-shadow:var(--glass-shadow)}.cal-overview-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;background:var(--th-bg);border-bottom:1px solid var(--glass-border)}.cal-overview-title{font-size:13px;font-weight:700;color:var(--text)}.cal-overview-empty{padding:16px;font-size:12px;color:var(--text-subtle);text-align:center}.cal-overview-list{list-style:none;max-height:220px;overflow-y:auto}.cal-overview-row{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;padding:10px 16px;background:none;border:none;border-bottom:1px solid var(--row-border);cursor:pointer;text-align:left;transition:background .15s}.cal-overview-list li:last-child .cal-overview-row{border-bottom:none}.cal-overview-row:hover{background:var(--row-hover)}.cal-overview-row--active{background:#a78bfa14}.cal-overview-row--active .cal-overview-month{color:var(--accent-hover)}.cal-overview-month{font-size:12px;font-weight:600;color:var(--text)}.cal-overview-amounts{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.cal-overview-total{font-size:12px;font-weight:700;color:var(--text)}.cal-overview-upcoming{font-size:10px;color:var(--text-muted);font-weight:500}.todo-panel{flex-shrink:0;background:var(--glass-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);border-radius:14px;overflow:hidden;box-shadow:var(--glass-shadow);display:flex;flex-direction:column}.todo-panel-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;background:var(--th-bg);border-bottom:1px solid var(--glass-border)}.todo-panel-title{font-size:13px;font-weight:700;color:var(--text)}.todo-add-form{display:flex;flex-direction:column;gap:8px;padding:12px 14px;border-bottom:1px solid var(--row-border);background:var(--glass-bg-heavy)}.todo-form-input,.todo-form-select{padding:8px 10px;border:1px solid var(--glass-border);border-radius:7px;font-size:13px;color:var(--text);background:var(--glass-bg);font-family:inherit;width:100%;box-sizing:border-box}.todo-form-input::placeholder{color:var(--text-subtle)}.todo-form-input:focus,.todo-form-select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.todo-form-select option{background:var(--select-option-bg);color:var(--text)}.todo-form-submit{width:100%}.todo-list{list-style:none;flex:1;overflow-y:auto;padding:6px 0}.todo-empty{padding:24px 16px;text-align:center;font-size:13px;color:var(--text-subtle)}.todo-item{display:flex;align-items:flex-start;gap:6px;padding:9px 14px;border-bottom:1px solid var(--row-border);transition:background .15s}.todo-item:last-child{border-bottom:none}.todo-item:hover{background:var(--row-hover)}.todo-item-body{display:flex;align-items:flex-start;gap:7px;flex:1;min-width:0}.todo-urgency{font-size:11px;flex-shrink:0;padding-top:1px}.todo-desc{font-size:13px;color:var(--text);line-height:1.4;word-break:break-word}.todo-date{font-size:11px;color:var(--text-muted);white-space:nowrap;flex-shrink:0;padding-top:2px}.todo-delete{background:none;border:none;color:var(--text-subtle);font-size:16px;line-height:1;cursor:pointer;padding:0 2px;flex-shrink:0;transition:color .15s}.todo-delete:hover{color:var(--danger)}@media (max-width: 640px){.calendar-view{flex-direction:column}.cal-right-panel{width:100%}.cal-cell{min-height:72px;padding:4px 5px}.cal-day-modal{max-width:100%}}.room-id-badge{font-family:monospace;font-size:12px;font-weight:700;letter-spacing:.08em;color:var(--accent);background:var(--accent-glow);padding:2px 7px;border-radius:4px;border:1px solid var(--accent);opacity:.85;-webkit-user-select:all;user-select:all}.sync-loading{display:flex;align-items:center;justify-content:center;min-height:200px;font-size:15px;color:var(--text-muted);letter-spacing:.03em}.landing{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:radial-gradient(ellipse at 15% 15%,rgba(96,178,229,.35) 0%,transparent 50%),radial-gradient(ellipse at 85% 10%,rgba(99,55,44,.6) 0%,transparent 50%),radial-gradient(ellipse at 70% 85%,rgba(51,103,59,.45) 0%,transparent 50%),radial-gradient(ellipse at 10% 80%,rgba(223,115,115,.3) 0%,transparent 45%),#1a0f0a}.landing-card{background:#f2e5d714;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid rgba(242,229,215,.18);border-radius:20px;padding:48px 40px;width:100%;max-width:420px;display:flex;flex-direction:column;align-items:center;gap:16px;box-shadow:0 8px 48px #0006}.landing-logo{font-size:48px;line-height:1}.landing-title{font-size:26px;font-weight:700;background:linear-gradient(135deg,#f2e5d7,#8ecaed);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin:0}.landing-subtitle{font-size:14px;color:#f2e5d78c;margin:0}.landing-input-row{display:flex;gap:8px;width:100%;margin-top:8px}.landing-input{flex:1;background:#f2e5d714;border:1px solid rgba(242,229,215,.2);border-radius:10px;padding:12px 16px;color:#f2e5d7f2;font-size:17px;font-family:monospace;letter-spacing:.08em;outline:none;transition:border-color .2s}.landing-input::placeholder{color:#f2e5d74d;font-family:system-ui,sans-serif;letter-spacing:0}.landing-input:focus{border-color:#60b2e599}.landing-btn-generate{background:#f2e5d714;border:1px solid rgba(242,229,215,.2);border-radius:10px;color:#f2e5d7b3;font-size:20px;width:46px;cursor:pointer;transition:background .15s,color .15s;flex-shrink:0}.landing-btn-generate:hover{background:#f2e5d726;color:#f2e5d7f2}.landing-actions{display:flex;gap:10px;width:100%}.landing-btn-secondary,.landing-btn-primary{flex:1;padding:12px;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;border:none;transition:opacity .15s,background .15s}.landing-btn-secondary{background:#f2e5d71a;border:1px solid rgba(242,229,215,.2);color:#f2e5d7d9}.landing-btn-secondary:hover:not(:disabled){background:#f2e5d729}.landing-btn-primary{background:#60b2e5;color:#0f1e2a}.landing-btn-primary:hover:not(:disabled){background:#8ecaed}.landing-btn-secondary:disabled,.landing-btn-primary:disabled{opacity:.5;cursor:not-allowed}.landing-status{font-size:13px;color:#df7373;text-align:center;margin:0}.landing-hint{font-size:12px;color:#f2e5d74d;text-align:center;line-height:1.5;margin:4px 0 0}
