@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+TC:wght@400;500;600;700&display=swap');
:root{font-family:'Noto Sans TC',system-ui,sans-serif;color:#263d36;background:#f5f5ef;font-size:16px;--green:#2f6354;--muted:#6d7b74;--line:#e3e7de}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #cf8b35;outline-offset:3px}button{border:1px solid var(--line);border-radius:14px;background:white;color:inherit;padding:12px 16px;min-height:48px}button:hover{filter:brightness(.97)}.app{max-width:900px;margin:auto;padding:0 32px 130px}header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:28px 0;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--green);font-size:1.3rem;font-weight:700}.brandmark{display:grid;place-items:center;background:var(--green);color:white;width:46px;height:46px;border-radius:16px;font-size:1.3rem}.brand small{display:block;color:var(--muted);font-size:.69rem;font-weight:400;margin-top:3px}.mode{font-size:.85rem;background:#e9efe6;border:0}.mode[aria-pressed=true]{background:var(--green);color:white}main{padding-top:28px}h1{font-size:1.9rem;line-height:1.4;margin:8px 0 10px;letter-spacing:-.04em}h2{font-size:1.15rem;margin:0}p{line-height:1.7}.muted,.eyebrow{color:var(--muted)}.eyebrow{font-size:.85rem;letter-spacing:.05em}.intro{display:flex;justify-content:space-between;align-items:center;gap:12px}.intro p{margin:0;color:var(--muted);font-size:.9rem}.family-select{margin:22px 0;display:flex;gap:8px;flex-wrap:wrap}.chip{border-radius:30px;padding:9px 16px;font-size:.9rem;min-height:44px}.chip.active{background:var(--green);color:white;border-color:var(--green)}.hero{background:#e5eddf;border-radius:22px;padding:24px;margin:20px 0 28px;position:relative;overflow:hidden}.hero .eyebrow{color:var(--green)}.hero h2{font-size:1.45rem;margin:12px 0 5px}.hero p{margin:5px 0;color:#4c6555}.hero .tag{background:#f8faf4}.section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:26px 0 14px}.section-title span{font-size:.85rem;color:var(--muted)}.event{display:flex;gap:18px;background:white;border:1px solid var(--line);border-radius:19px;margin:12px 0;padding:20px;width:100%;text-align:left;align-items:flex-start}.event .time{font-weight:700;min-width:61px;color:var(--green);font-size:1.05rem;padding-top:3px}.event .content{flex:1;min-width:0;border-left:3px solid #9caf94;padding-left:18px}.event h3{font-size:1.08rem;margin:8px 0;overflow-wrap:anywhere}.event p{font-size:.9rem;margin:5px 0;color:var(--muted)}.tag{display:inline-block;padding:4px 9px;background:#edf2e8;color:#526a4e;border-radius:7px;font-size:.75rem}.tag.amber{background:#fff3df;color:#926222}.arrow{color:#99a89e;align-self:center}.quick-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.quick{display:flex;flex-direction:column;align-items:flex-start;gap:7px;padding:18px;background:#fffdf8}.quick .icon{font-size:1.5rem;color:var(--green)}.quick small{color:var(--muted);font-size:.78rem}.prototype{font-size:.75rem;color:#7a837b;margin:28px 0;text-align:center;line-height:1.7}nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(900px,100%);display:grid;grid-template-columns:repeat(4,1fr);background:#fffef9ee;backdrop-filter:blur(14px);padding:10px 20px calc(10px + env(safe-area-inset-bottom));border-top:1px solid var(--line);z-index:5}nav button{display:flex;flex-direction:column;align-items:center;gap:4px;border:0;background:transparent;color:#7b877e;font-size:.78rem;padding:4px;min-height:55px}nav span{font-size:1.45rem}nav button.active{color:var(--green);font-weight:700}.fab{position:fixed;bottom:95px;right:max(20px,calc((100vw - 836px)/2));z-index:4;background:var(--green);color:white;box-shadow:0 5px 18px #21493926;border:0;border-radius:30px;font-size:1rem}.primary{background:var(--green);color:white;border:0;width:100%;margin-top:12px}.secondary{width:100%;margin-top:12px}.danger{color:#a94436}.two{display:grid;grid-template-columns:1fr 1fr;gap:12px}dialog{border:1px solid var(--line);border-radius:24px;width:min(94vw,520px);max-height:88dvh;padding:24px;color:inherit;background:#fffefb;box-shadow:0 18px 70px #102c3433}dialog::backdrop{background:#233d365e;backdrop-filter:blur(3px)}.dialog-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;gap:12px}.close{border:0;font-size:1.5rem;padding:4px 14px}label{display:block;font-size:.9rem;margin:12px 0;color:#526457}input,select,textarea{display:block;width:100%;padding:12px;border:1px solid #d8dfd4;border-radius:11px;background:white;color:#263d36;margin-top:7px;min-width:0}textarea{resize:vertical}#toast{position:fixed;bottom:175px;left:50%;transform:translateX(-50%);background:#233e34;color:white;padding:14px 20px;border-radius:15px;z-index:20;display:none;width:max-content;max-width:90vw;box-shadow:0 4px 25px #0002}#toast button{padding:5px 10px;min-height:36px;margin-left:10px;background:#ffffff20;color:white;border-color:#ffffff40}.panel{background:white;border:1px solid var(--line);border-radius:20px;padding:22px;margin:16px 0}.panel p{color:var(--muted);font-size:.9rem}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:16px 0}.record{border-bottom:1px solid var(--line);padding:16px 0}.record:last-child{border:0}.record p{margin:5px 0;color:var(--muted);font-size:.85rem}.record-actions{display:flex;gap:8px;margin-top:10px}.record-actions button{font-size:.8rem;padding:6px 12px;min-height:40px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.stat{background:#edf2e8;padding:15px 10px;border-radius:15px;text-align:center}.stat strong{display:block;font-size:1.3rem;margin:6px 0}.stat small{font-size:.75rem;color:var(--muted)}.empty{padding:30px;text-align:center;background:white;border:1px dashed #d1dbca;border-radius:18px;color:var(--muted)}.day-controls{display:flex;align-items:center;gap:8px;margin:20px 0}.day-controls input{margin:0;flex:1}.day-controls button{padding:10px 14px}.week-days{display:flex;gap:6px;overflow-x:auto;padding:3px 0 10px}.week-days button{flex:1;min-width:50px;padding:10px 5px;font-size:.8rem}.week-days b{display:block;font-size:1.1rem;margin-top:5px}.week-days .active{background:var(--green);color:white}.detail-list{display:grid;grid-template-columns:90px 1fr;gap:16px 8px;margin:24px 0;line-height:1.6}.detail-list dt{color:var(--muted)}.detail-list dd{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.senior{font-size:21px}.senior .brand small{display:none}.senior .quick-grid{grid-template-columns:1fr}.senior .quick{flex-direction:row;align-items:center}.senior .quick small{margin-left:auto}.senior button{min-height:56px}.senior nav button{font-size:.85rem}.senior .event{gap:12px}.senior .event .content{padding-left:12px}.senior .event .time{min-width:70px}.senior .mode{font-size:.8rem}.senior .hero{padding:22px}.senior .fab{bottom:115px}.senior .prototype{font-size:.8rem}@media(max-width:600px){.app{padding:0 20px 150px}header{padding:20px 0}.brand{font-size:1.15rem}.brandmark{width:40px;height:40px}.mode{padding:10px;font-size:.78rem}h1{font-size:1.7rem}.intro{align-items:flex-start}.event{padding:16px;gap:12px}.event .content{padding-left:12px}.quick-grid{gap:8px}.quick{padding:15px 12px}.quick small{font-size:.7rem}.hero{padding:22px}.senior .brandmark{display:none}.senior .two{grid-template-columns:1fr}.senior .event{flex-direction:column}.senior .event .content{border-left:0;padding:0}.senior .event .arrow{display:none}.senior .stats{grid-template-columns:1fr}.senior .stat{display:flex;align-items:center;justify-content:space-between}.senior .stat strong{margin:0}.senior nav{padding-left:5px;padding-right:5px}.senior dialog{padding:20px}.detail-list{grid-template-columns:1fr;gap:5px}.detail-list dd{margin-bottom:12px}}

/* Warm, sunlit palette and simplified mobile controls. */
:root{color:#252522;background:#F5F3EE;--green:#252522;--muted:#68675F;--line:#E8E4DC}
.brand{color:#252522}.brandmark{background:#F4BE23;color:#252522;border-radius:50%}.mode{background:#fff;border:1px solid #E2DED5}.mode[aria-pressed=true]{background:#F4BE23;color:#252522}
.hero{background:#F8D65C;border-radius:24px;border:0}.hero p,.hero .eyebrow{color:#514522}.hero .chip{background:#fff8dc;color:#252522;border:0}.chip.active{background:#F4BE23;color:#252522;border-color:#F4BE23}.chip{display:inline-flex;align-items:center;gap:7px}.family-select{flex-wrap:nowrap;overflow-x:auto;padding-bottom:5px}.family-select .chip{flex-shrink:0;max-width:100%;white-space:normal;overflow-wrap:anywhere}
.calendar-dot{display:inline-block;width:11px;height:11px;min-width:11px;border-radius:50%;border:1px solid #0002}.calendar-name{display:flex;gap:10px;align-items:center;overflow-wrap:anywhere;min-width:0}
.event{border:0;border-radius:22px;padding:22px 18px}.event .content{border-left:0;padding-left:5px}.event .time{color:#252522}.tag{background:#EEE8F8;color:#4D405F}.tag.amber{background:#FFF0BC;color:#6E5019}.event h3{font-weight:600}.event p{color:#66645D}
.quick{border:0;border-radius:22px;background:#EED5CE}.quick:nth-child(2){background:#E1D9FA}.quick:nth-child(3){background:#E2E3D5}.quick small{color:#625C58}.quick .icon{color:#49443C}.primary{background:#F4BE23;color:#252522;font-weight:600}.panel{border:0;border-radius:24px}.stat{background:#EEEAE1}nav{background:#F5F3EEF2;border-color:#E4DFD6}nav button.active{color:#252522}nav button.active span{background:#F4BE23;border-radius:12px;min-width:40px}nav button span{line-height:1.5}.week-days button{border:0;border-radius:28px}.week-days .active{background:#F4BE23;color:#252522}
.fab{display:grid;place-items:center;width:60px;height:60px;padding:0;border-radius:50%;font-size:2rem;line-height:1;background:#F4BE23;color:#252522;box-shadow:0 5px 15px #77652B25;bottom:94px}.fab[hidden]{display:none}.senior .fab{width:68px;height:68px;font-size:2.1rem}.settings-row>button{flex-shrink:0}.eyebrow{letter-spacing:.02em}.senior .quick{flex-wrap:wrap}.senior .family-select{flex-wrap:wrap}.senior .quick small{margin-left:0}.senior .hero p{color:#493D1E}

.family-select{flex-wrap:wrap;overflow:visible}.family-select .chip{font-size:.85rem;padding:9px 13px}.senior .family-select .chip{font-size:1rem}
.choice{display:flex;flex-direction:column;text-align:left;width:100%;padding:22px;margin:14px 0;gap:8px;border:0;background:#eee9df}.choice span{font-size:.85rem;color:#666055}.choice.yellow{background:#F8D65C}.helper{font-size:.82rem;line-height:1.7;color:#68675f;overflow-wrap:anywhere}.form-error{color:#a2392e}.pre{white-space:pre-wrap;overflow-wrap:anywhere}.activity-summary h1{overflow-wrap:anywhere}.announcement{background:#fff1bd}.participant{padding:18px 0;border-bottom:1px solid var(--line)}.participant>div:first-child{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.participant-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.participant-actions button{font-size:.85rem}.reply-options{display:grid;gap:12px}.reply-options .selected{background:#F4BE23;border-color:#F4BE23;font-weight:700}.qr{background:white;padding:12px;margin:20px auto;width:min(100%,280px)}.qr svg{display:block;width:100%;height:auto}.preview-link{display:block;text-align:center;padding:20px;color:#514522}.local-warning{background:#fff0c5;padding:14px;border-radius:12px;line-height:1.7;font-size:.85rem}#temporaryDialog{max-width:540px}details{margin:20px 0}summary{cursor:pointer;min-height:44px;padding:12px 0}

.guest-mode nav,.guest-mode .fab{display:none}.guest-mode .app{padding-bottom:40px}.guest-mode header .brand{pointer-events:none}
#repeatSettings{border-top:1px solid var(--line);margin-top:20px;padding-top:8px}#repeatSettings fieldset{border:0;padding:0;margin:15px 0}#repeatSettings legend{font-size:.9rem;color:#526457}.weekday-options{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.weekday-options label{text-align:center;background:#eee8df;border-radius:12px;padding:10px 0;margin:0}.weekday-options input{width:21px;height:21px;margin:0 auto 7px;accent-color:#9c7300}.date-preview{max-height:35dvh;overflow:auto;background:#f5f3ee;padding:15px;border-radius:15px;line-height:2}#batchList{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}.senior .weekday-options{grid-template-columns:repeat(4,1fr)}

[hidden]{display:none!important}
.people-settings-link{font-size:.85rem;padding:6px 12px;min-height:40px;margin-bottom:10px;background:#eee8df;border:0}.people-calendar{display:flex;gap:15px;align-items:center;justify-content:space-between;padding:16px 0;border-bottom:1px solid var(--line)}.people-calendar>div{min-width:0;overflow-wrap:anywhere}.people-calendar button{flex-shrink:0}.people-calendar p{margin:5px 0}.people-add{display:flex;align-items:end;gap:10px}.people-add label{flex:1;min-width:0}.people-add button{margin-bottom:12px}.people-list{border:0;margin:20px 0;padding:0}.people-list legend{margin-bottom:12px;color:#68675f;font-size:.9rem}.person-setting-row{display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid var(--line)}.person-default{display:flex;gap:12px;align-items:center;min-height:48px;overflow-wrap:anywhere;flex:1}.person-default input{width:22px;height:22px;flex-shrink:0;margin:0;accent-color:#876300}.person-default span{min-width:0}.person-setting-row button{font-size:.8rem;min-height:40px;color:#884b35}#peopleDialog{max-width:520px}
.entry-mode{display:grid;grid-template-columns:1fr 1fr;gap:5px;background:#eeeae1;border-radius:16px;padding:5px;margin:4px 0 20px}.entry-mode button{border:0;background:transparent;min-height:44px;padding:10px 8px;color:#68675f}.entry-mode button[aria-pressed=true]{background:#F4BE23;color:#252522;font-weight:600;border-radius:12px}.senior .entry-mode button{min-height:56px}
.calendar-order-actions{display:flex;gap:6px;flex-shrink:0}.calendar-order-actions button{padding:8px 10px;font-size:.85rem;min-height:44px}button:disabled{opacity:.4;cursor:default}@media(max-width:600px){.calendar-order-row{flex-wrap:wrap}.calendar-order-row .calendar-name{width:100%}.calendar-order-actions{margin-left:auto}.senior .calendar-order-actions{flex-wrap:wrap}}
.person-order-actions{display:flex;gap:4px;flex-shrink:0}.person-order-actions button{padding:7px 9px;color:#514b40}.person-order-actions button:last-child{color:#884b35}@media(max-width:440px){.person-setting-row{flex-wrap:wrap;padding:8px 0}.person-setting-row .person-default{flex-basis:100%;margin:0}.person-order-actions{margin-left:auto;margin-bottom:6px}}.senior .person-setting-row{flex-wrap:wrap}.senior .person-order-actions{flex-wrap:wrap}
.person-edit{width:100%;padding:8px 0}.person-edit>div{display:flex;gap:8px}.person-order-actions{flex-wrap:wrap;justify-content:flex-end}.person-setting-row:has(.person-edit){display:block}
.event-with-actions{background:#fff;border-radius:22px;margin:12px 0;overflow:hidden}.event-with-actions .event{margin:0}
.direct-actions{display:flex;flex-wrap:wrap;gap:8px;border-top:1px solid var(--line);padding-top:18px;margin-top:20px}.direct-actions button{flex:1;font-size:.85rem;min-width:100px}
.todo-panel{padding:16px 20px}.todo-row{display:flex;align-items:center;gap:14px;border-bottom:1px solid var(--line);padding:8px 0}.todo-row>input{width:25px;height:25px;min-width:25px;margin:0;accent-color:#967200}.todo-title{border:0;background:transparent;text-align:left;padding:12px 0;flex:1;min-width:0;overflow-wrap:anywhere;font-weight:500}.todo-title small{display:block;font-size:.75rem;color:var(--muted);font-weight:400;margin-top:5px}.todo-done .todo-title{color:var(--muted);text-decoration:line-through}.todo-add{display:flex;gap:9px;margin-top:15px;align-items:center}.todo-add input{margin:0;flex:1;min-width:0}.todo-add button{background:#F4BE23;border:0;flex-shrink:0}.todo-family-label{display:flex;align-items:center;gap:10px;font-size:.8rem}.todo-family-label select{flex:1;margin:0;font-size:.85rem}.todo-empty{color:var(--muted);font-size:.9rem}.todo-completed{margin-bottom:0}.todo-completed summary{color:var(--muted);font-size:.9rem}.senior .todo-row>input{width:30px;height:30px;min-width:30px}.senior .todo-add{flex-wrap:wrap}.senior .todo-add input{flex-basis:100%}
.water-amounts{display:flex;flex-wrap:wrap;gap:8px}.water-amounts button{background:#f8df83;border:0;font-weight:600;flex:1;min-width:70px;padding:13px 10px}.water-total{font-size:1.15rem;font-weight:600;margin:18px 0 8px}.water-clear{border:0;background:#eeeae1;font-size:.85rem;min-height:44px}.water-quick{margin:20px 0}
.simple-time{margin-top:7px}.time-period{display:flex;gap:5px;background:#ede9df;padding:4px;border-radius:12px}.time-period button{flex:1;background:transparent;border:0;padding:9px 6px;min-height:44px}.time-period button[aria-pressed=true]{background:#F4BE23;color:#252522;font-weight:600}.time-numbers{display:flex;gap:10px;align-items:center}.time-numbers>select{flex:1;min-width:75px}.time-numbers>label{flex:1;min-width:65px;margin:9px 0 0;font-size:.8rem}.time-numbers input{margin-top:3px}.minute-shortcuts{display:flex;gap:5px;flex-wrap:wrap;margin-top:10px}.minute-shortcuts button{flex:1;min-width:45px;min-height:40px;padding:7px 4px;font-size:.75rem;background:#f0ece3;border:0}.senior .minute-shortcuts button{min-height:50px;font-size:.85rem}
/* Keep date and time as full-width sections, with aligned time controls. */
.two.date-time-fields{grid-template-columns:1fr;gap:4px}.date-time-fields>label{margin:10px 0}.simple-time{background:#f7f4ed;border-radius:16px;padding:14px}.time-period{max-width:none}.time-numbers{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:end;margin-top:14px}.time-hour>span,.time-numbers>label{display:block;font-size:.85rem;color:#68675f;margin:0}.time-hour select,.time-numbers input{width:100%;margin-top:7px;min-height:50px;background:white}.minute-shortcuts{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:14px}.minute-shortcuts button{font-size:.85rem;min-height:44px;background:#eae4d7;border-radius:11px}.senior .minute-shortcuts{grid-template-columns:repeat(2,1fr)}
.event-save-bar{position:sticky;top:-24px;z-index:3;background:#fffefb;padding:8px 0 12px;margin-bottom:14px;border-bottom:1px solid var(--line)}.event-save-bar .primary{margin:0;min-height:48px}.calendar-view{display:flex;gap:6px;background:#eae5da;border-radius:15px;padding:5px;width:fit-content;margin-top:20px}.calendar-view button{border:0;background:transparent;min-width:100px;min-height:44px}.calendar-view button[aria-pressed=true]{background:#F4BE23;font-weight:600}.month-panel{background:white;border-radius:22px;padding:14px;margin:18px 0}.month-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:15px}.month-toolbar button{border:0;background:#f1ede4;min-width:44px;padding:8px}.month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.month-weekday{text-align:center;color:#68675f;font-size:.8rem;padding:7px 0}.month-day{padding:8px 2px;min-width:0;min-height:66px;border:0;background:#f7f5ef;border-radius:12px;display:flex;align-items:center;flex-direction:column;gap:4px}.month-day small{font-size:.65rem;color:#68675f}.month-day.selected{background:#F4BE23}.month-day.is-today{outline:2px solid #9a7618;outline-offset:-2px}.month-day.selected small{color:#403721}.senior .month-grid{gap:4px}.senior .month-day{font-size:.9rem;padding:8px 1px;min-height:70px}.senior .month-day small{font-size:.6rem}.senior .month-toolbar h2{font-size:1rem}@media(max-width:440px){.month-panel{padding:10px}.month-grid{gap:4px}.month-day{min-height:59px}.event-save-bar{top:-24px}}
.month-event-count{display:flex;align-items:center;justify-content:center;gap:4px;font-weight:600;color:#403b30!important}.month-event-dot{display:inline-block;width:8px;height:8px;min-width:8px;background:#8b6900;border-radius:50%}.month-day.selected .month-event-dot{background:#302c20}.senior .month-event-dot{width:9px;height:9px;min-width:9px}

.event-save-bar:has(#directComplete){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
#directComplete{min-height:48px;padding-inline:6px;font-weight:600}


button.event.event-cancelled{background:#e8e7e3;color:#54544f}
.event-cancelled .tag{background:#d8d7d2;color:#393935}
.cancellation-reason{white-space:pre-wrap;overflow-wrap:anywhere}

.event-card-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;padding:0 16px 14px}
.event-card-actions button{min-height:44px;margin:0;padding:6px 12px;border:1px solid transparent;border-radius:12px;font-size:.9rem;font-weight:600}
.event-card-actions :is(.copy-event,.cancel-event){position:relative;min-width:76px;background:#fff;color:#252522}
.event-card-actions :is(.copy-event,.cancel-event)::after{content:"";position:absolute;inset:0;pointer-events:none;border:1.5px solid #817768;border-radius:14px 17px 12px 16px / 15px 12px 17px 13px;transform:rotate(-1.5deg)}
.event-card-actions .cancel-event::after{transform:rotate(1deg)}
.event-card-actions .pin-quick{display:grid;place-items:center;min-width:44px;background:#fff;color:#49443c;line-height:1}
.pin-quick svg{width:1.25rem;height:1.25rem;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.pin-quick[aria-pressed=true] svg{fill:#f4be23}
.quick[data-record="water"]{background:#f6dfa0}
.quick[data-record="toilet"]{background:#e1d9fa}
.quick[data-record="weight"]{background:#e2e3d5}
.quick[data-record="vitals"]{background:#eed5ce}
.quick[data-record="sleep"]{background:#ddd4c6}
.quick[data-record="period"]{background:#ead8e3}
.quick[data-record="exercise"]{background:#dce5b9}
.care-options .setting-checkbox{display:inline-flex;margin:4px 12px 4px 0}
.senior .event-card-actions button{min-height:52px}

.family-members details{margin:12px 0}.family-members summary{cursor:pointer;padding:10px 0;font-weight:600}.member-identity{margin:0 0 12px;color:var(--muted)}.member-link-preview[hidden],nav [data-page="family"][hidden]{display:none}

.calendar-header{flex-wrap:wrap;gap:8px}
.calendar-header .brand{gap:8px}
.brand-logo{flex:none;width:46px;height:46px}
.calendar-header .brand-tagline{display:block;font-size:clamp(12px,3.6vw,.8rem);white-space:nowrap}
.calendar-header .mode{margin-inline-start:auto;flex:none}
@media(max-width:600px){.brand-logo{width:36px;height:36px}}

/* 筆觸呼應頁首的手繪圈。 */
.calendar-header {
  border-bottom-style: dashed;
}

main .intro h1::after {
  content: "";
  display: block;
  width: min(2.4em, 100%);
  height: .19em;
  margin-top: .12em;
  border-radius: 55% 35% 45% 30%;
  background: #eab942;
  transform: rotate(-2deg);
}

.panel,
.month-panel,
.quick {
  border-radius: 22px 25px 20px 24px;
}

.chip,
.calendar-header .mode,
.primary,
.event-card-actions button,
nav button.active span {
  border-radius: 14px 17px 13px 16px;
}

.chip.active,
.calendar-view button[aria-pressed="true"] {
  box-shadow: inset 0 -2px #9f721c52;
}

.week-days .active,
.month-day.selected {
  position: relative;
}

.week-days .active::after,
.month-day.selected::after {
  content: "";
  position: absolute;
  inset: 3px;
  border: 1.5px solid #775315;
  border-radius: 47% 43% 44% 40% / 42% 44% 41% 45%;
  transform: rotate(-3deg);
  pointer-events: none;
}

.fab {
  border-radius: 47% 51% 46% 50% / 51% 46% 51% 47%;
  font-size: 0;
}

.fab::before {
  content: "";
  width: 1.6rem;
  height: 1.6rem;
  background: center / contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M5 16Q16 15 27 16M16 5Q17 16 15 27' fill='none' stroke='%2325231e' stroke-width='2.7' stroke-linecap='round'/%3E%3C/svg%3E");
}

.senior .fab {
  font-size: 0;
}

nav .nav-icon {
  display: grid;
  place-items: center;
  min-width: 40px;
  min-height: 34px;
}

.nav-icon svg {
  width: 1.25em;
  height: 1.25em;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.settings-card > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  cursor: pointer;
  list-style: none;
  min-height: 48px;
}

.settings-card > summary::-webkit-details-marker { display: none; }

.settings-card > summary::after {
  content: "";
  flex: none;
  width: .55em;
  height: .55em;
  border: solid currentColor;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
  margin-inline-end: 4px;
}

.settings-card[open] > summary::after { transform: rotate(225deg); }
.settings-card > summary strong,
.settings-card > summary small { display: block; }
.settings-card > summary small { color: var(--muted); margin-top: 4px; }
.settings-card-content { margin-top: 14px; }
.settings-card-content .event-save-bar { top: 0; }
.member-setting-row { flex-wrap: wrap; }
.member-setting-row p { margin: 3px 0; }

.setting-checkbox {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 44px;
  margin: 4px 0;
  cursor: pointer;
}

.setting-checkbox input {
  flex: none;
  width: 24px;
  height: 24px;
  margin: 0;
  accent-color: #8a6900;
}

.settings-card fieldset,
#recordForm fieldset,
.care-choice {
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 8px 12px;
  margin: 12px 0;
}

.care-values {
  display: grid;
  grid-template-columns: max-content minmax(0, 1fr);
  gap: 4px 12px;
}

.care-values dt,
.care-values dd { overflow-wrap: anywhere; }
.care-values dd { margin: 0; }
.report-table { width: 100%; border-collapse: collapse; text-align: left; }
.report-table th, .report-table td { padding: .6rem .35rem; border-bottom: 1px solid var(--line, #ddd); vertical-align: top; overflow-wrap: anywhere; }

/* Keep dialog actions reachable while its contents scroll. */
dialog.dialog-pinned-actions { padding-top: 0; }
.dialog-title.dialog-pinned-title {
  position: sticky;
  top: 0;
  z-index: 5;
  padding-block: 12px;
  background: #fffefb;
}
.dialog-pinned-title h2 { min-width: 0; overflow-wrap: anywhere; }
.dialog-corner-actions { display: flex; align-items: center; gap: 8px; flex: none; }
.dialog-corner-actions button {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border-radius: 50%;
}
.dialog-corner-actions .dialog-save-icon {
  background: #ebbc0b;
  border-color: #ebbc0b;
  font-weight: 700;
}
.dialog-original-save,
.event-save-bar:has(> .dialog-original-save:only-child) { display: none; }
.dialog-pinned-actions .event-save-bar { position: static; }

.account-providers { display: grid; gap: 10px; }
.account-providers button {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 100%;
  min-height: 48px;
}
.account-provider-icon {
  display: grid;
  place-items: center;
  width: 1.5em;
  height: 1.5em;
  border-radius: 50%;
  background: #edf3ff;
  color: #174ea6;
  font: bold 1em / 1 system-ui, sans-serif;
}
[data-provider="facebook"] .account-provider-icon { background: #1877f2; color: white; }
.account-divider {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 8px 0 0;
  color: #625e55;
  font-size: .9rem;
}
.account-divider::before, .account-divider::after {
  content: "";
  flex: 1;
  border-top: 1px solid var(--line);
}
.account-form [role="status"]:empty { margin: 0; }
.account-form [data-account-login] { display: block; margin: 12px auto 0; }
