*{box-sizing:border-box}body,html{margin:0;min-height:100%}body{background:#f7f4ee;color:#1f2b2f;font-family:Arial,Helvetica,sans-serif;overscroll-behavior-y:contain}button{font:inherit}.screen{display:flex;flex-direction:column;gap:14px;margin:0 auto;max-width:720px;min-height:100vh;padding:12px 18px 34px}.pullRefreshIndicator{align-items:center;background:#eef3f1;border:1px solid #dfe7e3;border-radius:999px;box-shadow:0 8px 20px rgb(31 43 47/.12);color:#526268;display:flex;font-size:18px;font-weight:900;height:36px;justify-content:center;left:50%;margin-left:-18px;pointer-events:none;position:fixed;top:0;transition:opacity .12s ease;width:36px;z-index:20}.loadingScreen{animation:loadingFadeIn .16s ease-out}.loadingAction,.loadingDay,.loadingIcon,.loadingStat,.loadingStatsTitle,.loadingTitle{animation:loadingPulse 1.2s ease-in-out infinite;background:#e8e4db;border-radius:8px}.loadingAction{min-height:58px}.loadingPanel{display:grid;grid-gap:14px;gap:14px}.loadingMonthBar{align-items:center;display:flex;justify-content:space-between}.loadingIcon{height:42px;width:42px}.loadingTitle{height:38px;width:116px}.loadingCalendarGrid{display:grid;grid-gap:5px;gap:5px;grid-template-columns:repeat(7,minmax(0,1fr))}.loadingDay{aspect-ratio:1}.loadingStatsTitle{height:44px;width:154px}.loadingStat{min-height:72px}@keyframes loadingFadeIn{0%{opacity:0}to{opacity:1}}@keyframes loadingPulse{0%,to{opacity:.52}50%{opacity:1}}.error,.saving{border-radius:8px;font-size:13px;font-weight:800;padding:8px 10px}.saving{background:#eef3f1;color:#526268}.error{background:#ffe5dc;color:#8d2d16;margin:0}.actions{display:grid;grid-gap:8px;gap:8px;grid-template-columns:1.35fr 1fr 1fr 1fr}.actionButton{align-items:center;background:#f8f7f2;border:1px solid #d9d4c9;border-radius:8px;color:#10202a;cursor:pointer;display:flex;flex-direction:column;font-size:12px;font-weight:800;gap:4px;justify-content:center;line-height:1.05;min-height:58px;min-width:0;padding:8px 4px;text-align:center}.actionButton:disabled{cursor:wait;opacity:.75}.actionButtonPressed{box-shadow:none}.patchActionActive{background:#8fd3aa;border-color:transparent;color:#163828}.optuneActionActive{background:#2f7fc7;border-color:transparent;color:white}.exerciseActionActive{background:#5c68d9;border-color:transparent;color:white}.medicineActionActive{background:#d94478;border-color:transparent;color:white}.actionButton span:first-child{align-items:center;display:inline-flex;height:20px;justify-content:center;line-height:1;width:20px}.actionButton svg,.activityRow svg,.iconButton svg,.pullRefreshIndicator svg,.refreshButton svg{display:block;flex:0 0 auto}.actionButton span:last-child{overflow-wrap:anywhere;white-space:normal;width:100%}.calendarPanel,.statsPanel{background:#fffdf8;border:1px solid #e2ddd2;border-radius:8px}.calendarPanel{padding:12px}.monthBar{justify-content:space-between;margin-bottom:14px}.iconButton,.monthBar{align-items:center;display:flex}.iconButton{background:#eef3f1;border:0;border-radius:8px;color:#243238;cursor:pointer;font-size:28px;height:42px;justify-content:center;line-height:1;width:42px}.monthTitle{align-items:center;display:flex;flex-direction:column}.monthButton,.yearButton{background:transparent;border:0;cursor:pointer;line-height:1.2;padding:0}.monthButton{color:#1f2b2f;font-size:22px;font-weight:900}.yearButton{color:#647176;font-size:15px;font-weight:800}.weekHeader,.weekRow{display:grid;grid-gap:5px;gap:5px;grid-template-columns:30px repeat(7,minmax(0,1fr))}.weekHeader{align-items:center;color:#7a8588;font-size:11px;font-weight:900;margin-bottom:8px;text-align:center}.weekRow{margin-bottom:5px}.dayCell,.weekRail{border-radius:8px;cursor:pointer}.weekRail{align-items:center;background:#e9ece8;border:0;color:#617074;display:flex;font-size:12px;font-weight:900;justify-content:center}.weekRailActive{background:#d1e5f7}.dayCell{align-items:center;aspect-ratio:1;background:#f8f7f2;border:2px solid transparent;color:#243238;display:flex;flex-direction:column;font-size:15px;font-weight:900;gap:3px;justify-content:center;min-width:0;padding:3px}.dayCellMuted{background:#f0eee7;color:#a3a39d}.todayDay{background:#fff2dd;border-color:#d55535}.patchDay{background:#8fd3aa;color:#163828}.selectedDay{border-color:#263238}.dayNumber{display:block;line-height:1}.calendarMarkers{align-items:center;display:flex;flex-wrap:wrap;gap:3px;justify-content:center;min-height:12px;width:100%}.calendarDot{border-radius:999px;display:inline-block;height:8px;width:8px}.patchDot{background:#2d9d5b}.optuneDot{background:#2f7fc7}.exerciseDot{background:#5c68d9}.medicineDot{background:#d94478}.statsPanel{padding:16px}.statsLabel{color:#7b8588;font-size:11px;font-weight:900;margin:0 0 3px}.statsHeader h2{font-size:20px;line-height:1.2;margin:0}.statsGrid{display:grid;grid-gap:8px;gap:8px;grid-template-columns:repeat(auto-fit,minmax(92px,1fr));margin-top:16px}.statBox{background:#eff4f2;border-radius:8px;min-height:72px;padding:10px}.statBox span,.statBox strong{display:block}.statBox strong{color:#1f2b2f;font-size:17px;font-weight:900}.statBox span{color:#647176;font-size:12px;font-weight:800;margin-top:5px}.totalStatBox{background:#263238}.totalStatBox span,.totalStatBox strong{color:white}.toDateStatBox{background:#dfe7e3}.toDateStatBox strong{color:#263238}.toDateStatBox span{color:#526268}.detailBlock{border-top:1px solid #e3ded3;margin-top:16px;padding-top:14px}.detailBlock h3{font-size:16px;margin:0 0 8px}.activityRow{align-items:center;background:transparent;border:0;color:#38484d;cursor:pointer;display:flex;font-size:15px;font-weight:700;gap:8px;line-height:1.35;margin:0;padding:6px 0;text-align:left;width:100%}.activityRow:hover{color:#10202a;text-decoration:underline}.activityRow:disabled{cursor:wait;opacity:.7}.activityRowIcon{align-items:center;display:inline-flex;height:18px;justify-content:center;width:18px}.emptyText{color:#718084;font-size:14px;font-weight:700;margin:0}.actionLog{display:grid;grid-gap:12px;gap:12px}.actionGroup,.actionGroupHeader{display:grid;grid-gap:8px;gap:8px}.actionGroupHeader{align-items:center;color:#38484d;font-size:15px;grid-template-columns:auto 1fr auto;line-height:1.25}.actionGroupHeader strong{color:#1f2b2f;font-weight:900}.actionGroupHeader span:last-child{color:#647176;font-size:13px;font-weight:900}.actionDates{display:grid;grid-gap:2px;gap:2px}.actionRow{align-items:center;display:flex;min-height:31px;padding:4px 0}.actionDate{color:#38484d;font-size:15px;font-weight:700;line-height:1.35;min-width:0}.modalOverlay{align-items:center;background:rgb(31 43 47/.45);display:flex;inset:0;justify-content:center;padding:18px;position:fixed;z-index:10}.sessionEditor{background:#fffdf8;border:1px solid #e2ddd2;border-radius:8px;box-shadow:0 16px 40px rgb(31 43 47/.22);max-width:430px;padding:16px;width:100%}.sessionEditorHeader{align-items:center;display:flex;gap:12px;justify-content:space-between;margin-bottom:14px}.sessionEditorHeader h2{font-size:20px;line-height:1.2;margin:0}.sessionFormGrid{display:grid;grid-gap:10px;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.sessionFormGrid label{display:grid;grid-gap:5px;gap:5px}.sessionFormGrid label span{color:#647176;font-size:12px;font-weight:900}.sessionFormGrid input{background:#f8f7f2;border:1px solid #d9d4c9;border-radius:8px;color:#1f2b2f;font:inherit;font-size:15px;font-weight:800;min-height:42px;padding:0 10px;width:100%}.sessionEditorActions{display:grid;grid-gap:8px;gap:8px;grid-template-columns:1fr 1fr 1fr;margin-top:16px}.deleteButton,.saveButton,.secondaryButton{border:0;border-radius:8px;color:#10202a;cursor:pointer;font-size:14px;font-weight:900;min-height:42px;padding:0 12px}.deleteButton:disabled,.saveButton:disabled,.secondaryButton:disabled,.sessionFormGrid input:disabled{cursor:wait;opacity:.7}.deleteButton{background:#ffd8cc}.secondaryButton{background:#eef3f1}.saveButton{background:#bfe7d0}.refreshBar{display:flex;justify-content:center}.refreshButton{align-items:center;background:#eef3f1;border:0;border-radius:8px;color:#526268;cursor:pointer;display:inline-flex;font-size:13px;font-weight:900;gap:6px;min-height:36px;padding:0 12px}.refreshButton:disabled{cursor:wait;opacity:.7}@media (max-width:430px){.screen{padding-inline:14px}.sessionEditorActions,.sessionFormGrid,.statsGrid{grid-template-columns:1fr}}