:root{color-scheme:dark;font-family:system-ui,-apple-system,Segoe UI,sans-serif;background:#101722;color:#f2f7ff}*{box-sizing:border-box}body{margin:0}#app{max-width:820px;margin:auto;min-height:100vh;padding:16px 16px 110px}header,.brand,.actions,.row,nav{display:flex;align-items:center;gap:12px}header{justify-content:space-between;margin-bottom:22px}.brand img{width:60px;height:60px;object-fit:contain;border-radius:12px}.brand strong{display:block;font-size:20px;letter-spacing:.04em}.brand small{font-size:10px;color:#9fb4ce;letter-spacing:.15em}h1{font-size:28px;margin:0 0 10px}h2{font-size:20px;margin:0 0 12px}h3{margin:0 0 8px;font-size:17px}p{color:#bac9d9;line-height:1.5}.muted,small{color:#a6b6c9}.eyebrow{color:#7bc3ff;font-size:12px;font-weight:700;letter-spacing:.08em}.card{background:#1c2838;border:1px solid #304257;border-radius:17px;padding:17px;margin:12px 0}.hero{background:linear-gradient(130deg,#1d395b,#1a2639)}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.grid .card{margin:0}button,input,select,textarea{font:inherit}button{border:0;border-radius:11px;padding:12px 14px;background:#2879e4;color:white;font-weight:650;cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}.ghost,.secondary{background:#2b3a4b;color:#e2eefa}.danger{background:#763744}.full{width:100%}.actions{flex-wrap:wrap}.actions button{flex:1}.field{display:block;margin:14px 0;color:#e2ecf7;font-size:14px;font-weight:600}.field input,.field select,.field textarea{display:block;margin-top:7px;width:100%;background:#111e2d;border:1px solid #44566b;border-radius:10px;padding:12px;color:#fff}.field textarea{min-height:85px}.chips{display:flex;flex-wrap:wrap;gap:7px;margin:9px 0}.chip{background:#263c54;border:1px solid #3d5976;color:#dceafa;padding:8px 10px;border-radius:22px;font-size:13px}.chip.active{background:#2362a7;border-color:#79bfff}.row{justify-content:space-between;align-items:flex-start}.tag{display:inline-block;border-radius:6px;background:#30445d;padding:4px 8px;font-size:12px;color:#cfe5fb;margin:2px}.notice{border-left:3px solid #e46b70;padding:9px 12px;background:#2b2734;color:#e4d9e2;margin:12px 0}.exercise{border-top:1px solid #344458;padding:13px 0}.exercise:first-of-type{border-top:0}.setrow{display:grid;grid-template-columns:50px 1fr 1fr 36px;gap:8px;align-items:center;margin:8px 0}.setrow input{min-width:0;width:100%;background:#101d2c;color:#fff;border:1px solid #4b5c71;border-radius:8px;padding:9px}.setrow button{padding:8px;background:#3d4654}nav{position:fixed;bottom:0;left:0;right:0;max-width:820px;margin:auto;background:#152132;border-top:1px solid #3b4b60;padding:10px 8px calc(10px + env(safe-area-inset-bottom));justify-content:space-around;z-index:10}nav button{background:transparent;color:#a7b9ce;display:flex;flex-direction:column;align-items:center;padding:6px 7px;gap:2px;font-size:23px}nav button span{font-size:11px}nav button.active{color:#6db7ff}details{margin:12px 0}summary{cursor:pointer;color:#8ac8ff}.stat{font-size:27px;font-weight:800;color:#8bcaff}@media(max-width:390px){#app{padding:12px 12px 110px}.brand strong{font-size:17px}.grid{gap:8px}.card{padding:13px}header .ghost{font-size:11px;padding:9px}}
/* Updates to the original mobile-first design. */
[hidden]{display:none!important}
body{background:#101722}
button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #8bcaff;outline-offset:2px}
button{touch-action:manipulation}
.card{overflow-wrap:anywhere}
.row h1,.row h2,.row h3{margin-bottom:0}
.row{min-width:0}
.row > *{min-width:0}
.row button{flex-shrink:0}
.card.subtle{background:#172335}
.help{font-size:12px;color:#a6b6c9;font-weight:400;line-height:1.45}
.field .help{display:inline}
.filter-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.filter-row label{font-size:12px;color:#a6b6c9}
.filter-row select{display:block;width:100%;margin-top:5px;border-radius:9px;padding:10px 7px;background:#112033;border:1px solid #4b5c71;color:#fff;min-width:0}
.notice{border-radius:8px}
.previous{font-size:12px;background:#18354a;color:#b9e0ff;padding:8px;border-radius:9px}
.routine{border:1px solid #36546a;background:#14273b;padding:11px;border-radius:12px;margin:12px 0}
.routine ol,.card ol{padding-left:24px;line-height:1.55}
.routine li,.card li{margin-bottom:5px}
.card button{max-width:100%}
.card details[open]{border-top:1px solid #3e5369;padding-top:10px}
#logPanel{outline:2px solid #2b7fd5}
.overlay{position:fixed;inset:0;z-index:30;background:rgba(2,7,15,.78);display:flex;align-items:center;justify-content:center;padding:12px}
.overlay .modal{width:min(540px,100%);max-height:calc(100dvh - 24px);overflow:auto;margin:0;box-shadow:0 28px 80px rgba(0,0,0,.5)}
.modal > button{margin:6px 0}
@media(max-width:480px){.filter-row{grid-template-columns:1fr 1fr}.filter-row label:last-child{grid-column:1/-1}}
@media(max-width:350px){.grid{grid-template-columns:1fr}.brand img{width:48px;height:48px}.brand strong{font-size:15px}.brand small{font-size:9px}nav button{font-size:21px}nav button span{font-size:10px}}

/* v2.3: customizable multi-exercise layouts, per day */
.build-settings{grid-template-columns:repeat(2,minmax(0,1fr))}
.build-settings .field{margin:4px 0 10px}
.build-settings select{font-size:15px;padding:12px;width:100%}
.builder-layout-title,.builder-day-header,.builder-slot-header{display:flex;align-items:center;justify-content:space-between;gap:10px}
.builder-layout-title{margin:24px 0 14px}
.builder-layout-title h2{margin:0}
.builder-day-header{margin:16px 0 10px}
.builder-day-tabs{display:flex;gap:7px;overflow:auto;padding-bottom:7px;scrollbar-width:thin}
.builder-day-tabs button{flex:0 0 auto;background:#24354c;border:1px solid #385371;color:#cfdeee;font-size:13px;padding:10px 12px}
.builder-day-tabs button.active{background:#2368b5;color:#fff;border-color:#7dbdff}
.builder-slot{background:#142235;border:1px solid #345171;border-radius:13px;padding:12px;margin:10px 0}
.builder-slot-header{justify-content:flex-start;flex-wrap:wrap}
.builder-slot-header strong{flex:1;min-width:92px;font-size:14px}
.slot-number{display:grid;place-items:center;width:27px;height:27px;flex:0 0 27px;border-radius:50%;background:#265b90;color:#fff;font-weight:700;font-size:12px}
.slot-buttons{display:flex;gap:5px;margin-left:auto}
.slot-buttons .icon-button{padding:6px 9px;min-width:32px;min-height:32px;font-size:18px;line-height:1;border:1px solid #425b76}
.builder-slot-fields{display:grid;grid-template-columns:1fr 1.3fr;gap:10px}
.builder-slot-fields .field{min-width:0;margin:10px 0 2px;font-size:12px}
.builder-slot-fields select{font-size:14px;width:100%;padding:10px 5px;min-width:0}
.missing-help{color:#ffc9c9;margin:7px 0 0}
.add-slot-row{display:flex;align-items:flex-end;gap:10px;margin:14px 0}
.add-slot-row .field{flex:1;min-width:0;margin:0}
.add-slot-row select{min-width:0}
.add-slot-row button{flex:0 0 auto}
.copy-layout{margin:8px 0 2px}
.generate-button{margin-top:20px;padding:15px;font-size:16px}
@media(max-width:520px){.builder-slot-fields{grid-template-columns:1fr}.builder-slot-fields .field{margin:6px 0}.builder-slot-header strong{min-width:80px}.slot-buttons .icon-button{min-width:29px;padding:5px 7px}.add-slot-row button{font-size:13px;padding:12px 9px}}
@media(max-width:350px){.builder-slot{padding:9px}.builder-slot-header{gap:5px}.slot-buttons{gap:3px}.slot-buttons .icon-button{padding:5px 6px}.add-slot-row{flex-direction:column;align-items:stretch}.add-slot-row button{width:100%}}

.start-fresh{font-size:12px;padding:8px 10px;margin:0 0 5px;background:#2c394c;color:#cddbf0}


/* v2.4: band resistance tracking */
.resistance-mode-label{max-width:360px;margin:10px 0 12px;font-size:13px}
.resistance-mode-label select{max-width:360px;margin-top:5px}
.setrow .band-color{font-size:14px;min-width:0}
@media(max-width:390px){.setrow{grid-template-columns:44px minmax(0,1fr) minmax(0,1.25fr) 30px;gap:5px}.setrow input{padding:9px 6px;font-size:14px}.setrow button{padding:8px 5px}}

/* v2.6 — grouped exercise blocks (straight sets, supersets and giant sets) */
.builder-block{background:#18293e;border:1px solid #477092;border-radius:17px;padding:13px;margin:15px 0 19px}
.builder-block-top{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
.builder-block-top>div:first-child{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.block-pill{font-size:12px;font-weight:800;letter-spacing:.06em;color:#fff;background:#226bb6;border:1px solid #6bb4fb;padding:6px 9px;border-radius:7px}
.block-kind{font-size:15px;color:#f5f8ff}.block-count{font-size:12px}
.block-settings{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:6px 0 10px}
.block-settings .field{margin:4px 0;font-size:12px;color:#bcd3e9}
.block-settings input{padding:9px 11px}
.builder-block .builder-slot{background:#102137;border-color:#365d81;margin:9px 0}
.builder-block .slot-number{border-radius:7px;width:auto;min-width:35px;padding:0 5px;flex-basis:35px;background:#27669e}
.builder-block .slot-buttons{margin-left:auto}
.move-block-field{font-size:12px;margin:8px 0 0;max-width:330px}
.move-block-field select{padding:9px 7px}
.block-add{display:block;width:100%;margin:10px 0 0;background:#254564;border:1px dashed #6d9bc7}
.program-block,.log-block{background:#14283c;border:1px solid #3c6385;border-radius:13px;padding:13px;margin:14px 0}
.program-block h3,.log-block>h3{color:#b6dafe;margin-bottom:3px}
.program-block .help,.log-block>.help{margin:3px 0 7px}
.program-block .exercise:last-child,.log-block .exercise:last-child{padding-bottom:0}
.history-block h2{color:#c1e3ff}
@media(max-width:390px){.builder-block{padding:9px}.block-settings{gap:7px}.builder-block-top .slot-buttons{margin-left:0}.block-settings .field{font-size:11px}.slot-number{font-size:12px}}

.log-block .setrow{grid-template-columns:68px minmax(0,1fr) minmax(0,1fr) 34px}
@media(max-width:390px){.log-block .setrow{grid-template-columns:57px minmax(0,1fr) minmax(0,1.25fr) 30px;gap:5px}}

/* v2.8 — BEAST workout templates and source-specific set targets */
.workout-templates{margin-bottom:16px}
.workout-template-card{padding:12px 0;border-bottom:1px solid #344b64}
.workout-template-card:last-child{border-bottom:0}
.workout-template-card .row{align-items:flex-start}
.workout-template-card details{margin:10px 0}
.workout-template-card summary{cursor:pointer;color:#b9defc}
.workout-template-block{background:#172b40;border:1px solid #35536f;border-radius:10px;padding:10px;margin:8px 0}
.workout-template-block ul{padding-left:20px;margin:6px 0;line-height:1.6}
.workout-template-block li{margin-bottom:6px}
.use-template{margin:10px 0 2px}
.set-target{display:block;color:#9cd4ff;font-size:10px;line-height:1.2;margin-top:3px;overflow-wrap:anywhere}
.log-block .setrow{align-items:center}


/* v2.9 — 5/3/1 Boring But Big preset cards */
.bbb-templates{border-color:#3b7198;background:linear-gradient(160deg,#1b344b,#1c2838 55%)}
.bbb-templates .bbb-card{margin:12px 0;border-radius:13px;background:#14263a;padding:14px;border:1px solid #385f80}
.bbb-templates .bbb-card>strong{font-size:16px;color:#f7fbff}
.bbb-templates .field{margin:9px 0;font-size:12px;color:#c0d4e6}
.bbb-templates input,.bbb-templates select{min-width:0;width:100%;margin-top:5px}
.bbb-max-grid{display:grid;grid-template-columns:1fr 1fr;gap:5px 12px}
.bbb-templates .bbb-card>button{margin-top:10px}
@media(max-width:390px){.bbb-max-grid{grid-template-columns:1fr}}

/* v3.1 — Calendar-first workout planning. Dark sidebar, light, legible calendar. */
#app.calendar-mode{max-width:1450px;}
#app.calendar-mode header{padding:5px 3px 13px;}
#app.calendar-mode nav{max-width:1450px;}
.calendar-heading{margin:4px 2px 20px;}
.calendar-heading h1{font-size:clamp(30px,3.5vw,42px);margin-bottom:4px;letter-spacing:-.04em;}
.calendar-heading p{margin:4px 0 0;}
.calendar-heading .row{align-items:center;}
.calendar-heading .row>button{background:#2879e4;white-space:nowrap;}
.calendar-layout{display:grid;grid-template-columns:254px minmax(0,1fr);align-items:start;min-height:560px;border:1px solid #34485e;border-radius:22px;overflow:hidden;box-shadow:0 14px 38px rgba(0,0,0,.15);}
.calendar-sidebar{background:#182333;color:#e3ecf7;padding:24px 19px;min-height:100%;}
.sidebar-title{font-weight:800;letter-spacing:.04em;font-size:17px;margin-bottom:20px;}
.sidebar-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;}
.sidebar-metrics>div{border:1px solid #394f66;border-radius:10px;padding:10px 5px;text-align:center;background:#223249;}
.sidebar-metrics strong{display:block;font-size:22px;line-height:1.15;color:#fff;}
.sidebar-metrics small{display:block;color:#9db9d8;font-size:10px;margin-top:5px;}
.sidebar-divider{height:1px;background:#384c62;margin:23px 0;}
.calendar-sidebar h3{margin:0 0 8px;}
.calendar-sidebar p{font-size:13px;line-height:1.55;margin:7px 0 17px;color:#b6c8db;}
.calendar-sidebar .full{margin:6px 0;}
.sidebar-template-button{background:#283f56;}
.sidebar-legend{display:flex;flex-direction:column;gap:11px;color:#c4d4e7;font-size:13px;}
.sidebar-legend span{display:flex;align-items:center;gap:9px;}
.legend-mark{width:12px;height:12px;border-radius:4px;background:#2879e4;display:inline-block;}
.legend-mark.finished{background:#2c9e87;}
.calendar-sidebar .help{margin-top:26px;font-size:11px;color:#91a9c0;}
.clipboard-notice{margin-top:18px;border:1px solid #4c8ad0;background:#1c3955;padding:12px;border-radius:12px;}
.clipboard-notice strong{color:#b9ddff;font-size:13px;}
.clipboard-notice p{margin:6px 0;font-size:12px;}
.clipboard-notice button{font-size:12px;padding:7px 10px;}
.calendar-main{background:#e8eff6;color:#1d3048;padding:22px;min-width:0;min-height:550px;}
.calendar-main p{color:#60768d;}
.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:15px;}
.calendar-toolbar strong{font-size:21px;letter-spacing:-.02em;display:block;}
.calendar-toolbar-sub{font-size:12px;color:#6f8297;display:block;margin-top:4px;}
.calendar-toolbar-buttons{display:flex;align-items:center;gap:5px;}
.calendar-toolbar-buttons button{color:#26415d;background:white;border:1px solid #ccdae7;box-shadow:0 1px 3px rgba(0,0,0,.04);padding:8px 13px;min-width:36px;}
.calendar-toolbar-buttons button[aria-label^="Previous"],.calendar-toolbar-buttons button[aria-label^="Next"]{font-size:23px;line-height:1;padding:6px 12px;}
.calendar-view-switch{display:flex;align-items:center;gap:5px;margin-bottom:15px;}
.calendar-view-switch>button{background:#dce7f1;border:1px solid #c9d9e8;color:#49667d;font-size:13px;padding:8px 16px;}
.calendar-view-switch>button.active{background:#2378d0;border-color:#2378d0;color:#fff;}
.jump-to-date{margin-left:auto;display:flex;align-items:center;gap:8px;font-size:12px;color:#60778f;font-weight:700;}
.jump-to-date input{background:#fff;border:1px solid #c8d9e9;border-radius:8px;color:#25405c;padding:8px;font-size:13px;min-width:0;}
.calendar-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border:1px solid #c8d8e6;background:#d9e4ef;border-radius:12px 12px 0 0;overflow:hidden;}
.calendar-weekdays span{text-align:center;font-size:12px;font-weight:800;color:#6b8198;padding:11px 4px;}
.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));background:#c6d5e3;border:1px solid #c8d8e6;border-top:0;gap:1px;border-radius:0 0 12px 12px;overflow:hidden;}
.calendar-week-grid{min-height:330px;}
.calendar-month-grid{grid-auto-rows:minmax(102px,auto);}
.calendar-cell{background:#fbfdff;min-width:0;padding:8px 6px;transition:background .12s;}
.calendar-cell.today{background:#f5faff;}
.calendar-cell.selected{box-shadow:inset 0 0 0 2px #67aaf0;}
.calendar-cell.outside-month{background:#e9eef5;color:#8696a8;}
.date-cell-button{display:flex;align-items:center;justify-content:center;gap:6px;background:transparent;color:#587086;width:100%;padding:4px 2px 10px;text-align:center;}
.date-cell-button .date-weekday{display:none;}
.date-cell-button strong{font-size:16px;font-weight:800;display:grid;place-items:center;width:29px;height:29px;}
.calendar-cell.today .date-cell-button strong{background:#2378d0;color:white;border-radius:50%;}
.date-dot{display:none;}
.date-workouts{display:flex;flex-direction:column;gap:6px;}
.calendar-event{display:flex;align-items:stretch;min-width:0;background:#eff6ff;border:1px solid #bedcf7;border-radius:9px;overflow:hidden;box-shadow:0 2px 5px rgba(19,81,134,.05);}
.calendar-event[draggable="true"]{cursor:grab;}
.calendar-event:active{cursor:grabbing;}
.event-accent{display:block;min-width:4px;background:#2879e4;}
.calendar-event.completed{background:#eaf8f4;border-color:#a8ddd0;}
.calendar-event.completed .event-accent{background:#299f83;}
.calendar-event>button{display:flex;flex-direction:column;text-align:left;align-items:flex-start;gap:5px;width:100%;padding:10px 8px;color:#254664;background:transparent;min-width:0;}
.event-name{font-size:12px;line-height:1.35;font-weight:800;overflow-wrap:anywhere;}
.event-meta{font-size:10px;font-weight:500;color:#5681a4;line-height:1.35;overflow-wrap:anywhere;}
.calendar-event.completed .event-meta{color:#377a6f;}
.calendar-event.compact>button{padding:8px 6px;}
.calendar-event.compact .event-name{font-size:11px;}
.calendar-event.compact .event-meta{font-size:9px;}
.calendar-more{width:100%;background:transparent;color:#397cb5;text-align:left;font-size:11px;padding:6px 4px;}
.calendar-mobile-week{display:none;}
.calendar-selected-day{margin-top:22px;}
.day-agenda-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;}
.day-agenda-heading h2{font-size:21px;margin:3px 0 0;color:#243e57;}
.calendar-selected-day .eyebrow{color:#2375c0;}
.calendar-paste{font-size:12px;padding:10px;background:#167c70;white-space:nowrap;}
.agenda-card{border:1px solid #cadbe9;background:#fff;padding:17px 18px;border-radius:14px;margin:10px 0;box-shadow:0 4px 12px rgba(25,59,94,.04);}
.agenda-card.done{border-left:5px solid #2c9e87;}
.agenda-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;}
.agenda-top h3{font-size:17px;color:#233c53;margin:4px 0;}
.agenda-top p{font-size:12px;margin:2px 0 8px;}
.agenda-kicker{font-size:10px;font-weight:800;letter-spacing:.12em;color:#2479cb;}
.agenda-card.done .agenda-kicker{color:#238b76;}
.agenda-top button{font-size:12px;padding:10px 12px;background:#e7f0fa;color:#28649b;}
.agenda-blocks{display:flex;gap:6px;flex-wrap:wrap;margin-top:7px;}
.agenda-block-chip{padding:6px 9px;font-size:11px;border-radius:7px;background:#eff5fb;border:1px solid #d7e6f5;color:#426b8f;}
.empty-calendar{background:#fff;border:1px dashed #bdd2e5;border-radius:14px;padding:23px;text-align:center;}
.empty-calendar strong{color:#264059;}
.empty-calendar p{font-size:13px;margin:7px 0 16px;}
.empty-calendar button{background:#e9f1fa;color:#216ca8;}
.workout-detail{background:#172d43;border:1px solid #395b79;color:#f6f9fd;padding:20px;margin-top:21px;}
.workout-detail h2,.workout-detail h3{color:#f3f9ff;}
.workout-detail .row{align-items:flex-start;}
.workout-detail .row button{font-size:12px;}
.workout-detail p{color:#b9cce1;}
.workout-detail .program-block{background:#112336;}
.workout-detail .program-block .exercise{color:#e6f0fa;}
.calendar-detail-actions{margin-top:16px;}
.calendar-detail-actions button{flex:initial;}
.calendar-action-form{padding:15px;border:1px solid #426a8d;background:#1c3a53;border-radius:12px;margin-top:14px;}
.calendar-action-form .field{margin:0 0 10px;}
.calendar-action-form .field input{background:#102236;}
.calendar-copy-add{display:flex;align-items:flex-end;gap:10px;}
.calendar-copy-add .field{flex:1;}
.calendar-copy-add button{white-space:nowrap;margin-bottom:10px;}
.calendar-targets{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 17px;}
.target-date{display:flex;align-items:center;gap:8px;border-radius:20px;background:#30557a;color:#eaf6ff;padding:5px 7px 5px 12px;font-size:12px;}
.target-date button{border-radius:50%;padding:0;width:24px;height:24px;background:#4c6a88;}
@media(max-width:950px){
  .calendar-layout{grid-template-columns:minmax(0,1fr);}
  .calendar-sidebar{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px 20px;min-height:0;padding:16px 18px;}
  .sidebar-title,.sidebar-metrics,.calendar-sidebar .sidebar-divider,.calendar-sidebar .sidebar-legend,.calendar-sidebar .help,.calendar-sidebar>h3,.calendar-sidebar>p{display:none;}
  .calendar-sidebar .full{margin:0;}
  .calendar-sidebar .clipboard-notice{grid-column:1/-1;margin:0;}
  .calendar-main{padding:15px;}
}
@media(max-width:720px){
  .calendar-weekdays{display:none;}
  .calendar-week-grid{display:none;}
  .calendar-mobile-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;margin:12px 0 14px;}
  .calendar-mobile-week>button{display:flex;flex-direction:column;align-items:center;gap:4px;position:relative;border-radius:10px;background:#fff;border:1px solid #cbdce9;padding:9px 2px 8px;color:#58738b;min-width:0;}
  .calendar-mobile-week>button span{font-size:10px;font-weight:700;}
  .calendar-mobile-week>button strong{font-size:17px;}
  .calendar-mobile-week>button i{height:4px;width:4px;background:#2879e4;border-radius:50%;}
  .calendar-mobile-week>button.active{background:#2879e4;color:#fff;border-color:#2879e4;}
  .calendar-mobile-week>button.active i{background:white;}
  .calendar-mobile-week>button.is-today:not(.active){border-color:#5ba4ef;}
  .calendar-month-grid{grid-auto-rows:minmax(65px,auto);}
  .calendar-month-grid .calendar-cell{padding:3px 1px;}
  .calendar-month-grid .date-cell-button{padding-bottom:1px;}
  .calendar-month-grid .date-cell-button strong{font-size:12px;width:22px;height:22px;}
  .calendar-month-grid .date-workouts{gap:3px;}
  .calendar-month-grid .calendar-event.compact>button{padding:3px 2px;}
  .calendar-month-grid .calendar-event .event-name{font-size:9px;line-height:1.2;}
  .calendar-month-grid .calendar-event .event-meta{display:none;}
  .calendar-month-grid .calendar-more{font-size:9px;padding:2px;}
  .calendar-main{padding:14px 11px;}
}
@media(max-width:480px){
  #app.calendar-mode{padding:12px 10px 106px;}
  .calendar-heading .row>button{font-size:12px;padding:10px;}
  .calendar-layout{border-radius:14px;}
  .calendar-sidebar{padding:11px;gap:8px;}
  .calendar-toolbar strong{font-size:18px;}
  .calendar-toolbar{gap:8px;}
  .calendar-toolbar-buttons button{padding:8px 9px;}
  .calendar-toolbar-buttons button[aria-label^="Previous"],.calendar-toolbar-buttons button[aria-label^="Next"]{padding:6px 9px;}
  .calendar-view-switch>button{padding:8px 11px;}
  .jump-to-date{font-size:0;gap:0;}
  .jump-to-date input{font-size:11px;max-width:128px;padding:7px 4px;}
  .day-agenda-heading h2{font-size:17px;}
  .agenda-card{padding:13px 10px;}
  .agenda-top h3{font-size:15px;}
  .agenda-top button{padding:8px;font-size:11px;}
  .workout-detail{padding:13px;}
  .calendar-detail-actions button{padding:10px;font-size:12px;}
  .calendar-copy-add{flex-direction:column;align-items:stretch;}
  .calendar-copy-add .field{width:100%;}
  .calendar-copy-add button{margin:0 0 5px;}
  nav button{padding:6px 2px;font-size:19px;min-width:0;}
  nav button span{font-size:9px;white-space:nowrap;}
}

.calendar-hint{font-size:11px!important;color:#6b839b!important;margin:12px 2px 0;}
@media(max-width:720px){.calendar-hint{font-size:11px!important;}}

/* v3.2 — Week/month exercise previews and accessible whole-day copy/paste. */
.calendar-event .event-content{display:flex;flex:1;flex-direction:column;min-width:0;overflow:hidden}
.calendar-event .event-open{display:flex;flex-direction:column;align-items:flex-start;gap:4px;width:100%;padding:8px 7px 3px;text-align:left;background:transparent;color:#254664;min-width:0}
.calendar-event.compact .event-open{padding:7px 6px 2px}
.calendar-event .event-open:hover .event-name{text-decoration:underline}
.exercise-preview{font-size:10px;line-height:1.3;color:#385b78;min-width:0;padding:3px 7px 7px}
.exercise-preview-list{padding:0;margin:0;list-style:none;display:flex;flex-direction:column;gap:3px}
.exercise-preview-list li{display:flex;align-items:baseline;gap:4px;min-width:0;overflow:hidden}
.exercise-preview-label{flex:0 0 auto;font-weight:800;font-size:9px;color:#2b75b9}
.exercise-preview-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}
.exercise-preview.expanded .exercise-preview-name{white-space:normal;overflow-wrap:anywhere;word-break:normal}
.exercise-preview-toggle{background:none!important;border:0;padding:4px 0 1px;color:#1167b5!important;font-size:10px;font-weight:750;text-align:left;white-space:normal;line-height:1.2}
.exercise-preview-toggle:hover{text-decoration:underline}
.exercise-preview-toggle:focus-visible{outline-offset:0}
.preview-empty{font-size:10px;color:#7890a3}
.agenda-preview{margin-top:13px;background:#f2f7fc;border:1px solid #d9e5f0;padding:12px;border-radius:10px;font-size:13px;color:#2d4d69}
.agenda-preview .exercise-preview-list{gap:6px}
.agenda-preview .exercise-preview-label{font-size:12px}
.agenda-preview .exercise-preview-name{font-size:13px}
.agenda-preview .exercise-preview-toggle{font-size:12px;padding:8px 0 0}
.day-agenda-heading{flex-wrap:wrap}
.day-agenda-actions{display:flex;gap:7px;flex-wrap:wrap;align-items:center;justify-content:flex-end}
.day-agenda-actions button{font-size:12px;padding:9px 11px}
.calendar-day-actions{background:#dae9f7;color:#245c86;border:1px solid #bfd4e7}
.calendar-paste-day{background:#147766;color:white}
.calendar-context-menu{position:fixed;z-index:1000;width:min(260px,calc(100vw - 16px));border:1px solid #b3cce0;background:#fff;box-shadow:0 12px 30px rgba(11,32,54,.25);border-radius:12px;padding:6px;color:#203f58;overflow:hidden}
.context-menu-title{color:#617d94;font-size:11px;font-weight:800;letter-spacing:.02em;padding:9px 11px 6px;border-bottom:1px solid #e5edf5;margin-bottom:4px}
.calendar-context-menu button{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;text-align:left;border-radius:7px;background:white;color:#214b6e;padding:11px 10px;font-size:13px;font-weight:700}
.calendar-context-menu button:hover:not(:disabled),.calendar-context-menu button:focus-visible{background:#e9f3fd}
.calendar-context-menu button span{font-weight:500;font-size:11px;color:#66839b;text-align:right}
.calendar-context-menu button:disabled{opacity:.47}
.calendar-hint{margin-bottom:3px!important}
@media(max-width:720px){
  /* The selected-day agenda stays readable when seven month columns are narrow. */
  .calendar-month-grid .calendar-event .event-open{padding:3px 2px 1px}
  .calendar-month-grid .calendar-event .exercise-preview{padding:1px 2px 3px;font-size:8px}
  .calendar-month-grid .calendar-event .exercise-preview-list li{display:block}
  .calendar-month-grid .calendar-event .exercise-preview-label{display:none}
  .calendar-month-grid .calendar-event .exercise-preview-name{display:block;font-size:8px;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .calendar-month-grid .calendar-event .exercise-preview.expanded .exercise-preview-name{white-space:normal;overflow-wrap:anywhere}
  .calendar-month-grid .calendar-event .exercise-preview-toggle{font-size:8px;word-break:break-word;padding:3px 0}
}
@media(max-width:480px){
  .day-agenda-actions{justify-content:flex-start;width:100%}
  .day-agenda-actions button{font-size:11px;padding:9px 8px}
}


/* v3.3 — in-calendar recording and historical exercise search */
.exercise-history-search{margin:16px 0;padding:15px 12px;border-radius:12px;border:1px solid #355779;background:#142b41;min-width:0;}
.exercise-history-search h3{color:#cce8ff;margin:0 0 3px;font-size:17px;}
.exercise-history-search>p{margin:4px 0 12px;color:#a9c2d9;line-height:1.4;font-size:12px;}
.exercise-history-search label{font-size:11px;display:block;color:#c8e0f6;font-weight:750;margin-bottom:5px;}
.exercise-history-search input{width:100%;padding:11px 10px;background:#0e2031;color:#fff;border:1px solid #52718e;border-radius:9px;min-width:0;}
.history-search-help{font-size:12px;color:#a8bdcd;margin:11px 0 4px;}
.history-search-count{color:#acd2ef;font-size:11px;margin:12px 0 5px;}
#exerciseHistoryResults{max-height:550px;overflow:auto;scrollbar-width:thin;}
.history-search-result{border-top:1px solid #344d65;padding:11px 0;position:relative;font-size:11px;}
.history-search-result strong{display:block;max-width:100%;padding-right:55px;color:#f3f8fc;font-size:12px;overflow-wrap:anywhere;}
.history-search-result button{position:absolute;right:0;top:7px;padding:5px 6px;font-size:10px;background:#285b85;}
.history-search-sets{margin-top:7px;display:grid;gap:4px;color:#c0d4e6;overflow-wrap:anywhere;}
.history-search-result small{display:block;margin-top:6px;color:#97b5c9;}
.agenda-action-buttons{display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:flex-end;}
.agenda-action-buttons button{font-size:12px;padding:8px 9px;}
.calendar-inline-log{margin:16px 0 5px;background:#172d44;border:2px solid #4c89ba;color:#e8f3ff;border-radius:13px;padding:17px;outline:0!important;}
.calendar-inline-log h4{font-size:17px;margin:0 0 7px;color:#f4faff;}
.calendar-inline-log .inline-log-intro{color:#bad2e8;font-size:12px;}
.calendar-inline-log .log-block{background:#102538;border-color:#376586;}
.calendar-inline-log .log-block .exercise h3{color:#edf7ff;}
.calendar-inline-log .field{color:#e1efff;}
.calendar-inline-log .setrow{overflow-wrap:anywhere;}
.calendar-inline-log .setrow small{font-size:11px;}
.calendar-inline-log .setrow input{width:100%;}
.calendar-inline-log .actions{margin-top:13px;}
.calendar-inline-log .actions button{flex:1;min-width:135px;}
.completed-inline-results{margin-top:14px;padding:11px;background:#e9f7f2;border:1px solid #b6dfcc;border-radius:11px;color:#244b42;}
.completed-inline-results h4{margin:0;font-size:15px;}
.completed-inline-results>p{color:#52766c;font-size:11px;margin:3px 0 10px;}
.calendar-results{display:flex;flex-direction:column;gap:12px;color:#254257;font-size:12px;}
.calendar-results-block{border-top:1px solid #bbd1df;padding-top:10px;display:flex;flex-direction:column;gap:5px;}
.calendar-results-block>strong{color:#275674;}
.calendar-results-block .results-rounds{font-size:11px;color:#718595;}
.calendar-result-exercise{border-left:3px solid #8dbdd2;padding:3px 0 3px 8px;display:flex;flex-direction:column;gap:2px;}
.calendar-result-exercise b{font-size:12px;}
.calendar-result-exercise span{line-height:1.45;overflow-wrap:anywhere;}
.calendar-session-notes{color:#426177!important;font-size:12px;}
.calendar-history-card{padding:15px;background:#fff;border:1px solid #a4c8dc;border-left:4px solid #2c9e87;border-radius:12px;margin:12px 0;}
.calendar-history-card>div.row p{margin:4px 0 12px;color:#527187;font-size:12px;}
.calendar-past-sessions h3{margin:18px 0 10px;font-size:17px;color:#294760;}
.calendar-history-dot{display:block;padding:4px;font-size:10px;background:#d8f3e5;color:#176c59;border-radius:6px;}
@media(max-width:950px){
  .calendar-sidebar{display:flex;flex-direction:column;gap:8px;}
  .calendar-sidebar .exercise-history-search{display:block;order:4;width:100%;margin:5px 0;}
  #exerciseHistoryResults{max-height:280px;}
}
@media(max-width:720px){
  .agenda-top{flex-wrap:wrap;}
  .agenda-action-buttons{justify-content:flex-start;width:100%;}
  .calendar-inline-log{padding:12px 8px;}
  .calendar-inline-log .log-block{padding:10px 7px;}
}
@media(max-width:390px){
  .calendar-inline-log .setrow{grid-template-columns:55px minmax(0,1fr) minmax(0,1.3fr) 27px;gap:4px;}
  .calendar-inline-log .setrow input{font-size:12px;padding:8px 4px;}
  .calendar-inline-log .setrow button{padding:6px 2px;}
}


/* v3.4: visible day-copy/paste controls and editable scheduled workout names. */
.date-cell-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:3px;min-width:0;}
.date-cell-toolbar .date-cell-button{min-width:0;flex:1;}
.date-cell-tools{display:flex;align-items:center;gap:3px;padding:5px 5px 0 0;flex:0 0 auto;}
.date-cell-tools button{display:inline-flex;align-items:center;justify-content:center;width:27px;height:27px;min-width:0;padding:2px;border-radius:6px;border:1px solid #b8d1e5;background:#e6f2fc;color:#256b9c;line-height:1;}
.date-cell-tools button:hover:not(:disabled){background:#cce6fb;border-color:#7cb8e4;}
.date-cell-tools button:disabled{opacity:.27;cursor:default;}
.date-cell-tools .date-paste-icon{background:#d8f3e7;color:#187252;border-color:#addfc4;font-size:20px;font-weight:800;}
.date-cell-tools .date-paste-icon:hover{background:#b3ead3;}
.calendar-copy-day{background:#e5f0fb;color:#255d84;border:1px solid #bcd6e9;}
.calendar-copy-day:disabled{opacity:.4;cursor:not-allowed;}
.workout-name-form{margin:8px 0 6px;min-width:0;}
.workout-name-form label{display:block;font-size:11px;font-weight:800;letter-spacing:.03em;color:#51738d;margin:0 0 5px;}
.workout-name-controls{display:flex;align-items:stretch;gap:7px;min-width:0;}
.workout-name-controls input{display:block;min-width:0;max-width:360px;flex:1;background:#fff;color:#23465e;border:1px solid #a7c6dd;border-radius:8px;padding:9px 10px;font-size:16px;font-weight:750;}
.workout-name-controls button{background:#286da9;color:#fff;font-size:12px;padding:9px 12px;flex:0 0 auto;}
.agenda-heading-content{flex:1;min-width:220px;}
.agenda-heading-content>p{margin-top:6px;}
@media(max-width:720px){
 .calendar-month-grid .date-cell-toolbar{align-items:center;flex-direction:column;gap:0;}
 .calendar-month-grid .date-cell-toolbar .date-cell-button{width:100%;}
 .calendar-month-grid .date-cell-tools{padding:0 0 3px;gap:2px;}
 .calendar-month-grid .date-cell-tools button{width:22px;height:22px;padding:2px;}
 .calendar-month-grid .date-cell-tools svg{width:14px;height:14px;}
 .calendar-week-grid .date-cell-tools{padding:3px 2px 0 0;}
 .calendar-week-grid .date-cell-tools button{width:23px;height:23px;}
 .calendar-week-grid .date-cell-tools svg{width:14px;height:14px;}
 .workout-name-controls input{font-size:14px;}
 .workout-name-controls button{font-size:11px;padding:8px;}
}
@media(max-width:370px){
 .workout-name-controls{flex-wrap:wrap;}
 .workout-name-controls input{width:100%;flex-basis:100%;}
 .workout-name-controls button{width:100%;}
}

/* v3.5 — selected-day deletion, rest days and bulk calendar copy. */
.calendar-view-switch{flex-wrap:wrap;row-gap:9px;}
.calendar-multi-toggle{white-space:nowrap;background:#d9e8f8;color:#235a86;border:1px solid #b3d0e9;font-weight:750;}
.calendar-multi-toggle[aria-pressed="true"]{background:#225e9a;color:#fff;}
.calendar-multi-actions{background:#eaf4fd;border:1px solid #bad9f2;color:#265b83;padding:10px 12px;border-radius:10px;display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin:5px 0 13px;font-size:12px;}
.calendar-multi-actions button{font-size:12px;padding:8px 11px;}
.calendar-multi-actions span{color:#5d7d96;}
.calendar-cell.multi-picked{background:#dcf0ff;box-shadow:inset 0 0 0 2px #2a83c4;}
.day-select-label{display:flex;align-items:center;min-height:28px;flex:none;cursor:pointer;}
.day-select-label input,.mobile-day-checkbox{accent-color:#2879e4;width:17px;height:17px;cursor:pointer;}
.date-cell-tools .date-trash-icon{background:#fff0f0;border-color:#ecc3c3;color:#a32135;font-size:14px;}
.date-cell-tools .date-trash-icon:hover:not(:disabled){background:#ffe1e1;}
.day-agenda-actions .day-trash,.agenda-action-buttons .agenda-trash{background:#fff0f0;color:#a32135;border:1px solid #efb5bb;}
.day-agenda-actions .day-trash:disabled{opacity:.43;cursor:default;}
.calendar-context-menu button.context-delete{color:#ac2635;background:#fff5f5;border-top:1px solid #f3dfdf;}
.calendar-rest-event{padding:9px 6px;border-radius:9px;background:#edf5e6;border:1px solid #bfd8b5;color:#386f43;font-size:11px;font-weight:800;line-height:1.35;overflow-wrap:anywhere;}
.calendar-rest-detail{background:#ecf7eb;border:1px solid #a5d0a0;border-radius:13px;padding:14px;margin:11px 0;color:#355a3d;}
.calendar-rest-detail h3{color:#2d6339;margin:0 0 4px;}
.calendar-rest-detail p{font-size:12px;margin:0 0 12px;color:#557a5e;}
.calendar-rest-detail form{display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap;}
.calendar-rest-detail .field{flex:1;min-width:180px;color:#345b3d;}
.calendar-rest-detail input{background:white;color:#253c30;border:1px solid #b4ccb4;}
.calendar-rest-detail button{font-size:12px;padding:9px 12px;}
.calendar-mobile-week .mobile-day-item{display:contents;}
@media(max-width:950px){.calendar-mobile-week .mobile-day-item{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0;}.calendar-mobile-week .mobile-day-item>button{width:100%;min-width:0;display:flex;flex-direction:column;align-items:center;gap:4px;position:relative;border-radius:10px;background:#fff;border:1px solid #cbdce9;padding:9px 2px 8px;color:#58738b;}.calendar-mobile-week .mobile-day-item>button span{font-size:10px;font-weight:700;}.calendar-mobile-week .mobile-day-item>button strong{font-size:17px;}.calendar-mobile-week .mobile-day-item>button i{height:4px;width:4px;background:#2879e4;border-radius:50%;}.calendar-mobile-week .mobile-day-item>button.active{background:#2879e4;color:white;border-color:#2879e4;}.calendar-mobile-week .mobile-day-item>button.active i{background:white;}.calendar-mobile-week .mobile-day-item>button.is-today:not(.active){border-color:#5ba4ef;}}
@media(max-width:720px){
 .calendar-month-grid .date-cell-toolbar{position:relative;}
 .calendar-month-grid .day-select-label{min-height:22px;}
 .calendar-month-grid .date-cell-tools{display:flex;flex-wrap:wrap;justify-content:center;}
 .calendar-month-grid .date-cell-tools button{width:20px;height:20px;font-size:12px;}
 .calendar-month-grid .date-cell-tools svg{width:12px;height:12px;}
 .calendar-month-grid .calendar-rest-event{font-size:9px;padding:4px 2px;}
 .calendar-view-switch .jump-to-date{margin-left:0;}
 .calendar-view-switch{gap:6px;}
 .calendar-view-switch>button{padding:8px 8px;}
}
@media(max-width:380px){.day-agenda-actions .day-trash{font-size:11px;padding:8px 7px;}.calendar-month-grid .date-cell-tools button{width:19px;height:19px;padding:1px;}.calendar-multi-actions button{padding:7px 8px;}}

/* v3.6: always-on day checkboxes with bulk copy AND delete in Week/Month view. */
.calendar-multi-actions{position:sticky;top:0;z-index:5;box-shadow:0 2px 8px rgba(24,66,102,.06);}
.calendar-multi-actions button:disabled{opacity:.45;cursor:not-allowed;}
.calendar-multi-actions .calendar-delete-selected{background:#b52c3c;color:#fff;border:1px solid #9e2433;}
.calendar-multi-actions .calendar-delete-selected:not(:disabled):hover{background:#931d30;}
.day-select-label{padding:0 2px;position:relative;z-index:2;min-width:21px;justify-content:center;}
.day-select-label input,.mobile-day-checkbox{width:19px;height:19px;margin:0;accent-color:#2879e4;}
.calendar-cell.multi-picked{background:#d8ebff;box-shadow:inset 0 0 0 2px #2378d0;}
.calendar-month-grid .date-cell-toolbar{flex-wrap:wrap;}
.calendar-month-grid .date-cell-tools{margin-left:auto;}
@media(max-width:950px){
  .calendar-month-grid .date-cell-toolbar{position:relative;padding-top:19px;}
  .calendar-month-grid .day-select-label{position:absolute;top:0;left:0;min-height:19px;}
  .calendar-month-grid .day-select-label input{width:17px;height:17px;}
  .calendar-multi-actions{position:static;}
}
@media(max-width:720px){
  .calendar-mobile-week .mobile-day-checkbox{display:block;width:20px;height:20px;flex:none;}
  .calendar-month-grid .date-cell-tools{margin:auto;}
  .calendar-month-grid .date-cell-toolbar{padding-top:20px;}
  .calendar-multi-actions{gap:6px;padding:9px 8px;}
  .calendar-multi-actions strong{width:100%;}
  .calendar-multi-actions span{flex-basis:100%;}
}

/* v3.7 — clear calendar checkboxes with theme-blue outlines, in Week and Month. */
.calendar-main .day-select-label input[type="checkbox"],
.calendar-main input.mobile-day-checkbox[type="checkbox"]{
  -webkit-appearance:none;
  appearance:none;
  display:inline-grid;
  place-content:center;
  flex-shrink:0;
  padding:0;
  margin:0;
  background:transparent;
  border:2px solid #2879e4;
  border-radius:5px;
  box-shadow:none;
  cursor:pointer;
  vertical-align:middle;
}
.calendar-main .day-select-label input[type="checkbox"]::before,
.calendar-main input.mobile-day-checkbox[type="checkbox"]::before{
  content:"";
  width:8px;
  height:5px;
  border-left:2.5px solid #1c67ae;
  border-bottom:2.5px solid #1c67ae;
  transform:translateY(-1px) rotate(-45deg) scale(0);
  transform-origin:center;
}
.calendar-main .day-select-label input[type="checkbox"]:checked::before,
.calendar-main input.mobile-day-checkbox[type="checkbox"]:checked::before{
  transform:translateY(-1px) rotate(-45deg) scale(1);
}
.calendar-main .day-select-label input[type="checkbox"]:focus-visible,
.calendar-main input.mobile-day-checkbox[type="checkbox"]:focus-visible{
  outline:3px solid #79bfff;
  outline-offset:2px;
}
@media(forced-colors:active){
  .calendar-main .day-select-label input[type="checkbox"],
  .calendar-main input.mobile-day-checkbox[type="checkbox"]{border-color:CanvasText;}
  .calendar-main .day-select-label input[type="checkbox"]::before,
  .calendar-main input.mobile-day-checkbox[type="checkbox"]::before{
    border-left-color:CanvasText;
    border-bottom-color:CanvasText;
  }
}


/* v3.8 — calendar-first quick workout builder, circuit picker, one-box logs. */
.calendar-quick-panel { background:#fff;border:2px solid #9cc9ed;border-radius:15px;padding:17px;margin:14px 0;box-shadow:0 8px 24px rgba(21,69,117,.09); }
.calendar-quick-panel h3 {color:#1a4368;margin-top:4px;}
.calendar-quick-panel .field {color:#274766;font-size:12px;margin:9px 0;}
.calendar-quick-panel input,.calendar-quick-panel select {background:#f9fcff;color:#143854;border:1px solid #9fbdd7;margin-top:5px;min-width:0;}
.calendar-quick-panel .row {align-items:center;gap:8px;flex-wrap:wrap;}
.quick-form-top {display:grid;grid-template-columns:minmax(0,1.8fr) minmax(0,1fr);gap:12px;}
.calendar-quick-block {background:#eef6ff;border:1px solid #c6def3;border-radius:12px;padding:11px 13px;margin:13px 0;}
.calendar-quick-block> .row strong {color:#245d8d;}
.quick-block-settings {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;}
.quick-exercise-row {display:grid;grid-template-columns:35px minmax(0,1fr) minmax(0,1.5fr) 32px;align-items:end;gap:8px;margin:9px 0;border-top:1px solid #d5e7f5;padding-top:7px;}
.quick-exercise-row .field {min-width:0;margin:3px 0;}
.quick-exercise-row select {width:100%;font-size:13px;}
.quick-slot-label {background:#2879e4;color:white;border-radius:7px;font-weight:800;text-align:center;padding:8px 3px;margin-bottom:4px;}
.calendar-quick-panel .mini-button,.calendar-quick-panel .quick-remove {padding:7px 9px;font-size:12px;}
.calendar-quick-panel .quick-remove {min-height:38px;padding:7px;margin-bottom:2px;}
.calendar-quick-panel .quick-add {background:#d4e9fc;border:1px dashed #85b7e2;color:#1e648f;padding:9px 12px;width:100%;font-size:13px;}
.quick-form-actions {justify-content:space-between;margin-top:16px;}
.quick-form-actions button {flex:1 1 180px;}
.calendar-main .date-cell-tools .date-add-icon {font-size:19px;font-weight:900;background:#e7f4ff;border-color:#87b9e3;color:#1768ae;}
.calendar-main .date-cell-tools .date-add-icon:hover {background:#cfeaff;}
.calendar-add-workout {background:#2879e4;color:white;}
.calendar-inline-log .quick-exercise-log .field {margin:10px 0;color:#dbe8f9;}
.calendar-inline-log .exercise-log-text {display:block;box-sizing:border-box;width:100%;min-height:110px;border:1px solid #6d98be;border-radius:10px;resize:vertical;padding:12px;background:#101f32;color:#f4f9ff;font-size:16px;line-height:1.5;}
.calendar-inline-log .exercise-log-text::placeholder {color:#90a8c2;opacity:1;}
.calendar-inline-log .quick-exercise-log h3 {color:#f4faff;}
@media(max-width:720px) {
  .calendar-quick-panel {padding:12px;}
  .quick-exercise-row {grid-template-columns:28px minmax(0,1fr);gap:5px 9px;}
  .quick-exercise-row .field:nth-of-type(2) {grid-column:2;}
  .quick-exercise-row .quick-remove {grid-column:1;grid-row:2;min-width:0;}
  .quick-slot-label {grid-column:1;grid-row:1;font-size:11px;}
  .quick-exercise-row .field:first-of-type {grid-column:2;grid-row:1;}
  .quick-block-settings {gap:7px;}
  .quick-block-settings input,.quick-block-settings select {padding:9px 6px;font-size:12px;}
  .date-cell-tools .date-add-icon {width:20px;height:20px;}
}
@media(max-width:390px){.quick-form-top{grid-template-columns:1fr}.quick-block-settings{grid-template-columns:1fr 1fr}.quick-block-settings .field:first-child{grid-column:1/-1}.calendar-quick-block{padding:9px}.calendar-quick-panel .field{font-size:11px;}}

/* v3.9: calendar is the single creation workflow; no duplicate empty-state CTA. */
.calendar-blank-note{margin:12px 0 2px;padding:12px 14px;border:1px dashed #a6c4df;border-radius:11px;background:rgba(45,123,198,.045);color:#536e8a;font-size:13px;}
.calendar-quick-panel + .calendar-blank-note{display:none;}


/* v3.11: column names are placeholders, not editable content. */
.calendar-inline-log .exercise-log-text {min-height:132px;tab-size:4;white-space:pre-wrap;}
.calendar-inline-log .exercise-log-text:focus-visible {border-color:#3c9ef4;outline:2px solid #3c9ef4;outline-offset:1px;}

/* v3.12 · Readable, offline version history and compact five-tab navigation. */
nav button{flex:1 1 0;min-width:0;min-height:48px;justify-content:center;}
nav button span{white-space:nowrap;}
.versions-page{max-width:850px;margin:0 auto 24px;}
.versions-hero{background:linear-gradient(135deg,#193956,#18293f);border-color:#41658c;padding:24px;}
.versions-hero h1{font-size:28px;margin:6px 0 8px;}
.versions-hero p{max-width:670px;}
.versions-highlights{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:16px 0 12px;}
.versions-highlights span{font-size:12px;padding:7px 12px;border:1px solid #405a77;border-radius:20px;background:#172a41;color:#c5d6e8;}
.versions-highlights .versions-current{background:#164a76;color:#e1f3ff;border-color:#479ce4;font-weight:700;}
.versions-hero .versions-note{font-size:12px;color:#a7bfd6;margin-bottom:0;}
.versions-group{margin-top:26px;}
.versions-group>h2{font-size:18px;margin:0 0 14px;color:#e3eefb;}
.versions-timeline{display:grid;gap:9px;}
.versions-timeline .version-item{border:1px solid #38516d;background:#1b293c;border-radius:13px;margin:0;overflow:hidden;}
.version-item summary{display:flex;align-items:center;gap:12px;padding:15px 16px;list-style:none;color:#f3f7ff;}
.version-item summary::-webkit-details-marker{display:none;}
.version-item summary:focus-visible{outline:2px solid #78bdff;outline-offset:-3px;}
.version-number{font-size:12px;font-weight:800;background:#233f62;color:#9dd4ff;padding:6px 8px;border-radius:7px;white-space:nowrap;}
.version-title{flex:1;font-weight:700;font-size:14px;line-height:1.4;}
.version-latest{font-size:11px;color:#b8e7ff;background:#24557d;border:1px solid #4381b1;border-radius:15px;padding:4px 8px;}
.version-chevron{font-size:23px;color:#9dbad4;transition:transform .2s;line-height:1;}
.version-item[open] .version-chevron{transform:rotate(180deg);}
.version-item ul{margin:0;padding:4px 24px 17px 43px;color:#c8d6e7;font-size:14px;line-height:1.65;border-top:1px solid #304660;}
.version-item li{margin-top:8px;}
.versions-footer{font-size:12px;color:#94aac3;margin:25px 0;}
@media(max-width:480px){
  nav{gap:1px;padding-left:5px;padding-right:5px;}
  nav button{font-size:18px;padding:6px 1px;gap:3px;}
  nav button span{font-size:9px;letter-spacing:0;}
  .versions-hero{padding:17px;}
  .versions-hero h1{font-size:24px;}
  .version-item summary{gap:8px;padding:13px 10px;}
  .version-title{font-size:13px;}
  .version-item ul{padding-left:28px;font-size:13px;}
}
@media(max-width:350px){nav button span{font-size:8px;}nav button{font-size:17px;}}

/* v4.0: account gateway, private sync, recurring schedule, training timers. */
[hidden]{display:none!important}
.auth-screen{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px 14px;background:radial-gradient(circle at 25% 0%,#18375b,#101722 60%)}
.auth-card{background:#1b283b;border:1px solid #365478;border-radius:20px;padding:28px;max-width:450px;width:100%;box-shadow:0 22px 80px rgba(0,0,0,.35)}
.auth-brand{display:flex;align-items:center;gap:16px;margin-bottom:22px}.auth-brand img{object-fit:contain;border-radius:15px}
.auth-brand h1{font-size:22px;margin:0}.auth-brand p{font-size:12px;letter-spacing:.13em;margin:4px 0;color:#91b7da}
.auth-card h2{font-size:23px;margin:12px 0 18px}.auth-card form{display:grid;gap:15px}
.auth-card label{display:grid;gap:7px;font-size:14px;font-weight:650;color:#dbe9fa}
.auth-card label input{width:100%;border:1px solid #506c8a;background:#102033;color:white;border-radius:10px;padding:13px}
.auth-card button{padding:13px}.auth-links{display:flex;gap:10px;justify-content:space-between;align-items:center;flex-wrap:wrap}
.auth-links button{background:transparent;color:#7abfff;padding:6px 1px}
.auth-message{padding:12px;background:#203852;border:1px solid #5485b9;border-radius:10px;color:#e4f3ff}
.auth-footnote{font-size:12px;color:#9db4cc;line-height:1.55;margin-top:20px}
.header-account{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.header-account>div{text-align:right;margin-right:5px}.header-account strong{font-size:12px}.header-account button{padding:9px 10px;font-size:12px}
#cloudStatus{font-size:11px;color:#a8bbce}#cloudStatus[data-status="ok"]{color:#87dbc3}#cloudStatus[data-status="error"]{color:#ffc091}
.update-banner{position:fixed;bottom:94px;left:50%;transform:translateX(-50%);z-index:90;width:min(480px,calc(100% - 20px));display:flex;align-items:center;justify-content:space-between;gap:10px;background:#193654;border:1px solid #5c9ef4;color:white;padding:12px 14px;border-radius:14px;box-shadow:0 8px 35px #0008;font-weight:650}
.update-banner button{white-space:nowrap;background:#297de3}
.repeat-choice{font-size:12px;color:#315779;display:flex;gap:6px;align-items:center;font-weight:650}
.repeat-choice select{width:auto;border:1px solid #bdd1e3;border-radius:8px;color:#183b60;background:#fff;padding:7px}
.workout-timer{background:#eef5ff;border-radius:12px;padding:15px;border:1px solid #bfd5ed;color:#193957}
.workout-timer h3{font-size:16px;color:#193957}.workout-timer .timer-display{font-size:38px;font-variant-numeric:tabular-nums;font-weight:850;letter-spacing:.05em;text-align:center;color:#1263bf;margin:4px 0}
.workout-timer .timer-phase{font-size:12px;color:#446986;text-align:center;text-transform:capitalize;margin-bottom:12px}
.timer-presets,.timer-controls{display:flex;gap:6px;flex-wrap:wrap}.timer-presets button,.timer-controls button{flex:1;min-width:65px;padding:8px 6px;font-size:12px}
.interval-inputs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:12px 0}.interval-inputs label{font-size:11px;color:#4e6477;min-width:0}
.interval-inputs input{display:block;width:100%;margin-top:5px;background:white;border:1px solid #a7c7e6;color:#153e67;border-radius:8px;padding:8px 5px;font-size:14px;min-width:0}
@media(max-width:720px){.header-account{max-width:220px}.header-account button{font-size:10px;padding:7px}.header-account>div{width:100%;text-align:right}.auth-card{padding:20px}.update-banner{bottom:88px}}
@media(max-width:390px){.header-account{gap:3px}.header-account button{font-size:9px;padding:6px 7px}.brand img{width:45px;height:45px}.brand strong{font-size:15px}.brand small{font-size:9px}}


/* MOTIONWOVEN BRAND THEME · 2026-11-05 */
:root{background:#102A31;color:#F7F5EF;--mw-ink:#102A31;--mw-deep:#0B1C23;--mw-panel:#1A343C;--mw-mint:#72DEC1;--mw-clay:#E4B47F;--mw-ivory:#F4EDDC}
body{background:#0B1C23;color:#F7F5EF}
#app{background:linear-gradient(180deg,#112B32 0%,#0B1C23 40%)}
header{background:transparent}
.brand{gap:13px}
.brand img{border-radius:16px;background:#102A31;box-shadow:0 4px 18px #0004}
.brand strong{color:#F4EDDC;font-size:20px;letter-spacing:.015em;font-weight:760;text-transform:none}
.brand small{color:#72DEC1;letter-spacing:.09em;font-weight:700}
p,.muted,small{color:#BBD0CD}
.eyebrow{color:#72DEC1}
.card{background:#1A343C;border-color:#355A5B}
.card.subtle{background:#143039}
.hero{background:linear-gradient(130deg,#22564F,#123038 70%);border-color:#3A7768}
button{background:#72DEC1;color:#102A31}
button:hover:not(:disabled){filter:brightness(1.07)}
.secondary,.ghost{background:#29434A;color:#F4F7F2}
.chip{background:#264A4B;border-color:#4C7772;color:#E1F9F0}
.chip.active,.builder-day-tabs button.active{background:#246F66;border-color:#72DEC1;color:#FFFFFF}
.field,.field label{color:#E6EFEB}
.field input,.field select,.field textarea{background:#12292F;border-color:#52716F;color:#F7FAF6}
.notice{border-left-color:#E4B47F}
nav{background:#102830;border-top-color:#355A5B}
nav button{color:#B3CBC5;background:transparent}
nav button.active{color:#72DEC1}
.stat{color:#72DEC1}
button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{outline-color:#72DEC1}
.auth-screen{background:radial-gradient(circle at 20% -5%,#25564F 0%,#102A31 45%,#091920 100%)}
.auth-card{background:#173039;border:1px solid #3B665F;border-radius:24px;box-shadow:0 24px 72px #06131799;position:relative;overflow:hidden}
.auth-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#72DEC1 0%,#72DEC1 55%,#E4B47F 100%)}
.auth-brand img{border-radius:18px;background:#102A31}
.auth-brand h1{color:#F4EDDC;letter-spacing:.015em;font-size:23px}
.auth-brand p{color:#72DEC1;letter-spacing:.10em;font-weight:720;font-size:11px}
.auth-tagline{font-size:14px;color:#D4E5DD;margin:0 0 17px;line-height:1.5}
.auth-card h2{color:#F7F8F4}
.auth-card label{color:#E5F2EB}
.auth-card label input{background:#0F232A;border:1px solid #54736F;color:#FFFFFF}
.auth-card button[type="submit"]{background:#72DEC1;color:#102A31;font-weight:780}
.auth-links button{background:transparent;color:#9AECD5}
.auth-message{background:#214942;border:1px solid #62BB9F;color:#E6FFF4}
.auth-footnote{color:#B6CEC4}
.update-banner{background:#1C4642;border-color:#5FC2A1}
.update-banner button{background:#72DEC1;color:#102A31}
@media(max-width:520px){.brand strong{font-size:17px}.brand small{font-size:9px;letter-spacing:.05em}.auth-card{border-radius:20px}}

