*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--primary:#4464ad;--primary-light:#eef1fa;--primary-mid:#c7d3ec;--primary-dark:#2c4271;--primary-hover:#375291;--teal:#78cad2;--teal-light:#e7f6f7;--teal-mid:#bfe6ea;--teal-dark:#2f6b72;--yellow:#e7e08b;--yellow-light:#fbf8e0;--yellow-mid:#f3edb8;--yellow-dark:#7a6100;--pink:#fad4d8;--pink-light:#fef2f3;--pink-mid:#f7c3ca;--pink-dark:#93404c;--rust:#7d4600;--rust-light:#f7ede0;--rust-mid:#e8cfa8;--topbar-bg:#36762c;--topbar-accent:#fbf3a0;--warm:#fffaf3;--warm-mid:#fdf1e2;--warm-border:#ecdcc0;--text:#33261a;--text-2:#6c5a49;--text-3:#9c8b78;--urgent-bg:#fbe6dd;--urgent-text:#a0431b;--urgent-bdr:#edb896;--normal-bg:#fbf6d6;--normal-text:#7a6100;--normal-bdr:#e6d97e;--low-bg:#e2f2f4;--low-text:#205b62;--low-bdr:#a9d8dd;--done-bg:#e9edf7;--done-text:#3a4f85;--done-bdr:#c3cdea;--event-bg:#fdeaec;--event-text:#9c4552;--event-bdr:#f3c3c9;--radius:12px;--font:"Roboto", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}body{font-family:var(--font);background:var(--warm-mid);color:var(--text);min-height:100vh;font-size:15px;line-height:1.5}.av-sage{background:var(--primary-mid);color:var(--primary-dark)}.av-amber{background:var(--yellow-mid);color:var(--yellow-dark)}.av-blue{background:var(--teal-mid);color:var(--teal-dark)}.av-coral{background:var(--pink-mid);color:var(--pink-dark)}.av-purple{background:var(--rust-mid);color:var(--rust)}.app{border:.5px solid var(--warm-border);background:var(--warm);border-radius:18px;max-width:1100px;margin:32px auto;overflow:hidden;box-shadow:0 2px 16px #33261a0f}.topbar{background:var(--topbar-bg);justify-content:space-between;align-items:center;padding:18px 28px;display:flex}.topbar-left{align-items:center;gap:12px;display:flex}.topbar-left .heart-icon{color:var(--topbar-accent);font-size:22px}.topbar-back-btn{color:var(--topbar-accent);opacity:.85;align-items:center;transition:opacity .15s;display:flex}.topbar-back-btn:hover{opacity:1}.village-name{color:#fff;font-size:21px;font-weight:600}.village-sub{color:var(--topbar-accent);margin-top:2px;font-size:13px}.user-pill{cursor:pointer;background:#ffffff24;border:none;border-radius:22px;align-items:center;gap:9px;padding:6px 14px 6px 6px;transition:background .15s;display:flex}.user-pill:hover{background:#ffffff38}.user-pill .user-name{color:#fff;font-size:14px;font-family:var(--font)}.user-pill .chevron{color:var(--topbar-accent);font-size:12px}.top-nav{align-items:center;gap:20px;display:flex}.top-nav-link{color:#fffc;font-size:14px;text-decoration:none;transition:color .15s}.top-nav-link:hover{color:#fff}.top-nav-link.active{color:#fff;font-weight:600}.avatar{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:12px;font-weight:500;display:flex}.avatar-sm{width:26px;height:26px;font-size:11px}.avatar-lg{width:42px;height:42px;font-size:16px}.village-hero{background:linear-gradient(135deg, var(--teal-light), var(--pink-light));border-bottom:.5px solid var(--warm-border);padding:18px 28px}.village-hero-text{color:var(--text-2);max-width:760px;font-size:16px;line-height:1.65}.toolbar{background:var(--warm);border-bottom:.5px solid var(--warm-border);flex-wrap:wrap;align-items:center;gap:10px;padding:16px 24px;display:flex}.view-toggle{border:.5px solid var(--warm-border);border-radius:10px;display:flex;overflow:hidden}.view-btn{color:var(--text-2);cursor:pointer;font-size:14px;font-family:var(--font);background:0 0;border:none;align-items:center;gap:6px;padding:9px 18px;transition:background .15s,color .15s;display:flex}.view-btn.active{background:var(--primary);color:#fff}.view-btn:not(.active):hover{background:var(--warm-mid)}.filter-select{border:.5px solid var(--warm-border);background:var(--warm);color:var(--text);cursor:pointer;font-size:14px;font-family:var(--font);border-radius:10px;padding:9px 12px}.spacer{flex:1}.add-btn{background:var(--primary);color:#fff;cursor:pointer;font-size:14px;font-weight:500;font-family:var(--font);border:none;border-radius:10px;align-items:center;gap:6px;padding:9px 18px;transition:background .15s;display:flex}.add-btn:hover{background:var(--primary-hover)}.content{padding:24px 28px}.content-header{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:24px;display:flex}.content-header h1{color:var(--text);font-size:30px;font-weight:700}.content-header .page-sub{max-width:520px;margin:8px 0 0}.content-header .add-btn{flex-shrink:0}.stats-row{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:24px;display:grid}.stat-card{background:var(--warm-mid);border-radius:var(--radius);text-align:left;width:100%;font-family:var(--font);cursor:pointer;border:none;padding:16px 18px;transition:background .15s,box-shadow .15s}.stat-card:hover{box-shadow:0 0 0 1.5px var(--warm-border);background:#fff}.stat-card.active{background:#fff}.stats-row .stat-card:first-child.active{box-shadow:0 0 0 2px var(--urgent-text) inset}.stats-row .stat-card:nth-child(2).active{box-shadow:0 0 0 2px var(--primary) inset}.stats-row .stat-card:nth-child(3).active{box-shadow:0 0 0 2px var(--teal-dark) inset}.stats-row .stat-card:nth-child(4).active{box-shadow:0 0 0 2px var(--text-2) inset}.stat-label{color:var(--text-3);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px;font-size:12px}.stat-num{font-size:28px;font-weight:600}.stat-sub{color:var(--text-3);margin-top:3px;font-size:12px}.stat-urgent{color:var(--urgent-text)}.stat-sage{color:var(--primary-dark)}.stat-blue{color:var(--teal-dark)}.group-label{color:var(--text-2);align-items:center;gap:6px;margin:18px 0 8px 2px;font-size:13px;font-weight:500;display:flex}.task-list{flex-direction:column;gap:10px;display:flex}.task-card{border:.5px solid var(--warm-border);border-radius:var(--radius);color:inherit;background:#fff;align-items:flex-start;gap:14px;padding:16px 18px;text-decoration:none;transition:border-color .15s;display:flex}.task-card:hover{border-color:var(--primary)}.task-card.done{opacity:.55}.task-check{border:2px solid var(--warm-border);cursor:pointer;background:0 0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;margin-top:2px;transition:background .15s,border-color .15s;display:flex}.task-check.checked{background:var(--primary);border-color:var(--primary)}.task-check.checked svg{color:#fff}.task-body{flex:1;min-width:0}.task-title{color:var(--text);font-size:15.5px;font-weight:500;line-height:1.4}.task-card.done .task-title{color:var(--text-3);text-decoration:line-through}.task-notes{color:var(--text-3);white-space:nowrap;text-overflow:ellipsis;margin-top:4px;font-size:13px;line-height:1.5;overflow:hidden}.task-meta{flex-wrap:wrap;align-items:center;gap:8px;margin-top:7px;display:flex}.tag{white-space:nowrap;border-radius:20px;padding:3px 10px;font-size:12px;font-weight:500}.tag-urgent{background:var(--urgent-bg);color:var(--urgent-text);border:.5px solid var(--urgent-bdr)}.tag-normal{background:var(--normal-bg);color:var(--normal-text);border:.5px solid var(--normal-bdr)}.tag-low{background:var(--low-bg);color:var(--low-text);border:.5px solid var(--low-bdr)}.tag-done{background:var(--done-bg);color:var(--done-text);border:.5px solid var(--done-bdr)}.task-time{color:var(--text-3);align-items:center;gap:4px;font-size:12px;display:flex}.task-cat{color:var(--text-3);font-size:12px}.task-right{flex-shrink:0;align-items:center;gap:8px;margin-top:2px;display:flex}.take-btn{border:.5px solid var(--warm-border);color:var(--text-2);cursor:pointer;white-space:nowrap;font-size:12px;font-family:var(--font);background:0 0;border-radius:8px;padding:6px 12px;transition:border-color .15s,color .15s}.take-btn:hover{border-color:var(--primary);color:var(--primary)}.task-claimed{align-items:center;gap:6px;display:flex}.unclaim-btn{color:var(--text-3);cursor:pointer;white-space:nowrap;font-size:12px;font-family:var(--font);text-underline-offset:2px;background:0 0;border:none;padding:2px 0;text-decoration:underline;transition:color .15s}.unclaim-btn:hover{color:var(--urgent-text)}.action-btns{gap:4px;display:flex}.icon-btn{cursor:pointer;color:var(--text-3);background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:6px;transition:color .15s,background .15s;display:flex}.icon-btn:hover{color:var(--text);background:var(--warm-mid)}.icon-btn.delete:hover{color:var(--urgent-text)}.empty{text-align:center;color:var(--text-3);padding:56px 20px;font-size:14px}.empty-icon{color:var(--primary-mid);margin-bottom:10px;font-size:40px}.signout-row{border:.5px solid var(--warm-border);border-radius:var(--radius);background:#fff;margin-top:20px;overflow:hidden}.signout-row .btn-cancel{text-align:left;border:none;border-radius:0;width:100%;padding:14px 18px;display:block}.signout-row .btn-cancel:hover{background:var(--warm-mid)}.account-panel{border-top:.5px solid var(--warm-border);max-width:540px;margin-top:28px;padding-top:24px}.account-panel h2{margin-bottom:4px;font-size:17px;font-weight:600}.account-toggle{gap:10px;margin:16px 0;display:flex}.cal-nav{align-items:center;gap:10px;margin-bottom:16px;display:flex}.cal-nav-title{text-align:center;flex:1;font-size:17px;font-weight:600}.cal-nav-btn{border:.5px solid var(--warm-border);cursor:pointer;color:var(--text-2);font-family:var(--font);background:0 0;border-radius:8px;padding:6px 10px;transition:background .15s}.cal-nav-btn:hover{background:var(--warm-mid)}.cal-header{grid-template-columns:repeat(7,1fr);gap:3px;margin-bottom:6px;display:grid}.cal-dow{color:var(--text-3);text-align:center;text-transform:uppercase;letter-spacing:.4px;padding:6px 0;font-size:12px}.cal-grid{grid-template-columns:repeat(7,1fr);gap:3px;display:grid}.cal-day{border:.5px solid var(--warm-border);background:#fff;border-radius:10px;min-height:96px;padding:8px}.cal-day.other-month{background:var(--warm);opacity:.5}.cal-day.today{border-color:var(--primary);border-width:1.5px}.cal-day-num{color:var(--text-2);margin-bottom:4px;font-size:13px;font-weight:500}.cal-day.today .cal-day-num{color:var(--primary)}.cal-task-pill{white-space:nowrap;text-overflow:ellipsis;cursor:pointer;border-radius:5px;margin-bottom:3px;padding:3px 6px;font-size:11px;overflow:hidden}.cal-task-pill.urgent{background:var(--urgent-bg);color:var(--urgent-text)}.cal-task-pill.normal{background:var(--normal-bg);color:var(--normal-text)}.cal-task-pill.low{background:var(--low-bg);color:var(--low-text)}.cal-task-pill.done{background:var(--done-bg);color:var(--done-text)}.cal-task-pill.event{background:var(--event-bg);color:var(--event-text)}.cal-more{color:var(--text-3);font-size:11px}.modal-overlay{z-index:100;background:#33261a80;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal{background:#fff;border-radius:16px;width:100%;max-width:460px;max-height:90vh;padding:30px;overflow-y:auto}.modal-header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.modal-title{font-size:19px;font-weight:600}.modal-close{cursor:pointer;color:var(--text-3);background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:4px;display:flex}.modal-close:hover{color:var(--text);background:var(--warm-mid)}.field{margin-bottom:16px}.field label{color:var(--text-2);margin-bottom:6px;font-size:13px;font-weight:500;display:block}.field input,.field select,.field textarea{border:.5px solid var(--warm-border);background:var(--warm);width:100%;color:var(--text);font-size:14px;font-family:var(--font);border-radius:10px;padding:10px 12px;transition:border-color .15s}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--primary);outline:none}.field textarea{resize:vertical;min-height:84px}.field-error{color:var(--urgent-text);margin-top:5px;font-size:12px}.share-link-row{gap:10px;display:flex}.share-link-row input{flex:1;min-width:0}.share-link-row .btn-secondary-sm{flex-shrink:0}.member-list{flex-direction:column;gap:4px;max-height:340px;display:flex;overflow-y:auto}.member-row{border-bottom:.5px solid var(--warm-border);align-items:center;gap:12px;padding:10px 2px;display:flex}.member-row:last-child{border-bottom:none}.member-name{min-width:0;color:var(--text);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:14px;overflow:hidden}.helper-count-link{font:inherit;color:inherit;cursor:pointer;text-underline-offset:2px;background:0 0;border:none;padding:0;text-decoration:underline}.helper-count-link:hover{color:#fff}.notification-list{flex-direction:column;gap:4px;max-height:380px;display:flex;overflow-y:auto}.notification-row{border-bottom:.5px solid var(--warm-border);align-items:flex-start;gap:10px;padding:12px 2px;display:flex}.notification-row:last-child{border-bottom:none}.notification-dot{background:0 0;border-radius:50%;flex-shrink:0;width:7px;height:7px;margin-top:7px}.notification-row.unread .notification-dot{background:var(--primary)}.notification-body{flex:1;min-width:0}.notification-text{color:var(--text);font-size:14px;line-height:1.5}.notification-time{color:var(--text-3);margin-top:3px;font-size:12px}.bell-btn{cursor:pointer;color:#ffffffd9;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;margin-right:8px;padding:7px;transition:background .15s,color .15s;display:flex;position:relative}.bell-btn:hover{color:#fff;background:#ffffff24}.bell-badge{color:#fff;text-align:center;background:#c2542f;border-radius:8px;min-width:15px;height:15px;padding:0 3px;font-size:9px;font-weight:600;line-height:15px;position:absolute;top:2px;right:2px}.modal-actions{justify-content:flex-end;gap:10px;margin-top:24px;display:flex}.btn-cancel{border:.5px solid var(--warm-border);cursor:pointer;color:var(--text-2);font-size:14px;font-family:var(--font);background:0 0;border-radius:10px;padding:10px 18px;text-decoration:none;display:inline-block}.btn-cancel:hover{background:var(--warm-mid)}.btn-save{background:var(--primary);color:#fff;cursor:pointer;font-size:14px;font-weight:500;font-family:var(--font);border:none;border-radius:10px;padding:10px 22px;transition:background .15s}.btn-save:hover{background:var(--primary-hover)}.btn-save:disabled{opacity:.6;cursor:default}.btn-delete{border:.5px solid var(--urgent-bdr);color:var(--urgent-text);cursor:pointer;font-size:14px;font-family:var(--font);background:0 0;border-radius:10px;margin-right:auto;padding:10px 18px}.btn-delete:hover{background:var(--urgent-bg)}.btn-delete:disabled{opacity:.5;cursor:default}.btn-delete:disabled:hover{background:0 0}.rsvp-status-group{border:.5px solid var(--warm-border);border-radius:10px;display:flex;overflow:hidden}.rsvp-status-btn{color:var(--text-2);cursor:pointer;font-size:14px;font-family:var(--font);background:0 0;border:none;flex:1;padding:9px 12px;transition:background .15s,color .15s}.rsvp-status-btn+.rsvp-status-btn{border-left:.5px solid var(--warm-border)}.rsvp-status-btn.selected{background:var(--primary);color:#fff}.rsvp-status-btn:not(.selected):hover{background:var(--warm-mid)}.rsvp-list{flex-direction:column;gap:10px;max-height:180px;margin-top:16px;display:flex;overflow-y:auto}.rsvp-list-item{border:.5px solid var(--warm-border);border-radius:10px;padding:10px 12px}.rsvp-list-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.rsvp-list-name{color:var(--text);font-size:14px}.rsvp-list-comment{color:var(--text-3);margin-top:5px;font-size:13px}.toggle-row{cursor:pointer;text-align:left;width:100%;font-family:var(--font);background:0 0;border:none;align-items:flex-start;gap:12px;padding:0;display:flex}.toggle-switch{background:var(--warm-border);border-radius:11px;flex-shrink:0;width:38px;height:22px;margin-top:1px;transition:background .15s;position:relative}.toggle-row.on .toggle-switch{background:var(--primary)}.toggle-knob{background:#fff;border-radius:50%;width:18px;height:18px;transition:transform .15s;position:absolute;top:2px;left:2px}.toggle-row.on .toggle-knob{transform:translate(16px)}.toggle-label-title{color:var(--text);font-size:14px;font-weight:500;display:block}.toggle-label-desc{color:var(--text-3);margin-top:3px;font-size:13px;display:block}.member-role-toggle{flex-shrink:0;align-items:center;gap:6px;width:auto}.member-role-toggle .toggle-label-title{color:var(--text-3);font-size:13px;font-weight:400}.member-role-toggle.on .toggle-label-title{color:var(--text);font-weight:500}.page-sub{color:var(--text-3);margin:6px 0 24px;font-size:14px}.create-village-form{max-width:540px}.visibility-options{flex-direction:column;gap:10px;display:flex}.visibility-option{text-align:left;background:var(--warm);border:.5px solid var(--warm-border);border-radius:var(--radius);cursor:pointer;width:100%;font-family:var(--font);color:inherit;padding:12px 14px;text-decoration:none;transition:border-color .15s,background .15s;display:block}.visibility-option:hover{border-color:var(--primary)}.visibility-option.selected{border-color:var(--primary);background:var(--primary-light);border-width:1.5px}.visibility-option-title{color:var(--text);font-size:14px;font-weight:500}.visibility-option-desc{color:var(--text-3);margin-top:3px;font-size:13px}.location-row{flex-wrap:wrap;align-items:center;gap:12px;margin-top:10px;display:flex}.btn-secondary-sm{border:.5px solid var(--warm-border);color:var(--text-2);cursor:pointer;font-size:13px;font-family:var(--font);white-space:nowrap;background:0 0;border-radius:8px;align-items:center;gap:6px;padding:7px 12px;text-decoration:none;transition:border-color .15s,color .15s;display:inline-flex}.btn-secondary-sm:hover{border-color:var(--primary);color:var(--primary)}.btn-secondary-sm:disabled{opacity:.6;cursor:default}.location-status{color:var(--text-3);font-size:12px;text-decoration:none}.location-status:hover{color:var(--primary)}.location-status.error{color:var(--urgent-text);margin-top:6px}@media (width<=600px){.app{border:none;border-radius:0;margin:0}.stats-row{grid-template-columns:repeat(2,1fr)}.task-right{flex-direction:column;align-items:flex-end}}
