.layout{min-height:100vh;background-color:var(--bg);color:var(--text);font-family:Inter,system-ui,sans-serif;display:flex;flex-direction:column;align-items:center}.app-header{width:100%;background:var(--header-bg);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:50}.header-inner{max-width:1100px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;padding:1rem}.app-title a{color:var(--accent);text-decoration:none;font-weight:600;font-size:1.2rem}.nav-links{display:flex;gap:1rem}.nav-links a{color:var(--muted-text);text-decoration:none;transition:color .2s}.nav-links a:hover{color:var(--accent)}.main-content{flex:1;width:100%;max-width:1100px;background-color:var(--bg);color:var(--text)}.user-menu{position:relative}.user-menu-toggle{background:var(--header-bg);color:var(--text);border:none;border-radius:1rem;padding:.5rem 1rem;cursor:pointer;display:flex;align-items:center;gap:.4rem;transition:background .2s ease,box-shadow .2s ease}.user-menu-toggle:hover{background-color:var(--hover-bg)}.user-menu-toggle .arrow{font-size:.8rem;opacity:.7}.user-dropdown{position:absolute;right:0;top:120%;background:var(--panel-bg);min-width:160px;padding:.4rem 0;z-index:100;display:flex;flex-direction:column}.dropdown-item{padding:.6rem 1rem;text-align:left;background:transparent;border:none;color:var(--text);font:inherit;cursor:pointer;transition:background .2s ease}.dropdown-item:hover{background:var(--hover-bg)}.dropdown-item.logout{color:var(--delete)}.dropdown-item.logout:hover{background:color-mix(in oklab,var(--delete) 12%,transparent)}.brand-link{display:flex;align-items:center;gap:.6rem;text-decoration:none}.brand-logo{width:1.8rem;height:auto;border-radius:.4rem;display:block}.brand-text{color:var(--accent);font-weight:600;font-size:1.25rem;line-height:1}.brand-link:hover .brand-text{color:var(--accent-hover);transition:color .2s ease}.dropdown-nested{position:absolute;left:100%;top:0;margin-left:6px;z-index:110}.dropdown-panel{background:var(--panel-bg);border:1px solid var(--border);border-radius:12px;min-width:220px;padding:6px 0;box-shadow:0 8px 24px var(--shadow)}.dropdown-title{padding:8px 12px;font-weight:600;color:var(--accent)}.dropdown-list{list-style:none;margin:0;padding:4px 0}.dropdown-list li{margin:0;padding:0}.dropdown-sep{height:1px;background:var(--border);margin:6px 0}.household-dot{width:10px;height:10px;border-radius:999px;display:inline-block;margin-right:8px;box-shadow:0 0 0 1px var(--border) inset}.arrow-right-icon{display:block;vertical-align:middle;position:relative;top:.5px}:root{--bg: #f3f4f6;--panel-bg: #ffffff;--header-bg: #f9fafb;--text: #1f2937;--muted-text: #6b7280;--accent: #2563eb;--accent-hover: #1d4ed8;--border: #d1d5db;--avatar-bg: #2563eb;--delete: #ef4444;--hover-bg: #f3f4f6;--hover-row: #f3f4f6;--shadow: rgba(0, 0, 0, .1);--mobile-breakpoint: 768px}[data-theme=dark]{--bg: #0d1117;--panel-bg: #111827;--header-bg: #0d1420;--text: #e5e7eb;--muted-text: #9ca3af;--accent: #3b82f6;--accent-hover: #2563eb;--border: #1f2937;--avatar-bg: #3b82f6;--delete: #ef4444;--hover-bg: #1e2530;--hover-row: #151e30;--shadow: rgba(0, 0, 0, .4)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Inter,sans-serif;background-color:var(--bg);color:var(--text);line-height:1.5}html,body{height:100%;overflow-y:hidden}.page,.user-menu-page{min-height:100vh;display:flex;align-items:flex-start;background-color:var(--bg);color:var(--text);margin:0;padding:0;overflow:hidden}.create-btn,.delete-btn,.menu-btn{font-family:inherit;font-weight:500;border-radius:8px;padding:.7rem 1.4rem;cursor:pointer;transition:all .25s ease}.create-btn{background-color:var(--accent);color:#fff;border:none}.create-btn:hover{background-color:var(--accent-hover)}.menu-btn{background-color:var(--panel-bg);color:var(--text);border:1px solid var(--border);border-radius:10px;padding:.9rem 1rem}.menu-btn:hover{background-color:var(--accent);border-color:var(--accent);color:#fff;transform:translateY(-2px);box-shadow:0 6px 18px var(--shadow)}.panel{background:var(--panel-bg);border:1px solid var(--border);border-radius:14px;padding:2rem;width:100%}.panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.panel-header h2{color:var(--accent);font-weight:600}.clickable{cursor:pointer}.clickable:hover{background-color:var(--hover-bg);transform:translateY(-3px);transition:all .2s ease}html,body{scroll-behavior:smooth;-webkit-overflow-scrolling:touch}.dashboard-page{min-height:100vh;min-height:100dvh}.dashboard-page{min-height:calc(var(--vh, 1vh) * 100);padding-bottom:calc(2rem + env(safe-area-inset-bottom,20px));box-sizing:border-box}html,body{height:100%;overflow:hidden}.dashboard-page{min-height:100vh;overflow:hidden;background:var(--bg);color:var(--text);display:flex;flex-direction:column;align-items:center;padding:3rem 2rem;font-family:Inter,sans-serif}.dashboard-header{display:flex;align-items:center;gap:1rem;margin-bottom:2rem;background:var(--panel-bg);border:1px solid var(--border);border-radius:14px;padding:.8rem 1.5rem;box-shadow:0 2px 8px var(--shadow)}.month-title{font-size:1.4rem;font-weight:600;color:var(--accent);flex:1;text-align:center}.nav-arrow{background:var(--accent);border:none;color:#fff;font-size:1.2rem;padding:.4rem .8rem;border-radius:8px;cursor:pointer;transition:background-color .2s}.nav-arrow:hover{background:var(--accent-hover)}.month-selector{background:var(--panel-bg);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:.4rem .8rem;font-size:.9rem}.dashboard-panel{width:100%;max-width:900px;background:var(--panel-bg);border:1px solid var(--border);border-radius:16px;padding:1.5rem;box-shadow:0 4px 15px var(--shadow);animation:fadeIn .3s ease-in-out}.budget-table{width:100%;border-collapse:collapse;text-align:center}.budget-table th,.budget-table td{padding:.8rem;border-bottom:1px solid var(--border)}.budget-table th{color:var(--accent);font-weight:600;background:var(--hover-bg)}.budget-table td{color:var(--text);transition:color .25s ease}.budget-table tr:hover{background:var(--hover-row);transition:background-color .2s}.budget-table th,.budget-table td{padding:.45rem .5rem;font-size:1rem;line-height:1.3}.budget-table input{font-size:.82rem;padding:.2rem .3rem}.type-label.small{font-size:.75rem;padding:.1rem .4rem;border-radius:4px}.installment-tag{font-size:.7rem;margin-left:4px;opacity:.75}.delete-row{font-size:1rem;opacity:0;padding:0;margin:0}.budget-table tr:hover .delete-row{opacity:1;color:var(--delete)}.budget-table tr:hover{background-color:color-mix(in oklab,var(--hover-bg) 90%,transparent);transition:background-color .15s ease}.total-row td{padding-top:.6rem;padding-bottom:.6rem;font-size:.85rem}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 700px){.dashboard-header{flex-wrap:wrap;justify-content:center}.month-title{font-size:1.2rem;text-align:center}.budget-table th,.budget-table td{padding:.5rem;font-size:.85rem}}.month-title{display:flex;flex-direction:column;align-items:center;flex:1;font-weight:600;color:var(--accent);text-align:center;line-height:1.3}.month-range{font-size:.9rem;color:var(--muted-text);margin-top:2px}.days-left{color:var(--accent);font-weight:500}.salary-line{font-size:.9rem;color:var(--muted-text)}.budget-table input{width:100%;border:none;background:transparent;color:inherit;text-align:center;outline:none;font-size:.9rem;padding:.3rem}.type-label{display:inline-block;padding:.3rem .6rem;border-radius:8px;color:#fff;font-weight:500;cursor:pointer;text-transform:capitalize}.type-label.expense{background:#f97316}.type-label.income{background:#22c55e}.payments-cell .grayed{color:var(--muted-text)}.delete-row{background:transparent;color:transparent;font-size:1.2rem;border:none;cursor:pointer;transition:.3s;opacity:0}.budget-table tr:hover .delete-row{color:var(--delete);opacity:1;transition:opacity .3s,transform .3s,color .3s}.budget-table:hover .delete-row:hover{color:#9c0f0f;transition:color .3s}.add-row{background:var(--accent);color:#fff;border:none;padding:.6rem 1.2rem;border-radius:8px;font-weight:600;cursor:pointer}.add-row:hover{background:var(--accent-hover)}tfoot td{padding-top:1rem;font-weight:600;border-top:1px solid var(--border)}.salary-input{background:transparent;border:1px solid var(--border);border-radius:6px;padding:2px 6px;color:var(--text);width:100px;font-size:.9rem}.salary-input:focus{outline:none;border-color:var(--accent)}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}.editable{background-color:#ffffff0d;border-radius:6px;padding:4px 6px;transition:background-color .2s}[data-theme=light] .editable{background-color:#00000008}.editable:focus{background-color:#3b82f614;outline:none}.type-label.small{font-size:.8rem;padding:.15rem .5rem;border-radius:6px;opacity:.85;font-weight:500}.type-label.expense{background:#f97316b3;color:#fff;transition:.2s}.type-label.expense:hover{background:#cc5f11b3;color:#fff;transition:.2s}.type-label.income{background:#22c55eb3;color:#fff;transition:.2s}.type-label.income:hover{background:#1c9448b3;color:#fff;transition:.2s}.dashboard-panel.wide{max-width:1100px}.total-row{background-color:var(--hover-bg);font-weight:600;border-top:2px solid var(--border)}.total-row td{padding-top:.9rem;padding-bottom:.9rem}.editable:hover{background-color:#ffffff14}[data-theme=light] .editable:hover{background-color:#0000000d}.salary-input{border:none;background:transparent;color:var(--text);text-align:right;width:auto;min-width:60px;transition:background-color .2s,padding .2s}.salary-input:focus,.salary-input:hover{background-color:#3b82f614;outline:none}.salary-input.dynamic{font-weight:600;font-size:.8rem;letter-spacing:.5px}.salary-wrapper{display:inline-flex;align-items:center;position:relative}.salary-input{border:none;background:transparent;color:var(--text);text-align:right;font-weight:600;font-size:.95rem;width:auto;min-width:30px;padding:2px 0;transition:background-color .2s ease}.salary-input:hover,.salary-input:focus{background-color:#3b82f614;outline:none;border-radius:6px}.salary-mirror{position:absolute;visibility:hidden;white-space:pre;font-weight:600;font-size:.95rem;pointer-events:none}.grayed{color:var(--muted-text);opacity:.7;font-style:italic}.month-picker-wrapper{margin:0 1rem;display:flex;align-items:center}.month-picker{background:var(--panel-bg);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:.4rem .6rem;font-size:.9rem;cursor:pointer;transition:border-color .2s,box-shadow .2s}.month-picker:hover,.month-picker:focus{border-color:var(--accent);box-shadow:0 0 0 3px #2563eb33;outline:none}.calendar-icon{margin-left:.4rem;cursor:pointer;font-size:1rem;transition:transform .2s,color .2s}.calendar-icon:hover{color:var(--accent);transform:scale(1.15)}.month-picker-dropdown{position:absolute;background:var(--panel-bg);border:1px solid var(--border);border-radius:8px;padding:.6rem .8rem;box-shadow:0 4px 12px #00000040;margin-top:.4rem;display:flex;gap:.5rem;align-items:center;z-index:10}.month-picker-dropdown select{background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:.3rem .4rem;font-size:.85rem;cursor:pointer}.month-picker-dropdown select:hover{border-color:var(--accent)}.apply-btn{background:var(--accent);color:#fff;border:none;border-radius:6px;padding:.3rem .6rem;font-size:.8rem;cursor:pointer;transition:background-color .2s}.apply-btn:hover{background:var(--accent-hover)}.installment-tag{margin-left:6px;color:var(--muted-text);font-size:.75rem;opacity:.8}.budget-table-wrapper{max-height:65vh;overflow-y:auto;border-radius:12px;position:relative;scroll-behavior:smooth}.budget-table thead th{position:sticky;top:0;background:var(--panel-bg);z-index:2;box-shadow:0 2px 4px #0000001a}.budget-table tfoot{position:sticky;bottom:0;background:var(--panel-bg);box-shadow:0 -2px 4px #0000001a;z-index:2}.budget-table-wrapper::-webkit-scrollbar{width:10px}.budget-table-wrapper::-webkit-scrollbar-thumb{background:var(--border);border-radius:10px}.budget-table-wrapper::-webkit-scrollbar-thumb:hover{background:var(--accent)}.add-row.small{background:var(--accent);color:#fff;border:none;border-radius:px;padding:.2rem .5rem .3rem;font-size:1rem;cursor:pointer;transition:background-color .2s,transform .2s}.add-row.small:hover{background:var(--accent-hover);transform:scale(1.05)}.editable.no-hover:hover,.editable.no-hover:focus{background-color:transparent!important;cursor:default}input[disabled]:hover{background-color:var(--hover-row);opacity:.6;cursor:not-allowed}.drag-cell{width:2rem;cursor:grab;opacity:0;transition:opacity .15s}.draggable-row:hover .drag-cell{opacity:1}.drag-icon{color:var(--muted-text);transition:color .15s}.drag-cell:hover .drag-icon{color:var(--accent);cursor:grab}.draggable-row.dragging{background-color:var(--hover-row)}.viewed-user-line{margin-top:4px;font-size:.85rem;color:var(--muted-text);font-weight:500;opacity:.9}.viewed-user-line strong{color:var(--accent)}.month-name{position:relative;display:inline-flex;align-items:center;gap:.4rem;transition:color .2s ease}.current-badge{background:var(--accent);color:var(--bg);font-size:.7rem;font-weight:600;padding:2px 6px;border-radius:10px}@media (max-width: 768px){.dashboard-page{padding:1rem}.dashboard-header{flex-direction:column;gap:.5rem;align-items:flex-start}.month-title{font-size:1.2rem;text-align:left}.salary-line{font-size:.9rem}.budget-table-wrapper{width:100%;overflow-x:auto}.budget-table{width:700px;font-size:.85rem}.budget-table th,.budget-table td{padding:.3rem .5rem}.editable{font-size:.85rem;padding:.25rem}.drag-icon{width:16px;height:16px}.add-row.small,.delete-row{font-size:1rem;padding:.2rem .4rem}.total-row{font-size:.85rem;text-wrap:balance}}@media (max-width: 768px){.dashboard-header{flex-direction:row;justify-content:space-between;align-items:center;width:100%}.month-title{flex:1;text-align:center;font-size:1.2rem}.nav-arrow{font-size:1.4rem;padding:.3rem .6rem;background:transparent;border:none;color:var(--accent)}.nav-arrow:active{transform:scale(.9)}}@media (max-width: 768px){.budget-table-wrapper{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.budget-table{min-width:700px;border-spacing:0;font-size:.85rem}.budget-table th,.budget-table td{padding:.3rem .4rem;text-align:left;white-space:nowrap}.budget-table th{position:sticky;top:0;background:var(--panel-bg);z-index:2}.draggable-row{height:36px}.editable{font-size:.85rem;padding:.25rem;width:100%}.salary-line{font-size:.9rem}}.setting-row{display:flex;justify-content:space-between;align-items:center;background:var(--panel-bg);border:1px solid var(--border);border-radius:12px;padding:1rem 1.5rem;margin-bottom:1.5rem}.setting-info h3{margin:0;font-size:1.1rem;color:var(--text)}.setting-info p{margin:.25rem 0 0;font-size:.9rem;color:var(--muted-text)}.switch{position:relative;display:inline-block;width:46px;height:24px}.switch input{opacity:0;width:0;height:0}.slider{position:absolute;cursor:pointer;inset:0;background-color:var(--border);border-radius:24px;transition:.3s}.slider:before{content:"";position:absolute;height:18px;width:18px;left:3px;bottom:3px;background-color:#fff;border-radius:50%;transition:.3s}.switch input:checked+.slider{background-color:var(--accent)}.switch input:checked+.slider:before{transform:translate(22px)}.avatar-color-button{width:46px;height:46px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600;font-size:1.2rem;cursor:pointer;border:1px solid var(--border);box-shadow:0 2px 6px var(--shadow);transition:transform .2s ease,box-shadow .2s ease}.avatar-color-button:hover{transform:scale(1.05);box-shadow:0 4px 10px var(--shadow)}:root{--bg: #0d1117;--surface: #111827;--muted-surface: #0f172a;--text: #e5e7eb;--border: #1f2937;--accent: #2563eb;--accent-hover: #1d4ed8;--disabled: #334155;--link: #3b82f6;--muted-text: #94a3b8;--strength-empty: #1e293b;--strength-full: #22c55e;--danger: #f87171;--btn-py: .625rem;--btn-px: .75rem;--btn-line: 1.2;--icon-size: 1.125rem;--space-1: .25rem;--space-2: .5rem;--space-2_5: .625rem;--space-3: .75rem;--space-4: 1rem;--radius-1: .125rem;--radius-2: .5rem;--radius-card: 1.125rem;--easing: cubic-bezier(.4, .2, .2, 1);--dur-fast: .15s;--dur-slow: .8s;--font-sans: ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Apple Color Emoji", "Segoe UI Emoji"}html,body{font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.page.center{display:flex;justify-content:center;align-items:center;min-height:100svh;background-color:var(--bg);color:var(--text)}.login-card-container{perspective:75rem;width:min(92vw,22.5rem);height:clamp(22rem,60svh,27.5rem);position:relative}.login-card{position:absolute;inset:0;width:fit-content;height:fit-content;backface-visibility:hidden;background-color:var(--surface);border-radius:var(--radius-card);padding:1.75rem;display:flex;flex-direction:column;justify-content:center;transition:transform var(--dur-slow) var(--easing);box-shadow:none;width:100%;max-width:340px;min-width:340px;box-sizing:border-box}.login-card.front{transform:rotateY(0)}.login-card.back{transform:rotateY(180deg)}.login-card.back form .btn.btn-primary{margin-top:1.5rem}.login-card-container.flipped .front{transform:rotateY(-180deg)}.login-card-container.flipped .back{transform:rotateY(0)}@media (prefers-reduced-motion: reduce){.login-card{transition:none}}input{margin:var(--space-2) 0;padding:var(--space-2_5) var(--space-3);width:100%;background-color:var(--muted-surface);color:var(--text);border:.0625rem solid var(--border);border-radius:var(--radius-2);font-size:1rem}input:focus-visible{outline:.125rem solid var(--accent);outline:.125rem solid color-mix(in oklab,var(--accent) 60%,white);outline-offset:.125rem}.input-invalid{border-color:var(--danger)}.field-error{color:var(--danger);font-size:.9rem}.input-group{display:flex;flex-direction:column;gap:.3rem;min-height:3.8rem}.actions-row{display:flex;gap:var(--space-2);margin-top:var(--space-3)}.btn{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;gap:.5ch;font:inherit;font-weight:600;line-height:var(--btn-line);padding-block:var(--btn-py);padding-inline:var(--btn-px);border:0;border-radius:var(--radius-2);cursor:pointer;flex:1 1 0;width:100%;transition:background-color var(--dur-fast) ease,box-shadow var(--dur-fast) ease}.actions-row>.btn{flex:1 1 0;width:100%}.btn:disabled{background-color:var(--disabled);cursor:not-allowed}.btn-primary{background-color:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background-color:var(--accent-hover)}.btn-primary:focus-visible{outline:.125rem solid var(--accent);outline:.125rem solid color-mix(in oklab,var(--accent) 70%,white);outline-offset:.125rem}.btn-secondary{background-color:transparent;color:var(--accent);border:.0625rem solid var(--accent)}.btn-secondary:hover:not(:disabled){background-color:color-mix(in oklab,var(--accent) 12%,transparent)}.btn-secondary:focus-visible{outline:.125rem solid var(--accent);outline:.125rem solid color-mix(in oklab,var(--accent) 70%,white);outline-offset:.125rem}.oauth-btn.google{display:block;width:100%;max-height:fit-content;margin-top:var(--space-3)}.oauth-divider{border:0;height:.0625rem;width:100%;background-color:color-mix(in oklab,var(--border) 70%,transparent);margin:var(--space-4) 0;display:block}.password-wrapper{position:relative;display:flex;align-items:center}.password-wrapper input{padding-right:2.25rem}.eye-btn{position:absolute;right:var(--space-3);top:50%;transform:translateY(-50%);background:none;border:none;color:var(--muted-text);cursor:pointer;padding:0}.strength-bar{display:flex;gap:var(--space-1);margin:var(--space-2) 0}.strength-bar span{flex:1;height:.3125rem;border-radius:var(--radius-1);background-color:var(--strength-empty);transition:background-color var(--dur-fast) ease,transform var(--dur-fast) ease;transform-origin:center bottom}.strength-1 .filled{background-color:#ef4444}.strength-2 .filled{background-color:#f59e0b}.strength-3 .filled{background-color:#22c55e}.strength-4 .filled{background:linear-gradient(90deg,#22c55e,#14b8a6)}.strength-bar .filled{transform:scaleY(1.08)}.login-error{color:var(--danger)}.link-btn,.link-inline{background:none;border:none;color:var(--link);cursor:pointer;padding:0}.link-btn:hover,.link-inline:hover{text-decoration:underline}.link-inline:focus-visible{outline:.125rem solid var(--accent);outline-offset:.125rem}.eye-btn{width:var(--icon-size);height:var(--icon-size);display:grid;place-items:center;padding:0;-webkit-user-select:none;user-select:none}.eye-btn .eye{grid-area:1 / 1;width:100%;height:100%;fill:none;stroke:var(--muted-text);stroke-width:1.5;transition:opacity var(--dur-fast) var(--easing),transform var(--dur-fast) var(--easing),stroke var(--dur-fast) var(--easing)}.eye-btn.is-closed .eye-open{opacity:0;transform:scale(.9) rotate(-5deg)}.eye-btn.is-closed .eye-closed,.eye-btn.is-open .eye-open{opacity:1;transform:scale(1) rotate(0)}.eye-btn.is-open .eye-closed{opacity:0;transform:scale(.9) rotate(5deg)}.eye-btn:focus-visible{outline:.125rem solid var(--accent);outline-offset:.125rem}.modal-overlay .modal{animation:slideFadeIn .3s ease}@keyframes slideFadeIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.protected-loader{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100vw;height:100vh;color:var(--text);background-color:var(--bg);font-size:1.1rem;gap:1rem}.spinner{width:48px;height:48px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.page{flex-direction:column;align-items:center;padding:3rem 2rem}.user-grid{display:flex;flex-direction:column;gap:1rem;width:100%;max-width:1000px}.user-card{display:flex;align-items:center;justify-content:space-between;background-color:var(--panel-bg);border:1px solid var(--border);border-radius:50px;padding:.8rem 1.6rem;width:100%;box-shadow:0 2px 10px var(--shadow);transition:all .25s ease}.user-card:hover{border-color:var(--accent);background-color:var(--hover-bg);box-shadow:0 6px 20px var(--shadow);transform:translateY(-2px)}.user-left{display:flex;align-items:center;flex:1}.avatar{width:42px;height:42px;background-color:var(--avatar-bg);border-radius:50%;color:#fff;font-size:1rem;display:flex;align-items:center;justify-content:center;font-weight:600;margin-right:1rem;transition:background-color .2s ease}.delete-btn{background:transparent;color:var(--delete);font-size:x-large;opacity:0;transform:translate(10px);pointer-events:none;border:transparent;transition:.3s}.user-card:hover .delete-btn{opacity:1;pointer-events:auto}.delete-btn:hover{color:#9c0f0f}.modal-overlay{position:fixed;inset:0;background:#0009;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:50}.modal{background-color:var(--panel-bg);padding:2rem;border-radius:16px;border:1px solid var(--border);width:90%;max-width:420px;box-shadow:0 6px 25px var(--shadow)}.modal h2{color:var(--accent);font-size:1.5rem;margin-bottom:1.2rem}.modal input{width:100%;background-color:var(--bg);border:1px solid var(--border);border-radius:8px;padding:.6rem .8rem;color:var(--text);font-size:1rem;outline:none}.modal input:focus{border-color:var(--accent)}.error-text{color:var(--delete);font-size:.9rem;margin-top:.6rem;margin-bottom:-.4rem;text-align:left;font-weight:500}.modal input.error{border-color:var(--delete);background-color:#ef444414}.modal-actions{margin-top:1.4rem;display:flex;justify-content:flex-end;gap:.8rem}.modal-actions button{font-family:inherit;font-weight:500;border-radius:8px;padding:.55rem 1.2rem;cursor:pointer;transition:all .25s ease;font-size:.95rem}.modal-actions button:first-child{background-color:transparent;border:1px solid var(--border);color:var(--muted-text)}.modal-actions button:first-child:hover{border-color:var(--accent);color:var(--accent);background-color:#3b82f614}.modal-actions button:last-child{background-color:var(--accent);border:none;color:#fff;font-weight:600;box-shadow:0 2px 8px #2563eb40}.modal-actions button:last-child:hover{background-color:var(--accent-hover);transform:translateY(-1px);box-shadow:0 4px 12px #2563eb59}.modal-actions button:last-child:active{transform:translateY(0);box-shadow:0 2px 6px #2563eb40}.editable-avatar{position:relative;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.editable-avatar:hover{transform:scale(1.05);box-shadow:0 0 0 3px #3b82f640;cursor:url(/cursors/pencil-24.png) 8 8,url("data:image/svg+xml;utf8, <svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'> <path fill='%23ffffff' d='M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25z'/> <path fill='%23ffffff' d='M20.71 7.04c.18-.19.29-.45.29-.71s-.11-.52-.29-.71L18.37 3.29a1.003 1.003 0 0 0-1.42 0L15.13 5.1l3.75 3.75 1.83-1.81z'/></svg>") 8 8,pointer}.color-picker-top{display:flex;flex-direction:column;align-items:center;gap:1.2rem;margin-bottom:1rem}.color-preview-avatar{width:64px!important;height:64px!important;font-size:1.4rem;margin:0;box-shadow:0 0 10px var(--shadow);transition:background-color .25s ease}.color-picker-panel{background:var(--panel-bg);border:1px solid var(--border);border-radius:12px;box-shadow:0 4px 12px var(--shadow);padding:1rem;width:100%;max-width:320px}.color-picker-inner{display:flex;align-items:flex-start;justify-content:center;gap:.8rem}.picker-column{display:flex;flex-direction:column;align-items:center;gap:.8rem;flex:1;padding-left:.8rem}.picker-column .react-colorful{width:100%;height:160px;border-radius:10px;box-shadow:0 0 0 1px var(--border)}.picker-column input[type=text]{width:100%;text-align:center;background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:.45rem .6rem;color:var(--text);font-weight:500}.color-swatches-vertical{display:flex;flex-direction:column;align-items:center;gap:.6rem;padding-right:1.2rem;border-right:1px solid var(--border)}.color-swatch{width:26px;height:26px;border-radius:50%;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.color-swatch:hover{transform:scale(1.1);box-shadow:0 0 6px var(--shadow)}.row-dirty{background-color:#3b82f614;transition:background-color .2s ease}input[type=checkbox]:disabled{opacity:.6;cursor:not-allowed}.creator-badge{margin-left:.5rem;font-size:.85rem;color:var(--muted-text)}
