:root{color:#172426;background:#eef5f3;font-family:Inter,Noto Sans TC,PingFang TC,Microsoft JhengHei,system-ui,sans-serif;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px;background:#eef5f3}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button:disabled{cursor:not-allowed;opacity:.55}.app{width:min(1120px,100%);margin:0 auto;padding:18px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0 18px}h1,h2,h3,p{margin:0}h1{color:#102a2d;font-size:clamp(1.65rem,4vw,2.15rem);letter-spacing:0}.eyebrow{color:#587174;font-size:.88rem;font-weight:700}.tabs{position:sticky;top:0;z-index:2;display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:8px 0 16px;background:#eef5f3}.tabs button,.segmented button,.surnameRail button,.iconButton,.exportButtons a,.exportButtons button{border:1px solid #c9d8d5;background:#fff;color:#172426;border-radius:8px;cursor:pointer}.tabs button{display:flex;align-items:center;justify-content:center;min-height:52px;gap:6px;color:#36575b;font-size:.98rem;font-weight:800}.tabs button.active,.segmented button.selected,.surnameRail button.active{background:#1f6f78;border-color:#1f6f78;color:#fff}.iconButton{display:grid;place-items:center;width:44px;height:44px}.workspace,.authPanel{background:#fff;border:1px solid #d8e6e2;border-radius:8px;padding:18px;box-shadow:0 8px 22px #19525812}.authPanel{max-width:440px;margin:10vh auto 0}.form,.addForm{display:grid;gap:12px;margin-top:20px}label{display:grid;gap:6px;color:#385557;font-size:1rem;font-weight:700}input,select,textarea{width:100%;min-height:52px;border:1px solid #c9d8d5;border-radius:8px;padding:12px 14px;background:#fff;color:#172426;font-size:1.05rem}textarea{min-height:92px;resize:vertical}input:disabled,select:disabled,textarea:disabled{background:#f2f6f5;color:#486265;opacity:1}.primary,.addForm button,.secondary{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:52px;border:0;border-radius:8px;background:#d9472b;color:#fff;font-weight:800;cursor:pointer}.secondary{border:1px solid #c9d8d5;background:#fff;color:#1f6f78}.error{color:#b3261e;font-weight:700}.success{margin:10px 0;color:#236b35;font-weight:700}.loadStatusPanel{display:flex;align-items:center;gap:8px;flex-wrap:wrap;border:1px solid #d8e6e2;border-radius:8px;background:#f8fbfa;padding:10px;color:#385557;font-weight:900}.loadStatusPanel span{border-radius:8px;background:#fff;padding:8px 10px}.loadStatusPanel button,.loadError button{min-height:40px;border:1px solid #1f6f78;border-radius:8px;background:#1f6f78;color:#fff;cursor:pointer;font-weight:900;padding:0 12px}.controlBand{display:grid;grid-template-columns:minmax(180px,.55fr) minmax(0,1.45fr);gap:14px;align-items:end}.dateField{color:#6a7d7f;font-size:.9rem}.dateField input{min-height:48px;color:#456164;background:#f8fbfa}.segmented{display:grid;grid-template-columns:repeat(auto-fit,minmax(108px,1fr));gap:10px}.segmented button{min-height:56px;font-size:1.08rem;font-weight:800}.moreServicePanel{margin-top:12px;border:1px solid #d8e6e2;border-radius:8px;background:#f8fbfa;padding:12px}.dateQuick{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}.dateQuick button{min-height:40px;border:1px solid #c9d8d5;border-radius:8px;background:#fff;color:#172426;font-weight:800;cursor:pointer}.searchBox{display:grid;grid-template-columns:24px 1fr;align-items:center;gap:8px;margin:16px 0;border:1px solid #c9d8d5;border-radius:8px;padding:2px 14px;background:#fff}.searchBox input{border:0;padding-left:0;min-height:54px;font-size:1.1rem}.memberSearchBox{border-width:2px;padding:4px 14px}.memberSearchBox input{min-height:60px;font-size:1.22rem}.viewToggle{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:0 0 12px}.viewToggle button{min-height:48px;border:1px solid #c9d8d5;border-radius:8px;background:#fff;color:#172426;cursor:pointer;font-weight:900}.viewToggle button.active{background:#1f6f78;border-color:#1f6f78;color:#fff}.checkinWorkspace{--checkin-name-size: 1.18rem;--checkin-meta-size: .9rem;--checkin-tile-min: 90px;--checkin-tile-height: 58px;--checkin-prediction-size: 1.02rem;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;touch-action:manipulation;padding-bottom:84px}.fontScale-small{--checkin-name-size: 1.08rem;--checkin-meta-size: .86rem;--checkin-tile-min: 72px;--checkin-tile-height: 48px;--checkin-prediction-size: .98rem}.fontScale-large{--checkin-name-size: 1.55rem;--checkin-meta-size: 1.08rem;--checkin-tile-min: 118px;--checkin-tile-height: 74px;--checkin-prediction-size: 1.28rem}.fontScale-xlarge{--checkin-name-size: 1.9rem;--checkin-meta-size: 1.18rem;--checkin-tile-min: 156px;--checkin-tile-height: 92px;--checkin-prediction-size: 1.48rem}.checkinWorkspace input,.checkinWorkspace select{user-select:text;-webkit-user-select:text;-webkit-touch-callout:default}.fontControl{display:grid;grid-template-columns:auto repeat(4,minmax(54px,1fr));gap:8px;align-items:center;margin:14px 0 0}.fontControl span{color:#587174;font-weight:900}.fontControl button{min-height:46px;border:1px solid #c9d8d5;border-radius:8px;background:#fff;color:#172426;cursor:pointer;font-weight:900}.fontControl button.active{background:#1f6f78;border-color:#1f6f78;color:#fff}.checkinScopePanel{display:grid;gap:10px;margin:12px 0 0;border:1px solid #d8e6e2;border-radius:8px;background:#f8fbfa;padding:12px}.scopeToggle{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;min-height:50px;border:0;background:transparent;color:#172426;cursor:pointer;padding:0;text-align:left}.scopeToggle span,.scopeToggle b,.scopeToggle em{font-weight:900}.scopeToggle b{color:#1f6f78;text-align:center}.scopeToggle em{color:#587174;font-style:normal;text-align:right}.scopeOptions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.scopeActions{display:grid}.scopeOptions button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;border:1px solid #c9d8d5;border-radius:8px;background:#fff;color:#172426;cursor:pointer;font-weight:900}.showAllButton{min-height:48px;border:1px solid #1f6f78;border-radius:8px;background:#1f6f78;color:#fff;cursor:pointer;font-weight:900}.scopeOptions button.excluded{border-color:#1f6f78;background:#e8f5f6;color:#102a2d}.scopeSummary{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;color:#587174;font-weight:900}.scopeSummary button{min-height:40px;border:1px solid #c9d8d5;border-radius:8px;background:#fff;color:#1f6f78;cursor:pointer;font-weight:900;padding:0 12px}.scopeReason{margin:0;border-radius:8px;background:#fff7df;color:#7a5600;padding:9px 11px;font-size:.92rem;font-weight:900}.birthdayBox{display:grid;gap:10px;margin:14px 0;border:1px solid #d8e6e2;border-radius:8px;background:#fffdf7;padding:13px}.compactBirthday{margin-bottom:0}.birthdayHeader{display:flex;align-items:center;justify-content:space-between;gap:10px}.birthdayHeader strong{color:#9b5200;font-size:1rem}.birthdayList{display:flex;gap:10px;overflow-x:auto;padding-bottom:2px}.birthdayList span{flex:0 0 auto;display:grid;gap:3px;min-width:112px;border:1px solid #ead8a9;border-radius:8px;background:#fff;padding:10px 12px}.birthdayList b{color:#172426;font-size:1.05rem}.birthdayList em,.emptyBirthday{color:#8b6417;font-style:normal;font-weight:800;font-size:.92rem}.surnameRail{display:flex;gap:10px;overflow-x:auto;padding-bottom:10px}.stickySurnameBar{position:sticky;top:76px;z-index:2;margin:12px -4px 10px;padding:8px 4px 0;background:#fffffffa;border-bottom:1px solid #edf3f1;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.stickyFindBar{position:sticky;top:142px;z-index:1;margin:0 -4px 10px;padding:4px 4px 0;background:#fffffff5;border-bottom:1px solid #edf3f1;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.surnameRail button{flex:0 0 auto;min-width:58px;min-height:48px;font-size:1.05rem;font-weight:800}.statsLine{display:flex;gap:10px;flex-wrap:wrap;margin:6px 0 16px}.statsLine span,.metric{border:1px solid #d8e6e2;border-radius:8px;background:#f8fbfa;padding:11px 13px;color:#385557;font-weight:800;font-size:1rem}.floatingServiceCount{position:fixed;right:16px;bottom:16px;z-index:3;min-width:128px;border:1px solid #bcd5d0;border-radius:8px;background:#102a2d;color:#fff;box-shadow:0 8px 22px #102a2d2e;padding:12px 16px;text-align:center;font-size:1.1rem;font-weight:900}.checkinOverviewGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--checkin-tile-min),1fr));gap:8px}.checkinEmptyState{grid-column:1 / -1;display:grid;justify-items:start;gap:8px;border:1px dashed #c9d8d5;border-radius:8px;background:#f8fbfa;color:#385557;padding:18px;user-select:none;-webkit-user-select:none}.checkinEmptyState strong{color:#172426;font-size:1.15rem}.checkinEmptyState span{font-weight:800}.checkinEmptyState button{min-height:44px;border:1px solid #1f6f78;border-radius:8px;background:#1f6f78;color:#fff;cursor:pointer;font-weight:900;padding:0 14px}.checkinOverviewButton{display:grid;place-items:center;min-height:var(--checkin-tile-height);border:1px solid #d9e6e3;border-radius:8px;background:#fff;color:#172426;padding:7px 5px;text-align:center;cursor:pointer;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;touch-action:manipulation}.checkinOverviewButton strong{display:block;font-size:var(--checkin-name-size);line-height:1.15}.checkinOverviewButton em{display:none}.checkinOverviewButton .statusPill{display:inline-block;margin:4px 0 0;font-size:var(--checkin-meta-size);font-style:normal;font-weight:900}.checkinOverviewButton.checked{border-color:#2d8a57;background:#e8f7ee}.checkinOverviewButton.otherService{border-color:#dba63a;background:#fff7df}.checkinOverviewButton.holding{border-color:#1f6f78;background:#dff3f6}.memberList{display:grid;gap:10px}.memberOverviewGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:7px}.overviewMemberButton{display:grid;place-items:center;min-height:44px;border:1px solid #d9e6e3;border-radius:8px;background:#fff;color:#172426;padding:6px 5px;cursor:pointer;text-align:center;touch-action:manipulation}.overviewMemberButton strong{display:block;font-size:1rem;line-height:1.15}.overviewMemberButton em,.overviewMemberButton .statusPill{display:none}.predictionBox{border:1px solid #d8e6e2;border-radius:8px;background:#f4faf8;padding:14px;margin:0 0 14px}.collapsedPrediction{padding-bottom:10px}.predictionToggle{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:44px;border:0;background:transparent;color:#172426;cursor:pointer;padding:0;font-weight:900}.predictionToggle b{color:#1f6f78}.predictionList{display:flex;gap:10px;overflow-x:auto;padding-top:10px}.predictionList button{flex:0 0 auto;min-height:48px;border:1px solid #c9d8d5;border-radius:8px;background:#fff;color:#172426;font-size:var(--checkin-prediction-size);font-weight:800;cursor:pointer;padding:0 14px;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;touch-action:manipulation}.memberRow{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:var(--checkin-row-height, 72px);width:100%;border:1px solid #d9e6e3;border-radius:8px;background:#fff;color:#172426;padding:13px 14px;text-align:left;cursor:pointer;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;touch-action:manipulation}.memberRow strong{display:block;font-size:var(--checkin-name-size, 1.18rem);line-height:1.35}.memberRow em{display:inline-block;margin-top:3px;color:#9b5200;font-size:var(--checkin-meta-size, .9rem);font-style:normal;font-weight:800}.memberRow b{flex:0 0 auto;min-width:82px;text-align:center;color:#1f6f78;font-size:var(--checkin-action-size, 1.02rem);line-height:1.25}.memberRow.loadingRow,.overviewMemberButton.loadingRow{border-color:#1f6f78;background:#e8f5f6;cursor:wait;opacity:.82}.memberRow.checked{border-color:#2d8a57;background:#e8f7ee}.memberRow.holding{border-color:#1f6f78;background:#dff3f6}.memberRow.otherService{border-color:#dba63a;background:#fff7df}.statusFilter,.statusButtons{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 12px}.statusFilter button,.statusButtons button,.dangerButton{min-height:44px;border:1px solid #c9d8d5;border-radius:8px;background:#fff;color:#172426;font-weight:800;cursor:pointer;padding:0 12px}.statusFilter button.active,.statusButtons button.active{background:#1f6f78;border-color:#1f6f78;color:#fff}.statusPill{margin-right:6px;color:#6c4b00}.status-left{color:#82620c}.status-deceased{color:#7a3d48}.status-guest_speaker{color:#4d5aa3}.groupFilter{margin:0 0 12px}.membersLayout{display:grid;grid-template-columns:minmax(250px,300px) minmax(0,1fr);gap:16px;align-items:start}.membersDetailOpen .membersLayout{display:none}.memberSideTools{position:sticky;top:84px;display:grid;gap:12px;align-self:start}.sideToolHeader{display:flex;align-items:center;justify-content:space-between;gap:10px}.sideToolHeader strong{color:#102a2d;font-size:1.05rem}.sideToolHeader span{color:#587174;font-size:.9rem;font-weight:800}.sideToolHeader button{min-height:38px;border:1px solid #c9d8d5;border-radius:8px;background:#fff;color:#1f6f78;cursor:pointer;font-weight:900;padding:0 12px}.sideToolButtons{display:grid;gap:8px}.sideToolButtons button{min-height:54px;border:1px solid #c9d8d5;border-radius:8px;background:#fff;color:#172426;cursor:pointer;font-weight:900}.sideToolButtons button.active{border-color:#1f6f78;background:#1f6f78;color:#fff}.sideToolPanel,.sideAddMemberForm{display:grid;gap:12px}.sideToolPanel{border:1px solid #d8e6e2;border-radius:8px;background:#f8fbfa;padding:12px}.memberToolPage{display:grid;gap:16px}.memberToolPageHeader{display:grid;grid-template-columns:auto minmax(0,1fr);gap:14px;align-items:start;border-bottom:1px solid #dce7e4;padding-bottom:14px}.memberToolPageHeader h2{margin:2px 0 0;color:#102a2d;font-size:1.8rem}.memberToolForm{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;border:1px solid #d8e6e2;border-radius:8px;background:#f8fbfa;padding:14px}.memberToolForm label,.sideAddMemberForm label{display:grid;gap:6px;color:#385557;font-weight:900}.memberToolForm input,.memberToolForm select{min-height:50px}.memberToolForm .groupMultiSelect,.memberToolForm button{grid-column:1 / -1}.memberToolForm button{min-height:52px}.groupMultiSelect{display:grid;gap:8px}.groupMultiSelect>span{color:#385557;font-weight:900}.groupMultiOptions{display:grid;grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:8px}.groupMultiOptions button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:48px;border:1px solid #c9d8d5;border-radius:8px;background:#fff;color:#172426;cursor:pointer;font-weight:900;padding:0 10px}.groupMultiOptions button.checked{border-color:#1f6f78;background:#e9f5f3;color:#14545c}.groupMultiOptions button.checked .checkDot{border-color:#1f6f78;background:#1f6f78}.groupManager{display:grid;gap:10px;margin:0;border:1px solid #d8e6e2;border-radius:8px;background:#f8fbfa;padding:12px}.groupManagerHeader{display:flex;align-items:center;justify-content:space-between;gap:10px}.groupManagerHeader h3{font-size:1rem}.groupManagerHeader span,.groupItem em{color:#587174;font-size:.9rem;font-style:normal;font-weight:800}.loadHint{margin:0;color:#587174;font-size:.9rem;font-weight:900}.loadError{display:grid;gap:8px;border:1px solid #f0c1b7;border-radius:8px;background:#fff5f2;color:#9b2d1f;padding:10px;font-weight:900}.groupAddForm{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px}.groupCarePanel{display:grid;gap:12px;border:1px solid #d8e6e2;border-radius:8px;background:#fff;padding:12px}.groupCareHeader{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.groupCareHeader strong{color:#172426;font-size:1.05rem}.careThresholdButtons{display:flex;gap:8px;flex-wrap:wrap}.careThresholdButtons button{min-height:44px;border:1px solid #c9d8d5;border-radius:8px;background:#fff;color:#172426;cursor:pointer;font-weight:900;padding:0 12px}.careThresholdButtons button.active{border-color:#1f6f78;background:#1f6f78;color:#fff}.careGroupGrid{display:flex;gap:10px;overflow-x:auto;padding-bottom:4px}.unassignedBox{display:grid;gap:10px;border:1px solid #dce7e4;border-radius:8px;background:#f8fbfa;padding:12px}.careSummaryCard{flex:0 0 190px;display:grid;gap:6px;min-height:112px;border:1px solid #dce7e4;border-radius:8px;background:#f8fbfa;color:#172426;cursor:pointer;padding:12px;text-align:left}.careSummaryCard.active{border-color:#1f6f78;background:#e9f5f3}.careSummaryCard strong{color:#172426;font-size:1.08rem}.careSummaryCard span,.groupInfoLine span{color:#587174;font-size:.92rem;font-weight:900}.careSummaryCard em{align-self:end;color:#1f6f78;font-size:.9rem;font-style:normal;font-weight:900}.careDetailPanel{display:grid;gap:10px;border:1px solid #dce7e4;border-radius:8px;background:#f8fbfa;padding:12px}.careMemberList{display:grid;gap:7px}.careMemberList button{display:grid;gap:3px;min-height:50px;border:1px solid #d8e6e2;border-radius:8px;background:#fff;color:#172426;cursor:pointer;font-weight:900;text-align:left;padding:8px 10px}.careMemberList em{color:#82620c;font-size:.84rem;font-style:normal}.groupList{display:grid;gap:8px}.groupItem{display:grid;gap:8px;border:1px solid #dce7e4;border-radius:8px;background:#fff;padding:10px}.groupItemHeader{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto auto;gap:8px;align-items:center}.groupItem input,.groupItem select{min-height:46px}.groupMemberList{display:flex;gap:6px;flex-wrap:wrap}.groupMemberList span{border-radius:8px;background:#f0f7f5;color:#385557;padding:6px 9px;font-size:.9rem;font-weight:900}.groupExpandButton{min-height:48px;border:1px solid #1f6f78;border-radius:8px;background:#e9f5f3;color:#14545c;cursor:pointer;font-weight:900;padding:0 12px}.compactDangerButton{justify-self:end;min-height:36px;border:1px solid #e5b7ad;border-radius:8px;background:#fff5f2;color:#9b2d1f;cursor:pointer;font-size:.86rem;font-weight:900;padding:0 9px}.groupInfoLine{display:flex;gap:8px;flex-wrap:wrap}.careBadge{border-radius:8px;background:#fff3d8;color:#82620c!important;padding:4px 8px}.groupExpandedPanel{display:grid;gap:12px;border-top:1px solid #edf3f1;padding-top:10px}.groupInfoForm{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;border:1px solid #dce7e4;border-radius:8px;background:#f8fbfa;padding:12px}.groupInfoForm label{display:grid;gap:6px;color:#385557;font-weight:900}.groupInfoForm input,.groupInfoForm select,.groupInfoForm textarea{min-height:48px}.groupInfoForm textarea{min-height:92px;resize:vertical}.groupInfoForm label:nth-of-type(5),.groupInfoForm button{grid-column:1 / -1}.groupInfoReadOnly{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;border:1px solid #dce7e4;border-radius:8px;background:#f8fbfa;padding:12px}.groupInfoReadOnly span{color:#385557;font-weight:900}.fullGroupMemberList{display:grid;gap:10px;border:1px solid #cfe1dd;border-radius:8px;background:#fff;padding:12px}.fullGroupMemberHeader{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.fullGroupMemberHeader strong{color:#172426;font-size:1.08rem}.fullGroupMemberHeader span{color:#587174;font-weight:900}.groupMemberForm{display:grid;grid-template-columns:minmax(0,1fr) minmax(140px,.8fr) auto;gap:8px}.groupJoinPage{display:grid;gap:14px}.groupJoinHeader{display:grid;grid-template-columns:auto minmax(0,1fr);gap:14px;align-items:start}.groupJoinHeader h3{margin:2px 0 4px;color:#172426;font-size:1.5rem}.groupJoinHeader p:last-child{margin:0;color:#587174;font-weight:800}.groupJoinSummary{display:grid;gap:8px;border:1px solid #dce7e4;border-radius:8px;background:#f8fbfa;padding:12px}.groupJoinSummary>strong{color:#172426}.groupJoinSearch{grid-template-columns:24px 1fr auto;margin:0}.groupJoinSearch button,.wideButton{min-height:44px;border:1px solid #c9d8d5;border-radius:8px;background:#fff;color:#172426;font-weight:900;cursor:pointer}.wideButton{width:100%;min-height:48px}.groupJoinSurnameBar{margin:0;padding-bottom:2px}.groupJoinGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(86px,1fr));gap:8px}.groupJoinMemberButton{display:grid;place-items:center;min-height:56px;border:1px solid #d9e6e3;border-radius:8px;background:#fff;color:#172426;padding:8px 6px;cursor:pointer;text-align:center;touch-action:manipulation;user-select:none;-webkit-user-select:none}.groupJoinMemberButton strong{font-size:1.06rem;line-height:1.18}.groupJoinMemberButton:active,.groupJoinMemberButton.loadingRow{border-color:#1f6f78;background:#dff3f6}.groupJoinMemberButton:disabled{cursor:wait}.detailHeader{display:flex;justify-content:space-between;gap:12px;align-items:start}.contactLine{margin-top:4px;color:#587174;font-size:.95rem;font-weight:700;line-height:1.45}.memberDetailContent{display:grid;gap:16px}.mobileBackButton{display:inline-flex;align-items:center;justify-content:center;min-height:52px;border:1px solid #c9d8d5;border-radius:8px;background:#fff;color:#1f6f78;font-weight:900;cursor:pointer}.memberDetailPage{width:100%;margin:0 auto}.detailSection{display:grid;gap:10px}.detailSection h3{color:#102a2d;font-size:1.05rem}.detailInfoGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.detailInfoGrid div{display:grid;gap:5px;min-height:74px;border:1px solid #dce7e4;border-radius:8px;background:#f8fbfa;padding:12px}.detailInfoGrid span{color:#587174;font-size:.88rem;font-weight:900}.detailInfoGrid strong{color:#172426;font-size:1.02rem;line-height:1.35;word-break:break-word}.profileForm{display:grid;grid-template-columns:minmax(120px,.6fr) minmax(150px,.75fr) minmax(180px,1fr);gap:10px;align-items:end;border:1px solid #dce7e4;border-radius:8px;background:#f8fbfa;padding:12px}.nameManageForm{display:grid;grid-template-columns:minmax(220px,1fr) auto auto;gap:10px;align-items:end;border:1px solid #dce7e4;border-radius:8px;background:#f8fbfa;padding:12px}.nameManageForm input,.profileForm input,.profileForm select{min-height:48px}.profileForm label:nth-of-type(4),.profileForm label:nth-of-type(5),.profileForm button{grid-column:1 / -1}.groupDetailForm{display:grid;gap:10px;border:1px solid #dce7e4;border-radius:8px;background:#f8fbfa;padding:12px}.groupDetailForm button{min-height:48px}.detailStatusGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.detailStatusGrid button{min-height:54px;border:1px solid #c9d8d5;border-radius:8px;background:#fff;color:#172426;font-weight:900;cursor:pointer}.detailStatusGrid button.active{border-color:#1f6f78;background:#1f6f78;color:#fff}.detailCardRow{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:58px;border:1px solid #dce7e4;border-radius:8px;background:#f8fbfa;padding:12px}.detailCardRow strong{display:block;color:#172426;font-size:1.08rem}.detailCardRow em{display:inline-block;margin-top:3px;color:#82620c;font-style:normal;font-weight:800}.detailCardRow b{flex:0 0 auto;color:#1f6f78}.inlineRelationshipForm{display:grid;grid-template-columns:minmax(180px,1fr) minmax(140px,.6fr) auto;gap:10px;align-items:end;border:1px solid #dce7e4;border-radius:8px;background:#f8fbfa;padding:12px}.inlineRelationshipForm input,.inlineRelationshipForm select{min-height:46px}.emptyState{display:grid;gap:8px;justify-items:start;border:1px dashed #c9d8d5;border-radius:8px;background:#f8fbfa;padding:16px;color:#587174;font-weight:800}.emptyState button{min-height:40px;border:1px solid #1f6f78;border-radius:8px;background:#1f6f78;color:#fff;cursor:pointer;font-weight:900;padding:0 12px}.twoCol{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);gap:16px}.settingsGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.settingsGrid section{display:grid;gap:12px;align-content:start}.fullRow{grid-column:1 / -1}.compactForm{margin-top:0}.chipList{display:flex;flex-wrap:wrap;gap:8px}.chipList span{border:1px solid #dce7e4;border-radius:8px;background:#f8fbfa;padding:8px 10px;font-weight:800}.familyEditor{display:grid;grid-template-columns:1fr 1fr minmax(180px,1fr) auto;gap:10px}.relationshipEditor{display:grid;grid-template-columns:repeat(2,minmax(180px,1fr)) minmax(150px,.8fr) auto;gap:12px;align-items:end}.familyList{display:grid;gap:10px;border:1px solid #dce7e4;border-radius:8px;padding:12px;background:#f8fbfa}.familyRow{display:grid;grid-template-columns:minmax(160px,1fr) minmax(120px,.65fr) minmax(140px,.75fr) auto;gap:10px;align-items:center;padding:10px 0;border-top:1px solid #e6efec}.familyRow:first-of-type{border-top:0}.familyRow strong{display:block}.familyRow input{min-height:44px}.dangerButton{background:#fff4f1;border-color:#efc2b7;color:#9d321c}.treeActions{margin:10px 0}.treePreview{overflow-x:auto;border:1px solid #dce7e4;border-radius:8px;background:#f8fbfa;padding:10px;margin:8px 0 16px}.treePreview svg{display:block;width:min(900px,100%);min-width:620px;height:auto}.treeNode{cursor:grab;touch-action:none}.treeNode:active{cursor:grabbing}.treeTitle{font:700 28px system-ui,Noto Sans TC,Microsoft JhengHei,sans-serif;fill:#102a2d;text-anchor:middle}.treeSection{font:700 18px system-ui,Noto Sans TC,Microsoft JhengHei,sans-serif;fill:#385557}.treeName{font:800 21px system-ui,Noto Sans TC,Microsoft JhengHei,sans-serif;fill:#172426;text-anchor:middle}.treeDetail,.treeEdge{font:700 15px system-ui,Noto Sans TC,Microsoft JhengHei,sans-serif;fill:#587174;text-anchor:middle}.treeMeta{font:700 13px system-ui,Noto Sans TC,Microsoft JhengHei,sans-serif;fill:#7a8e90;text-anchor:middle}.treeLine{stroke:#9dbcb7;stroke-width:2}.treeEdgeBg{fill:#fff;stroke:#d7e5e2;stroke-width:1}.addForm{grid-template-columns:minmax(0,1fr) minmax(100px,.42fr) minmax(150px,.65fr) minmax(150px,.65fr) auto;margin-top:0}.detailPane{border-left:1px solid #dce7e4;padding-left:16px}.historyRow{display:flex;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid #edf2f0}.reportHeader{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:18px 0}.reportControlPanel{display:grid;grid-template-columns:minmax(280px,1fr) minmax(190px,.55fr);gap:14px;align-items:stretch;border:1px solid #d8e6e2;border-radius:8px;background:#f8fbfa;padding:14px}.reportControlGroup,.reportDateField{display:grid;gap:10px}.reportControlGroup>span,.reportDateField>span,.reportServiceTitle span{color:#587174;font-size:.92rem;font-weight:900}.reportPeriodTabs{grid-template-columns:repeat(4,minmax(68px,1fr))}.reportDateField input,.reportDateField select{background:#fff}.reportServicePicker{grid-column:1 / -1}.reportServiceTitle{display:flex;align-items:center;justify-content:space-between;gap:10px}.reportServiceTitle button{min-height:38px;border:1px solid #c9d8d5;border-radius:8px;background:#fff;color:#1f6f78;cursor:pointer;font-weight:900;padding:0 12px}.reportServiceOptions{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:10px}.reportServiceOptions button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:52px;border:1px solid #c9d8d5;border-radius:8px;background:#fff;color:#172426;cursor:pointer;font-weight:900}.reportServiceOptions button.checked{border-color:#1f6f78;background:#e9f5f3;color:#14545c}.checkDot{display:inline-grid;place-items:center;width:22px;height:22px;border:2px solid #9db9b5;border-radius:50%;color:#fff;font-size:.9rem;line-height:1}.reportServiceOptions button.checked .checkDot{border-color:#1f6f78;background:#1f6f78}.reportServicePicker p{color:#587174;font-size:.92rem;font-weight:800}.exportButtons{display:flex;flex-wrap:wrap;gap:8px}.exportButtons a,.exportButtons button{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 12px;text-decoration:none}.metricGrid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:16px}.metric{display:grid;gap:6px}.metric strong{color:#172426;font-size:1.6rem}.tableWrap{overflow-x:auto;margin-top:14px}.tableHeaderBar{display:flex;align-items:end;justify-content:space-between;gap:12px;margin:0 0 8px}.tableWrap h3{margin:0;font-size:1rem}.tableSortControl{display:grid;grid-template-columns:auto minmax(180px,240px);align-items:center;gap:8px;color:#587174;font-size:.92rem;font-weight:900}.tableSortControl select{min-height:48px;background:#fff;font-size:1rem}table{width:100%;border-collapse:collapse;min-width:680px}th,td{padding:10px;border-bottom:1px solid #edf2f0;text-align:left}th{color:#4f7274;font-size:.86rem}.loading{padding:30vh 0;text-align:center;font-weight:800}@media(max-width:720px){.app{padding:10px}.workspace,.authPanel{padding:14px}.controlBand,.reportControlPanel,.membersLayout,.twoCol,.addForm,.reportHeader,.settingsGrid,.familyEditor,.relationshipEditor,.inlineRelationshipForm,.profileForm,.nameManageForm,.groupAddForm,.groupItem,.groupItemHeader,.groupMemberForm,.groupJoinHeader,.groupInfoForm,.groupInfoReadOnly,.memberToolPageHeader,.memberToolForm,.familyRow{grid-template-columns:1fr;display:grid}.detailStatusGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.detailInfoGrid{grid-template-columns:1fr}.stickySurnameBar{top:82px;margin-left:-8px;margin-right:-8px;padding-left:8px;padding-right:8px}.stickyFindBar{top:148px;margin-left:-8px;margin-right:-8px;padding-left:8px;padding-right:8px}.detailPane{border-left:0;border-top:1px solid #dce7e4;padding-left:0;padding-top:12px}.membersDetailOpen{display:block}.membersDetailOpen .detailPane{border-top:0;padding-top:0}.membersWorkspace:not(.membersDetailOpen) .detailPane{display:none}.mobileBackButton{position:sticky;top:82px;z-index:1;display:block}.detailHeader{align-items:center;border-bottom:1px solid #edf2f0;padding-bottom:12px}.detailHeader h2{font-size:1.8rem}.detailStatusGrid{grid-template-columns:1fr}.detailStatusGrid button,.treeActions button{min-height:58px;font-size:1.08rem}.detailCardRow{min-height:66px;padding:14px}.metricGrid{grid-template-columns:repeat(2,1fr)}.reportPeriodTabs,.reportServiceOptions{grid-template-columns:repeat(2,minmax(0,1fr))}.reportServiceOptions button,.reportPeriodTabs button{min-height:54px}.memberSideTools{position:static}.sideToolButtons,.groupMultiOptions{grid-template-columns:repeat(2,minmax(0,1fr))}.tableHeaderBar{align-items:stretch;flex-direction:column}.tableSortControl{grid-template-columns:1fr}.tabs button{min-height:56px;font-size:.95rem;flex-direction:column;gap:3px}.memberRow{min-height:76px}.memberRow strong{font-size:var(--checkin-name-size)}.fontControl{grid-template-columns:1fr repeat(4,minmax(50px,1fr))}.scopeToggle{grid-template-columns:1fr;gap:4px}.scopeToggle b,.scopeToggle em{text-align:left}.scopeOptions{grid-template-columns:1fr}.memberSearchBox{position:sticky;top:82px;z-index:2;background:#fff}.checkinSearchDock{position:fixed;left:10px;bottom:10px;z-index:4;width:min(56vw,230px);margin:0;box-shadow:0 8px 22px #102a2d29}.checkinSearchDock:focus-within{inset:82px 10px auto;width:auto}.checkinSearchDock input{min-height:46px;font-size:1rem}.checkinOverviewGrid{grid-template-columns:repeat(auto-fill,minmax(var(--checkin-tile-min),1fr));gap:6px}.checkinOverviewButton{min-height:var(--checkin-tile-height);padding:5px 3px}.checkinOverviewButton strong{font-size:var(--checkin-name-size)}.memberOverviewGrid{grid-template-columns:repeat(auto-fill,minmax(58px,1fr));gap:6px}.overviewMemberButton{min-height:38px;padding:5px 3px}.overviewMemberButton strong{font-size:.9rem}.floatingServiceCount{right:10px;bottom:10px;min-width:112px;padding:10px 12px;font-size:1rem}}@media print{.tabs,.topbar,.controlBand,.reportControlPanel,.exportButtons{display:none}.app,.workspace{width:100%;padding:0;border:0;box-shadow:none}}
