:root{--ios-bg: #f2f2f7;--ios-surface: rgba(255, 255, 255, .88);--ios-card: #ffffff;--ios-text: #1c1c1e;--ios-subtext: #8e8e93;--ios-separator: rgba(60, 60, 67, .18);--ios-blue: #007aff;--ios-green: #34c759;--ios-yellow: #ffcc00;--ios-red: #ff3b30;--category-accent-border: rgba(0, 122, 255, .4);--category-accent-bg: rgba(0, 122, 255, .08);--category-accent-text: #005fcc;--category-accent-bg-dark: rgba(102, 163, 255, .18);--category-accent-border-dark: rgba(102, 163, 255, .5);--category-accent-text-dark: #d6e6ff;--calendar-today-border: rgba(0, 122, 255, .35);--calendar-today-border-dark: rgba(102, 163, 255, .45);--calendar-selected-bg: rgba(0, 122, 255, .16);--calendar-selected-text: #004fab;--calendar-selected-bg-dark: rgba(102, 163, 255, .24);--calendar-selected-text-dark: #d6e6ff;--slot-active-bg: rgba(0, 122, 255, .06);--slot-active-bg-dark: rgba(102, 163, 255, .14);--slot-score-1-bg: rgba(0, 122, 255, .14);--slot-score-1-border: #8ac4ff;--slot-score-1-text: #2e6fae;--slot-score-2-bg: rgba(0, 122, 255, .24);--slot-score-2-border: #4ea2ff;--slot-score-2-text: #165b9e;--slot-score-3-bg: rgba(0, 122, 255, .34);--slot-score-3-border: #007aff;--slot-score-3-text: #0b3f78;--slot-indicator-1-bg: #8ac4ff;--slot-indicator-1-border: #8ac4ff;--slot-indicator-1-text: #1d4f86;--slot-indicator-2-bg: #4ea2ff;--slot-indicator-2-border: #4ea2ff;--slot-indicator-2-text: #ffffff;--slot-indicator-3-bg: #007aff;--slot-indicator-3-border: #007aff;--slot-indicator-3-text: #ffffff;--mui-shadow-soft: 0 2px 8px rgba(0, 0, 0, .08), 0 1px 2px rgba(0, 0, 0, .04)}.app-shell.dark-mode{--ios-bg: #000000;--ios-surface: rgba(28, 28, 30, .92);--ios-card: #1c1c1e;--ios-text: #f2f2f7;--ios-subtext: #8e8e93;--ios-separator: rgba(84, 84, 88, .65)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}body{overscroll-behavior-y:contain}.app-shell{height:100vh;height:100dvh;width:100%;display:flex;justify-content:center;overflow:hidden;margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,Helvetica Neue,Arial,sans-serif;background:var(--ios-bg);color:var(--ios-text)}.panel{position:relative;width:100%;height:100vh;height:100dvh;margin:0;display:flex;flex-direction:column;background:var(--ios-surface);border:.5px solid rgba(255,255,255,.55);border-radius:0;overflow:hidden;box-shadow:0 12px 30px #00000014,0 2px 8px #0000000a;-webkit-backdrop-filter:blur(18px) saturate(1.3);backdrop-filter:blur(18px) saturate(1.3);animation:panel-rise .32s ease;transition:transform .11s ease,box-shadow .11s ease}.panel:after{content:"";position:absolute;left:0;right:0;bottom:0;height:160px;z-index:2;pointer-events:none;-webkit-backdrop-filter:blur(20px) saturate(1.8);backdrop-filter:blur(20px) saturate(1.8);background:linear-gradient(0deg,#f2f2f7b8,#f2f2f77a 40%,#f2f2f700);-webkit-mask-image:linear-gradient(0deg,black 35%,transparent 100%);mask-image:linear-gradient(0deg,black 35%,transparent 100%)}.app-shell.dark-mode .panel{border-color:#ffffff24;box-shadow:0 14px 34px #0006,0 2px 10px #00000047}.app-shell.dark-mode .panel:after{background:linear-gradient(0deg,#000000b8,#0000007a 40%,#0000)}.panel-header{position:relative;flex-shrink:0;z-index:10;padding:16px 16px 12px;background:#f2f2f7b8;-webkit-backdrop-filter:blur(20px) saturate(1.8);backdrop-filter:blur(20px) saturate(1.8);border-bottom:.5px solid rgba(60,60,67,.12)}.app-shell.dark-mode .panel-header{background:#000000b8;border-bottom-color:#54545866}.panel-header h1{margin:10px 0 12px;font-size:clamp(23px,4vw,32px);letter-spacing:-.02em;font-weight:700;color:var(--ios-text)}.active-category{margin:-4px 0 12px;color:var(--ios-subtext);font-size:14px;font-weight:600}.category-switcher{position:relative;margin-bottom:12px}.category-header-btn{display:inline-flex;align-items:center;gap:7px;width:100%;justify-content:center;min-height:50px;border:1.5px solid var(--slot-score-3-border);border-radius:999px;background:var(--slot-score-3-bg);color:var(--slot-score-3-text);font-size:19px;font-weight:700;letter-spacing:-.01em;cursor:pointer;padding:0 16px;transition:filter .1s ease}.category-header-btn:active{filter:brightness(.94)}.category-header-name{flex:1;text-align:center}.category-header-chevron{flex-shrink:0;transition:transform .2s ease;opacity:.7}.category-header-chevron.open{transform:rotate(180deg)}.category-scheme-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0;display:inline-block}.category-switcher-list{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:35;background:var(--ios-card);border:.5px solid var(--ios-separator);border-radius:14px;overflow:hidden;box-shadow:0 4px 16px #00000014,0 1px 4px #0000000a;max-height:min(360px,60vh);overflow-y:auto}.app-shell.dark-mode .category-switcher-list{background:#2c2c2e;box-shadow:0 4px 16px #0006,0 1px 4px #0003}.cs-row{display:flex;align-items:center;gap:4px;min-height:48px;padding:0 6px 0 14px;border-bottom:.5px solid var(--ios-separator)}.cs-row:last-child{border-bottom:none}.cs-select{flex:1;display:flex;align-items:center;gap:9px;min-height:48px;background:none;border:none;padding:0;cursor:pointer;text-align:left;font-size:16px;font-weight:400;color:var(--ios-text);font-family:inherit}.cs-select--active{font-weight:600}.cs-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cs-check{flex-shrink:0;color:var(--ios-blue)}.cs-inline-input{flex:1;height:32px;border:none;border-radius:8px;background:#7676801f;padding:0 10px;font-size:15px;font-family:inherit;color:var(--ios-text);outline:none}.app-shell.dark-mode .cs-inline-input{background:#7676804d;color:var(--ios-text)}.cs-icon-btn{flex-shrink:0;width:32px;height:32px;border-radius:999px;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .1s ease}.cs-icon-btn--edit{background:#7676801f;color:var(--ios-subtext)}.cs-icon-btn--edit:hover{background:#76768033}.cs-icon-btn--trash{background:#ff3b301a;color:#ff3b30}.cs-icon-btn--trash:hover{background:#ff3b302e}.cs-icon-btn--trash:disabled{opacity:.3;cursor:not-allowed}.cs-icon-btn--confirm{background:#34c7591f;color:#34c759}.cs-icon-btn--confirm:disabled{opacity:.3;cursor:not-allowed}.cs-icon-btn--cancel{background:#7676801f;color:var(--ios-subtext)}.cs-text-btn{flex-shrink:0;height:32px;padding:0 10px;border-radius:8px;border:none;font-size:14px;font-weight:500;font-family:inherit;cursor:pointer;transition:background .1s ease}.cs-text-btn--cancel{background:#7676801f;color:var(--ios-subtext)}.cs-text-btn--delete{background:#ff3b301a;color:#ff3b30;font-weight:600}.cs-add-row{display:flex;align-items:center;gap:6px;min-height:48px;padding:0 6px 0 14px;background:#7676800f}.cs-add-icon{flex-shrink:0;color:var(--ios-blue)}.app-shell.dark-mode .cs-add-row{background:#ffffff0a}.date-nav{display:grid;grid-template-columns:36px minmax(0,1fr) 36px;align-items:center;gap:8px;margin-bottom:6px}.date-nav .nav-btn:first-child{justify-self:start}.date-nav .nav-btn:last-child{justify-self:end}.nav-btn{width:36px;height:36px;border:.5px solid rgba(255,255,255,.55);border-radius:999px;background:#ffffff73;-webkit-backdrop-filter:blur(16px) saturate(1.6);backdrop-filter:blur(16px) saturate(1.6);color:var(--ios-blue);font-size:16px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:inset 0 1px #fff9;transition:background-color .12s ease}.nav-btn:active{background:#76768033}.nav-btn:disabled{opacity:1;background:#f2f2f7;border-color:#3c3c4333;color:#aeaeb2;box-shadow:none;cursor:not-allowed;transform:none}.app-shell.dark-mode .nav-btn{background:#2c2c2e8c;border-color:#ffffff1a;color:#0a84ff;box-shadow:inset 0 1px #ffffff0f}.app-shell.dark-mode .nav-btn:active{background:#7676805c}.app-shell.dark-mode .nav-btn:disabled{background:#7676801f;border-color:transparent;color:#48484a}.settings-fab{position:fixed;left:12px;bottom:calc(12px + env(safe-area-inset-bottom));width:50px;height:50px;border-radius:999px;border:none;background:transparent;color:var(--ios-subtext);box-shadow:none;display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0;cursor:pointer;z-index:9999}.settings-fab svg{width:22px;height:22px;fill:currentColor;transition:transform .18s ease}.settings-fab:active{background:#76768029}.settings-fab:active svg{transform:scale(.92) rotate(-12deg)}.lock-fab{position:fixed;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));width:50px;height:50px;border-radius:999px;border:none;background:transparent;color:var(--ios-subtext);box-shadow:none;display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0;cursor:pointer;z-index:9999}.lock-fab svg{width:22px;height:22px;fill:currentColor;transition:transform .18s ease}.lock-fab:active{background:#76768029}.lock-fab.locked{background:#007aff24;color:#007aff}.lock-fab:active svg{transform:scale(.92)}.stats-fab{position:fixed;left:70px;bottom:calc(12px + env(safe-area-inset-bottom));width:50px;height:50px;border-radius:999px;border:none;background:transparent;color:var(--ios-subtext);box-shadow:none;display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0;cursor:pointer;z-index:9999}.stats-fab svg{width:22px;height:22px;fill:currentColor;transition:transform .18s ease}.stats-fab:active{background:#76768029}.stats-fab.active{background:#007aff24;color:#007aff}.stats-fab:active svg{transform:scale(.92)}.today-fab{position:fixed;left:50%;bottom:calc(12px + env(safe-area-inset-bottom));width:50px;height:50px;border-radius:999px;border:none;background:transparent;color:var(--ios-subtext);box-shadow:none;display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0;cursor:pointer;z-index:9999}.today-fab svg{width:22px;height:22px;fill:currentColor;transition:transform .18s ease}.today-fab:active{background:#76768029}.today-fab:active svg{transform:scale(.92)}.tag-fab{position:fixed;right:70px;bottom:calc(12px + env(safe-area-inset-bottom));width:50px;height:50px;border-radius:999px;border:none;background:transparent;color:var(--ios-subtext);box-shadow:none;display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0;cursor:pointer;z-index:9999}.settings-fab.MuiFab-root,.stats-fab.MuiFab-root,.today-fab.MuiFab-root,.tag-fab.MuiFab-root,.lock-fab.MuiFab-root{position:fixed;width:50px;height:50px;min-width:50px;min-height:50px;border-radius:999px;border:none;background:transparent;color:var(--ios-subtext);padding:0;box-shadow:none}.settings-fab.MuiFab-root{left:10%;right:auto;bottom:calc(12px + env(safe-area-inset-bottom))}.stats-fab.MuiFab-root{left:30%;right:auto;bottom:calc(12px + env(safe-area-inset-bottom))}.today-fab.MuiFab-root{left:50%;right:auto;bottom:calc(12px + env(safe-area-inset-bottom))}.tag-fab.MuiFab-root{left:70%;right:auto;bottom:calc(12px + env(safe-area-inset-bottom))}.lock-fab.MuiFab-root{left:90%;right:auto;bottom:calc(12px + env(safe-area-inset-bottom))}.bottom-fab.MuiFab-root{transform:translate(-50%)}.tag-fab svg{width:22px;height:22px;fill:currentColor;transition:transform .18s ease}.tag-fab:active{background:#76768029}.tag-fab.active{background:#007aff24;color:#007aff}.tag-fab:active svg{transform:scale(.92)}.date-picker-center{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:5px;width:100%;min-height:36px;border:.5px solid rgba(255,255,255,.55);border-radius:999px;padding:0 12px;cursor:pointer;justify-self:center;background:#ffffff73;-webkit-backdrop-filter:blur(16px) saturate(1.6);backdrop-filter:blur(16px) saturate(1.6);box-shadow:inset 0 1px #fff9;transition:background .11s ease}.date-picker-center:active{background:#76768033}.app-shell.dark-mode .date-picker-center{background:#2c2c2e8c;border-color:#ffffff1a;box-shadow:inset 0 1px #ffffff0f}.app-shell.dark-mode .date-picker-center:active{background:#7676805c}.date-label{margin:0;text-align:center;font-size:16px;font-weight:600;letter-spacing:-.01em;color:var(--ios-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-shell.dark-mode .date-label{color:var(--ios-text)}.calendar-popover{position:absolute;top:62px;left:12px;right:12px;margin:0;border:.5px solid rgba(255,255,255,.6);border-radius:14px;background:#f2f2f7d1;-webkit-backdrop-filter:blur(20px) saturate(1.8);backdrop-filter:blur(20px) saturate(1.8);padding:10px;z-index:30;box-shadow:0 4px 16px #00000014,0 1px 4px #0000000a,inset 0 1px #ffffffb3}.app-shell.dark-mode .calendar-popover{background:#1c1c1ed1;border-color:#ffffff1a;box-shadow:0 4px 16px #0006,0 1px 4px #0003,inset 0 1px #ffffff0f}.calendar-mui-wrap{display:flex;justify-content:center}.calendar-mui{width:100%;max-width:340px}.calendar-mui .MuiPickersLayout-root,.calendar-mui .MuiDateCalendar-root{width:100%;max-width:340px;margin:0}.calendar-mui .MuiDayCalendar-header,.calendar-mui .MuiDayCalendar-weekContainer{justify-content:space-between}.calendar-mui .MuiPickersCalendarHeader-label{font-size:14px;font-weight:700;color:var(--ios-text)}.calendar-mui .MuiDayCalendar-weekDayLabel{color:var(--ios-subtext);font-weight:600;font-size:12px}.calendar-mui .MuiPickersDay-root{color:var(--ios-text)}.calendar-mui .MuiPickersDay-root.Mui-selected{background:var(--calendar-selected-bg);color:var(--calendar-selected-text);font-weight:700}.calendar-mui .MuiPickersDay-root.Mui-selected:hover,.calendar-mui .MuiPickersDay-root.Mui-selected:focus{background:var(--calendar-selected-bg)}.calendar-mui .MuiPickersDay-today{border-color:var(--calendar-today-border)}.calendar-mui .MuiIconButton-root,.calendar-mui .MuiPickersArrowSwitcher-button,.app-shell.dark-mode .calendar-mui .MuiPickersDay-root{color:var(--ios-text)}.app-shell.dark-mode .calendar-mui .MuiPickersDay-root.Mui-selected{background:var(--calendar-selected-bg-dark);color:var(--calendar-selected-text-dark)}.app-shell.dark-mode .calendar-mui .MuiPickersDay-root.Mui-selected:hover,.app-shell.dark-mode .calendar-mui .MuiPickersDay-root.Mui-selected:focus{background:var(--calendar-selected-bg-dark)}.app-shell.dark-mode .calendar-mui .MuiPickersDay-today{border-color:var(--calendar-today-border-dark)}.calendar-head{display:grid;grid-template-columns:56px 1fr 56px;align-items:center;gap:8px;margin-bottom:8px}.calendar-head p{margin:0;text-align:center;font-size:14px;font-weight:700}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;margin-bottom:6px}.calendar-weekdays span{text-align:center;font-size:12px;color:var(--ios-subtext);font-weight:600}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.calendar-day{min-height:34px;border:1px solid transparent;border-radius:8px;background:transparent;font-size:13px;color:var(--ios-text);cursor:pointer}.calendar-day.outside{color:#c7c7cc}.app-shell.dark-mode .calendar-day{color:var(--ios-text)}.app-shell.dark-mode .calendar-day.outside{color:#6d7788}.calendar-day.today{border-color:var(--calendar-today-border)}.app-shell.dark-mode .calendar-day.today{border-color:var(--calendar-today-border-dark)}.calendar-day.selected{background:var(--calendar-selected-bg);color:var(--calendar-selected-text);font-weight:700}.app-shell.dark-mode .calendar-day.selected{background:var(--calendar-selected-bg-dark);color:var(--calendar-selected-text-dark)}.calendar-day.disabled{background:#f2f2f7;color:#aeaeb2;border-color:#3c3c4324;cursor:not-allowed}.app-shell.dark-mode .calendar-day.disabled{background:#1f2430;color:#6e798c}.calendar-actions{margin-top:8px;display:flex;justify-content:flex-end}.score-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:10px}.score-strip article,.score-strip .score-strip-card{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:4px;border:.5px solid var(--ios-separator);border-radius:14px;padding:8px 6px 8px 10px;min-height:68px;min-width:0;background:var(--ios-card);box-shadow:0 1px 3px #0000000f;overflow:hidden}.score-strip-action{width:100%;border:none;text-align:left;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer}.score-strip-action:active{filter:brightness(.97)}.app-shell.dark-mode .score-strip article,.app-shell.dark-mode .score-strip .score-strip-card{box-shadow:none}.score-strip article:nth-child(1),.score-strip .score-strip-card:nth-child(1){border-color:#007aff29}.score-strip article:nth-child(2),.score-strip .score-strip-card:nth-child(2){border-color:#34c7592e}.score-strip article:nth-child(3),.score-strip .score-strip-card:nth-child(3){border-color:#007aff3d}.score-strip-left{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1;overflow:hidden}.score-title{margin:0;font-size:10px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--ios-subtext)}.score-value{margin:0;font-size:18px;font-weight:800;letter-spacing:-.02em;color:var(--ios-text);line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-shell.dark-mode .score-value{color:var(--ios-text)}.grade-ring-svg{width:40px;height:40px;flex-shrink:0}.grade-ring-svg circle[stroke-dasharray]{transition:stroke-dashoffset .24s cubic-bezier(.22,1,.36,1),stroke .18s ease}.grade{display:none}.grade-empty{background:#7878801f;color:#7f8795}.app-shell.dark-mode .grade-empty{background:#9ca8ba38;color:#a3adbc}.grade-a{background:#34c75924;color:#1a7c35}.grade-b{background:#007aff1f;color:#0051b8}.grade-c{background:#ff950024;color:#c46200}.grade-fail,.grade-f{background:#ff3b301f;color:#b42318}.stats-sheet{position:absolute;top:0;right:0;bottom:0;left:0;z-index:70;padding:12px;background:#f2f2f7fa;overflow:hidden}.app-shell.dark-mode .stats-sheet{background:#0f1116fa}.stats-view{height:calc(100% - 56px);overflow-y:auto;padding:0;display:grid;gap:10px}.stats-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.stats-kpi{border:.5px solid var(--ios-separator);border-radius:14px;background:linear-gradient(180deg,#fff,#f7f9fb);padding:10px;display:grid;gap:4px;align-content:start}.app-shell.dark-mode .stats-kpi{background:linear-gradient(180deg,#1a1f29,#151a23)}.stats-kpi p{margin:0;font-size:12px;color:var(--ios-subtext);font-weight:600}.stats-kpi strong{font-size:22px;line-height:1.1;letter-spacing:-.01em}.stats-kpi span{font-size:12px;color:var(--ios-subtext)}.trend-up{color:#1d7c39}.trend-down{color:#a22018}.stats-chart-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.stats-chart-card{border:.5px solid var(--ios-separator);border-radius:16px;background:var(--ios-card);padding:10px;box-shadow:0 4px 10px #0000000d}.app-shell.dark-mode .stats-chart-card{background:#161b24;box-shadow:none}.stats-chart-head{margin-bottom:8px}.stats-chart-head h3{margin:0;font-size:14px;letter-spacing:-.01em}.stats-chart-head p{margin:2px 0 0;font-size:12px;color:var(--ios-subtext)}.stats-chart-wrap{width:100%;min-height:220px}.tag-toolbar{position:fixed;left:12px;right:12px;bottom:calc(120px + env(safe-area-inset-bottom));z-index:9998;display:flex;gap:6px;overflow-x:auto;padding:8px;border:.5px solid var(--ios-separator);border-radius:14px;background:var(--ios-card);box-shadow:0 4px 12px #00000014;scrollbar-width:thin}.app-shell.dark-mode .tag-toolbar{background:#1a1f29}.tag-chip{min-height:32px;border:.5px solid var(--ios-separator);border-radius:999px;background:var(--ios-card);color:var(--ios-subtext);font-size:12px;font-weight:700;padding:0 10px;display:inline-flex;align-items:center;gap:6px;white-space:nowrap;cursor:pointer}.tag-chip.MuiChip-root{border-radius:999px}.tag-chip .MuiChip-label{font-size:12px;font-weight:700;padding-left:10px;padding-right:10px}.tag-chip .MuiChip-icon{margin-left:8px;margin-right:-2px}.tag-chip.active{color:var(--ios-text);border-color:#007aff5c;background:#007aff1f}.tag-chip.clear{border-color:#ff3b303d}.tag-chip.clear.active{color:#b42318;background:#ff3b301f;border-color:#ff3b3057}.slot-main-text{display:inline-flex;flex-direction:row;align-items:center;gap:8px;line-height:1.1;min-width:0;flex:1;overflow:hidden}.slot-time-label{font-size:13px;font-weight:500;letter-spacing:.01em;white-space:nowrap}.slot-tag{display:inline-flex;align-items:center;padding:2px 5px;border-radius:999px;border:1.5px solid currentColor;font-size:9px;font-weight:700;letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:60%;flex-shrink:1;min-width:0}.tag-list{display:grid;gap:8px}.tag-row{display:flex;align-items:center;gap:8px}.tag-dot{width:10px;height:10px;border-radius:999px;flex:0 0 auto}.tag-name{flex:1;font-size:14px;font-weight:600}.tag-stats-list{display:grid;gap:8px}.tag-stat-row{border:.5px solid var(--ios-separator);border-radius:12px;padding:8px 10px;display:grid;gap:4px}.tag-stat-head{display:flex;align-items:center;gap:6px}.tag-stat-head strong{font-size:13px}.tag-stat-metrics{display:flex;justify-content:space-between;font-size:12px;color:var(--ios-subtext)}.coach-grid{display:grid;gap:8px}.coach-card{border:.5px solid var(--ios-separator);border-radius:12px;padding:9px 10px;display:grid;grid-template-columns:20px 1fr;gap:8px;align-items:start;background:linear-gradient(180deg,#007aff12,#34c7590f)}.coach-index{width:20px;height:20px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;color:#005fcc;background:#007aff2e}.coach-card p{margin:0;font-size:13px;line-height:1.35}.replay-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.replay-metric{border:.5px solid var(--ios-separator);border-radius:12px;padding:8px;display:grid;gap:2px}.replay-metric span{font-size:11px;color:var(--ios-subtext);font-weight:600}.replay-metric strong{font-size:15px;letter-spacing:-.01em}.replay-experiment{margin:10px 0 0;padding:9px 10px;border-radius:12px;border:1px dashed rgba(0,122,255,.35);background:#007aff14;font-size:13px;line-height:1.35}.app-shell.dark-mode .coach-card{background:linear-gradient(180deg,#66a3ff21,#34c7591a)}.app-shell.dark-mode .coach-index{color:#d6e6ff;background:#66a3ff38}.app-shell.dark-mode .replay-experiment{border-color:#66a3ff73;background:#66a3ff24}.slot-swipe-clip{flex:1;min-height:0;position:relative;overflow:hidden;touch-action:pan-y}.slot-swipe-track{position:absolute;top:0;right:0;bottom:0;left:0;will-change:transform}.slot-swipe-page{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.slot-swipe-page--prev{transform:translate(-100%)}.slot-swipe-page--current{pointer-events:auto}.slot-swipe-page--next{transform:translate(100%)}.slot-excluded-overlay{background:repeating-linear-gradient(-45deg,transparent,transparent 18px,rgba(255,159,10,.04) 18px,rgba(255,159,10,.04) 19px)!important}.slot-excluded-overlay .slot-lock-badge{background:#ff9f0a1f;border-color:#ff9f0a4d;color:#b97000}.app-shell.dark-mode .slot-excluded-overlay .slot-lock-badge{background:#ff9f0a2e;border-color:#ff9f0a59;color:#ff9f0a}.slot-lock-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:20;pointer-events:none;background:repeating-linear-gradient(-45deg,transparent,transparent 18px,rgba(0,122,255,.028) 18px,rgba(0,122,255,.028) 19px);display:flex;align-items:center;justify-content:center}.slot-lock-badge{display:flex;align-items:center;gap:8px;padding:10px 20px;border-radius:999px;background:#007aff1f;border:.5px solid rgba(0,122,255,.22);color:#007aff;font-size:13px;font-weight:600;letter-spacing:.01em;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.app-shell.dark-mode .slot-lock-badge{background:#0a84ff2e;border-color:#0a84ff4d;color:#0a84ff}.slots{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;height:100%;overflow-y:auto;padding:12px 12px calc(200px + env(safe-area-inset-bottom));display:grid;gap:8px}.slot-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:14px;row-gap:12px;padding:0 10px}.slots.single-column{padding-left:22px;padding-right:22px}.slot{width:100%;border:.5px solid var(--ios-separator);border-radius:12px;background:var(--ios-card);height:50px;min-height:50px;padding:0 14px;font-size:15px;font-weight:500;display:flex;align-items:center;justify-content:space-between;color:var(--ios-text);cursor:pointer;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;touch-action:pan-y;transition:transform .1s ease,background-color .13s ease}.slot.MuiPaper-root{box-shadow:none;border-radius:16px;text-align:left;font-family:inherit}.app-shell.dark-mode .slot{background:#2c2c2e;color:var(--ios-text)}.slot:active{background:var(--slot-active-bg)}.app-shell.dark-mode .slot:active{background:var(--slot-active-bg-dark)}.slot.score-1{background:var(--slot-score-1-bg);border-color:var(--slot-score-1-border);color:var(--slot-score-1-text)}.slot.score-2{background:var(--slot-score-2-bg);border-color:var(--slot-score-2-border);color:var(--slot-score-2-text)}.slot.score-3{background:var(--slot-score-3-bg);border-color:var(--slot-score-3-border);color:var(--slot-score-3-text)}.slot-empty{visibility:hidden;pointer-events:none}.slot-indicator{flex-shrink:0;font-size:12px;font-weight:800;line-height:1;color:transparent;width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;padding:0}.slot-indicator.score-1{color:var(--slot-indicator-1-text);background:var(--slot-indicator-1-bg)}.slot-indicator.score-2{color:var(--slot-indicator-2-text);background:var(--slot-indicator-2-bg)}.slot-indicator.score-3{color:var(--slot-indicator-3-text);background:var(--slot-indicator-3-bg)}.settings-sheet{position:absolute;top:0;right:0;bottom:0;left:0;z-index:60;padding:12px;background:#f2f2f7fa;overflow-y:auto}.app-shell.dark-mode .settings-sheet{background:#0f1116fa}.settings-head{display:grid;grid-template-columns:64px 1fr 64px;align-items:center;column-gap:8px;margin-bottom:12px}.settings-head h2{margin:0;text-align:center;font-size:16px;letter-spacing:-.01em}.settings-head-spacer{width:64px;height:1px}.settings-menu{display:grid;gap:8px}.settings-menu-item{display:flex;align-items:center;min-height:46px;border:.5px solid var(--ios-separator);border-radius:999px;background:#fff;text-align:left;padding:0 12px;font-size:15px;font-weight:600;color:var(--ios-text);cursor:pointer}.import-file-input{display:none}.settings-menu-item.danger{color:#b42318;border-color:#b4231847;background:#ff3b3014}.settings-close{width:64px;border:none;background:none;color:var(--ios-blue);font-weight:700;font-size:14px;cursor:pointer;text-align:left}.app-shell.dark-mode .settings-close{color:#66a3ff}.settings-head .settings-close:last-child{text-align:right}.settings-grid{display:grid;gap:10px}.settings-card{background:var(--ios-card);border:.5px solid var(--ios-separator);border-radius:14px;padding:10px 12px}.app-shell.dark-mode .settings-card{background:#161b24}.app-shell.dark-mode .settings-menu-item{background:#1a1f29;color:var(--ios-text)}.app-shell.dark-mode .settings-menu-item:active{background:#232937}.app-shell.dark-mode .settings-menu-item.danger{color:#ff8e86;border-color:#ff8e865c;background:#ff8e861f}.settings-card h3{margin:0 0 10px;font-size:14px;color:var(--ios-subtext)}.category-list{display:grid;gap:8px}.category-entry{border:.5px solid var(--ios-separator);border-radius:12px;padding:8px;display:grid;gap:8px}.category-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.app-shell.dark-mode .setting-row input,.app-shell.dark-mode .mode-btn.active,.app-shell.dark-mode .scheme-pill{background:#2c2c2e;color:var(--ios-text)}.app-shell.dark-mode .category-entry{background:#2c2c2e8c}.category-actions{display:flex;align-items:center;gap:6px}.category-scheme-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.scheme-pill{min-height:30px;border-radius:999px;border:.5px solid var(--ios-separator);background:#fff;color:var(--ios-subtext);font-size:11px;font-weight:700;cursor:pointer}.scheme-pill.blue{border-color:#007aff4d}.scheme-pill.cyan{border-color:#22ccdb61}.scheme-pill.purple{border-color:#af52de5c}.scheme-pill.pink{border-color:#ff2d9257}.scheme-pill.active.blue{background:#007aff29;color:#005fcc}.scheme-pill.active.cyan{background:#22ccdb2e;color:#0f6f7b}.scheme-pill.active.purple{background:#af52de33;color:#6f2c93}.scheme-pill.active.pink{background:#ff2d9233;color:#9a0f57}.mini-btn{border:.5px solid rgba(255,255,255,.55);border-radius:999px;padding:0 14px;min-height:32px;background:#ffffff73;-webkit-backdrop-filter:blur(16px) saturate(1.6);backdrop-filter:blur(16px) saturate(1.6);color:var(--ios-text);font-size:14px;font-weight:600;cursor:pointer;box-shadow:inset 0 1px #fff9;transition:background .12s ease}.mini-btn:active{background:#fff9}.app-shell.dark-mode .mini-btn{background:#2c2c2e8c;border-color:#ffffff1a;box-shadow:inset 0 1px #ffffff0f}.app-shell.dark-mode .mini-btn:active{background:#2c2c2ebf}.mini-btn--primary{background:#007aff;border-color:transparent;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;border-radius:999px;padding:0 14px;min-height:32px;color:#fff;font-size:14px;font-weight:600;cursor:pointer}.app-shell.dark-mode .mini-btn--primary{background:#0a84ff}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.setting-row:last-of-type{margin-bottom:0}.setting-row span{font-size:14px}.setting-row input{font-family:inherit;font-size:16px;border:.5px solid var(--ios-separator);border-radius:999px;padding:4px 8px;background:#fff;min-height:34px;min-width:96px}.settings-note{margin:8px 0 0;font-size:12px;color:var(--ios-subtext)}.band-input-group{display:flex;align-items:center;gap:4px}.band-unit{font-size:13px;color:var(--ios-subtext);min-width:28px}.mode-toggle{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));background:#78788024;border-radius:12px;padding:3px;gap:4px}.app-shell.dark-mode .mode-toggle{background:#9ca8ba33}.mode-btn{border:none;border-radius:999px;background:transparent;min-height:34px;font-size:13px;font-weight:600;color:var(--ios-subtext);cursor:pointer}.mode-btn.active{background:#fff;color:var(--ios-text);box-shadow:0 1px 2px #0000001f}.app-shell.dark-mode .mode-btn.active{background:#253043;color:#f2f4f8;box-shadow:none}@keyframes panel-rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 640px){.app-shell{padding-left:0;padding-right:0}.panel{border-radius:0}.panel-header{padding:14px 14px 12px}.slots{padding:12px 12px calc(162px + env(safe-area-inset-bottom));max-height:none}.stats-view{padding:10px;max-height:68vh}.stats-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.stats-chart-grid,.replay-grid{grid-template-columns:1fr}.settings-fab{left:10px;bottom:calc(10px + env(safe-area-inset-bottom));width:50px;height:50px}.stats-fab{left:30%;bottom:calc(10px + env(safe-area-inset-bottom));width:50px;height:50px}.today-fab{left:50%;bottom:calc(10px + env(safe-area-inset-bottom));width:50px;height:50px}.tag-fab{left:70%;right:auto;bottom:calc(10px + env(safe-area-inset-bottom));width:50px;height:50px}.lock-fab{left:90%;right:auto;bottom:calc(10px + env(safe-area-inset-bottom));width:50px;height:50px}.settings-fab.MuiFab-root{left:10%;right:auto;bottom:calc(10px + env(safe-area-inset-bottom))}.stats-fab.MuiFab-root{left:30%;right:auto;bottom:calc(10px + env(safe-area-inset-bottom))}.today-fab.MuiFab-root{left:50%;right:auto;bottom:calc(10px + env(safe-area-inset-bottom))}.tag-fab.MuiFab-root{left:70%;right:auto;bottom:calc(10px + env(safe-area-inset-bottom))}.lock-fab.MuiFab-root{left:90%;right:auto;bottom:calc(10px + env(safe-area-inset-bottom))}.tag-toolbar{bottom:calc(120px + env(safe-area-inset-bottom))}.category-row{align-items:stretch;flex-direction:column}.category-actions{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.category-scheme-row{grid-template-columns:repeat(2,minmax(0,1fr))}.setting-row{flex-direction:column;align-items:stretch;gap:6px}.setting-row input{width:100%;min-width:0}.mode-toggle{grid-template-columns:1fr}}@media (max-width: 420px){.panel-header{padding:12px 10px 10px}.date-nav{gap:6px;grid-template-columns:50px minmax(0,1fr) 50px}.nav-btn{width:50px;height:50px}.date-label{font-size:16px}.slot{height:50px;min-height:50px;font-size:16px}.slot-row{column-gap:14px;row-gap:12px;padding:0 10px}.score-title{font-size:9px}.score-value{font-size:16px}.grade-ring-svg{width:34px;height:34px}.stats-kpis{grid-template-columns:1fr}.tag-toolbar{bottom:calc(120px + env(safe-area-inset-bottom))}}.score-strip-footer{position:fixed;bottom:0;left:0;right:0;padding:8px 12px calc(10px + env(safe-area-inset-bottom));z-index:9998}.score-strip-footer .score-strip{margin-bottom:0}.score-strip-actions{display:flex;justify-content:space-between;margin-bottom:8px}.score-strip-actions-left,.score-strip-actions-right{display:flex;gap:8px}.footer-icon-btn{width:44px;height:44px;border-radius:999px;border:.5px solid rgba(255,255,255,.55);background:#ffffff73;-webkit-backdrop-filter:blur(16px) saturate(1.6);backdrop-filter:blur(16px) saturate(1.6);color:var(--ios-subtext);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:inset 0 1px #fff9;transition:background .12s ease,color .12s ease}.footer-icon-btn:active{background:#76768033}.footer-icon-btn.active,.footer-icon-btn.locked{color:#007aff;background:#007aff1f}.app-shell.dark-mode .footer-icon-btn{background:#2c2c2e8c;border-color:#ffffff1a;color:#8e8e93;box-shadow:inset 0 1px #ffffff0f}.app-shell.dark-mode .footer-icon-btn:active{background:#7676805c}.app-shell.dark-mode .footer-icon-btn.active,.app-shell.dark-mode .footer-icon-btn.locked{color:#0a84ff;background:#0a84ff2e}.fab-dock{position:fixed;bottom:calc(158px + env(safe-area-inset-bottom));left:50%;transform:translate(-50%);display:inline-flex;align-items:center;gap:2px;background:#f2f2f78c;-webkit-backdrop-filter:blur(24px) saturate(1.8);backdrop-filter:blur(24px) saturate(1.8);border-radius:999px;padding:5px;border:.5px solid rgba(255,255,255,.6);box-shadow:0 4px 20px #0000001a,0 1px 4px #0000000f,inset 0 1px #ffffffb3;z-index:9999;white-space:nowrap}.app-shell.dark-mode .fab-dock{background:#2c2c2e8c;border-color:#ffffff1a;box-shadow:0 4px 20px #00000080,0 1px 4px #0000004d,inset 0 1px #ffffff0f}.dock-fab.MuiFab-root{position:relative!important;left:auto!important;right:auto!important;bottom:auto!important;transform:none!important;width:46px!important;height:46px!important;min-height:46px!important;min-width:46px!important;border-radius:999px!important;border:none!important;background:transparent!important;box-shadow:none!important;color:var(--ios-subtext)!important;transition:background .15s ease,color .15s ease!important}.dock-fab.MuiFab-root:hover{background:#7878801a!important}.dock-fab.MuiFab-root:active{background:#78788029!important;transform:scale(.93)!important}.dock-fab.active.MuiFab-root,.dock-fab.locked.MuiFab-root{background:#007aff21!important;color:#007aff!important}.app-shell.dark-mode .dock-fab.MuiFab-root{color:#8a9ab8!important}.app-shell.dark-mode .dock-fab.active.MuiFab-root,.app-shell.dark-mode .dock-fab.locked.MuiFab-root{background:#66a3ff2e!important;color:#66a3ff!important}.timeline-view{position:absolute;top:0;right:0;bottom:0;left:0;height:100%;overflow-y:auto;z-index:1;padding-top:8px;padding-bottom:calc(200px + env(safe-area-inset-bottom))}.tl-row{display:flex;flex-shrink:0;position:relative}.tl-gutter{width:56px;flex-shrink:0;position:relative}.tl-label{position:absolute;top:0;right:8px;transform:translateY(-50%);font-size:11px;font-weight:500;color:var(--ios-subtext);line-height:1;white-space:nowrap;pointer-events:none;-webkit-user-select:none;user-select:none}.tl-label--half{font-size:10px;opacity:.55}.tl-track{flex:1;position:relative;padding:1px 12px 1px 0}.tl-separator{position:absolute;top:0;left:0;right:12px;height:.5px;background:var(--ios-separator);pointer-events:none}.tl-separator--half{left:8px;background:var(--ios-separator);opacity:.5}.tl-slot{display:flex;align-items:flex-end;justify-content:space-between;gap:4px;width:100%;height:100%;border:none;border-radius:6px;background:transparent;cursor:pointer;padding:3px 6px;text-align:left;overflow:hidden;transition:filter 80ms ease}.tl-slot.score-0{background:transparent}.tl-slot.score-0:active{background:#76768014}.tl-slot.score-1{background:var(--slot-score-1-bg);box-shadow:inset 3px 0 0 var(--slot-score-1-border)}.tl-slot.score-2{background:var(--slot-score-2-bg);box-shadow:inset 3px 0 0 var(--slot-score-2-border)}.tl-slot.score-3{background:var(--slot-score-3-bg);box-shadow:inset 3px 0 0 var(--slot-score-3-border)}.tl-slot.score-1:active,.tl-slot.score-2:active,.tl-slot.score-3:active{filter:brightness(.94)}.tl-tag-name{font-size:11px;font-weight:600;line-height:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.tl-score-label{font-size:11px;font-weight:700;color:var(--slot-score-3-text);line-height:1;flex-shrink:0}@media (max-width: 420px){.timeline-view{padding-bottom:calc(162px + env(safe-area-inset-bottom))}}.date-picker-today{border-color:var(--category-accent-border)!important;background:var(--category-accent-bg)!important}.date-cal-icon{font-size:14px!important;opacity:.45;flex-shrink:0;margin-right:2px}.today-badge{font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--category-accent-text);background:var(--category-accent-bg);border:.5px solid var(--category-accent-border);border-radius:999px;padding:1px 6px;flex-shrink:0;margin-left:4px}.app-shell.dark-mode .today-badge{color:var(--category-accent-text-dark);background:var(--category-accent-bg-dark);border-color:var(--category-accent-border-dark)}.tag-toolbar-divider{width:1px;height:20px;background:var(--ios-separator);flex-shrink:0;margin:0 2px}.chart-tooltip{background:#fffffff7;border:.5px solid rgba(60,60,67,.14);border-radius:10px;padding:8px 12px;box-shadow:0 4px 16px #0000001f;font-size:12px;min-width:100px}.app-shell.dark-mode .chart-tooltip{background:#1c212cf7;border-color:#c9d2df2e;box-shadow:0 4px 16px #0006;color:var(--ios-text)}.chart-tooltip-label{margin:0 0 5px;font-weight:700;font-size:11px;color:var(--ios-subtext);letter-spacing:.03em;text-transform:uppercase}.chart-tooltip-row{margin:3px 0 0;display:flex;justify-content:space-between;align-items:center;gap:12px}.chart-tooltip-key{font-size:11px;opacity:.75}.chart-tooltip-val{font-weight:700;font-size:13px}.tag-stat-bar-wrap{height:5px;background:#7878801f;border-radius:999px;overflow:hidden;margin:3px 0}.tag-stat-bar{height:100%;border-radius:999px;min-width:4px;transition:width .4s ease}.app-shell.dark-mode .category-header-btn{border-color:var(--category-accent-border-dark);background:var(--category-accent-bg-dark);color:var(--category-accent-text-dark)}.auth-gate{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;background:#f5f5f7;padding:24px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.auth-gate.dark-mode{background:#1c1c1e}.auth-card{background:#fff;border-radius:20px;padding:48px 40px 40px;width:100%;max-width:360px;display:flex;flex-direction:column;align-items:center;gap:0;box-shadow:0 4px 24px #0000001a,0 1px 4px #0000000f}.auth-gate.dark-mode .auth-card{background:#2c2c2e;box-shadow:0 4px 32px #0006}.auth-logo{width:64px;height:64px;margin-bottom:20px;border-radius:16px;overflow:hidden}.auth-logo svg{width:100%;height:100%}.auth-title{font-size:1.5rem;font-weight:700;margin:0 0 6px;color:#1d1d1f;letter-spacing:-.3px}.auth-gate.dark-mode .auth-title{color:#f5f5f7}.auth-subtitle{font-size:.875rem;color:#6e6e73;margin:0 0 32px;text-align:center;line-height:1.4}.auth-gate.dark-mode .auth-subtitle{color:#98989d}.auth-google-btn{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;padding:0 16px;height:48px;background:#fff;border:.5px solid rgba(60,60,67,.18);border-radius:24px;cursor:pointer;font-family:Google Sans,Roboto,-apple-system,sans-serif;font-size:.9375rem;font-weight:500;color:#3c4043;letter-spacing:.01em;transition:background .15s,box-shadow .15s,border-color .15s;box-shadow:0 1px 2px #00000014;white-space:nowrap}.auth-google-btn:hover:not(:disabled){background:#f8f9fa;box-shadow:0 2px 6px #00000021;border-color:#c6c9cc}.auth-google-btn:active:not(:disabled){background:#f1f3f4;box-shadow:none}.auth-google-btn:disabled{opacity:.7;cursor:not-allowed}.auth-gate.dark-mode .auth-google-btn{background:#3a3a3c;border-color:#48484a;color:#f5f5f7;box-shadow:none}.auth-gate.dark-mode .auth-google-btn:hover:not(:disabled){background:#444446;border-color:#636366}.auth-google-icon{width:20px;height:20px;flex-shrink:0}.auth-spinner{width:18px;height:18px;border:2px solid rgba(60,64,67,.25);border-top-color:#4285f4;border-radius:50%;animation:auth-spin .7s linear infinite;flex-shrink:0}.auth-gate.dark-mode .auth-spinner{border-color:#f5f5f733;border-top-color:#4285f4}@keyframes auth-spin{to{transform:rotate(360deg)}}.auth-error{margin:14px 0 0;font-size:.8125rem;color:#d93025;text-align:center}.auth-gate.dark-mode .auth-error{color:#ff6b6b}.range-toggle-row{height:42px;display:flex;justify-content:center;gap:8px;align-items:center;flex-shrink:0}.range-toggle-btn{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-width:96px;padding:7px 16px;border-radius:999px;border:.5px solid rgba(60,60,67,.18);background:#ffffffeb;color:#555;font-size:11px;font-weight:600;letter-spacing:.02em;cursor:pointer;white-space:nowrap;box-shadow:0 2px 8px #0000001a;transition:background .15s}@keyframes slot-fade-in{0%{opacity:0;transform:scaleY(.85)}to{opacity:1;transform:scaleY(1)}}.slot-row--new,.slot--new{animation:slot-fade-in .28s ease-out both;transform-origin:top center}.range-toggle-btn:active{background:#ebebf0fa}.range-toggle-icon{width:13px;height:13px;flex-shrink:0}.app-shell.dark-mode .range-toggle-btn{background:#2c2c2ee0;border-color:#ffffff24;color:#aaa}.app-shell.dark-mode .range-toggle-btn:active{background:#3a3a3cf2}html,body,#root{margin:0;min-height:100%}body{min-height:100vh}
