:root{color-scheme:light;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5}*{box-sizing:border-box}body{margin:0}.app-shell{max-width:48rem;margin:0 auto;padding:2rem 1rem}.login{max-width:22rem;margin:3rem auto;padding:2rem 1.5rem;display:flex;flex-direction:column;gap:.5rem;border:1px solid #e5e7eb;border-radius:.75rem;box-shadow:0 1px 3px #0000000f}.login h1{margin:0 0 .25rem;font-size:1.5rem}.login__hint{margin:0 0 1rem;color:#6b7280;font-size:.9rem}.login label{font-weight:600;font-size:.9rem}.login input{padding:.6rem .75rem;border:1px solid #d1d5db;border-radius:.5rem;font-size:1rem}button{margin-top:.75rem;padding:.6rem 1rem;border:none;border-radius:.5rem;background:#be185d;color:#fff;font-size:1rem;font-weight:600;cursor:pointer}button:disabled{opacity:.6;cursor:progress}.error{color:#b91c1c;font-size:.9rem}.topbar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.5rem;border-bottom:1px solid #e5e7eb;padding-bottom:.75rem;margin-bottom:1.5rem}.topbar h1{margin:0;font-size:1.4rem}.topbar__user{display:flex;align-items:center;gap:.75rem;color:#6b7280;font-size:.9rem}.topbar__user button{margin:0;padding:.4rem .75rem;font-size:.85rem;background:#f3f4f6;color:#111827}.card{display:flex;flex-direction:column;gap:.4rem;max-width:26rem;padding:1.25rem;margin:1rem 0 2rem;border:1px solid #e5e7eb;border-radius:.75rem}.card h3{margin:0 0 .5rem}.card label{font-weight:600;font-size:.85rem}.card input{padding:.55rem .7rem;border:1px solid #d1d5db;border-radius:.5rem;font-size:1rem}.student-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.5rem}.student-list li{padding:.6rem .8rem;border:1px solid #e5e7eb;border-radius:.5rem}.badge{display:inline-block;padding:.1rem .5rem;border-radius:999px;background:#fce7f3;color:#9d174d;font-size:.75rem;font-weight:600}.profile{display:grid;grid-template-columns:auto 1fr;gap:.35rem 1rem}.profile dt{font-weight:600;color:#6b7280}.profile dd{margin:0}.cards{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem}.metric{flex:1 1 8rem;display:flex;flex-direction:column;gap:.15rem;padding:1rem 1.25rem;border:1px solid #e5e7eb;border-radius:.75rem;background:#fdf2f8}.metric__n{font-size:1.75rem;font-weight:700;color:#9d174d}.metric__l{font-size:.85rem;color:#6b7280}.student-list__item{padding:.6rem .8rem;border:1px solid #e5e7eb;border-radius:.5rem}.student-list__head{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.5rem}.student-list__actions{display:flex;gap:.5rem}.student-list__actions button{margin:0;padding:.3rem .7rem;font-size:.8rem;background:#f3f4f6;color:#111827}.link-danger{background:#fee2e2!important;color:#b91c1c!important}.edit-form{display:flex;flex-direction:column;gap:.35rem;margin-top:.75rem;padding-top:.75rem;border-top:1px dashed #e5e7eb}.edit-form input,.edit-form select,.edit-form textarea{padding:.45rem .6rem;border:1px solid #d1d5db;border-radius:.45rem;font:inherit}.edit-form label{font-size:.8rem;font-weight:600}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#11182780;display:flex;align-items:center;justify-content:center;padding:1rem;z-index:50}.modal{background:#fff;border-radius:.75rem;padding:1.5rem;max-width:24rem;width:100%;max-height:88vh;overflow-y:auto;box-shadow:0 10px 25px #0003}.modal h2{margin:0 0 .5rem;font-size:1.2rem}.modal__actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1rem}.modal__actions button{margin:0}.danger{background:#b91c1c}.cal-actions{flex-wrap:wrap;justify-content:flex-end;gap:.4rem}.btn-sm{margin:0;padding:.32rem .7rem;font-size:.82rem;font-weight:600;border-radius:.45rem;background:#f3f4f6;color:#374151}.btn-sm:hover{background:#e5e7eb}.btn-sm.btn-primary{background:#be185d;color:#fff}.btn-sm.btn-primary:hover{background:#9d174d}.btn-sm.btn-danger{background:#fee2e2;color:#b91c1c}.btn-sm.btn-danger:hover{background:#fecaca}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.tabs{display:flex;gap:.5rem;margin-bottom:1.5rem}.tabs button{margin:0;background:#f3f4f6;color:#374151}.tabs button[aria-current=page]{background:#be185d;color:#fff}.filters{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.filters input,.filters select{padding:.5rem .7rem;border:1px solid #d1d5db;border-radius:.5rem;font:inherit}.filters input[type=search]{flex:1 1 12rem}.library{display:flex;gap:1.5rem;align-items:flex-start;flex-wrap:wrap}.library__list{flex:1 1 16rem;max-height:28rem;overflow-y:auto}.library__detail{flex:1 1 18rem}.exercise-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.25rem}.exercise-list button{width:100%;text-align:left;margin:0;padding:.5rem .7rem;background:#f9fafb;color:#111827;font-weight:500;border:1px solid transparent}.exercise-list button.is-selected{border-color:#be185d;background:#fdf2f8}.exercise-detail{border:1px solid #e5e7eb;border-radius:.75rem;padding:1.25rem}.exercise-detail h3{margin:0 0 .25rem}.exercise-detail__type{margin:0 0 .75rem;text-transform:capitalize;color:#9d174d;font-weight:600;font-size:.85rem}.exercise-detail__attr{margin-top:1rem;padding-top:.75rem;border-top:1px dashed #e5e7eb;font-size:.8rem;color:#6b7280}.muted{color:#9ca3af}.version-list{list-style:none;padding:0;display:flex;gap:.5rem;flex-wrap:wrap}.version-list button{margin:0;background:#f3f4f6;color:#111827}.builder-week{border:1px solid #e5e7eb;border-radius:.6rem;padding:.75rem;margin-bottom:1rem}.builder-day{border-left:3px solid #fbcfe8;padding:.5rem .75rem;margin:.5rem 0}.builder-ex{background:#f9fafb;border-radius:.5rem;padding:.5rem;margin:.5rem 0}.builder-row{display:flex;gap:.5rem;align-items:center;justify-content:space-between}.builder-row input{flex:1;padding:.4rem .6rem;border:1px solid #d1d5db;border-radius:.45rem}.builder-row button,.builder-ex button{margin:0;padding:.3rem .6rem;font-size:.8rem;background:#f3f4f6;color:#111827}.builder-set{display:flex;gap:.35rem;margin:.3rem 0}.builder-set input{width:6rem;padding:.35rem .5rem;border:1px solid #d1d5db;border-radius:.4rem}.builder-actions{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;margin-top:1rem;padding-top:1rem;border-top:1px solid #e5e7eb}.builder-actions select{padding:.5rem;border:1px solid #d1d5db;border-radius:.45rem}.assign-box{margin-top:1.5rem;padding-top:1rem;border-top:1px solid #e5e7eb}.assign-box select{padding:.5rem;border:1px solid #d1d5db;border-radius:.45rem}.assign-list{list-style:none;padding:0;display:flex;gap:.5rem;flex-wrap:wrap;margin:0 0 .75rem}.assign-list li{display:inline-flex;align-items:center;gap:.4rem;background:#fce7f3;color:#9d174d;border-radius:999px;padding:.25rem .4rem .25rem .75rem;font-size:.85rem}.assign-list button{margin:0;padding:0 .4rem;background:#be185d;color:#fff;border-radius:999px;line-height:1.4}.rename-row{display:flex;gap:.4rem;flex:1;flex-wrap:wrap}.rename-row input{flex:1;padding:.4rem .6rem;border:1px solid #d1d5db;border-radius:.45rem}.builder-ex__head{display:flex;align-items:center;gap:.5rem;background:none;border:none;padding:0;margin:0;cursor:pointer;text-align:left;color:inherit}.builder-ex__thumb{width:2.5rem;height:2.5rem;object-fit:contain;border-radius:.35rem;border:1px solid #e5e7eb;background:#fff;flex-shrink:0}.picker__list img{width:2rem;height:2rem;object-fit:contain;vertical-align:middle;margin-right:.5rem;border-radius:.25rem;background:#fff}.picker{position:relative;margin-top:.5rem}.picker input{width:100%;padding:.45rem .6rem;border:1px dashed #d1d5db;border-radius:.45rem}.picker__list{list-style:none;margin:.25rem 0 0;padding:0;border:1px solid #e5e7eb;border-radius:.45rem}.picker__list button{width:100%;text-align:left;margin:0;background:#fff;color:#111827;padding:.4rem .6rem}.plan-week{margin-bottom:1rem}.plan-day{border-left:3px solid #fbcfe8;padding-left:.75rem;margin:.5rem 0}.plan-ex ul{margin:.25rem 0 .5rem}.plan-ex-list{margin:.5rem 0;padding-left:1.4rem}.plan-ex-list>li{margin-bottom:.6rem}.plan-sets{list-style:none;padding:0;margin:.25rem 0 0;font-size:.88rem;color:#4b5563}.plan-sets li{padding:.1rem 0}.plan-day__head{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.plan-day__head button{margin:0;padding:.3rem .7rem;font-size:.8rem}.log-ex{border:1px solid #e5e7eb;border-radius:.6rem;padding:.75rem;margin:.75rem 0}.log-set{display:flex;align-items:center;gap:.4rem;margin:.4rem 0;flex-wrap:wrap}.log-set__n{font-size:.8rem;color:#6b7280;min-width:4rem}.log-set input[type=text],.log-set input:not([type]){width:5rem;padding:.4rem .5rem;border:1px solid #d1d5db;border-radius:.4rem}.log-set__done{font-size:.85rem;color:#374151}.log-save{margin-top:1rem}.log-ex__head{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.log-ex__head button{margin:0;padding:.3rem .7rem;font-size:.8rem;background:#f3f4f6;color:#111827}.log-summary{list-style:none;padding:0;margin:.4rem 0 0;font-size:.85rem;color:#4b5563}.macro-total{background:#fdf2f8;border-radius:.5rem;padding:.5rem .75rem}.meal{margin:.5rem 0 .75rem}.meal h5{margin:.25rem 0}.nut-item{display:flex;align-items:center;gap:.5rem;margin:.3rem 0;flex-wrap:wrap}.nut-item__name{flex:1 1 10rem;font-size:.9rem}.nut-item__grams{width:5rem;padding:.35rem .5rem;border:1px solid #d1d5db;border-radius:.4rem}.nut-item__macros{font-size:.8rem}.nut-item button{margin:0;padding:0 .5rem;background:#fee2e2;color:#b91c1c}.cal-toolbar{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}.cal-toolbar h2{margin:0}.cal-toolbar select{padding:.4rem .6rem;border:1px solid #d1d5db;border-radius:.45rem}.cal-nav{display:flex;align-items:center;gap:.5rem;margin-left:auto}.cal-nav button{margin:0;padding:.2rem .7rem;background:#f3f4f6;color:#111827}.cal-view{width:95vw;margin-left:calc(50% - 47.5vw);margin-right:calc(50% - 47.5vw)}.cal-layout{display:flex;gap:1.25rem;align-items:flex-start}.cal-sidebar{flex:0 0 13rem}.cal-sidebar h4{margin:0 0 .25rem}.cal-prog{padding:.5rem .6rem;margin:.35rem 0;border:1px solid #fbcfe8;border-radius:.55rem;background:#fdf2f8;font-size:.85rem;font-weight:600;color:#9d174d;cursor:grab;transition:transform .14s ease,box-shadow .14s ease,background .14s ease}.cal-prog:hover{transform:translateY(-1px);box-shadow:0 4px 12px #be185d26;background:#fce7f3}.cal-prog:active{cursor:grabbing}.cal-prog.is-dragging{opacity:.35}.cal-tpl__name{transition:transform .14s ease,box-shadow .14s ease}.cal-tpl__name:hover{transform:translateY(-1px);box-shadow:0 3px 8px #15803d2e}.cal-folder{margin:.35rem 0;border-left:2px solid #fbcfe8;padding:.15rem 0 .25rem .4rem;border-radius:0 .4rem .4rem 0;transition:background .14s ease,border-color .14s ease}.cal-folder--over,.cal-root-drop.cal-folder--over{background:#ecfdf5;border-color:#16a34a;box-shadow:inset 0 0 0 1px #86efac}.cal-folder__empty{margin:.2rem 0;font-size:.7rem;color:#9ca3af;font-style:italic}.cal-root-drop{min-height:.5rem;border-radius:.4rem;transition:background .14s ease}.cal-folder__head{display:flex;justify-content:space-between;align-items:center;font-size:.8rem}.cal-folder__head button{margin:0;padding:0 .4rem;background:#f3f4f6;color:#6b7280}.cal-tpl{display:flex;align-items:center;gap:.25rem;margin:.25rem 0}.cal-tpl__name{flex:1;padding:.4rem .5rem;border:1px solid #e5e7eb;border-radius:.45rem;background:#f0fdf4;font-size:.8rem;cursor:grab}.cal-tpl__name.is-dragging{opacity:.4}.cal-tpl button{margin:0;padding:0 .4rem;background:#fee2e2;color:#b91c1c}.cal-newfolder{display:flex;gap:.25rem;margin:.5rem 0}.cal-newfolder input{flex:1;padding:.35rem .5rem;border:1px solid #d1d5db;border-radius:.4rem;font-size:.8rem}.cal-newfolder button{margin:0;padding:.35rem .7rem}.cal-grid{flex:1;display:grid;grid-template-columns:repeat(7,1fr);gap:6px;background:transparent;padding:6px;border:1px solid #eee;border-radius:1rem;box-shadow:0 6px 24px #1118270f}.cal-weekday{padding:.35rem;font-size:.72rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:#9ca3af;text-align:center}.cal-day{background:#fff;min-height:8.5rem;padding:.45rem;border-radius:.7rem;border:1px solid #f1f1f4;display:flex;flex-direction:column;gap:.28rem;transition:transform .16s ease,box-shadow .16s ease,background .16s ease,border-color .16s ease}.cal-day:hover{border-color:#e5e7eb;box-shadow:0 2px 10px #1118270d}.cal-day--out{background:#fafafb;border-color:transparent}.cal-day--out .cal-day__num{color:#cbd1d9}.cal-day--over{background:#fdf2f8;border-color:#f9a8d4;box-shadow:0 0 0 3px #be185d2e,0 8px 20px #be185d1f;transform:scale(1.015)}.cal-day--today{border-color:#be185d;background:#fff5f9;box-shadow:inset 0 0 0 2px #be185d40}.cal-day--today .cal-day__num{background:#be185d;color:#fff;border-radius:999px;padding:.05rem .45rem;font-weight:700}.cal-day--today .cal-day__num:after{content:" · hoy";font-size:.6rem}.cal-day__num{font-size:.78rem;font-weight:600;color:#9ca3af;align-self:flex-start}.cal-chip{margin:0;width:100%;text-align:left;padding:.3rem .5rem;font-size:.74rem;font-weight:600;border-radius:.5rem;background:linear-gradient(135deg,#be185d,#db2777);color:#fff;cursor:grab;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-shadow:0 1px 3px #be185d4d;transition:transform .14s ease,box-shadow .14s ease,filter .14s ease}.cal-chip:hover{transform:translateY(-1px);box-shadow:0 4px 10px #be185d52;filter:brightness(1.05)}.cal-chip:active{cursor:grabbing}.cal-chip__title{display:block}.cal-chip__who{display:block;font-size:.62rem;font-weight:600;opacity:.9}.cal-chip--done{opacity:.78}.cal-chip--done .cal-chip__title{text-decoration:line-through}.cal-chip.is-dragging{opacity:.35}.cal-chip--target{outline:2px solid #fff;box-shadow:0 0 0 3px #16a34a,0 6px 14px #16a34a59;transform:translateY(-1px) scale(1.03)}.cal-students{display:flex;flex-wrap:wrap;gap:.35rem}.cal-student{display:inline-block;padding:.3rem .6rem;border-radius:999px;background:#eef2ff;border:1px solid #c7d2fe;color:#3730a3;font-size:.78rem;font-weight:600;cursor:grab;transition:transform .14s ease,box-shadow .14s ease,background .14s ease}.cal-student:hover{transform:translateY(-1px);box-shadow:0 4px 10px #3730a32e;background:#e0e7ff}.cal-student:active{cursor:grabbing}.cal-student.is-dragging{opacity:.35}.cal-edit__exhead{display:flex;justify-content:space-between;align-items:center;gap:.5rem}.cal-edit__sets{width:100%;border-collapse:collapse;margin:.3rem 0;font-size:.82rem}.cal-edit__sets th{text-align:left;font-size:.68rem;text-transform:uppercase;letter-spacing:.03em;color:#9ca3af;font-weight:700;padding:.1rem .3rem}.cal-edit__sets td{padding:.15rem .3rem}.cal-edit__sets input{width:100%;min-width:3rem;padding:.25rem .35rem;margin:0}.cal-edit__sets td button{margin:0;padding:0 .45rem;background:#f3f4f6;color:#6b7280}.cal-edit__addset{margin:.1rem 0 .5rem;padding:.25rem .6rem;font-size:.78rem;background:#f3f4f6;color:#111827}.cal-addex{margin-top:.75rem;padding-top:.6rem;border-top:1px solid #f1f1f4}.cal-addex label{display:block;font-weight:600;font-size:.82rem;margin-bottom:.3rem}.cal-addex__search{display:flex;gap:.4rem}.cal-addex__search input{flex:1;margin:0}.cal-addex__results{list-style:none;margin:.4rem 0 0;padding:0;max-height:11rem;overflow-y:auto;border:1px solid #eee;border-radius:.5rem}.cal-addex__results li+li{border-top:1px solid #f3f4f6}.cal-addex__results button{display:flex;align-items:center;gap:.6rem;width:100%;text-align:left;margin:0;padding:.35rem .6rem;background:#fff;color:#111827;font-size:.85rem;font-weight:500;border-radius:0}.cal-addex__results button:hover{background:#fdf2f8}.cal-addex__thumb{width:2.4rem;height:2.4rem;object-fit:cover;border-radius:.4rem;background:#f3f4f6;flex:0 0 auto}.cal-addex__thumb--empty{display:inline-block}.cal-addex__hint{padding:.5rem .6rem;font-size:.8rem;color:#9ca3af;font-style:italic}.cal-overlay-card{padding:.5rem .8rem;background:linear-gradient(135deg,#be185d,#db2777);color:#fff;font-size:.82rem;font-weight:700;border-radius:.6rem;box-shadow:0 12px 28px #1118274d;transform:rotate(-2deg) scale(1.04);cursor:grabbing;max-width:16rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ctx-menu{position:fixed;z-index:200;list-style:none;margin:0;padding:.25rem;background:#fff;border:1px solid #e5e7eb;border-radius:.5rem;box-shadow:0 8px 20px #00000026;min-width:9rem}.ctx-menu button{margin:0;width:100%;text-align:left;padding:.4rem .6rem;background:none;color:#111827;font-size:.85rem}.ctx-menu button:hover{background:#f3f4f6}.modal--wide{max-width:34rem}@media(max-width:720px){.cal-layout{flex-direction:column}.cal-sidebar{flex:1}}.agenda{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.4rem}.agenda__item{border:1px solid #e5e7eb;border-radius:.5rem;padding:.5rem .7rem}.agenda__head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;flex-wrap:wrap}.agenda__title{margin:0;flex:1;text-align:left;background:none;color:#111827;padding:0;font-weight:400}.agenda__head>button:last-child{margin:0;padding:.3rem .7rem;font-size:.8rem;background:#f3f4f6;color:#111827}.compliance-box{margin-bottom:1.5rem}.compliance{display:inline-block;padding:.1rem .5rem;border-radius:999px;font-size:.8rem;font-weight:700}.compliance--hi{background:#dcfce7;color:#15803d}.compliance--mid{background:#fef9c3;color:#a16207}.compliance--lo{background:#fee2e2;color:#b91c1c}.sessions-review{margin-top:.75rem;padding-top:.75rem;border-top:1px dashed #e5e7eb}.session-list{list-style:none;padding:0;display:flex;gap:.4rem;flex-wrap:wrap}.session-list button{margin:0;padding:.3rem .6rem;font-size:.8rem;background:#f3f4f6;color:#111827}.session-detail{margin-top:.5rem;font-size:.9rem}.chart{margin:0 0 1rem;border:1px solid #e5e7eb;border-radius:.6rem;padding:.75rem}.chart figcaption{font-size:.85rem;color:#6b7280;margin-bottom:.25rem}.measure-form{max-width:32rem}.measure-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(8rem,1fr));gap:.5rem}.measure-grid label,.measure-form>label{display:flex;flex-direction:column;font-size:.8rem;font-weight:600;gap:.2rem}.measure-grid input,.measure-form input{padding:.4rem .5rem;border:1px solid #d1d5db;border-radius:.4rem;font-weight:400}.measure-table{width:100%;border-collapse:collapse;margin-top:1rem;font-size:.9rem}.measure-table th,.measure-table td{text-align:left;padding:.4rem .6rem;border-bottom:1px solid #f3f4f6}.measure-table th{color:#6b7280;font-size:.8rem}.photo-upload{display:flex;gap:1rem;align-items:flex-end;flex-wrap:wrap;margin-bottom:1rem}.photo-upload label{display:flex;flex-direction:column;font-size:.8rem;font-weight:600;gap:.2rem}.photo-upload select{padding:.45rem .6rem;border:1px solid #d1d5db;border-radius:.45rem}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(9rem,1fr));gap:.75rem}.photo-thumb{margin:0;border:1px solid #e5e7eb;border-radius:.6rem;overflow:hidden;display:flex;flex-direction:column}.photo-thumb img{width:100%;aspect-ratio:3 / 4;object-fit:cover;display:block}.photo-skeleton{width:100%;aspect-ratio:3 / 4;background:#f3f4f6}.photo-thumb figcaption{padding:.3rem .5rem;font-size:.78rem;color:#6b7280}.photo-thumb button{margin:0;border-radius:0;background:#fee2e2;color:#b91c1c;font-size:.78rem;padding:.3rem}.exercise-media{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem}.exercise-media figure{margin:0;display:flex;flex-direction:column;gap:.25rem}.exercise-media .zoomable{margin:0;padding:0;border:1px solid #e5e7eb;border-radius:.5rem;background:#fff;cursor:zoom-in;overflow:hidden;line-height:0}.exercise-media img{width:100%;max-width:18rem;height:auto;object-fit:contain;display:block;background:#fff}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#000000d9;display:flex;align-items:center;justify-content:center;padding:1.5rem;cursor:zoom-out}.lightbox__panel{display:flex;gap:1.25rem;max-width:min(92vw,62rem);max-height:90vh;overflow:auto;background:#fff;border-radius:.75rem;padding:1.25rem;cursor:default}.lightbox__panel img{max-width:min(55vw,28rem);max-height:80vh;object-fit:contain;border-radius:.5rem;background:#fff;align-self:flex-start}.lightbox__info{flex:1;min-width:13rem;max-width:26rem;font-size:.92rem}.lightbox__info h3{margin-top:0}@media(max-width:640px){.lightbox__panel{flex-direction:column}.lightbox__panel img{max-width:100%}}.exercise-media video{width:16rem;max-width:100%;border-radius:.5rem;border:1px solid #e5e7eb;background:#000}.exercise-media button{margin:0;padding:.2rem .5rem;font-size:.75rem;background:#fee2e2;color:#b91c1c}.exercise-upload{margin:.5rem 0 1rem;font-size:.85rem}.exercise-upload label{display:block;font-weight:600;margin-bottom:.25rem}.load-chart{margin:0 0 1.25rem;padding:.9rem 1rem .7rem;border:1px solid #f1f1f4;border-radius:.9rem;background:#fff;box-shadow:0 4px 16px #1118270d}.load-chart__title{font-size:.8rem;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:#9ca3af;margin-bottom:.6rem}.load-chart__bars{display:flex;align-items:flex-end;gap:.5rem;height:8rem}.load-bar{flex:1;display:flex;flex-direction:column;align-items:center;gap:.25rem;min-width:0}.load-bar__track{width:100%;max-width:2.2rem;flex:1;display:flex;align-items:flex-end;background:#f3f4f6;border-radius:.4rem;overflow:hidden}.load-bar__fill{width:100%;min-height:2px;background:linear-gradient(180deg,#db2777,#be185d);border-radius:.4rem .4rem 0 0;transition:height .5s cubic-bezier(.18,.67,.6,1.05)}.load-bar__count{font-size:.72rem;font-weight:700;color:#be185d;min-height:.95rem}.load-bar__label{font-size:.66rem;color:#9ca3af;white-space:nowrap}.msg{margin-top:1.5rem}.msg__thread{display:flex;flex-direction:column;gap:.5rem;max-height:22rem;overflow-y:auto;padding:.75rem;border:1px solid #eee;border-radius:.75rem;background:#fafafb}.msg__bubble{max-width:80%;align-self:flex-start;padding:.45rem .7rem;border-radius:.8rem .8rem .8rem .2rem;background:#fff;border:1px solid #eef0f3;box-shadow:0 1px 2px #1118270a}.msg__bubble--mine{align-self:flex-end;background:linear-gradient(135deg,#be185d,#db2777);color:#fff;border-color:transparent;border-radius:.8rem .8rem .2rem}.msg__body{margin:0;white-space:pre-wrap;word-break:break-word;font-size:.9rem}.msg__meta{display:block;margin-top:.2rem;font-size:.62rem;opacity:.7}.msg__compose{display:flex;gap:.5rem;margin-top:.6rem}.msg__compose input{flex:1;margin:0}.msg__compose button{margin:0}.fab-chat{position:fixed;right:1.25rem;bottom:1.25rem;z-index:60;display:flex;flex-direction:column;align-items:flex-end;gap:.6rem}.fab-chat__btn{position:relative;margin:0;width:3.4rem;height:3.4rem;border-radius:999px;font-size:1.4rem;padding:0;box-shadow:0 8px 22px #be185d59}.fab-chat__badge{position:absolute;top:-.2rem;right:-.2rem;min-width:1.25rem;height:1.25rem;padding:0 .3rem;border-radius:999px;background:#fff;color:#be185d;font-size:.72rem;font-weight:800;display:flex;align-items:center;justify-content:center;border:2px solid #be185d}.fab-chat__panel{width:min(92vw,22rem);max-height:min(70vh,30rem);overflow-y:auto;background:#fff;border:1px solid #eee;border-radius:.9rem;box-shadow:0 16px 40px #11182738;padding:.9rem;animation:fab-pop .18s ease-out}@keyframes fab-pop{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.fab-chat__head{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.fab-chat__close{margin:0;padding:0 .5rem;background:#f3f4f6;color:#6b7280}.fab-chat__select{width:100%;margin-bottom:.5rem}.fab-chat__panel .msg{margin-top:0}.fab-chat__panel .msg__thread{max-height:16rem}.config__active{display:block;margin:.5rem 0 1rem;font-weight:600}.config__card{border:1px solid #eee;border-radius:.75rem;padding:.9rem;margin-bottom:.9rem;background:#fff;box-shadow:0 2px 10px #1118270a}.config__cardhead{display:flex;justify-content:space-between;align-items:center;margin-bottom:.6rem}.config__cardhead .badge--ok{background:#dcfce7;color:#15803d}.config__row{display:flex;gap:.5rem;align-items:center;margin-bottom:.5rem}.config__row input[type=password],.config__row input[type=text],.config__row input:not([type]),.config__row select{flex:1;margin:0;min-width:0}.config__check{display:flex;align-items:center;gap:.3rem;white-space:nowrap;font-size:.85rem}.edit-form__section{margin:.75rem 0 .1rem;font-weight:700;font-size:.8rem;text-transform:uppercase;letter-spacing:.03em;color:#be185d}.ai-modal{max-width:26rem}.ai-form__hint{margin:0 0 1rem;color:#6b7280;font-size:.85rem;line-height:1.4}.ai-form{display:flex;flex-direction:column;gap:.8rem}.ai-form__row{display:flex;gap:.8rem}.ai-field{display:flex;flex-direction:column;gap:.25rem;flex:1;min-width:0}.ai-field--narrow{flex:0 0 7rem}.ai-field label{font-weight:600;font-size:.82rem}.ai-field select,.ai-field input,.ai-field textarea{width:100%;margin:0;padding:.5rem .6rem;border:1px solid #d1d5db;border-radius:.5rem;font:inherit}.ai-field textarea{resize:vertical}.cal-weekdays{display:flex;flex-wrap:wrap;gap:.25rem;margin-bottom:.6rem}.cal-weekday-toggle{margin:0;padding:.22rem .45rem;font-size:.72rem;font-weight:600;border-radius:.4rem;background:#f3f4f6;color:#6b7280}.cal-weekday-toggle.is-on{background:#be185d;color:#fff}.cal-trash{position:fixed;bottom:1.5rem;left:50%;transform:translate(-50%);z-index:70;display:flex;align-items:center;gap:.5rem;padding:.65rem 1.3rem;border-radius:.9rem;background:#fff;border:2px dashed #d1d5db;color:#6b7280;box-shadow:0 10px 28px #1118272e;font-weight:600;font-size:.85rem;transition:transform .14s ease,background .14s ease,border-color .14s ease}.cal-trash--over{border-color:#b91c1c;background:#fee2e2;color:#b91c1c;transform:translate(-50%) scale(1.06)}.cal-trash__icon{font-size:1.2rem}.regen{margin-top:.4rem;padding:.5rem;border:1px solid #fbcfe8;border-radius:.5rem;background:#fdf2f8}.regen__row{display:flex;gap:.4rem;align-items:center}.regen__row input{flex:1;margin:0;padding:.35rem .5rem;border:1px solid #d1d5db;border-radius:.4rem;font:inherit}.regen__suggestion{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;margin-top:.5rem;font-size:.85rem}.cal-trash{opacity:0;pointer-events:none}.cal-trash.cal-trash--active{opacity:1;pointer-events:auto}.cal-tpl{position:relative}.cal-tpl__menu{position:absolute;top:100%;left:0;z-index:40;margin:.2rem 0 0;padding:.2rem;list-style:none;background:#fff;border:1px solid #e5e7eb;border-radius:.5rem;box-shadow:0 6px 18px #11182726;min-width:8rem}.cal-tpl__menu button{width:100%;text-align:left;margin:0;padding:.35rem .6rem;font-size:.82rem;background:#fff;color:#111827;border-radius:.35rem}.cal-tpl__menu button:hover{background:#f3f4f6}.cal-tpl--editing{display:flex;gap:.3rem}.cal-tpl--editing input{flex:1;margin:0;padding:.3rem .4rem;border:1px solid #d1d5db;border-radius:.4rem;font:inherit}.cal-prog--wrap{position:relative}.cal-prog__name{cursor:grab}.cal-prog__name:active{cursor:grabbing}.cal-prog__name.is-dragging{opacity:.35}.memory{margin-top:.75rem;padding-top:.75rem;border-top:1px dashed #e5e7eb}.memory__add{display:flex;gap:.4rem;margin:.5rem 0}.memory__add select,.memory__add input{margin:0;padding:.4rem .5rem;border:1px solid #d1d5db;border-radius:.45rem;font:inherit}.memory__add input{flex:1;min-width:0}.memory__list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.3rem}.memory__list li{display:flex;align-items:center;gap:.4rem;font-size:.88rem}.memory__list li button{margin:0 0 0 auto;padding:0 .45rem;background:#fee2e2}.is-menu-open{position:relative;z-index:60}.cal-tpl__menu{z-index:61}.ops{margin-top:1.5rem;border-top:1px solid #eee;padding-top:1rem}.ops__audit{list-style:none;padding:0;margin:.5rem 0;display:flex;flex-direction:column;gap:.3rem;max-height:18rem;overflow-y:auto;font-size:.84rem}.ops__audit code{font-size:.78rem;color:#6b7280}
