:root{--bg:#0d0d0d;--bg-soft:#151515;--card:#1a1a1a;--gold:#d4a94a;--gold-soft:#e6c578;--text:#f2ede3;--text-muted:#a8a29a;--border:#2a2a2a}*{margin:0;padding:0;box-sizing:border-box}body{background:var(--bg);color:var(--text);font-family:Poppins,Arial,sans-serif}a{color:inherit;text-decoration:none}.auth-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.auth-card{width:100%;max-width:400px;background:var(--card);border:1px solid var(--border);border-radius:8px;padding:36px 32px}.auth-card h1{font-size:1.4rem;margin-bottom:6px;color:#fff}.auth-card p.sub{color:var(--text-muted);font-size:.88rem;margin-bottom:28px}.field{margin-bottom:18px}.field label{display:block;font-size:.8rem;color:var(--text-muted);margin-bottom:6px}.field input,.field select,.field textarea{width:100%;background:#111;border:1px solid var(--border);border-radius:5px;padding:11px 14px;color:var(--text);font-size:.9rem;outline:none;font-family:inherit}.field textarea{resize:vertical;min-height:70px}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--gold)}.btn-primary{width:100%;padding:12px;background:var(--gold);color:#1a1305;border:none;border-radius:5px;font-size:.9rem;font-weight:600;cursor:pointer;transition:background .3s}.btn-primary:hover{background:var(--gold-soft)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.form-error{background:rgba(220,60,60,.12);border:1px solid rgba(220,60,60,.4);color:#ff9a9a;padding:10px 14px;border-radius:5px;font-size:.82rem;margin-bottom:18px}.dash-wrap{display:flex;min-height:100vh}.dash-sidebar{width:240px;background:var(--bg-soft);border-right:1px solid var(--border);padding:26px 20px;display:flex;flex-direction:column;gap:6px}.dash-logo{color:var(--gold);font-weight:700;letter-spacing:1px;font-size:1.05rem;margin-bottom:28px}.dash-nav a{display:block;padding:11px 14px;border-radius:6px;color:var(--text-muted);font-size:.88rem;transition:all .2s ease}.dash-nav a.active,.dash-nav a:hover{background:var(--card);color:var(--gold)}.dash-main{flex:1 1;padding:36px 40px}.dash-topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px}.dash-topbar h1{font-size:1.4rem;color:#fff}.logout-btn{background:transparent;border:1px solid var(--border);color:var(--text-muted);padding:8px 16px;border-radius:5px;font-size:.82rem;cursor:pointer}.logout-btn:hover{border-color:var(--gold);color:var(--gold)}.stat-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));grid-gap:20px;gap:20px}.stat-card{background:var(--card);border:1px solid var(--border);border-radius:8px;padding:22px}.stat-card .label{font-size:.8rem;color:var(--text-muted);margin-bottom:8px}.stat-card .value{font-size:1.8rem;font-weight:700;color:var(--gold)}.placeholder-note{margin-top:30px;color:var(--text-muted);font-size:.85rem;border:1px dashed var(--border);padding:16px;border-radius:6px}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.page-header h2{font-size:1.15rem;color:#fff}.btn-small{background:var(--gold);color:#1a1305;border:none;padding:10px 20px;border-radius:5px;font-size:.85rem;font-weight:600;cursor:pointer;transition:background .2s}.btn-small:hover{background:var(--gold-soft)}.btn-small.ghost{background:transparent;border:1px solid var(--border);color:var(--text-muted)}.btn-small.ghost:hover{border-color:var(--gold);color:var(--gold)}.btn-small.danger{background:transparent;border:1px solid rgba(220,60,60,.4);color:#ff9a9a}.btn-small.danger:hover{background:rgba(220,60,60,.12)}.table-wrap{background:var(--card);border:1px solid var(--border);border-radius:8px;overflow-x:auto}table.data-table{width:100%;border-collapse:collapse;font-size:.85rem;min-width:900px}.data-table th{text-align:left;color:var(--text-muted);font-weight:500;white-space:nowrap;font-size:.78rem;text-transform:uppercase;letter-spacing:.5px}.data-table td,.data-table th{padding:14px 16px;border-bottom:1px solid var(--border)}.data-table td{vertical-align:top;color:var(--text)}.data-table tr:last-child td{border-bottom:none}.data-table tr:hover{background:rgba(212,169,74,.04)}.cell-muted{color:var(--text-muted);font-size:.8rem}.cell-actions{display:flex;gap:8px;white-space:nowrap}.badge{display:inline-block;padding:4px 10px;border-radius:20px;font-size:.72rem;font-weight:600;letter-spacing:.3px}.badge-paid{background:rgba(70,180,110,.15);color:#7fe0a3}.badge-partial{background:rgba(212,169,74,.15);color:var(--gold-soft)}.badge-due{background:rgba(220,60,60,.15);color:#ff9a9a}.empty-state{padding:50px 20px;text-align:center;color:var(--text-muted);font-size:.9rem}.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:300;display:flex;justify-content:flex-end}.modal-panel{width:100%;max-width:520px;background:var(--bg-soft);height:100vh;overflow-y:auto;padding:32px;border-left:1px solid var(--border)}.modal-panel h3{font-size:1.2rem;color:#fff;margin-bottom:22px}.form-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px}.form-grid .full{grid-column:1/-1}.modal-actions{display:flex;gap:12px;margin-top:24px}.modal-actions .btn-primary{width:auto;flex:1 1}.close-x{position:absolute;top:24px;right:24px;background:none;border:none;color:var(--text-muted);font-size:1.3rem;cursor:pointer}.modal-panel{position:relative}.star-picker{display:flex;gap:6px}.star-picker button{background:none;border:none;font-size:1.4rem;cursor:pointer;color:var(--border)}.star-picker button.filled{color:var(--gold)}.money-row{display:flex;gap:10px}.profit-positive{color:#7fe0a3;font-weight:600}.profit-negative{color:#ff9a9a;font-weight:600}.profit-neutral{color:var(--text-muted)}.task-section{margin-top:6px}.task-list{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.task-item{display:flex;align-items:center;gap:10px;background:#111;border:1px solid var(--border);border-radius:5px;padding:9px 12px;font-size:.86rem}.task-item input[type=checkbox]{width:16px;height:16px;accent-color:var(--gold);flex-shrink:0}.task-item span{flex:1 1}.task-item span.done{text-decoration:line-through;color:var(--text-muted)}.task-item button{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:.95rem}.task-item button:hover{color:#ff9a9a}.task-add-row{display:flex;gap:8px}.task-add-row input{flex:1 1}.task-add-row button{background:var(--gold);color:#1a1305;border:none;border-radius:5px;padding:0 16px;font-size:.82rem;font-weight:600;cursor:pointer;white-space:nowrap}.task-summary{font-size:.8rem;color:var(--text-muted)}.task-summary .done-count{color:#7fe0a3}