*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}body{font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Helvetica Neue,sans-serif;font-size:1rem;line-height:1.5;color:#1c1c1e;background-color:#fafafa;padding-top:env(safe-area-inset-top);padding-right:env(safe-area-inset-right);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);min-height:100dvh;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}.top-bar{position:fixed;top:0;left:0;right:0;z-index:100;background-color:#fafafad9;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);padding:12px 16px;padding-top:calc(12px + env(safe-area-inset-top));border-bottom:.5px solid rgba(0,0,0,.12)}.top-bar__inner{display:flex;align-items:center;gap:14px}.top-bar__title{flex:1;min-width:0}.top-bar__title h1{font-size:1.05rem;font-weight:700;color:#1c1c1e;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.top-bar__progress{font-size:.75rem;font-weight:500;color:#8e8e93;margin-top:2px}.content{padding:130px 16px 40px}.date-icon{width:64px;min-width:64px;border-radius:14px;overflow:hidden;background-color:#fff;box-shadow:0 2px 12px #00000014,0 0 0 .5px #0000000a;text-align:center}.date-icon__header{background-color:#ff3b30;color:#fff;font-size:.55rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;padding:4px 0 3px}.date-icon__day{font-size:1.7rem;font-weight:300;line-height:1;color:#1c1c1e;padding:5px 0 1px}.date-icon__month{font-size:.55rem;font-weight:500;text-transform:uppercase;letter-spacing:.03em;color:#8e8e93;padding-bottom:6px}.category{margin-bottom:24px}.category__title{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#8e8e93;padding:0 4px 8px}.exercise-list{display:flex;flex-direction:column;gap:8px}.exercise-card{background-color:#fff;border-radius:14px;padding:14px 16px;box-shadow:0 1px 3px #0000000a,0 0 0 .5px #00000008;transition:opacity .35s ease,transform .35s ease}.exercise-card.completed{opacity:.5;transform:scale(.98)}.exercise-card__info{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px}.exercise-card__name{font-size:.95rem;font-weight:600;color:#1c1c1e}.exercise-card__reps{font-size:.8rem;font-weight:500;color:#8e8e93;white-space:nowrap;margin-left:8px}.exercise-card__sets{display:flex;gap:8px}.set-btn{position:relative;width:44px;height:44px;border-radius:12px;border:2px solid #e5e5ea;background-color:#f9f9f9;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s cubic-bezier(.4,0,.2,1);-webkit-tap-highlight-color:transparent}.set-btn:active{transform:scale(.9)}.set-btn__label{font-size:.85rem;font-weight:600;color:#8e8e93;transition:opacity .15s ease,transform .15s ease}.set-btn__check{position:absolute;width:20px;height:20px;color:#fff;opacity:0;transform:scale(.5);transition:opacity .2s ease,transform .2s cubic-bezier(.34,1.56,.64,1)}.set-btn.done{background-color:#34c759;border-color:#34c759;box-shadow:0 2px 8px #34c7594d}.set-btn.done .set-btn__label{opacity:0;transform:scale(.5)}.set-btn.done .set-btn__check{opacity:1;transform:scale(1)}.back-link{font-size:.9rem;font-weight:500;color:#007aff;text-decoration:none;white-space:nowrap}.top-bar__action{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:10px;background-color:#007aff1a;color:#007aff;text-decoration:none;transition:background-color .15s ease,transform .1s ease;-webkit-tap-highlight-color:transparent;flex-shrink:0}.top-bar__action:active{transform:scale(.9);background-color:#007aff33}.stats-row{display:flex;gap:8px;margin-bottom:24px}.stat-card{flex:1;background-color:#fff;border-radius:14px;padding:14px 12px;text-align:center;box-shadow:0 1px 3px #0000000a,0 0 0 .5px #00000008}.stat-card--accent{background:linear-gradient(135deg,#ff6b35,#ff3b30);color:#fff}.stat-card__value{display:block;font-size:1.6rem;font-weight:700;line-height:1.2}.stat-card--accent .stat-card__value{color:#fff}.stat-card__label{display:block;font-size:.65rem;font-weight:500;color:#8e8e93;margin-top:4px}.stat-card--accent .stat-card__label{color:#ffffffd9}.section-title{font-size:.95rem;font-weight:700;color:#1c1c1e;margin-bottom:12px;text-transform:capitalize}.calendar-section{margin-bottom:24px}.calendar{background-color:#fff;border-radius:14px;padding:14px;box-shadow:0 1px 3px #0000000a,0 0 0 .5px #00000008}.calendar__header{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:6px}.calendar__header span{text-align:center;font-size:.65rem;font-weight:600;color:#8e8e93;text-transform:uppercase}.calendar__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}.calendar__cell{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:8px;position:relative}.calendar__cell--empty{background:transparent}.calendar__day-num{font-size:.75rem;font-weight:500;color:#1c1c1e}.calendar__cell--completed{background-color:#34c75926}.calendar__cell--completed .calendar__day-num{color:#34c759;font-weight:700}.calendar__cell--partial{background-color:#ff95001f}.calendar__cell--partial .calendar__day-num{color:#ff9500;font-weight:600}.calendar__cell--missed{background-color:#ff3b3014}.calendar__cell--missed .calendar__day-num{color:#ff3b30}.calendar__cell--rest{background-color:#8e8e9314}.calendar__cell--rest .calendar__day-num{color:#aeaeb2}.calendar__cell--future .calendar__day-num{color:#d1d1d6}.chart-section{margin-bottom:24px}.weekly-chart{display:flex;gap:12px;justify-content:space-between;background-color:#fff;border-radius:14px;padding:16px;box-shadow:0 1px 3px #0000000a,0 0 0 .5px #00000008}.chart-bar{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px}.chart-bar__track{width:100%;height:100px;background-color:#f2f2f7;border-radius:8px;position:relative;overflow:hidden;display:flex;align-items:flex-end}.chart-bar__fill{width:100%;background:linear-gradient(180deg,#34c759,#30b350);border-radius:8px;transition:height .6s cubic-bezier(.34,1.56,.64,1);min-height:4px}.chart-bar__label{font-size:.6rem;font-weight:600;color:#8e8e93}.chart-bar__value{font-size:.7rem;font-weight:700;color:#1c1c1e}.login-page{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:safe center;padding:40px 16px;background:linear-gradient(160deg,#f8f9fa,#e8ecf1)}.login-logo{text-align:center;margin-bottom:32px}.login-logo__icon{font-size:3rem;display:block;margin-bottom:8px}.login-logo__title{font-size:1.6rem;font-weight:800;color:#1c1c1e;margin:0}.login-logo__subtitle{font-size:.85rem;color:#8e8e93;margin-top:4px}.login-card{width:100%;max-width:380px;background-color:#fff;border-radius:20px;padding:24px;box-shadow:0 4px 24px #00000014,0 0 0 .5px #0000000a}.login-tabs{display:flex;background-color:#f2f2f7;border-radius:10px;padding:3px;margin-bottom:24px}.login-tab{flex:1;padding:8px;border:none;background:transparent;border-radius:8px;font-size:.85rem;font-weight:600;color:#8e8e93;cursor:pointer;transition:all .2s ease}.login-tab.active{background-color:#fff;color:#1c1c1e;box-shadow:0 1px 4px #00000014}.login-form{display:flex;flex-direction:column;gap:16px}.form-group{display:flex;flex-direction:column;gap:6px}.form-group label{font-size:.75rem;font-weight:600;color:#8e8e93;text-transform:uppercase;letter-spacing:.03em}.form-group input{padding:12px 14px;border:1.5px solid #e5e5ea;border-radius:12px;font-size:1rem;font-family:inherit;background-color:#f9f9fb;color:#1c1c1e;transition:border-color .2s ease,box-shadow .2s ease;-webkit-appearance:none;appearance:none}.form-group input:focus{outline:none;border-color:#007aff;box-shadow:0 0 0 3px #007aff1f}.form-group input::placeholder{color:#c7c7cc}.login-error{font-size:.8rem;color:#ff3b30;font-weight:500;min-height:1.2em}.login-submit{padding:14px;border:none;border-radius:12px;background:linear-gradient(135deg,#007aff,#0055d4);color:#fff;font-size:1rem;font-weight:700;font-family:inherit;cursor:pointer;transition:transform .1s ease,opacity .15s ease;-webkit-tap-highlight-color:transparent}.login-submit:active{transform:scale(.97)}.login-submit:disabled{opacity:.6;cursor:not-allowed}.top-bar__logout{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:10px;background-color:#ff3b301a;color:#ff3b30;border:none;cursor:pointer;transition:background-color .15s ease,transform .1s ease;-webkit-tap-highlight-color:transparent;flex-shrink:0}.top-bar__logout:active{transform:scale(.9);background-color:#ff3b3033}
