*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--primary: #C8850A;--primary-mid: #E09A18;--primary-light: #F5BB30;--primary-pale: #1E1608;--bg: #0E0E14;--surface: #17171F;--surface-2: #1F1F2A;--border: #26263A;--border-mid: #33334C;--text: #F0EBE4;--text-mid: #C0BAB2;--text-muted: #7C7878;--text-faint: #3A3848;--shadow-sm: 0 1px 3px rgba(0,0,0,.3), 0 1px 2px rgba(0,0,0,.2);--shadow: 0 2px 10px rgba(0,0,0,.4), 0 1px 4px rgba(0,0,0,.25);--shadow-md: 0 4px 20px rgba(0,0,0,.5), 0 2px 8px rgba(0,0,0,.3);--shadow-lg: 0 8px 36px rgba(0,0,0,.6), 0 4px 14px rgba(0,0,0,.35);--success: #22C55E;--success-bg: #0A2818;--error: #F05050;--error-bg: #2A0E0E;--info: #60A5FA;--info-bg: #0A1630;--warning: #F59E0B;--warning-bg: #241808;--garbage: #C47060;--garbage-bg: #241410;--recycling: #5AAD80;--recycling-bg: #0E2418;--ian: #6B90C8;--ian-bg: #10182E;--fred: #4AAD8A;--fred-bg: #0A2018;--jasmin: #D06898;--jasmin-bg: #280E1C;--alex: #D49060;--alex-bg: #281408;--bathroom: #9B8FFF;--bathroom-bg: #12103A;--kitchen: #F0A070;--kitchen-bg: #2A1208;--garbage-c:#88AAB0;--garbage-c-bg:#0E1C20;--common: #6BCF70;--common-bg: #0A2010;--r-sm: 8px;--r: 14px;--r-lg: 20px;--r-xl: 28px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;color:var(--text);background:var(--bg)}html{height:100%;overflow-x:hidden}body{min-height:100%;overscroll-behavior:none;padding-bottom:env(safe-area-inset-bottom)}#root{min-height:100dvh;display:flex;flex-direction:column}button{font-family:inherit;cursor:pointer;border:none;background:none;-webkit-tap-highlight-color:transparent}input,textarea{font-family:inherit;border:none;outline:none;background:none}.page-scroll{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:16px 16px calc(24px + env(safe-area-inset-bottom));max-width:640px;margin:0 auto;width:100%}.header{position:sticky;top:0;z-index:100;background:#0e0e14eb;backdrop-filter:blur(20px) saturate(160%);-webkit-backdrop-filter:blur(20px) saturate(160%);border-bottom:1px solid var(--border);padding:12px 16px;padding-top:calc(12px + env(safe-area-inset-top))}.header-inner{display:flex;align-items:center;gap:10px;max-width:640px;margin:0 auto}.header-title{font-size:19px;font-weight:700;color:var(--primary);letter-spacing:-.3px;flex:1}.header-title span{opacity:.55;font-weight:400;font-size:14px;margin-left:6px}.header-user{font-size:13px;font-weight:600;padding:5px 11px;border-radius:20px;color:#fff;letter-spacing:.1px}.btn-icon{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;font-size:17px;transition:background .15s,transform .1s;color:var(--text-mid)}.btn-icon:active{transform:scale(.92);background:var(--border)}.btn-edit{font-size:12px;font-weight:700;padding:6px 13px;border-radius:20px;letter-spacing:.4px;text-transform:uppercase;transition:all .15s}.btn-edit.off{background:var(--surface);color:var(--text-mid);border:1.5px solid var(--border-mid)}.btn-edit.on{background:var(--primary);color:#fff;box-shadow:0 2px 10px #c8850a73}.section{background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--shadow);overflow:hidden;margin-bottom:16px}.section-header{display:flex;align-items:center;gap:8px;padding:14px 16px 10px;border-bottom:1px solid var(--border)}.section-title{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--text-muted);flex:1}.calendar-nav{display:flex;align-items:center;gap:8px}.calendar-month-label{font-size:16px;font-weight:700;color:var(--text);min-width:130px;text-align:center}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;padding:8px 10px 12px}.calendar-dow{font-size:10px;font-weight:700;text-align:center;color:var(--text-faint);padding:4px 0 6px;text-transform:uppercase;letter-spacing:.5px}.calendar-day{position:relative;height:62px;border-radius:var(--r-sm);border:1px solid transparent;padding:4px 3px;display:flex;flex-direction:column;align-items:center;overflow:hidden;transition:background .12s,border-color .12s;cursor:default;-webkit-tap-highlight-color:transparent}.calendar-day:not(.other-month){border-color:var(--border)}.calendar-day.other-month{opacity:.22}.calendar-day.today{border-color:var(--primary);background:var(--primary-pale)}.calendar-day.today .day-num{background:var(--primary);color:#fff;border-radius:50%;width:22px;height:22px;display:flex;align-items:center;justify-content:center}.calendar-day.cell-garbage{background:#a0483c2e;border-color:#b45a4b73!important}.calendar-day.cell-recycling{background:#3c82552e;border-color:#46915f73!important}.calendar-day.today.cell-garbage,.calendar-day.today.cell-recycling{border-color:var(--primary)!important}.calendar-day.tappable{cursor:pointer}.calendar-day.tappable:active{background:var(--primary-pale);border-color:var(--primary-mid)}.calendar-day.selected-for-event{background:var(--primary-pale)}.day-num{font-size:12px;font-weight:600;color:var(--text);width:22px;height:22px;display:flex;align-items:center;justify-content:center}.calendar-day.cell-garbage .day-num,.calendar-day.cell-recycling .day-num{color:var(--text)}.day-badges{display:flex;flex-direction:column;gap:2px;align-items:center;margin-top:2px;width:100%;overflow:hidden}.day-badge-remove{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;background:#0000004d;border-radius:50%;cursor:pointer;color:#ffffffd9}.day-badge{font-size:7px;font-weight:700;padding:1px 3px;border-radius:3px;line-height:1.4;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.day-badge.garbage-label{background:#96413759;color:#d08878}.day-badge.recycling-label{background:#37785059;color:#72b890}.day-badge.holiday{background:#251800;color:#c88a20}.day-badge.birthday{background:#23102a;color:#c078b8}.calendar-legend{display:flex;gap:12px;padding:0 12px 12px;flex-wrap:wrap}.legend-item{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--text-muted);font-weight:500}.legend-dot{width:8px;height:8px;border-radius:50%}.legend-dot.garbage{background:var(--garbage)}.legend-dot.recycling{background:var(--recycling)}.event-type-buttons{display:flex;gap:8px;padding:10px 12px;border-top:1px solid var(--border)}.event-type-btn{flex:1;padding:9px 12px;border-radius:var(--r-sm);font-size:13px;font-weight:600;border:2px solid transparent;transition:all .15s}.event-type-btn.garbage{color:var(--garbage);background:var(--garbage-bg)}.event-type-btn.recycling{color:var(--recycling);background:var(--recycling-bg)}.event-type-btn.selected.garbage{border-color:var(--garbage);box-shadow:0 2px 10px #ff60604d}.event-type-btn.selected.recycling{border-color:var(--recycling);box-shadow:0 2px 10px #4ade8040}.calendar-edit-actions{display:flex;gap:8px;padding:0 12px 12px}.btn-clear-calendar{flex:1;padding:9px;border-radius:var(--r-sm);font-size:12px;font-weight:600;color:var(--error);background:var(--error-bg);transition:opacity .15s}.btn-clear-calendar:active{opacity:.7}.chore-row{border-bottom:1px solid var(--border);transition:background .12s}.chore-row:last-child{border-bottom:none}.chore-row.expanded{background:var(--surface-2)}.chore-row-header{display:flex;align-items:center;gap:14px;padding:18px 16px;cursor:pointer;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.chore-row-header:active{background:var(--surface-2)}.chore-icon{width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:12px;flex-shrink:0}.chore-info{flex:1;min-width:0}.chore-name{font-size:18px;font-weight:800;color:var(--text);letter-spacing:-.3px}.chore-sub{font-size:12px;color:var(--text-muted);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chore-right{display:flex;align-items:center;gap:10px;flex-shrink:0}.user-badge{padding:6px 14px;border-radius:20px;font-size:14px;font-weight:700;color:#fff;letter-spacing:.1px;cursor:default;-webkit-user-select:none;user-select:none;transition:transform .2s,box-shadow .2s;touch-action:none}.user-badge.draggable{cursor:grab}.user-badge.draggable:active{cursor:grabbing}.user-badge.drag-over-target{transform:scale(1.08);box-shadow:0 4px 16px #00000040;outline:3px solid white;outline-offset:2px}.complete-badge{font-size:11px;font-weight:700;color:var(--success);background:var(--success-bg);padding:4px 10px;border-radius:20px;letter-spacing:.3px}.chore-chevron{color:var(--text-faint);transition:transform .2s}.chore-row.expanded .chore-chevron{transform:rotate(90deg)}.drag-ghost{position:fixed;z-index:9999;pointer-events:none;border-radius:20px;padding:8px 16px;font-size:13px;font-weight:700;color:#fff;box-shadow:var(--shadow-lg);transform:translate(-50%,-50%) scale(1.12) rotate(-2deg);transition:none!important;opacity:.92}.swap-indicator{animation:swapPulse .4s ease}@keyframes swapPulse{0%{transform:scale(1)}50%{transform:scale(.92)}to{transform:scale(1)}}.checklist-wrap{overflow:hidden;max-height:0;transition:max-height .3s cubic-bezier(.4,0,.2,1)}.checklist-wrap.open{max-height:2000px}.checklist{padding:4px 16px 14px;border-top:1px solid var(--border)}.checklist-empty{font-size:13px;color:var(--text-faint);padding:12px 0;text-align:center}.checklist-item{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--border);transition:opacity .12s}.checklist-item:last-of-type{border-bottom:none}.checklist-item.checked{opacity:.55}.chk-box{width:22px;height:22px;border-radius:6px;border:2px solid var(--border-mid);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .15s;cursor:pointer;background:var(--surface-2);-webkit-tap-highlight-color:transparent}.chk-box.checked{background:var(--primary);border-color:var(--primary)}.chk-box.checked:after{content:"";display:block;width:12px;height:7px;border-left:2.5px solid white;border-bottom:2.5px solid white;transform:rotate(-45deg) translate(1px,-1px)}.chk-text{flex:1;font-size:14px;color:var(--text);transition:text-decoration .15s;line-height:1.35}.checklist-item.checked .chk-text{text-decoration:line-through;color:var(--text-muted)}.chk-text-input{width:100%;font-size:14px;color:var(--text);border-bottom:1.5px solid var(--primary);padding-bottom:1px}.chk-delete{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--error);font-size:16px;background:var(--error-bg);opacity:0;transition:opacity .15s;flex-shrink:0}.checklist-item:hover .chk-delete,.edit-mode .chk-delete{opacity:1}.add-item-row{display:flex;align-items:center;gap:8px;padding-top:10px;margin-top:4px;border-top:1px dashed var(--border-mid)}.add-item-input{flex:1;font-size:14px;color:var(--text);padding:6px 0}.add-item-input::placeholder{color:var(--text-faint)}.btn-add-item{width:28px;height:28px;border-radius:50%;background:var(--primary);color:#fff;font-size:18px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:transform .1s,opacity .15s}.btn-add-item:active{transform:scale(.9)}.btn-add-item:disabled{opacity:.4}.debt-item{padding:14px 16px;border-bottom:1px solid var(--border)}.debt-item:last-child{border-bottom:none}.debt-item-header{display:flex;align-items:baseline;gap:8px;margin-bottom:10px}.debt-label{font-size:15px;font-weight:700;color:var(--text)}.debt-amount{font-size:13px;color:var(--text-muted);font-weight:500}.debt-users{display:flex;gap:8px;flex-wrap:wrap}.debt-user-chip{flex:1;min-width:64px;display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 6px;border-radius:var(--r-sm);border:2px solid var(--border);background:var(--surface-2);transition:all .15s;cursor:default}.debt-user-chip.own{cursor:pointer}.debt-user-chip.paid{border-color:var(--success);background:var(--success-bg)}.debt-user-chip:active.own{transform:scale(.95)}.debt-user-name{font-size:12px;font-weight:700;color:var(--text-mid)}.debt-user-chip.paid .debt-user-name{color:var(--success)}.debt-check-icon{font-size:14px;color:var(--success);height:16px;display:flex;align-items:center}.debt-uncheck-icon{font-size:11px;color:var(--text-faint);height:16px;display:flex;align-items:center}.login-screen{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;background:linear-gradient(160deg,#0e0e14,#1a1408 60%,#0e0e14)}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);box-shadow:var(--shadow-lg);padding:36px 28px;width:100%;max-width:360px}.login-logo{font-size:52px;text-align:center;margin-bottom:8px}.login-title{font-size:26px;font-weight:800;color:var(--primary);text-align:center;letter-spacing:-.5px;margin-bottom:4px}.login-sub{font-size:13px;color:var(--text-muted);text-align:center;margin-bottom:28px}.login-field{margin-bottom:14px}.login-label{font-size:12px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.6px;margin-bottom:6px;display:block}.login-select,.login-input{width:100%;padding:12px 14px;border-radius:var(--r-sm);border:1.5px solid var(--border-mid);font-size:15px;font-family:inherit;color:var(--text);background:var(--surface-2);transition:border-color .15s;-webkit-appearance:none}.login-select:focus,.login-input:focus{outline:none;border-color:var(--primary);background:var(--surface)}.user-dots{display:flex;gap:8px;margin-bottom:18px}.user-dot{flex:1;padding:10px 6px;border-radius:var(--r-sm);font-size:13px;font-weight:700;color:#fff;text-align:center;border:2px solid transparent;transition:all .15s;opacity:.55}.user-dot.active{opacity:1;border-color:#fff9;box-shadow:0 2px 8px #0003;transform:translateY(-1px)}.btn-login{width:100%;padding:14px;border-radius:var(--r-sm);font-size:16px;font-weight:700;color:#fff;background:var(--primary);transition:opacity .15s,transform .1s;margin-top:8px;letter-spacing:.2px}.btn-login:active{transform:scale(.98);opacity:.9}.btn-login:disabled{opacity:.55}.login-error{font-size:13px;color:var(--error);background:var(--error-bg);padding:10px 14px;border-radius:var(--r-sm);margin-top:12px;text-align:center}.edit-panel{background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--shadow);overflow:hidden;margin-bottom:16px;border:1.5px solid var(--primary)}.edit-panel-title{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:1px;color:var(--primary);padding:12px 16px 8px;border-bottom:1px solid var(--border)}.edit-panel-actions{display:flex;gap:8px;padding:12px 16px;flex-wrap:wrap}.btn-panel-action{flex:1;min-width:120px;padding:11px 14px;border-radius:var(--r-sm);font-size:13px;font-weight:600;text-align:center;border:1.5px solid var(--border-mid);color:var(--text-mid);background:var(--surface-2);transition:all .15s}.btn-panel-action:active{background:var(--border)}.btn-panel-action.danger{color:var(--error);border-color:var(--error);background:var(--error-bg)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;z-index:200;display:flex;align-items:flex-end;padding-bottom:env(safe-area-inset-bottom);animation:fadeIn .2s}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-sheet{width:100%;background:var(--surface);border-top:1px solid var(--border);border-radius:var(--r-xl) var(--r-xl) 0 0;padding:20px 20px 28px;max-width:640px;margin:0 auto;animation:slideUp .25s cubic-bezier(.4,0,.2,1)}@keyframes slideUp{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.modal-handle{width:36px;height:4px;background:var(--border-mid);border-radius:4px;margin:0 auto 20px}.modal-title{font-size:18px;font-weight:800;color:var(--text);margin-bottom:16px;letter-spacing:-.3px}.modal-field{margin-bottom:14px}.modal-label{font-size:12px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.6px;margin-bottom:6px;display:block}.modal-input{width:100%;padding:12px 14px;border-radius:var(--r-sm);border:1.5px solid var(--border-mid);font-size:15px;font-family:inherit;color:var(--text);background:var(--surface-2);transition:border-color .15s}.modal-input:focus{border-color:var(--primary);background:var(--surface);outline:none}.modal-actions{display:flex;gap:10px;margin-top:20px}.btn-modal-primary{flex:1;padding:13px;border-radius:var(--r-sm);font-size:15px;font-weight:700;color:#fff;background:var(--primary);transition:opacity .15s}.btn-modal-primary:disabled{opacity:.5}.btn-modal-cancel{padding:13px 20px;border-radius:var(--r-sm);font-size:15px;font-weight:600;color:var(--text-mid);background:var(--surface-2)}.audit-list{max-height:60vh;overflow-y:auto;-webkit-overflow-scrolling:touch}.audit-entry{display:flex;align-items:flex-start;gap:10px;padding:12px 0;border-bottom:1px solid var(--border)}.audit-entry:last-child{border-bottom:none}.audit-dot{width:8px;height:8px;border-radius:50%;margin-top:5px;flex-shrink:0}.audit-body{flex:1}.audit-name{font-size:12px;font-weight:700;margin-bottom:1px}.audit-action{font-size:13px;color:var(--text-mid);line-height:1.35}.audit-time{font-size:11px;color:var(--text-faint);margin-top:2px}.audit-empty{font-size:13px;color:var(--text-faint);text-align:center;padding:24px}.toast-container{position:fixed;top:calc(env(safe-area-inset-top) + 70px);left:50%;transform:translate(-50%);z-index:9000;display:flex;flex-direction:column;gap:6px;pointer-events:none;width:min(calc(100vw - 32px),360px)}.toast{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:var(--r);font-size:14px;font-weight:600;box-shadow:var(--shadow-md);animation:toastIn .25s cubic-bezier(.4,0,.2,1);pointer-events:all;cursor:pointer}@keyframes toastIn{0%{opacity:0;transform:translateY(-12px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.toast.success{background:var(--success);color:#fff}.toast.error{background:var(--error);color:#fff}.toast.info{background:var(--info);color:#fff}.spin{display:inline-block;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(.92)}}.edit-hint{font-size:11px;color:var(--primary-mid);background:var(--primary-pale);padding:7px 14px;text-align:center;font-weight:600;letter-spacing:.1px;border-radius:var(--r-sm);border:1px solid var(--primary-light);margin-bottom:12px}@media (min-width: 680px){.page-scroll{padding-left:24px;padding-right:24px}}
