:root{--bg:#071225;--panel:#0f1b34;--panel2:#13223e;--line:#284269;--text:#eef5ff;--muted:#9db0cf;--mint:#18b8a4;--mint2:#37dcc8;--danger:#ff7474;--warn:#f5c665;--shadow:0 18px 55px rgba(0,0,0,.28)}
*{box-sizing:border-box}html,body{margin:0;background:linear-gradient(180deg,#071225,#0a1730 70%,#071225);color:var(--text);font-family:Arial,"Noto Sans KR",sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer;border:0}.hide{display:none!important}.wrap{max-width:1320px;margin:auto;padding:16px 16px 36px}.card{background:rgba(15,27,52,.97);border:1px solid rgba(76,102,148,.38);border-radius:24px;box-shadow:var(--shadow)}
.loginShell{min-height:100vh;display:grid;place-items:center;padding:24px}.loginGrid{width:min(980px,100%);display:grid;grid-template-columns:1.02fr .98fr;gap:18px}.hero{padding:42px;display:flex;flex-direction:column;justify-content:center;min-height:520px;background:radial-gradient(circle at 18% 12%,rgba(24,184,164,.16),transparent 28%),linear-gradient(145deg,rgba(17,31,59,.98),rgba(10,21,43,.98))}.brand{font-size:42px;font-weight:900;line-height:1.08;margin:16px 0 12px;letter-spacing:-1.2px}.lead{color:#b7c7df;font-size:17px;line-height:1.7;max-width:520px}.pill{display:inline-flex;width:max-content;padding:7px 11px;border-radius:999px;background:rgba(24,184,164,.10);border:1px solid rgba(24,184,164,.24);font-size:12px;font-weight:900;letter-spacing:.4px}.heroSteps{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:28px}.heroStep{padding:14px 13px;border-radius:16px;background:rgba(255,255,255,.025);border:1px solid rgba(255,255,255,.06)}.heroStepNo{font-size:11px;color:var(--mint2);font-weight:900;margin-bottom:6px}.heroStepTitle{font-size:14px;font-weight:900}.heroStepText{font-size:12px;color:var(--muted);margin-top:4px;line-height:1.45}.heroFooter{margin-top:24px;padding-top:18px;border-top:1px solid rgba(255,255,255,.07);font-size:12px;color:#8396b6}.loginCard{padding:38px;display:flex;flex-direction:column;justify-content:center;min-height:520px}
.input,.select,.textarea{width:100%;padding:13px 14px;border-radius:14px;border:1px solid var(--line);background:#09152b;color:var(--text);outline:none}.textarea{min-height:92px;resize:vertical}.input:focus,.select:focus,.textarea:focus{border-color:var(--mint)}.label{display:block;font-size:13px;font-weight:800;color:#d7e3f7;margin:0 0 7px}.field{display:block;margin-bottom:12px}.btn{padding:12px 15px;border-radius:14px;font-weight:900}.primary{background:linear-gradient(135deg,var(--mint),#0d8c80);color:white}.secondary{background:#1a2b4d;color:#e7efff;border:1px solid #314b76}.ghost{background:transparent;color:#c8d7ee;border:1px solid #314b76}.danger{background:#5a2430;color:#ffd7df;border:1px solid #8f3848}.btnRow{display:flex;gap:9px;flex-wrap:wrap}.msg{font-size:14px;color:#9de6db;min-height:20px;margin-top:9px}.small{font-size:12px;color:var(--muted);line-height:1.55}
.header{padding:21px 24px;margin-bottom:16px;background:radial-gradient(circle at 95% 0%,rgba(24,184,164,.13),transparent 24%),rgba(15,27,52,.97)}.headerRow{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;flex-wrap:wrap}.title{font-size:33px;font-weight:900}.sub{color:var(--muted);margin-top:8px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}.stat{padding:16px}.statLabel{font-size:12px;color:var(--muted);font-weight:800}.statValue{font-size:26px;font-weight:900;margin-top:7px}.layout{display:grid;grid-template-columns:285px 1fr;gap:16px}.side{padding:17px}.content{padding:17px;min-width:0}.sideTitle{font-size:19px;font-weight:900;margin-bottom:12px}.sideNote{font-size:13px;line-height:1.6;color:var(--muted)}
.accountProfileEdit{display:grid;gap:9px;margin-top:14px;padding-top:14px;border-top:1px solid rgba(72,99,144,.22)}
.accountProfileEdit .field{gap:5px}
.accountProfileEdit .input,.accountProfileEdit .select{min-height:42px}
.memberList{display:grid;gap:8px;margin-top:12px}.member{padding:12px;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.025);text-align:left;color:var(--text)}.member.active{border-color:var(--mint);background:rgba(24,184,164,.10)}.memberName{font-weight:900}.memberMeta{font-size:12px;color:var(--muted);margin-top:4px}
.memberAdminActions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.memberStatusBadge{display:inline-flex;align-items:center;padding:3px 7px;border-radius:999px;font-size:10px;font-weight:950;margin-left:6px;border:1px solid rgba(72,99,144,.35)}
.memberStatusBadge.active{color:#91eadf;background:rgba(24,184,164,.09);border-color:rgba(24,184,164,.28)}
.memberStatusBadge.suspended{color:#ffd98a;background:rgba(245,198,101,.08);border-color:rgba(245,198,101,.28)}
.memberStatusBadge.withdrawn{color:#ff9d9d;background:rgba(255,99,99,.07);border-color:rgba(255,99,99,.25)}
.member.inactiveMember{opacity:.76}
.member.inactiveMember.active{opacity:1}
@media(max-width:720px){.memberAdminActions{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.memberAdminActions .btn{width:100%}}
.memberNotes{font-size:11px;color:#d8cba7;margin-top:5px;line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.tabs{display:grid;grid-template-columns:repeat(5,1fr);gap:9px;margin:14px 0 16px}.tab{padding:13px 9px;border-radius:16px;background:#172746;color:#dce8fb;font-weight:900}.tab.active{background:rgba(24,184,164,.12);border:1px solid var(--mint);color:white}.section{padding:17px;background:rgba(6,14,29,.42);border:1px solid rgba(71,99,145,.28);border-radius:20px}.modeSwitch{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:15px}.modeBtn{padding:14px;border-radius:16px;background:#172746;color:#dce8fb;font-weight:900;border:1px solid transparent}.modeBtn.active{background:rgba(24,184,164,.12);border-color:var(--mint);color:white}.infoGrid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:14px}.infoGrid .wide{grid-column:span 2}.chips{display:flex;gap:8px;flex-wrap:wrap}.chip{padding:9px 12px;border-radius:999px;background:#152640;color:#cbd9ef;border:1px solid #29456d;font-weight:800;font-size:13px}.chip.active{background:rgba(24,184,164,.14);border-color:var(--mint);color:white}.builderTop{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end;margin:14px 0}.searchRow{display:grid;grid-template-columns:1fr auto;gap:8px}.catalog{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:12px 0 16px}.catalogItem{padding:12px;border-radius:15px;border:1px solid var(--line);background:#0c1930}.catalogName{font-weight:900;font-size:14px}.catalogMeta{font-size:11px;color:var(--muted);margin:4px 0 9px}.exerciseList{display:grid;gap:12px}.exCard{border:1px solid rgba(78,105,151,.42);border-radius:20px;background:#0c1930;padding:15px}.exHead{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.exName{font-size:18px;font-weight:900;line-height:1.35;word-break:keep-all;overflow-wrap:anywhere}.exMuscles{font-size:12px;color:#9fe4da;margin-top:4px}.exConfig{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-top:12px}.sets{margin-top:12px;border-top:1px solid rgba(72,99,144,.25);padding-top:8px}.setRow{display:grid;grid-template-columns:64px 1fr 1fr 105px 42px;gap:7px;align-items:center;margin-top:7px}.setNo{font-weight:900;color:#c8d8ef;font-size:13px}.setVol{text-align:right;font-weight:900;color:#91e6da;font-size:13px}.totalBar{position:sticky;bottom:10px;z-index:12;margin-top:16px;padding:14px 16px;border-radius:18px;background:rgba(9,21,43,.96);border:1px solid rgba(24,184,164,.5);display:flex;justify-content:space-between;align-items:center;gap:12px;box-shadow:0 10px 28px rgba(0,0,0,.35)}.totalVal{font-size:24px;font-weight:900}
.tableWrap{overflow:auto;border:1px solid rgba(72,99,144,.28);border-radius:16px}table{width:100%;min-width:760px;border-collapse:collapse}th,td{padding:11px;border-bottom:1px solid rgba(72,99,144,.2);text-align:center;font-size:13px}th{background:#13223e}.programGrid{display:none}
.builderModeNotice{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px;padding:11px 13px;border:1px solid rgba(72,99,144,.26);border-radius:14px;background:#0b1830}
.builderModeNotice b{font-size:15px}.builderModeNotice span{font-size:11px;color:var(--muted)}
.homeworkAssignHero{padding:15px;border:1px solid rgba(24,184,164,.35);border-radius:16px;background:rgba(24,184,164,.055);margin-bottom:13px}
.homeworkAssignHero h3{margin:0 0 6px;font-size:18px}.homeworkAssignHero .btn{margin-top:11px}

.homeworkHead{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:11px}
.homeworkList{display:grid;gap:10px}
.homeworkCard{border:1px solid rgba(72,99,144,.30);border-radius:15px;background:#0c1930;padding:13px}
.homeworkCard.todayHomework{border-color:rgba(24,184,164,.65);background:rgba(24,184,164,.055)}
.homeworkCard.doneHomework{opacity:.78}
.homeworkTop{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.homeworkDate{font-size:13px;font-weight:950;color:#8de7db}
.homeworkTitle{font-size:16px;font-weight:950;margin-top:3px}
.homeworkMeta{font-size:11px;color:var(--muted);margin-top:4px}
.homeworkExercises{margin-top:9px;padding-top:8px;border-top:1px solid rgba(72,99,144,.20);display:grid;gap:5px}
.homeworkExercise{font-size:12px;line-height:1.5}
.homeworkActions{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}
.homeworkBadge{font-size:10px;font-weight:900;padding:4px 7px;border-radius:999px;background:#172746;color:#cfe1f7}
.programExercises{display:grid;gap:9px;margin-top:14px}.programLine{padding:12px;border-radius:15px;border:1px solid var(--line);background:#0c1930}.programLine b{display:block;margin-bottom:5px}
.programExerciseRow{display:grid;grid-template-columns:minmax(180px,1fr) auto;gap:10px;align-items:center;padding:10px 0;border-top:1px solid rgba(72,99,144,.18)}
.programExerciseRow:first-of-type{border-top:0}.programExerciseName{font-weight:750}.videoActions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.videoBadge{display:inline-flex;align-items:center;gap:5px;font-size:11px;padding:4px 8px;border-radius:999px;background:rgba(48,199,181,.12);border:1px solid rgba(48,199,181,.28);color:#8de7db}
.videoBox{width:min(900px,94vw);max-height:88vh;overflow:auto}.videoStage{background:#050b15;border:1px solid var(--line);border-radius:16px;overflow:hidden;aspect-ratio:16/9;display:flex;align-items:center;justify-content:center;margin:14px 0}
.videoStage video,.videoStage iframe{width:100%;height:100%;border:0;background:#000}.videoHint{padding:10px 12px;border-radius:12px;background:#101d34;color:var(--muted);font-size:12px;line-height:1.5}
.videoAdminGrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.catalogActions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:8px}
.installNote{margin-top:14px;padding:12px 14px;border-radius:15px;background:rgba(24,184,164,.07);border:1px solid rgba(24,184,164,.22);font-size:12px;color:#b9d9d5;line-height:1.55}
.installBtn{display:inline-flex;align-items:center;justify-content:center;gap:7px}
.installBtn:before{content:'⬇';font-size:15px}
.pwaToast{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);z-index:9999;max-width:min(92vw,520px);padding:12px 16px;border-radius:14px;background:#101d34;border:1px solid rgba(55,220,200,.35);box-shadow:0 12px 34px rgba(0,0,0,.38);font-size:13px;color:#eafaf8;text-align:center}
.installSteps{display:grid;gap:10px;margin-top:14px}.installStep{padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:#0b1830}.installStep b{display:block;margin-bottom:4px}.appVersion{font-size:11px;color:#6f86a8;margin-top:7px}
.scheduleCard{margin:14px 0;padding:16px;border:1px solid rgba(24,184,164,.42);border-radius:18px;background:linear-gradient(145deg,rgba(24,184,164,.11),rgba(20,34,63,.72))}
.scheduleTitle{font-size:20px;font-weight:900;margin:3px 0 6px}.scheduleMeta{font-size:12px;color:var(--muted);line-height:1.55}
.scheduleAdmin{margin:14px 0;padding:16px;border:1px solid rgba(93,128,190,.45);border-radius:18px;background:rgba(16,31,59,.82)}
.scheduleAdminHead{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap;margin-bottom:12px}
.scheduleWeek{display:grid;gap:8px;margin-top:12px}.scheduleWeekItem{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:10px 12px;border-radius:13px;background:rgba(255,255,255,.035);border:1px solid rgba(84,111,160,.2)}
.scheduleWeekItem.done{border-color:rgba(24,184,164,.35)}.scheduleWeekDate{font-weight:850}.scheduleWeekState{font-size:11px;color:var(--muted)}
.scheduleAdminOnly{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:800;background:rgba(255,183,77,.12);border:1px solid rgba(255,183,77,.25);color:#ffd08a}
.scheduleSteps{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:14px 0}.scheduleStep{padding:12px;border-radius:14px;border:1px solid rgba(91,119,170,.28);background:#0b1830}.scheduleStepNo{font-size:11px;color:#6fe4d5;font-weight:900}.scheduleStep b{display:block;margin-top:4px;font-size:14px}.scheduleTarget{padding:12px 14px;border-radius:14px;background:rgba(24,184,164,.09);border:1px solid rgba(24,184,164,.28);margin:10px 0 14px}.scheduleTargetName{font-size:18px;font-weight:900}.scheduleOverview{display:grid;gap:8px;margin-top:10px}.scheduleOverviewItem{width:100%;padding:12px 14px;border-radius:14px;background:#0b1830;border:1px solid rgba(86,113,165,.24);color:var(--text);display:grid;grid-template-columns:92px minmax(0,1fr) auto;gap:10px;align-items:center}.scheduleOverviewItem.active{border-color:#25c4b1;background:rgba(24,184,164,.08)}.scheduleOverviewMain{min-width:0;cursor:pointer}.scheduleOverviewDate{font-weight:900;cursor:pointer}.scheduleOverviewTitle{font-weight:800;white-space:normal;word-break:keep-all;overflow-wrap:anywhere}.scheduleOverviewState{font-size:11px;color:var(--muted);margin-top:4px}.scheduleOverviewActions{display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap}.scheduleOverviewActions .btn{padding:8px 10px;border-radius:10px;font-size:12px;white-space:nowrap}.scheduleEditBanner{margin:10px 0 14px;padding:11px 13px;border-radius:13px;background:rgba(245,198,101,.08);border:1px solid rgba(245,198,101,.28);color:#f8dda1;font-size:12px;line-height:1.55}
.trainerNoteField{padding:14px;border-radius:16px;background:rgba(245,198,101,.06);border:1px solid rgba(245,198,101,.30)}
.trainerNoteLabel{font-size:15px!important;font-weight:950!important;color:#f6d693!important}
.trainerNoteInput{min-height:112px!important;font-size:15px;line-height:1.55;border-color:rgba(245,198,101,.38)!important;background:rgba(8,18,34,.82)!important}
.trainerNoteHelp{display:block;margin-top:7px;font-size:11px;color:#d7c497}
.assignedTrainerNote{margin-top:12px;padding:14px 15px;border-radius:15px;background:linear-gradient(145deg,rgba(245,198,101,.13),rgba(24,184,164,.055));border:1px solid rgba(245,198,101,.38)}
.assignedTrainerNoteLabel{font-size:12px;font-weight:950;color:#f6d693;margin-bottom:6px}
.assignedTrainerNoteText{font-size:15px;font-weight:800;line-height:1.6;color:#f4f7fb;white-space:pre-wrap;word-break:keep-all;overflow-wrap:anywhere}
.scheduleConfirm{margin-top:18px;padding:18px;border-radius:18px;border:2px solid rgba(24,184,164,.55);background:linear-gradient(145deg,rgba(24,184,164,.12),rgba(10,24,45,.9))}.scheduleConfirmTitle{font-size:20px;font-weight:950;margin-bottom:7px}.scheduleConfirmList{font-size:13px;line-height:1.65;color:#c9d9ee;margin:10px 0}.scheduleConfirmBtn{width:100%;font-size:17px;padding:15px 18px}.musclePickerTitle{font-size:16px;font-weight:900;margin-bottom:8px}.muscleHelp{font-size:12px;color:var(--muted);margin-bottom:10px}.chips.muscleSingle{gap:8px}.chips.muscleSingle .chip{min-width:72px}.catalogPrompt{padding:22px;border:1px dashed #3a547c;border-radius:16px;text-align:center;color:var(--muted);line-height:1.6}.catalogSectionTitle{display:flex;justify-content:space-between;gap:10px;align-items:center;margin:12px 0 8px}.catalogSectionTitle b{font-size:15px}
.rememberRow{display:flex;align-items:flex-start;gap:10px;margin:2px 0 12px;cursor:pointer;font-size:13px}.rememberRow input{width:18px;height:18px;margin-top:2px;accent-color:#18b8a4}.rememberRow span{display:grid;gap:2px}.rememberRow small{color:var(--muted);line-height:1.4}.sessionPolicy{padding:10px 12px;border-radius:13px;background:rgba(24,184,164,.07);border:1px solid rgba(24,184,164,.18);font-size:11px;line-height:1.55;color:#afc9d6;margin-bottom:12px}.sessionStatus{font-size:11px;color:#6f86a8;margin-top:3px}
.memberVideoRow{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px;padding-top:10px;border-top:1px solid rgba(78,103,147,.18)}
.memberVideoBadge{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:800;background:rgba(111,228,213,.09);border:1px solid rgba(111,228,213,.22);color:#8de7db}
.memberVideoPending{color:#ffd08a;border-color:rgba(255,208,138,.26);background:rgba(255,208,138,.08)}
.compactPickerTop{margin:8px 0 10px}
.muscleAccordion{display:grid;gap:10px;margin-top:12px}
.exerciseSection{border:1px solid rgba(72,99,144,.34);border-radius:17px;background:#0a172d;overflow:hidden}
.exerciseSectionBtn{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 17px;background:transparent;border:0;color:var(--text);font:inherit;cursor:pointer}
.exerciseSectionBtn b{font-size:17px}
.exerciseSectionBtn .exerciseSectionMeta{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:7px}
.exerciseSectionBtn.active{background:rgba(24,184,164,.08);border-bottom:1px solid rgba(24,184,164,.18)}
.exerciseSectionArrow{display:inline-block;transition:transform .18s ease;font-size:18px;color:#8de7db}
.exerciseSectionBtn.active .exerciseSectionArrow{transform:rotate(180deg)}
.exerciseSectionBody{display:none;padding:9px 10px 11px;background:rgba(5,12,25,.22)}
.exerciseSectionBody.open{display:grid;gap:8px}
.exerciseSectionBody .muscleGroup{border-radius:13px;background:#0d1b33}
.exerciseSectionBody .muscleGroupBtn{padding:12px 13px}
.exerciseSectionBody .muscleGroupBtn b{font-size:14px}
.exerciseSectionBody .muscleExerciseList{padding:7px}

.exerciseSearchBox{margin:12px 0;padding:12px;border-radius:15px;background:rgba(24,184,164,.045);border:1px solid rgba(24,184,164,.18)}
.exerciseSearchRow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}
.exerciseSearchInput{min-height:46px;font-size:15px}
.exerciseSearchResults{display:grid;gap:7px;margin-top:9px}
.exerciseSearchResults.hide{display:none}
.exerciseSearchEmpty{padding:12px;text-align:center;border-radius:12px;background:#0d1b33;color:var(--muted);font-size:12px}
.exerciseSearchCount{margin-top:7px;font-size:11px;color:var(--muted)}
.historyTop{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:10px}
.adminMemberTimeline,.adminAssessmentBox{border:1px solid rgba(72,99,144,.28);border-radius:17px;background:#0a172d;padding:14px;margin-bottom:14px}
.timelineHead{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.timelineNav{display:flex;align-items:center;gap:8px}.timelineNav .btn{padding:7px 11px}
.timelineCalendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}
.calDow{text-align:center;font-size:11px;color:var(--muted);padding:4px}
.calDay{min-height:72px;border:1px solid rgba(72,99,144,.20);border-radius:10px;background:#0d1b33;padding:6px;cursor:pointer;text-align:left;color:inherit}
.calDay:hover{border-color:rgba(24,184,164,.55)}.calDay.muted{opacity:.35}.calDay.today{outline:1px solid rgba(24,184,164,.7)}
.calNum{font-weight:900;font-size:12px;margin-bottom:4px}.calDot{font-size:10px;line-height:1.35;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.calDot.schedule{color:#9ac4ff}.calDot.done{color:#8de7db}.calDot.assess{color:#f1cf83}
.timelineDayDetail{margin-top:10px;padding:10px;border-radius:11px;background:#0d1b33;line-height:1.65}
.assessmentGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.assessmentWide{grid-column:1/-1}
@media(max-width:900px){.assessmentGrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.timelineCalendar{gap:3px}.calDay{min-height:62px;padding:4px}.calDot{font-size:9px}.assessmentGrid{grid-template-columns:1fr}.assessmentWide{grid-column:1}}
.adminWorkoutLookup{border:1px solid rgba(77,160,255,.28);border-radius:17px;background:rgba(38,104,190,.055);padding:14px;margin-bottom:14px}
.adminLookupHead{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;margin-bottom:12px}
.adminLookupHead b{font-size:16px}
.adminLookupControls{display:grid;grid-template-columns:minmax(160px,230px) minmax(160px,230px) 1fr;gap:10px;align-items:end}
.adminLookupBtns{margin:0;align-items:end}
.adminLookupResult{margin-top:12px;display:grid;gap:12px}
.lookupBlock{border:1px solid rgba(72,99,144,.28);border-radius:14px;background:#0b1830;padding:12px}
.lookupBlockTitle{font-size:15px;font-weight:950;margin-bottom:8px;display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
.lookupEmpty{font-size:12px;color:var(--muted);line-height:1.5;padding:6px 0}
.lookupScheduleExercise{padding:9px 10px;border:1px solid rgba(72,99,144,.20);border-radius:11px;background:#0d1b33;margin-top:7px}
.lookupScheduleName{font-weight:900;margin-bottom:4px}
.lookupPrevious{padding:10px;border-radius:12px;background:rgba(245,198,101,.06);border:1px solid rgba(245,198,101,.22);font-size:12px;line-height:1.5}
@media(max-width:720px){.adminLookupControls{grid-template-columns:1fr}.adminLookupBtns{display:grid;grid-template-columns:1fr 1fr}.adminLookupBtns .btn{width:100%}.adminLookupBtns .btn:last-child{grid-column:1/-1}}

.pastImportBox{border:1px solid rgba(24,184,164,.28);border-radius:16px;background:rgba(24,184,164,.045);margin-bottom:14px;overflow:hidden}
.pastImportToggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 15px;background:transparent;border:0;color:var(--text);text-align:left;font:inherit;cursor:pointer}
.pastImportToggle span:first-child{display:grid;gap:3px}
.pastImportToggle b{font-size:15px}
.pastImportToggle small{font-size:11px;color:var(--muted);line-height:1.45}
.pastImportBody{padding:0 14px 14px}
.pastImportGrid{display:grid;grid-template-columns:180px minmax(0,1fr);gap:10px;align-items:start}
.pastImportGrid .wide{grid-column:auto}
.pastImportGrid textarea{min-height:170px}
.pastImportHelp{margin:10px 0 12px;line-height:1.55}
@media(max-width:720px){.pastImportGrid{grid-template-columns:1fr}.pastImportGrid .wide{grid-column:1}.pastImportGrid textarea{min-height:190px}}

.historyCards{display:grid;gap:10px}
.historyCard{border:1px solid rgba(72,99,144,.30);border-radius:16px;background:#0b1830;overflow:hidden}
.historySummary{display:grid;grid-template-columns:96px minmax(0,1fr) auto;gap:12px;align-items:center;padding:14px}
.historyDate{font-weight:950;font-size:15px}
.historyDay{font-size:11px;color:var(--muted);margin-top:3px}
.historyMain{min-width:0}
.historyWorkoutText{font-weight:850;line-height:1.45;white-space:normal;word-break:keep-all;overflow-wrap:anywhere}
.historyMeta{font-size:11px;color:var(--muted);margin-top:5px;line-height:1.45}
.historyActions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.historyActions .btn{padding:8px 10px;font-size:12px;white-space:nowrap}
.historyDetails{display:none;border-top:1px solid rgba(72,99,144,.22);padding:12px;background:rgba(5,12,25,.42)}
.historyDetails.open{display:block}
.historySessionMeta{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:10px}
.historyTag{display:inline-flex;padding:4px 8px;border-radius:999px;border:1px solid rgba(24,184,164,.25);background:rgba(24,184,164,.07);font-size:10px;font-weight:900;color:#9ee9df}
.historyExercise{padding:11px 12px;border:1px solid rgba(72,99,144,.22);border-radius:13px;background:#0d1b33;margin-top:8px}
.historyExerciseName{font-weight:900;margin-bottom:6px}
.historySetList{display:grid;gap:5px}
.historySet{font-size:12px;color:#d8e0ee;line-height:1.45}
.historyMemo{margin-top:10px;padding:10px 11px;border-radius:12px;background:rgba(245,198,101,.06);border:1px solid rgba(245,198,101,.22);font-size:12px;line-height:1.55}
.historyLoading{padding:12px;text-align:center;color:var(--muted);font-size:12px}
@media(max-width:720px){
  .historySummary{grid-template-columns:78px minmax(0,1fr);gap:9px;padding:12px}
  .historyActions{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);width:100%}
  .historyActions .btn{width:100%;padding:9px 5px}
}
@media(max-width:720px){.exerciseSearchRow{grid-template-columns:minmax(0,1fr) 58px}.exerciseSearchRow .btn{padding:0 8px;height:46px}}
.muscleGroup{border:1px solid rgba(72,99,144,.32);border-radius:16px;background:#0b1830;overflow:hidden}
.muscleGroupBtn{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 16px;background:transparent;border:0;color:var(--text);font:inherit;cursor:pointer}
.muscleGroupBtn b{font-size:16px}.muscleGroupBtn .muscleCount{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:7px}
.muscleGroupBtn.active{background:rgba(24,184,164,.08);border-bottom:1px solid rgba(24,184,164,.18)}
.muscleArrow{display:inline-block;transition:transform .18s ease;font-size:17px;color:#8de7db}.muscleGroupBtn.active .muscleArrow{transform:rotate(180deg)}
.muscleExerciseList{display:none;padding:8px 10px 10px}.muscleExerciseList.open{display:grid;gap:7px}
.mobilityRegions{display:grid;gap:7px}
.mobilityRegion{border:1px solid rgba(72,99,144,.22);border-radius:12px;overflow:hidden;background:#0d1b33}
.mobilityRegionBtn{width:100%;display:flex;justify-content:space-between;align-items:center;padding:11px 12px;border:0;background:transparent;color:var(--text);font-weight:900;text-align:left}
.mobilityRegionBtn.active{background:rgba(24,184,164,.08)}
.mobilityRegionList{display:none;padding:7px}.mobilityRegionList.open{display:grid;gap:7px}
.mobilityScheduleTop{padding:14px;border:1px solid rgba(245,198,101,.24);border-radius:16px;background:rgba(245,198,101,.045);margin-bottom:12px}
.mobilityScheduleRegion{border:1px solid rgba(72,99,144,.30);border-radius:15px;overflow:hidden;background:#0c1930}
.mobilityScheduleRegionHead{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;padding:10px 11px}
.mobilityScheduleRegionBtn{border:0;background:transparent;color:var(--text);font-weight:900;text-align:left;padding:5px 2px}
.mobilityScheduleList{display:none;padding:0 9px 9px}.mobilityScheduleList.open{display:grid;gap:7px}
.mobilityScheduleGrid{display:grid;gap:8px}
@media(max-width:720px){.modeSwitch{grid-template-columns:1fr 1fr}.modeBtn{padding:12px 6px;font-size:12px}.mobilityScheduleRegionHead{grid-template-columns:minmax(0,1fr) auto}.mobilityScheduleRegionHead .btn{padding:8px 9px;font-size:11px}}

.mobilityBadge{display:inline-flex;align-items:center;padding:3px 7px;border-radius:999px;font-size:10px;font-weight:900;color:#f6d693;background:rgba(245,198,101,.10);border:1px solid rgba(245,198,101,.28)}
.paceBadge{display:inline-flex;align-items:center;padding:3px 7px;border-radius:999px;font-size:10px;font-weight:900;color:#8de7db;background:rgba(24,184,164,.10);border:1px solid rgba(24,184,164,.28)}
.cardioProtocolGrid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-top:12px}
.cardioIntervalGrid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-top:9px;padding:11px;border-radius:14px;background:rgba(24,184,164,.045);border:1px solid rgba(24,184,164,.18)}
.cardioPlanSummary{margin-top:10px;padding:11px 12px;border-radius:13px;background:rgba(24,184,164,.055);border:1px solid rgba(24,184,164,.20);font-size:12px;line-height:1.6;color:#bfece6}
.cardioPresetNote{padding:7px 3px 9px;color:var(--muted);font-size:11px;line-height:1.55}
@media(max-width:720px){.cardioProtocolGrid,.cardioIntervalGrid{grid-template-columns:1fr 1fr}}


.exercisePickRow{display:grid;grid-template-columns:minmax(0,1fr) 42px 58px;gap:7px;align-items:center;padding:10px;border-radius:12px;background:#0d1b33;border:1px solid rgba(72,99,144,.22)}
.exercisePickName{font-size:14px;font-weight:900;white-space:normal;overflow:visible;text-overflow:clip;line-height:1.35;word-break:keep-all;overflow-wrap:anywhere}.exercisePickMeta{font-size:11px;color:var(--muted);margin-top:3px}
.exercisePickAdd,.exercisePickVideo{height:40px;border-radius:11px;padding:0 5px}.exercisePickAdd{font-size:20px;line-height:1}.exercisePickVideo{font-size:11px;white-space:nowrap}
.quickScheduleBox{margin:14px 0;padding:15px;border-radius:16px;border:1px solid rgba(24,184,164,.30);background:rgba(24,184,164,.055)}
.quickScheduleBox textarea{min-height:112px}
.quickExample{font-size:11px;color:var(--muted);line-height:1.6;margin-top:7px}
.favoriteStar{appearance:none;border:0;background:transparent;color:#8093b3;font-size:20px;line-height:1;padding:5px;cursor:pointer;vertical-align:middle}.favoriteStar.active{color:#ffd36d}
.exerciseNameLine{display:flex;align-items:flex-start;gap:5px;min-width:0}.exerciseNameText{min-width:0;white-space:normal;overflow:visible;text-overflow:clip;flex:1}
.exCard.compact .exBody{display:none}.exCard.compact{padding:12px 14px}
.exHeadMain{display:flex;align-items:flex-start;gap:8px;min-width:0;flex:1}.dragHandle{appearance:none;background:transparent;border:0;color:#7f96ba;padding:4px 2px;font-size:20px;cursor:grab}.dragHandle:active{cursor:grabbing}
.exSummary{font-size:12px;color:#b7c7df;margin-top:5px;line-height:1.45}.prevRecord{font-size:11px;color:#8de7db;margin-top:4px;line-height:1.45}
.exControls{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.miniBtn{padding:7px 9px!important;min-width:38px;white-space:nowrap}
.exBody{margin-top:10px}.previousBox{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:10px 11px;border-radius:12px;background:rgba(24,184,164,.055);border:1px solid rgba(24,184,164,.18);margin-top:10px}
.quickGroupLabel{font-size:11px;color:#ffd36d;font-weight:900}
@media(max-width:720px){
  .exCard{padding:13px 12px}
  .exCard.compact{padding:12px}
  .exHead{display:block}
  .exHeadMain{width:100%;gap:9px;align-items:flex-start}
  .dragHandle{flex:0 0 26px;width:26px;padding:2px 0;margin-top:1px}
  .exName{font-size:17px;line-height:1.38;word-break:keep-all;overflow-wrap:anywhere}
  .exMuscles{font-size:11.5px}
  .exSummary{font-size:11.5px;margin-top:4px}
  .prevRecord{font-size:10.5px}
  .exControls{
    width:100%;
    max-width:none;
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(50px,1fr));
    gap:6px;
    margin-top:10px
  }
  .exControls .miniBtn{
    width:100%;
    min-width:0;
    height:42px;
    padding:0 4px!important;
    border-radius:11px;
    font-size:13px;
    line-height:1;
    white-space:nowrap
  }
  .previousBox{align-items:flex-start;flex-direction:column}
  .quickScheduleBox .btnRow{grid-template-columns:1fr 1fr}
}

@media(max-width:720px){.exercisePickRow{grid-template-columns:minmax(0,1fr) 40px 54px;gap:6px}.muscleGroupBtn{padding:14px}.exercisePickName{font-size:14px;line-height:1.38}.exercisePickVideo{font-size:10.5px}}.exercisePickList{display:grid;gap:7px;margin:8px 0 16px}
.exercisePickRow{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:center;padding:11px 12px;border-radius:14px;background:#0c1930;border:1px solid rgba(72,99,144,.32)}
.exercisePickMain{min-width:0;cursor:pointer}.exercisePickName{font-size:14px;font-weight:900;white-space:normal;overflow:visible;text-overflow:clip;line-height:1.35;word-break:keep-all;overflow-wrap:anywhere}.exercisePickMeta{font-size:11px;color:var(--muted);margin-top:3px}
.exercisePickAdd,.exercisePickVideo{min-width:46px;height:42px;padding:0 12px;border-radius:12px}.exercisePickAdd{font-size:20px;line-height:1}.exercisePickVideo{font-size:12px}
.videoBadge.videoClickable{cursor:pointer;user-select:none;position:relative;z-index:2}.videoBadge.videoClickable:hover{filter:brightness(1.15)}
.inlineVideoBtn{appearance:none;border:0;background:transparent;padding:0;margin:0;font:inherit;color:inherit;cursor:pointer;display:inline-flex;position:relative;z-index:3}
.exHead .videoActions button{position:relative;z-index:3;pointer-events:auto}
.exCard{overflow:visible}
@media(max-width:720px){
  .exercisePickRow{grid-template-columns:minmax(0,1fr) 40px 54px}
  .exercisePickName{font-size:15px}
  .exercisePickAdd,.exercisePickVideo{width:100%;min-width:0;padding:0 6px}
  .compactPickerTop{grid-template-columns:1fr}
}

.saveSessionOneLine{
  white-space:nowrap;
  word-break:keep-all;
  min-width:170px;
  padding-left:22px;
  padding-right:22px;
  line-height:1.2;
}
.programLoadOneLine{white-space:nowrap;word-break:keep-all;min-width:220px;text-align:center}
@media(max-width:420px){
  .exControls{grid-template-columns:repeat(auto-fit,minmax(46px,1fr));gap:5px}
  .exControls .miniBtn{font-size:12px;height:40px}
  .saveSessionOneLine{
    min-width:150px;
    font-size:15px;
    padding-left:16px;
    padding-right:16px;
  }
  .programLoadOneLine{
    width:100%;
    min-width:0;
  }
}
@media(max-width:720px){.scheduleSteps{grid-template-columns:1fr}.scheduleOverviewItem{grid-template-columns:72px minmax(0,1fr);align-items:start}.scheduleOverviewActions{grid-column:1/-1;justify-content:stretch}.scheduleOverviewActions .btn{flex:1}.scheduleConfirm{padding:15px}.chips.muscleSingle{display:grid;grid-template-columns:repeat(3,1fr)}.chips.muscleSingle .chip{min-width:0}}

@media(display-mode:standalone){.installBtn{display:none!important}}
@media(max-width:720px){.programExerciseRow{grid-template-columns:1fr}.videoActions{justify-content:flex-start}.videoAdminGrid{grid-template-columns:1fr}.catalogActions{grid-template-columns:1fr}}.empty{padding:20px;border:1px dashed #3a547c;border-radius:16px;text-align:center;color:var(--muted)}
.backupTop{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;flex-wrap:wrap;margin-bottom:14px}.backupGrid{display:grid;gap:10px}.backupItem{padding:14px;border:1px solid var(--line);border-radius:17px;background:#0c1930;display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center}.backupTitle{font-weight:900}.backupMeta{font-size:12px;color:var(--muted);margin-top:5px;line-height:1.5}.backupActions{display:flex;gap:7px;flex-wrap:wrap}.notice{padding:13px 14px;border-radius:15px;background:rgba(245,198,101,.08);border:1px solid rgba(245,198,101,.25);color:#f8dda1;font-size:13px;line-height:1.6;margin-bottom:14px}.guide{margin-bottom:15px;border:1px solid rgba(24,184,164,.28);border-radius:18px;background:rgba(24,184,164,.055);overflow:hidden}.guideHead{width:100%;padding:14px 16px;background:transparent;color:#eafffb;display:flex;justify-content:space-between;align-items:center;font-weight:900;text-align:left}.guideBody{padding:0 16px 15px;color:#c7d8ed;font-size:13px;line-height:1.75}.guideStep{padding:7px 0;border-top:1px solid rgba(80,119,155,.18)}.presetBar{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 0}.levelHint{color:#94e5da;font-size:12px;line-height:1.55}
.sessionInfoGroups{display:grid;gap:11px;margin-bottom:15px}
.sessionInfoCard{border:1px solid rgba(72,99,144,.30);border-radius:17px;background:#0a172d;padding:14px}
.sessionInfoHead{display:flex;align-items:baseline;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:11px}
.sessionInfoHead b{font-size:15px}
.sessionInfoHead span{font-size:11px;color:var(--muted)}
.dateInfoGrid{display:grid;grid-template-columns:minmax(180px,260px);gap:10px}
.bodyInfoGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.selfCheckGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.selfMemoField{grid-column:1/-1}
.scaleHint{display:flex;align-items:center;gap:6px;margin-top:6px;font-size:11px;color:#aebed4}
.scaleHint b{color:#8de7db}
.selfCheckCard{border-color:rgba(24,184,164,.28);background:rgba(24,184,164,.04)}
.dateInfoCard{background:rgba(68,112,184,.055)}
@media(max-width:720px){.dateInfoGrid,.bodyInfoGrid,.selfCheckGrid{grid-template-columns:1fr}.selfMemoField{grid-column:1}.sessionInfoCard{padding:12px}}
.modal{position:fixed;inset:0;background:rgba(2,8,19,.72);z-index:100;display:grid;place-items:center;padding:16px}.modalBox{width:min(480px,100%);padding:24px}
@media(max-width:1000px){.loginGrid{grid-template-columns:1fr}.layout{grid-template-columns:1fr}.stats{grid-template-columns:repeat(2,1fr)}.catalog{grid-template-columns:repeat(2,1fr)}}
@media(max-width:720px){.loginShell{padding:12px}.loginGrid{gap:12px}.hero{padding:24px;min-height:auto}.brand{font-size:32px}.lead{font-size:15px}.heroSteps{grid-template-columns:1fr;gap:8px;margin-top:20px}.heroStep{padding:11px 12px}.heroFooter{margin-top:16px;padding-top:14px}.loginCard{padding:22px;min-height:auto}.wrap{padding:12px 12px 28px}.hero,.loginCard,.header,.side,.content,.section{padding:16px}.brand{font-size:34px}.title{font-size:28px}.tabs{grid-template-columns:repeat(2,1fr)}.infoGrid{grid-template-columns:1fr 1fr}.infoGrid .wide{grid-column:1/-1}.catalog{grid-template-columns:1fr}.exConfig{grid-template-columns:1fr 1fr}.setRow{grid-template-columns:50px 1fr 1fr}.setVol{grid-column:2/4;text-align:left}.setRow--strength{grid-template-columns:44px minmax(0,1fr) minmax(0,1fr) 32px;grid-template-areas:"no weight reps del" ". vol done done"}.setRow--mobility{grid-template-columns:44px minmax(0,1fr) 32px;grid-template-areas:"no reps del" ". vol done"}.setRow--strength .setVol,.setRow--mobility .setVol{grid-column:auto;text-align:left}.setRow--strength .setDoneInline,.setRow--mobility .setDoneInline{padding:8px 8px;min-height:36px;font-size:10px}.programGrid{grid-template-columns:1fr}.builderTop{grid-template-columns:1fr}.btnRow{display:grid;grid-template-columns:1fr 1fr}.headerRow .btnRow{width:100%}.programLoadOneLine{grid-column:1/-1}.backupItem{grid-template-columns:1fr}.backupActions{display:grid;grid-template-columns:1fr 1fr}}

/* =========================================================
   SPURS GYM PREMIUM UI v57
   기능은 그대로, 시각 체계만 고도화
   ========================================================= */
:root{
  --bg:#060a10;
  --bg2:#090e16;
  --panel:#0d141d;
  --panel2:#111a25;
  --panel3:#151f2c;
  --line:#223044;
  --line2:#2c3d55;
  --text:#f7f9fc;
  --muted:#8998ab;
  --mint:#41d5ad;
  --mint2:#6be3c2;
  --mintDeep:#153c34;
  --danger:#ff6b7d;
  --warn:#f1c76d;
  --blue:#74a7ff;
  --purple:#a58cff;
  --shadow:0 18px 50px rgba(0,0,0,.34);
  --shadowSoft:0 8px 26px rgba(0,0,0,.20);
}

html,body{
  background:
    radial-gradient(circle at 10% -10%,rgba(65,213,173,.09),transparent 28%),
    radial-gradient(circle at 92% 0%,rgba(116,167,255,.055),transparent 25%),
    linear-gradient(180deg,#060a10 0%,#080d14 45%,#060a10 100%);
  color:var(--text);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans KR",Arial,sans-serif;
  letter-spacing:-.01em;
}

body{min-height:100vh}
.wrap{max-width:1460px;padding:18px 18px 46px}

.card{
  background:linear-gradient(180deg,rgba(16,24,34,.97),rgba(12,19,28,.97));
  border:1px solid rgba(85,105,132,.25);
  border-radius:20px;
  box-shadow:var(--shadowSoft);
}

/* 로그인 */
.loginShell{padding:22px}
.loginGrid{width:min(1080px,100%);gap:14px}
.hero,.loginCard{border-radius:26px}
.hero{
  min-height:560px;
  padding:50px;
  background:
    radial-gradient(circle at 16% 18%,rgba(65,213,173,.20),transparent 25%),
    radial-gradient(circle at 78% 78%,rgba(116,167,255,.08),transparent 28%),
    linear-gradient(150deg,#101a25 0%,#0a1119 65%,#07100f 100%);
}
.pill{
  background:rgba(65,213,173,.10);
  border-color:rgba(65,213,173,.28);
  color:#aef2df;
  letter-spacing:.12em;
  font-size:10px;
}
.brand{
  font-size:48px;
  line-height:1.02;
  letter-spacing:-.055em;
  margin:20px 0 16px;
}
.lead{font-size:16px;color:#a7b3c2;max-width:470px}
.heroStep{
  border-radius:14px;
  background:rgba(255,255,255,.025);
  border-color:rgba(255,255,255,.055);
}
.heroStepNo{color:var(--mint2)}
.loginCard{padding:42px;background:#0d141d}

/* 헤더 */
.header{
  position:sticky;
  top:10px;
  z-index:30;
  padding:16px 18px;
  margin-bottom:12px;
  background:rgba(10,16,24,.88);
  border-color:rgba(90,112,140,.24);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
  box-shadow:0 12px 38px rgba(0,0,0,.24);
}
.headerRow{align-items:center}
.appBrandLine{
  display:flex;
  align-items:center;
  gap:8px;
  margin-bottom:3px;
}
.appBrandMark{
  font-size:10px;
  letter-spacing:.18em;
  font-weight:950;
  color:#dce6f3;
}
.appBrandDot{
  width:4px;height:4px;border-radius:50%;
  background:var(--mint);
  box-shadow:0 0 12px rgba(65,213,173,.8);
}
.appBrandSub{
  font-size:9px;
  letter-spacing:.14em;
  font-weight:800;
  color:#66768b;
}
.title{font-size:24px;letter-spacing:-.045em}
.header .sub{margin-top:3px;font-size:12px}
.sessionStatus{font-size:9.5px;color:#5f6e80;margin-top:4px}

/* 버튼 */
.btn{
  min-height:42px;
  padding:10px 14px;
  border-radius:12px;
  transition:transform .14s ease,border-color .14s ease,background .14s ease,filter .14s ease;
}
.btn:active{transform:scale(.98)}
.primary{
  background:linear-gradient(135deg,#55ddb8,#24b98f);
  color:#04110d;
  box-shadow:0 7px 22px rgba(65,213,173,.16);
}
.secondary{
  background:#172231;
  border-color:#2d4058;
  color:#e9f1fb;
}
.ghost{
  background:#0d151f;
  border-color:#2b3d53;
  color:#b9c7d8;
}
.danger{
  background:rgba(255,107,125,.10);
  border-color:rgba(255,107,125,.30);
  color:#ff9bab;
}
.btn:hover{filter:brightness(1.06)}

/* 통계 */
.stats{
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
  margin-bottom:12px;
}
.stat{
  position:relative;
  overflow:hidden;
  padding:16px 17px;
  min-height:94px;
  border-radius:16px;
  background:linear-gradient(145deg,#101923,#0c131c);
}
.stat:after{
  content:'';
  position:absolute;
  right:-18px;bottom:-28px;
  width:82px;height:82px;border-radius:50%;
  background:rgba(65,213,173,.045);
}
.statLabel{
  font-size:10px;
  letter-spacing:.02em;
  color:#738398;
}
.statValue{
  position:relative;
  z-index:1;
  font-size:28px;
  letter-spacing:-.045em;
  margin-top:8px;
}

/* 레이아웃 */
.layout{grid-template-columns:270px minmax(0,1fr);gap:12px}
.side{
  padding:16px;
  border-radius:18px;
  height:max-content;
  position:sticky;
  top:102px;
}
.content{padding:18px;border-radius:18px}
.sideTitle{font-size:15px;margin-bottom:9px}
.sideNote{font-size:11.5px;color:#7f8fa3}
.memberList{gap:6px}
.member{
  padding:11px 12px;
  border-radius:13px;
  background:#0e1721;
  border-color:rgba(83,105,135,.20);
}
.member:hover{border-color:rgba(65,213,173,.25)}
.member.active{
  border-color:rgba(65,213,173,.56);
  background:linear-gradient(135deg,rgba(65,213,173,.12),rgba(65,213,173,.035));
  box-shadow:inset 3px 0 0 var(--mint);
}
.memberName{font-size:13px}
.memberMeta{font-size:10.5px}

/* 대상 회원 상단 */
#targetName{
  font-size:26px!important;
  letter-spacing:-.045em;
}
#targetMeta{font-size:11.5px}

/* 탭 */
.tabs{
  position:relative;
  display:flex;
  gap:4px;
  padding:4px;
  margin:14px 0 14px;
  border-radius:15px;
  background:#0b121b;
  border:1px solid rgba(79,101,130,.20);
}
.tab{
  flex:1;
  min-height:44px;
  padding:9px 11px;
  border-radius:11px;
  background:transparent;
  color:#73849a;
  font-size:12px;
  font-weight:850;
  border:1px solid transparent;
}
.tab.active{
  background:#172331;
  border-color:#2e435b;
  color:#f7fafc;
  box-shadow:0 4px 14px rgba(0,0,0,.18);
}

/* 섹션 */
.section{
  padding:16px;
  border-radius:16px;
  background:#091018;
  border-color:rgba(78,99,126,.18);
}
.guide{
  border-radius:14px!important;
  background:#0d151f!important;
  border-color:rgba(75,96,123,.20)!important;
}
.builderModeNotice{
  background:#0e1721;
  border-color:rgba(79,103,134,.22);
  border-radius:13px;
}

/* 입력 */
.input,.select,.textarea{
  min-height:48px;
  padding:12px 13px;
  border-radius:11px;
  background:#0a121b;
  border-color:#223246;
  color:#f2f6fb;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.015);
}
.input:focus,.select:focus,.textarea:focus{
  border-color:rgba(65,213,173,.70);
  box-shadow:0 0 0 3px rgba(65,213,173,.08);
}
.label{
  font-size:11px;
  color:#9aabbe;
  margin-bottom:6px;
}
.small{color:#7d8da1}

/* 운동 날짜/신체/자가진단 */
.sessionInfoGroups{gap:9px}
.sessionInfoCard{
  border-radius:14px;
  padding:13px;
  background:#0d151f;
  border-color:rgba(82,104,133,.22);
}
.sessionInfoHead{margin-bottom:9px}
.sessionInfoHead b{font-size:13px}
.sessionInfoHead span{font-size:10px}
.dateInfoCard{background:linear-gradient(145deg,#0f1823,#0b131c)}
.selfCheckCard{
  background:linear-gradient(145deg,rgba(65,213,173,.055),#0c151d);
  border-color:rgba(65,213,173,.18);
}
.scaleHint{font-size:10px;color:#718195}

/* AI 박스 */
.quickScheduleBox{
  border-radius:15px;
  background:linear-gradient(145deg,rgba(65,213,173,.07),#0c151d);
  border-color:rgba(65,213,173,.22);
  padding:14px;
}
.quickScheduleBox textarea{background:#091119}

/* 운동 카탈로그 */
.muscleGroup{
  border-radius:13px;
  background:#0c141e;
  border-color:rgba(79,101,131,.20);
}
.muscleGroupBtn{padding:13px 14px}
.muscleGroupBtn b{font-size:14px}
.exercisePickRow{
  border-radius:12px;
  background:#0e1722;
  border-color:rgba(80,102,132,.20);
}
.exercisePickRow:hover{border-color:rgba(65,213,173,.28)}
.exercisePickName{font-size:13.5px}

/* 운동 카드 */
.exerciseList{gap:9px}
.exCard{
  border-radius:15px;
  background:linear-gradient(180deg,#0e1721,#0b131b);
  border-color:rgba(87,108,136,.24);
  padding:13px;
  box-shadow:0 7px 20px rgba(0,0,0,.10);
}
.exCard:hover{border-color:rgba(65,213,173,.22)}
.exName{font-size:16px;letter-spacing:-.025em}
.exMuscles{font-size:10.5px;color:#71d9bd}
.exSummary{color:#8898aa}
.exConfig{gap:7px}
.sets{
  border-top-color:rgba(83,105,134,.20);
  padding-top:9px;
}
.setRow{
  min-height:45px;
  padding:4px 0;
  border-bottom:1px solid rgba(72,92,117,.10);
}
.setNo{font-size:11px;color:#718198}
.setVol{color:#72ddbf}
.previousBox{
  border-radius:11px;
  background:rgba(65,213,173,.035);
  border-color:rgba(65,213,173,.14);
}

/* 총 볼륨 / 저장 */
.totalBar{
  bottom:14px;
  border-radius:15px;
  padding:12px 14px;
  background:rgba(12,20,29,.94);
  backdrop-filter:blur(15px);
  -webkit-backdrop-filter:blur(15px);
  border-color:rgba(65,213,173,.42);
  box-shadow:0 15px 40px rgba(0,0,0,.32);
}
.totalVal{font-size:22px}

/* 숙제 */
.homeworkAssignHero{
  border-radius:15px;
  background:linear-gradient(145deg,rgba(65,213,173,.09),#0c151d);
  border-color:rgba(65,213,173,.25);
}
.homeworkCard{
  border-radius:14px;
  background:#0d161f;
  border-color:rgba(84,106,135,.22);
  padding:13px;
}
.homeworkCard.todayHomework{
  border-color:rgba(65,213,173,.55);
  background:linear-gradient(145deg,rgba(65,213,173,.10),#0c151d);
}
.homeworkDate{color:#70dcbc}
.homeworkTitle{font-size:15px}
.homeworkBadge{
  background:#172331;
  color:#adbbcc;
  border:1px solid #27394f;
}

/* 관리자 캘린더 */
.adminMemberTimeline,.adminAssessmentBox,.adminWorkoutLookup{
  border-radius:15px!important;
  background:#0c141e!important;
  border-color:rgba(81,104,135,.20)!important;
}
.calDay{
  border-radius:10px;
  background:#0e1721;
  border-color:rgba(75,96,124,.18);
}
.calDay:hover{border-color:rgba(65,213,173,.42)}
.calDay.today{
  outline:none;
  border-color:rgba(65,213,173,.60);
  box-shadow:inset 0 0 0 1px rgba(65,213,173,.25);
}
.calDot.schedule{color:#83adff}
.calDot.done{color:#6cdcbc}
.calDot.assess{color:#f0ca73}

/* 기록 */
.historyItem{
  border-color:rgba(82,104,133,.20)!important;
  background:#0d151f!important;
  border-radius:14px!important;
}
.historyTag{
  color:#77debf;
  background:rgba(65,213,173,.06);
  border-color:rgba(65,213,173,.18);
}
.historyExercise{
  border-radius:11px;
  background:#0c151e;
  border-color:rgba(81,103,132,.18);
}

/* 테이블 */
.tableWrap{border-radius:13px;border-color:rgba(81,103,132,.18)}
th{background:#111b27;color:#aebed0}
th,td{border-bottom-color:rgba(75,95,120,.14)}

/* 모달 */
.modal{
  background:rgba(0,0,0,.72);
  backdrop-filter:blur(5px);
}
.modalBox{border-radius:20px}

/* 토스트 */
.pwaToast{
  border-radius:12px;
  background:#111c27;
  border-color:rgba(65,213,173,.28);
}

/* 데스크톱 탭 아이콘 최소 표현 */
.tab[data-tab="builder"]::before{content:'＋';margin-right:5px;color:#65d8b8}
.tab[data-tab="history"]::before{content:'▣';margin-right:5px;color:#7e9fc6}
.tab[data-tab="progress"]::before{content:'⌁';margin-right:5px;color:#9c8ff0}
.tab[data-tab="programs"]::before{content:'✓';margin-right:5px;color:#e7c46f}
.tab[data-tab="backups"]::before{content:'↻';margin-right:5px;color:#8998ab}

/* 모바일: 실제 앱처럼 하단 네비게이션 */
@media(max-width:720px){
  body{padding-bottom:78px}
  .wrap{padding:10px 10px 28px}
  .header{
    top:6px;
    padding:12px 13px;
    border-radius:16px;
    margin-bottom:9px;
  }
  .header .btnRow{
    width:auto;
    display:flex;
    gap:5px;
  }
  .header .btn{min-height:36px;padding:8px 9px;font-size:10px}
  
  .title{font-size:20px}
  .appBrandMark{font-size:9px}
  .sessionStatus{display:none}

  .stats{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:7px;
    margin-bottom:9px;
  }
  .stat{
    min-height:78px;
    padding:12px 13px;
    border-radius:14px;
  }
  .statValue{font-size:23px;margin-top:5px}
  .statLabel{font-size:9.5px}

  .layout{display:block}
  .side{
    position:static;
    margin-bottom:9px;
    border-radius:15px;
  }
  .content{
    padding:12px;
    border-radius:15px;
  }

  /* bottom nav */
  .tabs{
    position:fixed;
    left:8px;
    right:8px;
    bottom:7px;
    z-index:90;
    margin:0;
    display:flex;
    gap:2px;
    padding:5px 4px calc(5px + env(safe-area-inset-bottom));
    border-radius:18px;
    background:rgba(11,18,27,.94);
    border:1px solid rgba(79,101,130,.25);
    box-shadow:0 16px 50px rgba(0,0,0,.55);
    backdrop-filter:blur(18px);
    -webkit-backdrop-filter:blur(18px);
  }
  .tab{
    min-width:0;
    min-height:54px;
    padding:5px 3px;
    border-radius:13px;
    font-size:9.5px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:2px;
    color:#708095;
  }
  .tab::before{
    display:block;
    margin:0!important;
    font-size:18px;
    line-height:1;
  }
  .tab.active{
    background:rgba(65,213,173,.09);
    border-color:rgba(65,213,173,.18);
    color:#e9fff8;
    box-shadow:none;
  }
  .tab.active::before{color:var(--mint)!important}

  .section{padding:11px;border-radius:14px}
  #targetName{font-size:22px!important}
  .memberAdminActions{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:6px;
  }
  .memberAdminActions .btn{font-size:10px;padding:8px 6px!important;min-height:38px}

  .sessionInfoCard{padding:11px;border-radius:12px}
  .builderModeNotice{padding:10px 11px}
  .builderModeNotice span{font-size:9.5px}

  .quickScheduleBox{padding:11px}
  .exCard{padding:11px;border-radius:13px}
  .exName{font-size:15px}
  .exControls .miniBtn{height:38px;border-radius:10px;font-size:11px}
  .setRow{
    grid-template-columns:44px 1fr 1fr;
    gap:6px;
  }
  .totalBar{
    bottom:82px;
    padding:10px 12px;
    border-radius:13px;
  }
  .totalVal{font-size:20px}
  .saveSessionOneLine{min-width:126px;padding-left:12px;padding-right:12px}

  .homeworkCard{padding:11px}
  .homeworkTitle{font-size:14px}

  .timelineCalendar{gap:3px}
  .calDay{min-height:58px;padding:4px}
}

/* 태블릿 */
@media(min-width:721px) and (max-width:1050px){
  .layout{grid-template-columns:230px minmax(0,1fr)}
  .wrap{padding:14px}
  .content,.side{padding:14px}
  .tab{font-size:11px}
}

/* 마이크로 인터랙션 */
@media(prefers-reduced-motion:no-preference){
  .card,.exCard,.homeworkCard,.member,.calDay{transition:border-color .16s ease,background .16s ease,transform .16s ease}
  .exCard:hover,.homeworkCard:hover{transform:translateY(-1px)}
}


.heroKicker{margin:14px 0 10px;font-size:12px;font-weight:700;color:#9fcdbf;letter-spacing:-.01em}
.brandKo{font-size:44px;line-height:1.08;letter-spacing:-.04em}
.heroHighlights{display:grid;gap:10px;margin-top:24px}
.heroHighlight{padding:14px 15px;border-radius:16px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.07)}
.heroHighlight b{display:block;font-size:14px;margin-bottom:6px}
.heroHighlight span{display:block;font-size:12px;line-height:1.5;color:#a6b6c8}
.loginTopRow{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:18px}
.helpIconBtn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:999px;border:1px solid rgba(65,213,173,.30);background:rgba(65,213,173,.08);color:#c7fff0;font-size:18px;font-weight:900;cursor:pointer;box-shadow:0 6px 18px rgba(0,0,0,.14)}
.helpIconBtn:hover{filter:brightness(1.08)}
.helpIconBtnHeader{width:42px;height:42px;background:#101a24;color:#bff7e8}
.installActionRow{display:grid;grid-template-columns:1fr auto;gap:8px}
.installPlatformTitle{margin-top:14px;margin-bottom:8px;font-size:12px;font-weight:900;color:#dce7f4;letter-spacing:.02em}
.installTipsBox{margin-top:12px;padding:12px 14px;border-radius:14px;background:rgba(65,213,173,.08);border:1px solid rgba(65,213,173,.22);font-size:12px;line-height:1.55;color:#c7d8d6}
@media(max-width:720px){.brandKo{font-size:34px}.heroKicker{font-size:11px}.heroHighlights{gap:8px;margin-top:18px}.loginTopRow{margin-bottom:14px}.installActionRow{grid-template-columns:1fr}.helpIconBtnHeader{width:36px;height:36px;font-size:16px}}


/* ===========================
   MEMBER HOME v59
   =========================== */
.tab[data-tab="home"]::before{content:'⌂';margin-right:5px;color:#65d8b8}

.homeDashboard{
  padding:0!important;
  border:0!important;
  background:transparent!important;
}
.homeWelcome{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:24px 24px 20px;
  border:1px solid rgba(83,106,137,.22);
  border-radius:20px;
  background:
    radial-gradient(circle at 8% 0%,rgba(65,213,173,.10),transparent 32%),
    linear-gradient(145deg,#101923,#0c141d);
  box-shadow:var(--shadowSoft);
}
.homeDate{
  color:#69d9ba;
  font-size:11px;
  font-weight:900;
  letter-spacing:.04em;
  margin-bottom:7px;
}
.homeWelcome h2{
  margin:0;
  font-size:26px;
  line-height:1.18;
  letter-spacing:-.045em;
}
.homeGreetingSub{
  color:#8191a5;
  font-size:12px;
  margin-top:7px;
}
.homeInitialAvatar{
  width:56px;height:56px;border-radius:18px;
  display:flex;align-items:center;justify-content:center;
  flex:0 0 auto;
  font-size:20px;font-weight:950;
  color:#06130f;
  background:linear-gradient(135deg,#79eccb,#32c59b);
  box-shadow:0 10px 30px rgba(65,213,173,.15);
}
.homeMainGrid{
  display:grid;
  grid-template-columns:minmax(0,1.45fr) minmax(260px,.55fr);
  gap:10px;
  margin-top:10px;
}
.homeFeatureCard,.homeRecentCard,.homeQuickCard{
  border:1px solid rgba(83,106,137,.22);
  border-radius:18px;
  background:linear-gradient(180deg,#0f1822,#0c141d);
  box-shadow:var(--shadowSoft);
}
.homeFeatureCard{padding:18px}
.homeHomeworkFeature{
  background:
    radial-gradient(circle at 100% 0%,rgba(65,213,173,.09),transparent 28%),
    linear-gradient(180deg,#111b25,#0c151e);
}
.homeCheckFeature{
  background:
    radial-gradient(circle at 100% 0%,rgba(116,167,255,.07),transparent 30%),
    linear-gradient(180deg,#111925,#0c141d);
}
.homeCardTop,.homeSectionHead{
  display:flex;align-items:flex-start;justify-content:space-between;gap:10px;
}
.homeCardTop h3,.homeSectionHead h3{margin:2px 0 0;font-size:18px;letter-spacing:-.025em}
.homeEyebrow{
  font-size:9px;
  font-weight:950;
  letter-spacing:.14em;
  color:#65778d;
}
.homeStateBadge{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:27px;padding:5px 9px;border-radius:999px;
  font-size:10px;font-weight:900;
  color:#91ead1;background:rgba(65,213,173,.08);
  border:1px solid rgba(65,213,173,.20);
}
.homeStateBadge.done{color:#a8b6c8;background:#151f2b;border-color:#27384d}
.homeStateBadge.neutral{color:#9fb0c4;background:#141e2a;border-color:#26384d}
.homeFeatureMeta{
  color:#8394a9;font-size:11.5px;line-height:1.5;margin-top:9px
}
.homeExercisePreview{
  display:flex;gap:6px;flex-wrap:wrap;margin-top:14px;min-height:28px
}
.homeExercisePill{
  padding:6px 9px;border-radius:999px;
  border:1px solid rgba(76,100,130,.20);
  background:#121d29;color:#bdcada;font-size:10.5px;font-weight:750
}
.homePrimaryAction,.homeSecondaryAction{width:100%;margin-top:15px}
.homeCheckScores{
  display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px
}
.homeScoreBox{
  padding:13px;border-radius:14px;
  background:#0b131c;border:1px solid rgba(80,103,132,.18)
}
.homeScoreBox span{display:block;font-size:10px;color:#74859a;margin-bottom:5px}
.homeScoreBox strong{font-size:25px;letter-spacing:-.04em}
.homeScoreBox small{font-size:10px;color:#63748a;margin-left:3px}
.homeMetricGrid{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:10px
}
.homeMetricCard{
  padding:15px 16px;border-radius:16px;
  border:1px solid rgba(82,104,133,.20);
  background:#0e1721;
}
.homeMetricLabel{display:block;font-size:10px;color:#73849a;margin-bottom:6px}
.homeMetricCard strong{font-size:24px;letter-spacing:-.035em}
.homeMetricCard small{font-size:10px;color:#75859a;margin-left:2px}
.homeBottomGrid{
  display:grid;grid-template-columns:minmax(0,1.3fr) minmax(300px,.7fr);
  gap:10px;margin-top:10px
}
.homeRecentCard,.homeQuickCard{padding:17px}
.homeTextBtn{
  border:0;background:transparent;color:#77dcbc;font-size:11px;font-weight:850;cursor:pointer;padding:4px
}
.homeRecentWorkout{margin-top:13px}
.homeRecentRow{
  display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;
  padding:12px;border-radius:14px;background:#0b141d;border:1px solid rgba(79,101,130,.16)
}
.homeRecentDate{
  width:48px;height:48px;border-radius:13px;display:flex;flex-direction:column;align-items:center;justify-content:center;
  background:#131f2c;color:#cfe0f2
}
.homeRecentDate b{font-size:15px}.homeRecentDate span{font-size:9px;color:#74869c}
.homeRecentMain b{display:block;font-size:13px;margin-bottom:4px}
.homeRecentMain span{font-size:10.5px;color:#75879c}
.homeRecentVol{text-align:right}
.homeRecentVol b{display:block;font-size:15px}.homeRecentVol span{font-size:9px;color:#6f8197}
.homeEmptyMini{padding:18px 12px;color:#687a90;font-size:11px;text-align:center}
.homeQuickActions{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:13px}
.homeQuickAction{
  min-height:92px;border-radius:14px;padding:10px 8px;
  border:1px solid rgba(80,103,132,.18);
  background:#0b141d;color:#d8e3ef;cursor:pointer;text-align:left
}
.homeQuickAction span{
  display:flex;align-items:center;justify-content:center;
  width:28px;height:28px;border-radius:9px;
  margin-bottom:8px;background:rgba(65,213,173,.08);color:#69dcbc;font-size:15px;font-weight:900
}
.homeQuickAction b{display:block;font-size:11.5px;margin-bottom:3px}
.homeQuickAction small{display:block;color:#6e8095;font-size:9px;line-height:1.35}
.homeQuickAction:hover{border-color:rgba(65,213,173,.28)}

@media(max-width:720px){
  .homeDashboard{padding:0!important}
  .homeWelcome{padding:18px 16px;border-radius:17px}
  .homeWelcome h2{font-size:22px}
  .homeInitialAvatar{width:48px;height:48px;border-radius:15px}
  .homeMainGrid,.homeBottomGrid{grid-template-columns:1fr}
  .homeFeatureCard,.homeRecentCard,.homeQuickCard{padding:14px;border-radius:15px}
  .homeMetricGrid{grid-template-columns:repeat(3,1fr);gap:6px}
  .homeMetricCard{padding:12px 10px;border-radius:13px}
  .homeMetricCard strong{font-size:20px}
  .homeMetricLabel{font-size:8.5px}
  .homeQuickActions{gap:6px}
  .homeQuickAction{min-height:84px;padding:9px 7px}
  .homeRecentRow{grid-template-columns:auto 1fr;gap:9px}
  .homeRecentVol{grid-column:2;text-align:left}
  .homeRecentVol b,.homeRecentVol span{display:inline}
  .homeRecentVol span{margin-left:5px}
  .memberApp #topStats{display:none}
  .memberApp .tabs{grid-template-columns:repeat(5,1fr)}
}


.homeInsightGrid{
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(320px,.92fr);
  gap:10px;
  margin-top:10px;
}
.homeWeekCard,.homeTrendCard{
  border:1px solid rgba(83,106,137,.22);
  border-radius:18px;
  background:linear-gradient(180deg,#0f1822,#0c141d);
  box-shadow:var(--shadowSoft);
  padding:17px;
}
.homeWeekLegend,.homeTrendLegend{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  font-size:9.5px;color:#75879c;
}
.homeWeekLegend span,.homeTrendLegend span{display:flex;align-items:center;gap:5px}
.weekDot,.trendDot{
  width:7px;height:7px;border-radius:50%;display:inline-block
}
.weekDot.homework{background:#7ca8ff;box-shadow:0 0 8px rgba(124,168,255,.28)}
.weekDot.done{background:#61d9b8;box-shadow:0 0 8px rgba(97,217,184,.28)}
.trendDot.condition{background:#61d9b8}
.trendDot.pain{background:#f0bd65}
.homeWeekCalendar{
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  gap:6px;
  margin-top:13px;
}
.homeWeekDay{
  min-height:92px;
  border:1px solid rgba(78,101,130,.18);
  border-radius:14px;
  background:#0b141d;
  padding:9px 6px;
  color:#cfdbe8;
  cursor:pointer;
  text-align:center;
  position:relative;
}
.homeWeekDay:hover{border-color:rgba(65,213,173,.30)}
.homeWeekDay.today{
  border-color:rgba(65,213,173,.56);
  background:rgba(65,213,173,.055);
}
.homeWeekDay.selected{box-shadow:inset 0 0 0 1px rgba(65,213,173,.45)}
.homeWeekDow{font-size:9px;color:#6e8197;margin-bottom:5px}
.homeWeekNum{font-size:17px;font-weight:950}
.homeWeekStatus{
  min-height:28px;
  margin-top:7px;
  display:flex;align-items:center;justify-content:center;gap:4px;flex-wrap:wrap
}
.homeWeekMarker{
  width:8px;height:8px;border-radius:50%;
}
.homeWeekMarker.homework{background:#7ca8ff}
.homeWeekMarker.done{background:#61d9b8}
.homeWeekMiniText{
  font-size:8.5px;color:#788ba0;line-height:1.25;margin-top:4px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap
}
.homeWeekDetail{
  margin-top:10px;
  padding:10px 12px;
  border-radius:12px;
  background:#0b141d;
  border:1px solid rgba(80,103,132,.14);
  color:#8495a9;
  font-size:10.5px;
  line-height:1.5;
}
.homeTrendGuide{font-size:9.5px;color:#65788d;margin-top:8px}
.homeTrendChart{
  margin-top:10px;
  height:170px;
  border-radius:14px;
  background:
    linear-gradient(to bottom,rgba(92,112,138,.12) 1px,transparent 1px);
  background-size:100% 25%;
  border:1px solid rgba(78,101,130,.15);
  padding:8px;
  overflow:hidden;
}
.homeTrendChart svg{width:100%;height:100%;display:block}
.homeTrendAxisText{fill:#607287;font-size:8px}
.homeTrendEmpty{
  height:100%;display:flex;align-items:center;justify-content:center;
  text-align:center;color:#65778d;font-size:10.5px;line-height:1.5;padding:16px
}
.homeTrendSummary{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:7px;
  margin-top:9px;
}
.homeTrendStat{
  padding:10px 11px;border-radius:12px;
  background:#0b141d;border:1px solid rgba(78,101,130,.14)
}
.homeTrendStat span{display:block;font-size:9px;color:#718399;margin-bottom:4px}
.homeTrendStat b{font-size:16px}
.homeTrendStat small{font-size:8.5px;color:#65778c;margin-left:3px}

@media(max-width:900px){
  .homeInsightGrid{grid-template-columns:1fr}
}
@media(max-width:720px){
  .homeWeekCard,.homeTrendCard{padding:14px;border-radius:15px}
  .homeWeekCalendar{gap:4px}
  .homeWeekDay{min-height:78px;border-radius:11px;padding:7px 3px}
  .homeWeekDow{font-size:8px}
  .homeWeekNum{font-size:15px}
  .homeWeekMiniText{display:none}
  .homeTrendChart{height:150px}
}


.homeMonthlyReport{
  margin-top:10px;
  padding:18px;
  border:1px solid rgba(83,106,137,.22);
  border-radius:18px;
  background:
    radial-gradient(circle at 100% 0%,rgba(116,167,255,.055),transparent 30%),
    linear-gradient(180deg,#0f1822,#0c141d);
  box-shadow:var(--shadowSoft);
}
.homeReportMonth{
  padding:6px 9px;
  border-radius:999px;
  border:1px solid rgba(82,105,135,.20);
  background:#121c28;
  color:#8798ac;
  font-size:9.5px;
  font-weight:850;
}
.homeMonthlyReportGrid{
  display:grid;
  grid-template-columns:minmax(300px,.72fr) minmax(0,1.28fr);
  gap:14px;
  margin-top:15px;
}
.homeRateArea{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:9px;
}
.homeRateCard{
  min-height:186px;
  padding:14px 10px;
  border-radius:15px;
  border:1px solid rgba(79,102,131,.18);
  background:#0b141d;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
}
.homeRateRing{
  --rate:0;
  width:94px;height:94px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:conic-gradient(#61d9b8 calc(var(--rate) * 1%),#182534 0);
  position:relative;
  box-shadow:0 7px 24px rgba(0,0,0,.18);
}
.homeRateRing.homeworkRing{
  background:conic-gradient(#7ca8ff calc(var(--rate) * 1%),#182534 0);
}
.homeRateRing:before{
  content:'';
  position:absolute;
  inset:7px;
  border-radius:50%;
  background:#0b141d;
  border:1px solid rgba(88,110,138,.16);
}
.homeRateRingInner{
  position:relative;
  z-index:1;
  display:flex;
  align-items:baseline;
  gap:2px;
}
.homeRateRingInner strong{
  font-size:27px;
  letter-spacing:-.05em;
}
.homeRateRingInner small{
  color:#71849a;
  font-size:9px;
}
.homeRateText{margin-top:11px}
.homeRateText b{display:block;font-size:12.5px}
.homeRateText span{
  display:block;
  margin-top:5px;
  color:#6f8298;
  font-size:9px;
  line-height:1.4;
}
.homeMuscleArea{
  padding:13px 14px;
  border-radius:15px;
  border:1px solid rgba(79,102,131,.18);
  background:#0b141d;
}
.homeMuscleHead{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:9px;
  flex-wrap:wrap;
  margin-bottom:12px;
}
.homeMuscleHead b{font-size:12.5px}
.homeMuscleHead span{font-size:9px;color:#687b91}
.homeMuscleDistribution{display:grid;gap:9px}
.homeMuscleRow{
  display:grid;
  grid-template-columns:54px minmax(0,1fr) 42px;
  gap:9px;
  align-items:center;
}
.homeMuscleName{
  font-size:10.5px;
  color:#b9c7d6;
  font-weight:800;
}
.homeMuscleTrack{
  height:8px;
  border-radius:999px;
  overflow:hidden;
  background:#172332;
}
.homeMuscleFill{
  height:100%;
  border-radius:999px;
  background:linear-gradient(90deg,#49d4ad,#6fa7ff);
  min-width:3px;
}
.homeMuscleValue{
  text-align:right;
  font-size:9.5px;
  color:#76899f;
}
.homeMuscleOther{
  margin-top:2px;
  font-size:8.5px;
  color:#65778c;
  text-align:right;
}

@media(max-width:900px){
  .homeMonthlyReportGrid{grid-template-columns:1fr}
}
@media(max-width:720px){
  .homeMonthlyReport{padding:14px;border-radius:15px}
  .homeRateArea{gap:6px}
  .homeRateCard{min-height:164px;padding:12px 7px}
  .homeRateRing{width:82px;height:82px}
  .homeRateRingInner strong{font-size:23px}
  .homeRateText span{font-size:8.5px}
  .homeMuscleArea{padding:12px 10px}
  .homeMuscleRow{grid-template-columns:45px minmax(0,1fr) 36px;gap:7px}
  .homeMuscleName{font-size:9.5px}
}


/* =========================================================
   MOBILE TEXT & LAYOUT STABILITY v62
   ========================================================= */
html,body,
.card,.section,.content,.side,
.homeworkCard,.exCard,.historyItem,.lookupBlock,
.sessionInfoCard,.adminMemberTimeline,.adminAssessmentBox,
.adminWorkoutLookup,.homeFeatureCard,.homeRecentCard,
.homeQuickCard,.homeMonthlyReport,.homeWeekCard,.homeTrendCard{
  word-break:keep-all;
  overflow-wrap:break-word;
}

.headerRow>*,
.homeCardTop>*,
.homeSectionHead>*,
.timelineHead>*,
.homeworkTop>*,
.programExerciseRow>*,
.exercisePickRow>*,
.exHead>*,
.exTop>*,
.member>*,
.field,
.label,
.small,
.msg,
.sub{
  min-width:0;
}

.title,.brand,.brandKo,
.homeWelcome h2,
.homeCardTop h3,.homeSectionHead h3,
.homeworkTitle,.exercisePickName,.exName,
.lookupScheduleName,.historyExerciseName,
#targetName,.memberName{
  word-break:keep-all;
  overflow-wrap:break-word;
  line-height:1.28;
}

.pill,.homeStateBadge,.homeworkBadge,.historyTag,
.statusBadge,.chip,.tag,.scaleHint b{
  white-space:nowrap;
}

.btn,.tab,.miniBtn,.homeTextBtn,.homeQuickAction,.modeBtn{
  word-break:keep-all;
  overflow-wrap:normal;
}
.btn:not(.wrapBtn),.miniBtn,.homeTextBtn{white-space:nowrap}

.lead,.heroStepText,.installNote,.installStep,
.homeFeatureMeta,.homeGreetingSub,.homeRateText span,
.homeWeekDetail,.homeTrendGuide,.memberMeta,.historyMemo{
  line-height:1.55;
}

.emailText,.urlText,input[type="email"],input[type="url"]{
  overflow-wrap:anywhere;
  word-break:break-word;
}

.tableWrap{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.tableWrap table{min-width:680px}

.exCard,.exercisePickRow,.homeworkCard,.historyItem{overflow:hidden}
.exName,.exercisePickName,.homeworkTitle{max-width:100%}

@media(max-width:720px){
  body{
    font-size:14px;
    -webkit-text-size-adjust:100%;
    text-size-adjust:100%;
  }

  .title{font-size:20px}
  .brandKo{font-size:clamp(30px,9vw,36px)}
  .homeWelcome h2{font-size:clamp(19px,5.8vw,23px)}
  #targetName{font-size:clamp(20px,6vw,23px)!important}

  .small,.sub,.msg{font-size:11px;line-height:1.5}
  .label{font-size:10.5px;line-height:1.35}

  .btnRow{align-items:stretch}
  .btnRow .btn{min-width:0;max-width:100%}
  .headerRow .btnRow .btn{padding-left:8px;padding-right:8px}

  .headerRow{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:8px;
    align-items:center;
  }
  .headerRow>div:first-child{min-width:0}
  .headerRow .btnRow{width:auto;min-width:0}

  .tab{
    line-height:1.15;
    letter-spacing:-.02em;
    white-space:nowrap;
  }

  .homeCardTop,.homeSectionHead,.homeworkTop,.timelineHead{
    align-items:flex-start;
  }
  .homeCardTop>div:first-child,
  .homeSectionHead>div:first-child,
  .homeworkTop>div:first-child{
    min-width:0;
    flex:1 1 auto;
  }

  .exercisePickRow{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:8px;
    align-items:center;
  }
  .exercisePickRow .btn,.exercisePickRow .miniBtn{
    width:auto;
    min-width:max-content;
  }

  .exHead,.exTop{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
  }
  .exHead>*,.exTop>*{min-width:0}
  .exName{flex:1 1 180px}

  .setRow input,.setRow select{
    min-width:0;
    width:100%;
  }

  .homeMuscleRow{
    grid-template-columns:48px minmax(0,1fr) 38px;
  }
  .homeMuscleName{white-space:nowrap}

  .homeworkActions,.backupActions,.videoActions{
    display:flex;
    flex-wrap:wrap;
    gap:6px;
  }
  .homeworkActions .btn,.backupActions .btn,.videoActions .btn{
    flex:1 1 auto;
    min-width:max-content;
  }

  .modalBox{
    width:min(94vw,560px);
    max-height:88vh;
    overflow:auto;
  }

  .loginCard,.hero{min-width:0}
  .installActionRow .btn{width:100%}
}

@media(max-width:390px){
  .wrap{padding-left:8px;padding-right:8px}
  .content,.side,.section{padding-left:10px;padding-right:10px}
  .btn{font-size:10px;padding-left:9px;padding-right:9px}
  .tab{font-size:9px}
  .homeQuickAction b{font-size:10.5px}
  .homeQuickAction small{font-size:8.5px}
  .homeMetricCard strong{font-size:18px}
  .homeRateRing{width:74px;height:74px}
  .homeRateRingInner strong{font-size:21px}
}


/* ADMIN DASHBOARD + HOMEWORK STATUS + QUICK LOG v63 */
.adminDashboard{
  margin-bottom:12px;
  padding:18px;
  border:1px solid rgba(83,106,137,.22);
  border-radius:20px;
  background:
    radial-gradient(circle at 0 0,rgba(65,213,173,.08),transparent 28%),
    linear-gradient(180deg,#0f1822,#0b131c);
  box-shadow:var(--shadowSoft);
}
.adminDashHero{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.adminDashKicker{font-size:9px;font-weight:950;letter-spacing:.15em;color:#61d9b8}
.adminDashHero h2{margin:4px 0 3px;font-size:23px;letter-spacing:-.04em}
.adminDashDate{font-size:10.5px;color:#708399}
.adminDashStats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:14px}
.adminDashStat{
  border:1px solid rgba(80,103,132,.18);border-radius:15px;background:#0b141d;
  color:#dfe8f2;padding:14px;text-align:left;cursor:pointer
}
.adminDashStat:hover{border-color:rgba(65,213,173,.28)}
.adminDashStat span{display:block;font-size:9.5px;color:#72859a;margin-bottom:8px}
.adminDashStat strong{font-size:27px;letter-spacing:-.05em}
.adminDashStat small{font-size:9px;color:#65788e;margin-left:2px}
.adminDashStat.warn strong{color:#f0c66c}.adminDashStat.danger strong{color:#ff8997}
.adminDashGrid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:9px}
.adminDashPanel{border:1px solid rgba(80,103,132,.18);border-radius:15px;background:#0b141d;padding:13px}
.adminDashPanelHead{display:flex;justify-content:space-between;gap:8px;margin-bottom:9px}
.adminDashPanelHead b{display:block;font-size:12.5px}
.adminDashPanelHead span{display:block;margin-top:3px;font-size:9px;color:#687c92}
.adminDashList{display:grid;gap:6px}
.adminDashMember{
  width:100%;border:1px solid rgba(80,103,132,.15);border-radius:12px;background:#101a25;
  color:#dfe8f2;padding:10px 11px;text-align:left;cursor:pointer
}
.adminDashMember:hover{border-color:rgba(65,213,173,.30)}
.adminDashMemberTop{display:flex;align-items:center;justify-content:space-between;gap:8px}
.adminDashMemberTop b{font-size:11.5px}.adminDashMemberMeta{margin-top:4px;font-size:9.5px;color:#77899e;line-height:1.45}
.adminDashBadge{padding:4px 7px;border-radius:999px;font-size:8.5px;font-weight:900;white-space:nowrap;background:#172536;color:#aebed0}
.adminDashBadge.good{background:rgba(65,213,173,.08);color:#77ddc0;border:1px solid rgba(65,213,173,.15)}
.adminDashBadge.warn{background:rgba(240,198,108,.07);color:#efcd7d;border:1px solid rgba(240,198,108,.15)}
.adminDashBadge.danger{background:rgba(255,107,125,.07);color:#ff95a3;border:1px solid rgba(255,107,125,.15)}

.homeworkBadge.assigned{color:#aebed0}
.homeworkBadge.viewed{color:#80b5ff;border-color:rgba(124,168,255,.24);background:rgba(124,168,255,.08)}
.homeworkBadge.started{color:#e7cb7c;border-color:rgba(240,198,108,.24);background:rgba(240,198,108,.08)}
.homeworkBadge.missed{color:#ff95a3;border-color:rgba(255,107,125,.24);background:rgba(255,107,125,.08)}
.homeworkBadge.completed{color:#78ddc1;border-color:rgba(65,213,173,.24);background:rgba(65,213,173,.08)}

.setRowWrap{margin-top:7px}
.setRowWrap .setRow{margin-top:0}
.setQuickTools{
  display:flex;gap:5px;align-items:center;flex-wrap:wrap;
  margin:5px 0 0 64px
}
.setQuickBtn{
  border:1px solid rgba(80,103,132,.18);border-radius:9px;background:#101a25;color:#9db0c5;
  font-size:9px;font-weight:850;padding:5px 7px;cursor:pointer;white-space:nowrap
}
.setQuickBtn:hover{border-color:rgba(65,213,173,.30);color:#dffbf3}
.setQuickBtn.weightPlus{color:#6fddbf}
.setDoneInline{
  border:1px solid rgba(65,213,173,.24);border-radius:11px;background:rgba(65,213,173,.08);color:#9cead8;
  font-size:11px;font-weight:950;padding:10px 9px;cursor:pointer;white-space:nowrap;min-height:42px
}
.setDoneInline.done{color:#07130f;background:#68dbbb;border-color:#68dbbb}
.setDoneInline:hover{border-color:rgba(65,213,173,.42);color:#eafff8}
.setRow--strength{grid-template-columns:64px minmax(0,1fr) minmax(0,1fr) 86px 78px 42px;grid-template-areas:"no weight reps vol done del"}
.setRow--mobility{grid-template-columns:64px minmax(0,1fr) 86px 78px 42px;grid-template-areas:"no reps vol done del"}
.setRow--strength .setNo,.setRow--mobility .setNo{grid-area:no}
.setRow--strength .setWeight{grid-area:weight}
.setRow--strength .setReps{grid-area:reps}
.setRow--mobility .setReps{grid-area:reps}
.setRow--strength .setVol,.setRow--mobility .setVol{grid-area:vol}
.setRow--strength .setDoneInline,.setRow--mobility .setDoneInline{grid-area:done}
.setRow--strength .setDelete,.setRow--mobility .setDelete{grid-area:del}
.setSetHint{font-size:10px;color:#7f95b7;margin:8px 0 2px 2px;line-height:1.45}
.copyFirstSetBtn{margin-left:7px!important}

@media(max-width:900px){.adminDashGrid{grid-template-columns:1fr}}
@media(max-width:720px){
  .adminDashboard{padding:13px;border-radius:16px}
  .adminDashStats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .adminDashStat{padding:11px}.adminDashStat strong{font-size:23px}
  .setQuickTools{margin-left:50px}
}


/* ADMIN CALENDAR + ASSESSMENT SUMMARY v64 */
.timelineLegend{
  display:flex;gap:10px;align-items:center;flex-wrap:wrap;
  margin:-2px 0 10px;font-size:9.5px;color:#718399
}
.timelineLegend span{display:flex;align-items:center;gap:5px}
.timelineLegendDot{width:7px;height:7px;border-radius:50%;display:inline-block}
.timelineLegendDot.homework{background:#a58cff}
.timelineLegendDot.lesson{background:#74a7ff}
.timelineLegendDot.done{background:#61d9b8}
.timelineLegendDot.assess{background:#f0c66c}
.calDot.homework{color:#b49cff}
.calDot.lesson{color:#82b1ff}
.calDot.done{color:#6bdfbf}
.calDot.assess{color:#efca75}

.assessmentSummaryCard{
  padding:14px;
  border:1px solid rgba(82,105,135,.20);
  border-radius:15px;
  background:
    radial-gradient(circle at 100% 0%,rgba(65,213,173,.055),transparent 35%),
    #0b141d;
  margin-bottom:12px;
}
.assessmentSummaryHead{
  display:flex;justify-content:space-between;gap:10px;align-items:flex-start
}
.assessmentSummaryHead>div{min-width:0}
.assessmentSummaryHead b{display:block;font-size:13px;margin-top:2px}
.assessmentSummaryKicker{font-size:8.5px;letter-spacing:.13em;color:#677a90;font-weight:950}
.assessmentRiskBadge{
  padding:5px 8px;border-radius:999px;font-size:9px;font-weight:900;white-space:nowrap;
  background:#172332;color:#9eafc2;border:1px solid #26394f
}
.assessmentRiskBadge.good{color:#78ddc1;background:rgba(65,213,173,.08);border-color:rgba(65,213,173,.20)}
.assessmentRiskBadge.warn{color:#efcd7d;background:rgba(240,198,108,.08);border-color:rgba(240,198,108,.20)}
.assessmentRiskBadge.danger{color:#ff95a3;background:rgba(255,107,125,.08);border-color:rgba(255,107,125,.20)}
.assessmentSummaryMetrics{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin-top:11px
}
.assessmentSummaryMetric{
  padding:9px 10px;border-radius:11px;background:#101a25;border:1px solid rgba(80,103,132,.14)
}
.assessmentSummaryMetric span{display:block;font-size:8.5px;color:#708298;margin-bottom:4px}
.assessmentSummaryMetric b{font-size:15px}
.assessmentSummaryFlags{
  display:flex;gap:5px;flex-wrap:wrap;margin-top:9px;color:#6f8197;font-size:9.5px;line-height:1.45
}
.assessmentFlag{
  padding:5px 7px;border-radius:999px;background:#151f2b;border:1px solid #25374c;color:#9eb0c4
}
.assessmentFlag.warn{color:#efca75;border-color:rgba(240,198,108,.20);background:rgba(240,198,108,.07)}
.assessmentFlag.danger{color:#ff95a3;border-color:rgba(255,107,125,.20);background:rgba(255,107,125,.07)}
.assessmentDecisionSummary{
  margin-top:9px;padding-top:9px;border-top:1px solid rgba(81,104,134,.14);
  color:#7f91a6;font-size:10px
}
.assessmentDecisionSummary b{color:#dce6f2}

@media(max-width:720px){
  .assessmentSummaryMetrics{grid-template-columns:repeat(2,minmax(0,1fr))}
  .timelineLegend{gap:7px}
}


/* =========================================================
   MOBILE-FIRST MEMBER UI v65
   PC를 축소한 화면이 아니라 회원 모바일 앱 레이아웃 우선
   ========================================================= */

@media(max-width:720px){

  /* ---------- 전체 뼈대 ---------- */
  .memberApp .wrap{
    width:100%;
    max-width:none;
    padding:8px 8px calc(104px + env(safe-area-inset-bottom));
  }
  .memberApp .layout{
    display:flex!important;
    flex-direction:column;
    gap:10px;
  }
  .memberApp main.content{
    order:1;
    padding:0!important;
    border:0!important;
    background:transparent!important;
    box-shadow:none!important;
    overflow:visible;
  }
  .memberApp aside.side{
    order:2;
    position:static;
    padding:13px!important;
    margin:2px 0 0!important;
    border-radius:15px!important;
    background:#0d1620!important;
  }

  /* 상단 회원명/메타는 홈과 하단 메뉴가 대신함 */
  .memberApp main.content > div:first-child{
    display:none!important;
  }

  /* 모바일에서는 중복 통계 제거 */
  .memberApp #topStats{display:none!important}

  /* ---------- 앱 헤더 ---------- */
  .memberApp .header{
    position:sticky;
    top:6px;
    z-index:80;
    padding:10px 11px!important;
    margin-bottom:8px;
    border-radius:15px!important;
    background:rgba(11,18,27,.94)!important;
    backdrop-filter:blur(18px);
    -webkit-backdrop-filter:blur(18px);
  }
  .memberApp .headerRow{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    gap:7px!important;
    align-items:center!important;
  }
  .memberApp .appBrandLine{margin-bottom:1px}
  .memberApp .appBrandMark{font-size:8px}
  .memberApp .appBrandSub{font-size:8px}
  .memberApp .title{
    font-size:18px!important;
    line-height:1.05!important;
    margin:0!important;
  }
  .memberApp #who,
  .memberApp .sessionStatus{
    display:none!important;
  }
  .memberApp .header .btnRow{
    display:flex!important;
    width:auto!important;
    gap:4px!important;
    align-items:center;
  }
  .memberApp .header .btn{
    min-height:34px!important;
    height:34px;
    padding:6px 8px!important;
    border-radius:10px!important;
    font-size:9px!important;
  }
  .memberApp 
  .memberApp .helpIconBtnHeader{
    width:34px!important;
    height:34px!important;
    min-width:34px!important;
    font-size:15px!important;
  }

  /* ---------- 회원 하단 네비게이션 ---------- */
  .memberApp .tabs{
    position:fixed!important;
    left:7px!important;
    right:7px!important;
    bottom:6px!important;
    z-index:100!important;
    display:flex!important;
    gap:2px!important;
    padding:5px 4px calc(5px + env(safe-area-inset-bottom))!important;
    margin:0!important;
    border-radius:18px!important;
    background:rgba(8,14,22,.96)!important;
    border:1px solid rgba(77,100,129,.28)!important;
    box-shadow:0 14px 46px rgba(0,0,0,.58)!important;
    backdrop-filter:blur(20px);
    -webkit-backdrop-filter:blur(20px);
  }
  .memberApp .tab{
    flex:1 1 20%!important;
    min-width:0!important;
    min-height:55px!important;
    padding:5px 1px!important;
    border-radius:13px!important;
    font-size:9px!important;
    line-height:1.05!important;
    letter-spacing:-.035em!important;
    white-space:nowrap!important;
  }
  .memberApp .tab::before{
    font-size:18px!important;
    margin:0 0 2px!important;
  }
  .memberApp .tab[data-tab="home"]{order:1}
  .memberApp .tab[data-tab="builder"]{order:2}
  .memberApp .tab[data-tab="programs"]{order:3}
  .memberApp .tab[data-tab="history"]{order:4}
  .memberApp .tab[data-tab="progress"]{order:5}
  .memberApp .tab[data-tab="backups"]{order:6}

  /* ---------- 섹션 기본 ---------- */
  .memberApp .section{
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
  }
  .memberApp .section > *{
    min-width:0;
  }

  /* ---------- 홈 ---------- */
  .memberApp .homeDashboard{
    display:flex;
    flex-direction:column;
    gap:8px;
  }
  .memberApp .homeWelcome{
    padding:14px 14px!important;
    min-height:auto!important;
    border-radius:16px!important;
  }
  .memberApp .homeDate{
    margin-bottom:4px!important;
    font-size:9px!important;
  }
  .memberApp .homeWelcome h2{
    font-size:20px!important;
    line-height:1.22!important;
  }
  .memberApp .homeGreetingSub{
    margin-top:4px!important;
    font-size:10px!important;
  }
  .memberApp .homeInitialAvatar{
    width:44px!important;
    height:44px!important;
    border-radius:13px!important;
    font-size:17px!important;
  }
  .memberApp .homeMainGrid,
  .memberApp .homeBottomGrid,
  .memberApp .homeInsightGrid,
  .memberApp .homeMonthlyReportGrid{
    grid-template-columns:1fr!important;
    gap:8px!important;
    margin-top:0!important;
  }
  .memberApp .homeFeatureCard,
  .memberApp .homeRecentCard,
  .memberApp .homeQuickCard,
  .memberApp .homeWeekCard,
  .memberApp .homeTrendCard,
  .memberApp .homeMonthlyReport{
    padding:13px!important;
    border-radius:15px!important;
  }
  .memberApp .homeCardTop h3,
  .memberApp .homeSectionHead h3{
    font-size:16px!important;
    line-height:1.28!important;
  }
  .memberApp .homeFeatureMeta{
    font-size:10px!important;
    margin-top:6px!important;
  }
  .memberApp .homeExercisePreview{
    margin-top:9px!important;
  }
  .memberApp .homeExercisePill{
    padding:5px 8px!important;
    font-size:9.5px!important;
  }
  .memberApp .homePrimaryAction,
  .memberApp .homeSecondaryAction{
    min-height:46px;
    margin-top:11px!important;
    font-size:12px!important;
  }
  .memberApp .homeMetricGrid{
    gap:5px!important;
    margin-top:0!important;
  }
  .memberApp .homeMetricCard{
    min-width:0;
    padding:11px 8px!important;
    text-align:center;
  }
  .memberApp .homeMetricLabel{
    font-size:8px!important;
    white-space:nowrap;
  }
  .memberApp .homeMetricCard strong{
    font-size:19px!important;
  }

  /* 하단 네비게이션과 중복되는 바로가기 제거 */
  .memberApp .homeQuickCard{
    display:none!important;
  }

  /* 월간 리포트는 모바일에서 간결하게 */
  .memberApp .homeMonthlyReport{
    margin-top:0!important;
  }
  .memberApp .homeRateArea{
    grid-template-columns:1fr 1fr!important;
    gap:6px!important;
  }
  .memberApp .homeRateCard{
    min-height:150px!important;
    padding:10px 6px!important;
  }
  .memberApp .homeRateRing{
    width:72px!important;
    height:72px!important;
  }
  .memberApp .homeRateRingInner strong{
    font-size:21px!important;
  }
  .memberApp .homeRateText span{
    font-size:8px!important;
  }

  /* ---------- 운동작성 ---------- */
  .memberApp #tab-builder .guide{
    margin:0 0 8px!important;
    border-radius:13px!important;
  }
  .memberApp #tab-builder .guideHead{
    min-height:42px;
    padding:10px 12px!important;
    font-size:11px!important;
  }
  .memberApp #tab-builder .guideBody{
    padding:0 12px 12px!important;
    font-size:10px!important;
    line-height:1.6!important;
  }
  .memberApp .builderModeNotice{
    margin-bottom:8px!important;
    padding:9px 10px!important;
    border-radius:12px!important;
  }
  .memberApp .builderModeNotice b{
    font-size:11px!important;
  }
  .memberApp .builderModeNotice span{
    display:block;
    margin-top:2px;
    font-size:8.5px!important;
    line-height:1.4!important;
  }

  .memberApp .sessionInfoGroups{
    gap:7px!important;
  }
  .memberApp .sessionInfoCard{
    padding:11px!important;
    border-radius:13px!important;
  }
  .memberApp .sessionInfoHead{
    margin-bottom:8px!important;
  }
  .memberApp .sessionInfoHead b{
    font-size:12px!important;
  }
  .memberApp .sessionInfoHead span{
    font-size:8.5px!important;
    line-height:1.35!important;
  }

  /* 회원은 신체정보가 계정에 저장되어 있으므로 운동작성에서는 숨김 */
  .memberApp .trainingDefaultGroup{
    display:none!important;
  }

  .memberApp .selfCheckGrid{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:7px!important;
  }
  .memberApp .selfMemoField{
    grid-column:1/-1!important;
  }

  /* iOS/Android에서 입력 시 자동 확대 방지 */
  .memberApp .input,
  .memberApp .select,
  .memberApp .textarea{
    min-height:44px!important;
    font-size:16px!important;
    border-radius:11px!important;
  }
  .memberApp .textarea{min-height:88px!important}
  .memberApp .label{
    font-size:9.5px!important;
    margin-bottom:5px!important;
  }
  .memberApp .scaleHint{
    font-size:8px!important;
    line-height:1.35!important;
  }

  .memberApp #assignedScheduleCard{
    padding:12px!important;
    border-radius:14px!important;
    margin:8px 0!important;
  }
  .memberApp #loadAssignedScheduleBtn{
    width:100%!important;
    min-height:44px!important;
  }

  .memberApp .musclePickerTitle{
    margin-top:9px!important;
    font-size:13px!important;
  }
  .memberApp .muscleHelp{
    display:none!important;
  }
  .memberApp .exerciseSearchBox{
    padding:10px!important;
    border-radius:13px!important;
  }
  .memberApp .exerciseSearchRow{
    grid-template-columns:minmax(0,1fr) auto!important;
    gap:6px!important;
  }
  .memberApp #clearExerciseSearchBtn{
    min-width:54px!important;
    padding-left:8px!important;
    padding-right:8px!important;
  }

  /* 운동 카테고리/종목 */
  .memberApp .catalogSectionTitle{
    gap:6px!important;
  }
  .memberApp .exercisePickRow{
    padding:10px!important;
    border-radius:12px!important;
  }
  .memberApp .exercisePickName{
    font-size:12px!important;
    line-height:1.3!important;
  }

  /* 실제 운동 카드 */
  .memberApp .exerciseList{
    gap:8px!important;
  }
  .memberApp .exCard{
    padding:11px!important;
    border-radius:14px!important;
  }
  .memberApp .exHead{
    align-items:flex-start!important;
    gap:7px!important;
  }
  .memberApp .exName{
    flex:1 1 100%!important;
    width:100%;
    font-size:15px!important;
    line-height:1.32!important;
  }
  .memberApp .exMuscles{
    font-size:9.5px!important;
  }
  .memberApp .exControls{
    width:100%;
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:5px!important;
  }
  .memberApp .exControls .miniBtn{
    width:100%!important;
    min-width:0!important;
    height:36px!important;
    padding:5px!important;
    font-size:9px!important;
  }
  .memberApp .exConfig{
    grid-template-columns:1fr 1fr!important;
    gap:6px!important;
    margin-top:9px!important;
  }
  .memberApp .exConfig .input,
  .memberApp .exConfig .select{
    min-height:40px!important;
  }

  /* 세트는 모바일에서 숫자 입력 중심으로 */
  .memberApp .sets{
    margin-top:9px!important;
    padding-top:7px!important;
  }
  .memberApp .setRow{
    display:grid!important;
    grid-template-columns:40px minmax(0,1fr) minmax(0,1fr)!important;
    gap:6px!important;
    align-items:center!important;
  }
  .memberApp .setNo{
    font-size:10px!important;
    white-space:nowrap;
  }
  .memberApp .setRow .setWeight,
  .memberApp .setRow .setReps{
    min-width:0!important;
    width:100%!important;
    height:43px!important;
    text-align:center;
    padding:6px!important;
  }
  .memberApp .setVol{
    grid-column:2/4!important;
    text-align:left!important;
    padding-left:3px;
    font-size:10px!important;
  }
  .memberApp .setRow--strength{
    grid-template-columns:40px minmax(0,1fr) minmax(0,1fr) 30px!important;
    grid-template-areas:"no weight reps del" ". vol done done"!important;
  }
  .memberApp .setRow--mobility{
    grid-template-columns:40px minmax(0,1fr) 30px!important;
    grid-template-areas:"no reps del" ". vol done"!important;
  }
  .memberApp .setRow--strength .setVol,.memberApp .setRow--mobility .setVol{
    grid-column:auto!important;
  }
  .memberApp .setDoneInline{
    min-height:34px!important;
    font-size:9.5px!important;
    padding:7px 6px!important;
    border-radius:10px!important;
  }
  .memberApp .setDelete{
    position:absolute;
    right:11px;
    margin-top:47px;
    width:31px!important;
    min-width:31px!important;
    height:31px!important;
    padding:0!important;
    border-radius:9px!important;
  }
  .memberApp .setRowWrap{
    position:relative;
    padding:2px 0 5px;
    border-bottom:1px solid rgba(76,98,126,.12);
  }
  .memberApp .setQuickTools{
    margin:5px 38px 0 46px!important;
    gap:4px!important;
  }
  .memberApp .setQuickBtn{
    flex:1 1 auto;
    min-height:30px;
    padding:5px 6px!important;
    font-size:8.5px!important;
  }
  .memberApp .sets > .btnRow{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:6px!important;
  }
  .memberApp .sets > .btnRow .btn{
    width:100%!important;
    min-width:0!important;
    margin:0!important;
    font-size:9.5px!important;
  }

  /* 저장 바는 하단 네비 위 */
  .memberApp .totalBar{
    position:sticky!important;
    bottom:78px!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    gap:8px!important;
    padding:9px 10px!important;
    margin-top:10px!important;
    border-radius:14px!important;
    background:rgba(8,17,27,.97)!important;
  }
  .memberApp .totalBar > div{
    gap:14px!important;
    flex-wrap:nowrap!important;
  }
  .memberApp .totalBar .small{
    font-size:8px!important;
    white-space:nowrap;
  }
  .memberApp .totalVal{
    font-size:18px!important;
  }
  .memberApp .saveSessionOneLine{
    min-width:104px!important;
    min-height:44px!important;
    padding:8px 10px!important;
    font-size:11px!important;
  }

  /* ---------- 숙제 ---------- */
  .memberApp #tab-programs .homeworkCard{
    padding:12px!important;
    border-radius:14px!important;
  }
  .memberApp .homeworkTop{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    gap:7px!important;
  }
  .memberApp .homeworkTitle{
    font-size:14px!important;
    line-height:1.3!important;
  }
  .memberApp .homeworkMeta{
    font-size:9px!important;
    line-height:1.5!important;
  }
  .memberApp .homeworkActions{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:6px!important;
  }
  .memberApp .homeworkActions .btn{
    width:100%!important;
    min-width:0!important;
    font-size:9.5px!important;
  }

  /* ---------- 운동일지 ---------- */
  .memberApp .historyTop{
    margin:0 0 8px!important;
  }
  .memberApp .historyTop h3{
    font-size:17px!important;
  }
  .memberApp .historyCard{
    border-radius:14px!important;
  }
  .memberApp .historySummary{
    display:grid!important;
    grid-template-columns:56px minmax(0,1fr)!important;
    gap:8px!important;
    padding:11px!important;
  }
  .memberApp .historyDate{
    font-size:15px!important;
  }
  .memberApp .historyDay{
    font-size:8px!important;
  }
  .memberApp .historyWorkoutText{
    font-size:12px!important;
    line-height:1.35!important;
  }
  .memberApp .historyMeta{
    font-size:9px!important;
    line-height:1.45!important;
  }
  .memberApp .historyActions{
    grid-column:1/-1!important;
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:5px!important;
  }
  .memberApp .historyActions .btn{
    width:100%!important;
    min-width:0!important;
    padding:8px 4px!important;
    font-size:9px!important;
  }
  .memberApp .historyDetails{
    padding-left:10px!important;
    padding-right:10px!important;
  }

  /* ---------- 변화 ---------- */
  .memberApp #tab-progress .stat,
  .memberApp #tab-progress .card{
    border-radius:14px!important;
  }

  /* ---------- 내 계정: 맨 아래 보조 영역 ---------- */
  .memberApp aside.side .sideTitle{
    font-size:12px!important;
  }
  .memberApp aside.side .sideNote{
    font-size:9.5px!important;
    line-height:1.45!important;
  }
  .memberApp #toggleAccountProfileBtn{
    min-height:42px!important;
    font-size:10px!important;
  }

  /* 버튼은 손가락 터치 영역 확보 */
  .memberApp button,
  .memberApp .btn{
    touch-action:manipulation;
  }
}

/* 매우 작은 화면 */
@media(max-width:390px){
  .memberApp .wrap{padding-left:6px!important;padding-right:6px!important}
  .memberApp .tab{font-size:8.5px!important}
  .memberApp .tab::before{font-size:17px!important}
  .memberApp .homeWelcome h2{font-size:18px!important}
  .memberApp .homeInitialAvatar{width:40px!important;height:40px!important}
  .memberApp .homeMetricCard{padding:10px 5px!important}
  .memberApp .homeMetricCard strong{font-size:17px!important}
  .memberApp .header .btn{padding-left:6px!important;padding-right:6px!important}
  .memberApp .setQuickTools{margin-left:44px!important;margin-right:36px!important}
}


/* =========================================================
   JUST START + SESSION TIMER v66
   ========================================================= */
.homeConsistencyCard{
  padding:13px 15px;
  border:1px solid rgba(83,106,137,.20);
  border-radius:16px;
  background:#0c151f;
}
.homeConsistencyTop{
  display:flex;align-items:center;justify-content:space-between;gap:10px
}
.homeConsistencyTop>div{min-width:0}
.homeConsistencyLabel{
  display:block;color:#71849a;font-size:9px;margin-bottom:3px
}
.homeConsistencyTop b{font-size:16px;letter-spacing:-.03em}
.homeConsistencyBadge{
  padding:5px 8px;border-radius:999px;
  border:1px solid rgba(65,213,173,.20);
  background:rgba(65,213,173,.07);
  color:#79dfc1;font-size:9px;font-weight:900;white-space:nowrap
}
.homeConsistencyTrack{
  height:7px;border-radius:999px;overflow:hidden;
  background:#172432;margin-top:10px
}
.homeConsistencyTrack i{
  display:block;width:0%;height:100%;border-radius:inherit;
  background:linear-gradient(90deg,#52d5af,#75a8ff);
  transition:width .25s ease
}
.homeConsistencyMessage{
  margin-top:7px;color:#6f8298;font-size:9.5px;line-height:1.45
}

.workoutTimerCard{
  margin:10px 0;
  padding:15px;
  border:1px solid rgba(65,213,173,.22);
  border-radius:17px;
  background:
    radial-gradient(circle at 100% 0%,rgba(65,213,173,.08),transparent 34%),
    linear-gradient(180deg,#0e1922,#09131c);
  box-shadow:var(--shadowSoft);
}
.workoutTimerHead{
  display:flex;align-items:flex-start;justify-content:space-between;gap:10px
}
.workoutTimerHead>div{min-width:0}
.workoutTimerKicker{
  display:block;font-size:8px;letter-spacing:.13em;color:#6bd9ba;font-weight:950
}
.workoutTimerHead b{display:block;margin-top:3px;font-size:14px}
.workoutTimerHead small{
  display:block;margin-top:4px;color:#71849a;font-size:9px;line-height:1.45
}
.workoutTimerStateBadge{
  padding:5px 8px;border-radius:999px;font-size:9px;font-weight:900;
  white-space:nowrap;border:1px solid #26394c;background:#14202c;color:#9bacbd
}
.workoutTimerStateBadge.running{
  color:#74ddbf;border-color:rgba(65,213,173,.22);background:rgba(65,213,173,.08)
}
.workoutTimerStateBadge.rest{
  color:#f1ca73;border-color:rgba(240,198,108,.22);background:rgba(240,198,108,.08)
}
.workoutTimerStateBadge.paused{
  color:#a9b8c9;background:#172432;border-color:#2a3c50
}
.workoutTimerMain{
  display:grid;grid-template-columns:minmax(0,1.3fr) minmax(150px,.7fr);
  gap:8px;margin-top:12px
}
.workoutTimerTotal,.workoutTimerPhase{
  padding:12px;border-radius:13px;
  border:1px solid rgba(82,104,132,.16);background:#09121a
}
.workoutTimerTotal span,.workoutTimerPhase span{
  display:block;font-size:8.5px;color:#6c7f95;margin-bottom:4px
}
.workoutTimerTotal strong{
  font-size:29px;letter-spacing:.02em;font-variant-numeric:tabular-nums
}
.workoutTimerPhase strong{
  font-size:22px;letter-spacing:.01em;font-variant-numeric:tabular-nums
}
.workoutTimerMetrics{
  display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:7px
}
.workoutTimerMetrics>div{
  padding:9px 10px;border-radius:11px;background:#101a24;
  border:1px solid rgba(82,104,132,.13)
}
.workoutTimerMetrics span{display:block;font-size:8px;color:#6d8095;margin-bottom:3px}
.workoutTimerMetrics b{font-size:13px;font-variant-numeric:tabular-nums}
.workoutTimerCurrent{
  margin-top:8px;padding:9px 10px;border-radius:10px;
  background:#101a24;color:#9eb0c3;font-size:9.5px;line-height:1.4
}
.workoutTimerActions{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-top:8px
}
.workoutTimerActions .btn{min-width:0;padding:9px 5px;font-size:9px}

.setDoneBtn{
  color:#7cddc2!important;
  border-color:rgba(65,213,173,.20)!important;
  background:rgba(65,213,173,.07)!important
}
.setDoneBtn.done{
  color:#07130f!important;background:#68dbbb!important;border-color:#68dbbb!important
}
.setRowWrap.completed{
  opacity:.76;
  border-radius:10px;
  background:rgba(65,213,173,.025)
}
.prevSetQuick{
  color:#9ebeff!important;
  border-color:rgba(124,168,255,.20)!important;
  background:rgba(124,168,255,.06)!important
}

.workoutCompleteBox{
  max-width:480px;text-align:center;padding:24px
}
.workoutCompleteCheck{
  width:58px;height:58px;margin:0 auto 12px;border-radius:18px;
  display:grid;place-items:center;
  background:linear-gradient(135deg,#79e8c9,#4bcba7);
  color:#07120f;font-size:28px;font-weight:950
}
.workoutCompleteKicker{
  color:#65d9b9;font-size:9px;font-weight:950;letter-spacing:.14em
}
.workoutCompleteBox h2{margin:5px 0 7px;font-size:25px;letter-spacing:-.04em}
.workoutCompleteBox p{
  max-width:330px;margin:0 auto;color:#788ba0;font-size:10.5px;line-height:1.55
}
.workoutCompleteStats{
  display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:17px
}
.workoutCompleteStats>div{
  padding:11px 7px;border-radius:12px;background:#0c151e;
  border:1px solid rgba(82,104,132,.16)
}
.workoutCompleteStats span{display:block;font-size:8px;color:#71849a;margin-bottom:5px}
.workoutCompleteStats b{font-size:15px;font-variant-numeric:tabular-nums}
.workoutCompleteWeek{
  margin-top:10px;padding:12px;border-radius:13px;text-align:left;
  background:#0c151e;border:1px solid rgba(82,104,132,.16)
}
.workoutCompleteWeek>span{font-size:8.5px;color:#71849a}
.workoutCompleteWeek>b{float:right;font-size:11px}
.workoutCompleteTrack{
  clear:both;height:7px;border-radius:999px;background:#172432;overflow:hidden;margin-top:8px
}
.workoutCompleteTrack i{
  display:block;height:100%;width:0;border-radius:inherit;background:linear-gradient(90deg,#54d4b0,#75a8ff)
}
.workoutCompleteWeek small{display:block;margin-top:7px;color:#778ba0;font-size:9px}
.workoutCompleteActions{
  display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:12px
}
.workoutCompleteActions .btn{min-height:44px}

@media(max-width:720px){
  .memberApp .homeConsistencyCard{padding:11px 12px;border-radius:14px}
  .memberApp .workoutTimerCard{
    position:sticky;
    top:65px;
    z-index:72;
    margin:8px 0;
    padding:11px;
    border-radius:14px;
    backdrop-filter:blur(18px);
    -webkit-backdrop-filter:blur(18px);
    background:rgba(9,18,27,.96)
  }
  .memberApp .workoutTimerHead small{display:none}
  .memberApp .workoutTimerMain{
    grid-template-columns:minmax(0,1.15fr) minmax(105px,.85fr);
    gap:5px;margin-top:8px
  }
  .memberApp .workoutTimerTotal,.memberApp .workoutTimerPhase{padding:9px}
  .memberApp .workoutTimerTotal strong{font-size:24px}
  .memberApp .workoutTimerPhase strong{font-size:19px}
  .memberApp .workoutTimerMetrics{gap:4px;margin-top:5px}
  .memberApp .workoutTimerMetrics>div{padding:7px}
  .memberApp .workoutTimerCurrent{margin-top:5px;padding:7px 8px;font-size:8.5px}
  .memberApp .workoutTimerActions{grid-template-columns:repeat(2,1fr);gap:5px;margin-top:6px}
  .memberApp .workoutTimerActions .btn{min-height:36px!important;font-size:9px!important}
  .memberApp .setQuickTools{
    margin-right:36px!important;
  }
  .memberApp .setQuickTools .setDoneBtn{
    flex-basis:100%;
  }
  .workoutCompleteBox{width:min(94vw,460px);padding:20px 15px}
}


/* =========================================================
   INSTALL UI v67
   ========================================================= */
.installArea{
  margin-top:12px;
  padding:13px;
  border:1px solid rgba(83,106,137,.20);
  border-radius:15px;
  background:#0d1620;
}
.installAreaHead b{
  display:block;
  font-size:12px;
  margin-bottom:4px;
}
.installAreaHead span{
  display:block;
  color:#74869b;
  font-size:9.5px;
  line-height:1.45;
}
.installPrimaryBtn{
  width:100%;
  min-height:44px;
  margin-top:10px;
  font-weight:900;
}
.installPlatformGrid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:7px;
  margin-top:8px;
}
.installPlatformCard{
  min-width:0;
  padding:10px;
  border-radius:12px;
  border:1px solid rgba(82,104,132,.16);
  background:#09131c;
}
.installPlatformCardHead{
  display:flex;
  align-items:center;
  gap:6px;
  margin-bottom:7px;
}
.installPlatformCardHead b{
  font-size:10.5px;
}
.installPlatformIcon{
  width:23px;
  height:23px;
  border-radius:7px;
  display:grid;
  place-items:center;
  background:#152230;
  color:#9fd9c8;
  font-size:11px;
  font-weight:950;
}
.installPlatformCard ol{
  margin:0;
  padding-left:17px;
  color:#8799ad;
  font-size:8.8px;
  line-height:1.55;
}
.installPlatformCard li+li{
  margin-top:3px;
}
.installPcNote{
  margin-top:8px;
  padding-top:8px;
  border-top:1px solid rgba(82,104,132,.14);
  color:#72849a;
  font-size:8.8px;
  line-height:1.45;
}
#installAppBtnHeader{
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
@media(max-width:720px){
  .installPlatformGrid{
    grid-template-columns:1fr;
  }
  .memberApp #installAppBtnHeader{
    display:inline-flex!important;
  }
  .memberApp .header .btnRow{
    gap:4px!important;
  }
  .memberApp #installAppBtnHeader{
    padding-left:7px!important;
    padding-right:7px!important;
  }
}
@media(max-width:390px){
  .memberApp #installAppBtnHeader{
    font-size:8.5px!important;
  }
  .memberApp #changePasswordBtn{
    display:none!important;
  }
}


/* =========================================================
   COMPACT INSTALL + LOGIN FIX v68
   ========================================================= */
.installCompact{
  margin-top:12px;
  padding-top:11px;
  border-top:1px solid rgba(82,104,132,.14);
}
.installCompactRow{
  display:grid;
  grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);
  gap:7px;
}
.installCompactRow .btn{
  width:100%;
  min-width:0;
  min-height:42px;
}
.installInlineGuide{
  margin-top:8px;
  padding:10px 11px;
  border-radius:12px;
  background:#0b141d;
  border:1px solid rgba(82,104,132,.16);
}
.installGuideItem{
  display:grid;
  grid-template-columns:86px minmax(0,1fr);
  gap:8px;
  align-items:start;
  padding:5px 0;
}
.installGuideItem+.installGuideItem{
  border-top:1px solid rgba(82,104,132,.10);
}
.installGuideItem b{
  font-size:9.5px;
  color:#c7d4e1;
}
.installGuideItem span{
  min-width:0;
  font-size:9px;
  color:#788ba0;
  line-height:1.45;
  word-break:keep-all;
}
#loginBtn:disabled{
  opacity:.65;
  cursor:wait;
}
@media(max-width:720px){
  .installCompact{margin-top:10px;padding-top:9px}
  .installCompactRow{grid-template-columns:1fr 1fr}
  .installCompactRow .btn{min-height:44px!important;font-size:10px!important}
  .installGuideItem{grid-template-columns:78px minmax(0,1fr)}
}
@media(max-width:390px){
  .installGuideItem{grid-template-columns:1fr;gap:2px}
}


/* =========================================================
   PAIN INPUT + COMPACT TIMER v71
   ========================================================= */
.painScoreNative{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  opacity:0!important;
  pointer-events:none!important;
}
.painField{position:relative}
.painScoreButtons{
  display:grid;
  grid-template-columns:repeat(11,minmax(0,1fr));
  gap:4px;
}
.painScoreBtn{
  min-width:0;
  height:38px;
  padding:0;
  border-radius:9px;
  border:1px solid rgba(82,104,132,.22);
  background:#0c1722;
  color:#9aacbf;
  font-size:10px;
  font-weight:850;
  cursor:pointer;
}
.painScoreBtn.selected{
  background:#62d9b8;
  border-color:#62d9b8;
  color:#07130f;
}
.painScoreBtn.high.selected{
  background:#f0c66c;
  border-color:#f0c66c;
  color:#171006;
}
.painScoreBtn.veryHigh.selected{
  background:#ff8898;
  border-color:#ff8898;
  color:#19070a;
}

.workoutTimerCard.compact{
  padding:0!important;
  overflow:hidden;
}
.workoutTimerCompactBar{
  width:100%;
  min-height:46px;
  display:grid;
  grid-template-columns:auto auto minmax(0,1fr) auto;
  gap:8px;
  align-items:center;
  padding:8px 10px;
  border:0;
  background:transparent;
  color:#dbe6f1;
  text-align:left;
  cursor:pointer;
}
.workoutCompactState{
  padding:4px 7px;
  border-radius:999px;
  font-size:8.5px;
  font-weight:900;
  white-space:nowrap;
  color:#9bacbd;
  background:#15212d;
}
.workoutCompactState.running{color:#72ddbf;background:rgba(65,213,173,.08)}
.workoutCompactState.rest{color:#f0cb77;background:rgba(240,198,108,.08)}
.workoutCompactState.paused{color:#a9b8c9;background:#172432}
.workoutTimerCompactBar b{
  font-size:16px;
  font-variant-numeric:tabular-nums;
  letter-spacing:-.02em;
}
.workoutTimerCompactBar #workoutCompactPhase{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#7e91a6;
  font-size:9.5px;
}
.workoutTimerChevron{
  color:#6f8298;
  font-size:15px;
  transition:transform .18s ease;
}
.workoutTimerCard.expanded .workoutTimerChevron{
  transform:rotate(180deg);
}
.workoutTimerDetails{
  padding:0 11px 11px;
  border-top:1px solid rgba(82,104,132,.12);
}

@media(max-width:720px){
  .memberApp .painScoreButtons{
    grid-template-columns:repeat(6,minmax(0,1fr));
    gap:5px;
  }
  .memberApp .painScoreBtn{
    min-height:42px;
    height:42px;
    font-size:11px;
  }

  .memberApp .workoutTimerCard{
    top:65px;
    padding:0!important;
    border-radius:13px!important;
  }
  .memberApp .workoutTimerCompactBar{
    min-height:44px;
    padding:7px 9px;
  }
  .memberApp .workoutTimerDetails{
    padding:0 9px 9px;
  }
}


/* =========================================================
   PAIN SELECT + TIMER RESET v72
   ========================================================= */
#workoutTimerResetBtn{
  grid-column:auto;
}
@media(max-width:720px){
  .memberApp #workoutTimerResetBtn{
    grid-column:1/-1;
    min-height:34px!important;
  }
}


/* =========================================================
   LOGIN HERO v75 — selected visual direction
   ========================================================= */
.loginHeroV75{
  padding:42px 40px;
  justify-content:center;
  background:
    radial-gradient(circle at 8% 14%,rgba(20,208,178,.17),transparent 30%),
    radial-gradient(circle at 96% 88%,rgba(19,93,99,.12),transparent 30%),
    linear-gradient(155deg,rgba(8,25,35,.995),rgba(7,18,30,.995));
  border-color:rgba(109,154,172,.20);
}
.loginHeroV75 .pill{
  padding:8px 14px;
  border-color:rgba(49,219,190,.42);
  background:rgba(19,115,103,.12);
  color:#a4eadb;
  letter-spacing:.14em;
}
.loginHeroV75 .heroKicker{
  margin:32px 0 10px;
  color:#b8c6d3;
  font-size:13px;
  font-weight:600;
  letter-spacing:-.01em;
}
.loginSlogan{
  margin:6px 0 18px!important;
  max-width:none!important;
  font-size:clamp(54px,6vw,76px)!important;
  line-height:.95!important;
  letter-spacing:-.065em!important;
  white-space:nowrap;
  color:#f7f9fb;
}
.loginSlogan span{color:#60e1c8}
.loginLead{
  max-width:560px;
  color:#aebdcc!important;
  font-size:16px!important;
  line-height:1.7!important;
  letter-spacing:-.02em;
}
.loginFeatureList{
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:10px!important;
  margin-top:26px!important;
}
.loginFeature{
  display:grid;
  grid-template-columns:64px minmax(0,1fr);
  align-items:center;
  gap:14px;
  min-height:94px;
  padding:14px 16px!important;
  border-radius:18px!important;
  background:linear-gradient(135deg,rgba(14,31,40,.78),rgba(11,25,35,.84))!important;
  border:1px solid rgba(89,142,159,.23)!important;
}
.loginFeatureIcon{
  width:58px;height:58px;
  display:grid;place-items:center;
  border-radius:16px;
  background:linear-gradient(145deg,rgba(17,126,113,.34),rgba(9,56,60,.42));
  border:1px solid rgba(44,197,174,.24);
}
.loginFeatureIcon svg{
  width:30px;height:30px;
  fill:none;stroke:#66e2cb;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;
}
.loginFeatureCopy{min-width:0}
.loginFeatureCopy .loginFeatureNo{
  display:block;
  margin-bottom:2px;
  color:#34cdb1;
  font-size:11px;
  font-weight:800;
  letter-spacing:.08em;
}
.loginFeatureCopy b{
  display:block;
  margin:0 0 4px!important;
  color:#f0f4f7;
  font-size:17px!important;
  letter-spacing:-.03em;
}
.loginFeatureCopy>span:last-child{
  display:block;
  color:#a8b7c5!important;
  font-size:12px!important;
  line-height:1.45!important;
}
.loginFeatureArrow{
  color:#91a9b7;
  font-size:28px;
  line-height:1;
  font-weight:300;
}
.loginHeroV75 .heroFooter{
  margin-top:24px;
  padding-top:18px;
  text-align:center;
  color:#7f93a6;
  font-size:11px;
  letter-spacing:.01em;
}

@media(max-width:720px){
  .loginHeroV75{padding:28px 22px!important}
  .loginHeroV75 .heroKicker{margin-top:28px;font-size:12px}
  .loginSlogan{
    font-size:clamp(44px,13.7vw,58px)!important;
    line-height:.96!important;
  }
  .loginLead{font-size:14px!important;line-height:1.65!important}
  .loginFeatureList{margin-top:22px!important}
  .loginFeature{
    grid-template-columns:58px minmax(0,1fr);
    gap:12px;
    min-height:88px;
    padding:12px 13px!important;
  }
  .loginFeatureIcon{width:52px;height:52px;border-radius:15px}
  .loginFeatureIcon svg{width:27px;height:27px}
  .loginFeatureCopy b{font-size:16px!important}
  .loginFeatureCopy>span:last-child{font-size:11.5px!important}
}
@media(max-width:390px){
  .loginHeroV75{padding:24px 18px!important}
  .loginSlogan{font-size:42px!important}
  .loginFeature{
    grid-template-columns:50px minmax(0,1fr);
    gap:10px;
  }
  .loginFeatureIcon{width:46px;height:46px}
  .loginFeatureArrow{font-size:23px}
}


/* =========================================================
   DIRECT PWA INSTALL v76
   ========================================================= */
.installBtn.installReady{
  border-color:rgba(72,221,185,.42)!important;
  background:rgba(65,213,173,.12)!important;
  color:#83e7ca!important;
}
.installBtn:disabled{
  opacity:.58;
  cursor:default;
}


/* =========================================================
   UX FIX v78
   ========================================================= */
.loginFeature{grid-template-columns:64px minmax(0,1fr)!important}
.loginFeatureArrow{display:none!important}

.memberApp .homeWelcome{grid-template-columns:1fr!important}
.memberApp .homeWelcomeCopy{min-width:0}

.customMuscleGrid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:7px;
  margin-top:6px;
}
.customMuscleBtn{
  min-height:42px;
  padding:8px 6px;
  border-radius:11px;
  border:1px solid rgba(82,104,132,.24);
  background:#0d1823;
  color:#9cadbf;
  font-size:11px;
  font-weight:850;
}
.customMuscleBtn.active{
  background:rgba(65,213,173,.12);
  border-color:rgba(65,213,173,.52);
  color:#dffff5;
  box-shadow:inset 0 0 0 1px rgba(65,213,173,.12);
}

@media(max-width:720px){
  .memberApp #workoutTimerCard:not(.hide){
    position:fixed!important;
    left:10px!important;
    right:10px!important;
    top:72px!important;
    bottom:auto!important;
    width:auto!important;
    max-width:none!important;
    z-index:88!important;
    margin:0!important;
    box-shadow:0 14px 38px rgba(0,0,0,.48)!important;
  }
  .memberApp #workoutTimerCard.expanded{
    max-height:calc(100vh - 162px);
    overflow:auto;
    overscroll-behavior:contain;
  }
  .memberApp #workoutTimerCard:not(.expanded){overflow:hidden}
  .memberApp #tab-builder{scroll-padding-top:130px}
}

@media(max-width:390px){
  .customMuscleGrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .memberApp #workoutTimerCard:not(.hide){
    left:8px!important;
    right:8px!important;
    top:68px!important;
  }
}


/* =========================================================
   EXERCISE GUIDANCE + TRAINER COMMENT v80
   ========================================================= */
.exerciseGuideDetails{
  margin-top:8px;
  max-width:620px;
  border:1px solid rgba(82,104,132,.18);
  border-radius:11px;
  background:rgba(9,18,27,.55);
  overflow:hidden;
}
.exerciseGuideDetails summary{
  list-style:none;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:8px 10px;
  cursor:pointer;
  color:#9eb0c3;
  font-size:10px;
  font-weight:900;
  user-select:none;
}
.exerciseGuideDetails summary::-webkit-details-marker{display:none}
.exerciseGuideDetails summary span{
  color:#69d9bc;
  font-size:9px;
  font-weight:900;
}
.exerciseGuideDetails[open] summary{
  border-bottom:1px solid rgba(82,104,132,.14);
}
.exerciseGuideDetails[open] summary span::before{content:'접기';font-size:0}
.exerciseGuideDetails[open] summary span{font-size:0}
.exerciseGuideDetails[open] summary span::after{
  content:'접기';
  font-size:9px;
}
.exerciseGuideBody{
  display:grid;
  gap:7px;
  padding:8px;
}
.exerciseGuideBlock{
  display:block;
  padding:9px 10px;
  border-radius:10px;
  font-size:10px;
  line-height:1.55;
}
.exerciseGuideBlock b{
  display:block;
  margin-bottom:4px;
  font-size:9px;
  letter-spacing:.01em;
}
.exerciseGuideBlock.safety{
  color:#d7c692;
  background:rgba(240,198,108,.055);
  border:1px solid rgba(240,198,108,.15);
}
.exerciseGuideBlock.trainer{
  color:#b7e8da;
  background:rgba(65,213,173,.055);
  border:1px solid rgba(65,213,173,.15);
}
.exerciseGuideBlock.trainerEdit{
  margin:0;
}
.exerciseGuideBlock.trainerEdit .textarea{
  min-height:68px;
  margin-top:2px;
  padding:9px 10px;
  font-size:11px;
  line-height:1.45;
}
.exerciseGuideBlock.trainerEdit small{
  display:block;
  margin-top:5px;
  color:#71849a;
  font-size:8.5px;
}
@media(max-width:720px){
  .memberApp .exerciseGuideDetails{
    max-width:none;
    margin-top:7px;
  }
  .memberApp .exerciseGuideDetails summary{
    min-height:36px;
    padding:7px 9px;
    font-size:9.5px;
  }
  .memberApp .exerciseGuideBlock{
    padding:8px 9px;
    font-size:9.5px;
  }
}


/* =========================================================
   v81 SET ROW LAYOUT FIX
   ========================================================= */
@media(max-width:720px){
  .memberApp .setRow--strength .setDelete,
  .memberApp .setRow--mobility .setDelete{
    position:static!important;
    right:auto!important;
    margin-top:0!important;
    width:30px!important;
    min-width:30px!important;
    height:34px!important;
    padding:0!important;
    grid-area:del!important;
    align-self:center!important;
  }
  .memberApp .setRow--strength .setNo,
  .memberApp .setRow--mobility .setNo{grid-area:no!important}
  .memberApp .setRow--strength .setWeight{grid-area:weight!important}
  .memberApp .setRow--strength .setReps,
  .memberApp .setRow--mobility .setReps{grid-area:reps!important}
  .memberApp .setRow--strength .setVol,
  .memberApp .setRow--mobility .setVol{grid-area:vol!important}
  .memberApp .setRow--strength .setDoneInline,
  .memberApp .setRow--mobility .setDoneInline{grid-area:done!important}
}


/* =========================================================
   v84 SET INPUT + INSTALL STABILITY
   ========================================================= */
.setRow--strength{
  grid-template-columns:64px minmax(105px,1fr) minmax(105px,1fr) 78px 42px!important;
  grid-template-areas:
    "no weight reps done del"
    ". vol vol . ."!important;
  align-items:center!important;
}
.setRow--mobility{
  grid-template-columns:64px minmax(130px,1fr) 78px 42px!important;
  grid-template-areas:
    "no reps done del"
    ". vol . ."!important;
  align-items:center!important;
}
.setRow--strength .setNo,.setRow--mobility .setNo{grid-area:no!important}
.setWeightField{grid-area:weight!important}
.setRepsField{grid-area:reps!important}
.setRow--strength .setVol,.setRow--mobility .setVol{
  grid-area:vol!important;
  grid-column:auto!important;
  text-align:left!important;
  padding:2px 0 0 2px!important;
}
.setRow--strength .setDoneInline,.setRow--mobility .setDoneInline{grid-area:done!important}
.setRow--strength .setDelete,.setRow--mobility .setDelete{
  grid-area:del!important;
  position:static!important;
  margin:0!important;
}
.setValueField{
  min-width:0;
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  align-items:center;
  gap:5px;
  margin:0;
}
.setValueField>span{
  font-size:9px;
  color:#71849a;
  font-weight:900;
  white-space:nowrap;
}
.setValueField>.input{
  min-width:0!important;
  width:100%!important;
  height:42px!important;
  padding:7px 8px!important;
  text-align:center;
  font-size:14px!important;
  font-variant-numeric:tabular-nums;
}
.setValueField>.input:disabled{opacity:.56;cursor:not-allowed}
.installDirectNote{
  margin:0 0 8px;
  color:#8295aa;
  font-size:9.5px;
  line-height:1.5;
}
.installDirectNote b{color:#72ddbf}
#installAppBtnLogin.installPrimaryBtn{
  background:linear-gradient(135deg,#53dfbd,#27bf9b)!important;
  border-color:rgba(83,223,189,.55)!important;
  color:#07130f!important;
}
#installAppBtnLogin.installPrimaryBtn.installReady{
  box-shadow:0 0 0 2px rgba(83,223,189,.08),0 8px 22px rgba(39,191,155,.12);
}

@media(max-width:720px){
  .setRow--strength{
    grid-template-columns:44px minmax(0,1fr) minmax(0,1fr) 64px 32px!important;
    grid-template-areas:
      "no weight reps done del"
      ". vol vol . ."!important;
    gap:6px!important;
  }
  .setRow--mobility{
    grid-template-columns:44px minmax(0,1fr) 64px 32px!important;
    grid-template-areas:
      "no reps done del"
      ". vol . ."!important;
    gap:6px!important;
  }
  .setValueField{display:block}
  .setValueField>span{
    display:block;
    margin:0 0 3px 2px;
    font-size:8px;
  }
  .setValueField>.input{
    height:40px!important;
    font-size:16px!important;
    padding:6px!important;
  }
  .setRow--strength .setDelete,.setRow--mobility .setDelete{
    width:32px!important;
    min-width:32px!important;
    height:40px!important;
  }
  .setDoneInline{
    min-height:40px!important;
    padding:6px 4px!important;
    font-size:9px!important;
  }
  .setQuickTools{margin-left:44px!important}
}


/* =========================================================
   v85 PRESENCE / NOTIFICATION / WEEKLY HOMEWORK / START FLOW
   ========================================================= */
.memberPresenceLine{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.presenceBadge{display:inline-flex;align-items:center;padding:3px 7px;border-radius:999px;font-size:9px;font-weight:950;border:1px solid rgba(92,112,138,.22)}
.presenceBadge.online{color:#75e0c3;background:rgba(65,213,173,.09);border-color:rgba(65,213,173,.30)}
.presenceBadge.recent{color:#8ebcff;background:rgba(124,168,255,.08);border-color:rgba(124,168,255,.24)}
.presenceBadge.offline,.presenceBadge.inactive,.presenceBadge.never{color:#8c9bae;background:rgba(120,139,161,.06)}
.notificationUnreadBadge{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;margin-left:5px;border-radius:999px;background:#ff697b;color:#fff;font-size:9px;font-weight:950}
.notificationModalBox{width:min(92vw,520px);max-height:82vh;overflow:auto}
.notificationModalHead{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.notificationPermissionRow{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:14px 0;padding:12px;border-radius:14px;border:1px solid rgba(65,213,173,.16);background:rgba(65,213,173,.045)}
.notificationList{display:grid;gap:7px}
.notificationItem{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;text-align:left;padding:12px;border-radius:13px;border:1px solid rgba(76,99,128,.22);background:#0c1722;color:#e8eef5}
.notificationItem.unread{border-color:rgba(65,213,173,.34);background:rgba(65,213,173,.055)}
.notificationItem b{display:block;font-size:12px;margin-bottom:3px}
.notificationItem span{display:block;color:#8fa1b4;font-size:10px;line-height:1.45}
.notificationItem small{color:#71849a;font-size:9px;white-space:nowrap}

.weeklyScheduleBox{margin:14px 0;padding:13px;border-radius:16px;border:1px solid rgba(124,168,255,.20);background:rgba(124,168,255,.035)}
.weeklyScheduleHead{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.weeklyScheduleDates{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin:12px 0}
.weeklyDateChip{position:relative;display:grid;place-items:center;gap:3px;min-height:58px;padding:7px 3px;border:1px solid rgba(76,99,128,.22);border-radius:12px;background:#0c1722;color:#8b9caf;cursor:pointer}
.weeklyDateChip input{position:absolute;opacity:0;pointer-events:none}
.weeklyDateChip b{font-size:10px}.weeklyDateChip span{font-size:9px}
.weeklyDateChip.active{color:#cffff2;border-color:rgba(65,213,173,.45);background:rgba(65,213,173,.08)}
.weeklyScheduleSaveBtn{width:100%}
#weeklyScheduleMsg{margin-top:7px;min-height:16px}

.workoutStartGate{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 0 12px;padding:13px 14px;border-radius:16px;border:1px solid rgba(65,213,173,.34);background:linear-gradient(135deg,rgba(65,213,173,.09),rgba(11,24,31,.95));position:sticky;top:72px;z-index:40;box-shadow:0 10px 26px rgba(0,0,0,.20)}
.workoutStartGate>div{display:grid;gap:3px}
.workoutStartGateKicker{font-size:9px;font-weight:950;color:#5ed9b9;letter-spacing:.12em}
.workoutStartGate b{font-size:13px}
.workoutStartGate small{font-size:9.5px;color:#8799ac}
.workoutStartGate .btn{min-width:120px}

@media(max-width:720px){
  .weeklyScheduleDates{grid-template-columns:repeat(4,minmax(0,1fr))}
  .weeklyScheduleHead{display:grid;grid-template-columns:1fr auto}
  .workoutStartGate{top:68px;padding:11px;gap:8px}
  .workoutStartGate b{font-size:12px}
  .workoutStartGate small{font-size:8.5px}
  .workoutStartGate .btn{min-width:96px;padding:10px 8px}
  .memberNotificationsBtn{padding-left:10px!important;padding-right:10px!important}
}
