.ct-skel{display:flex;flex-direction:column;gap:.625rem;margin-bottom:1.5rem}.ct-skel__row{height:4rem;border-radius:var(--ig-radius-md)}.form-banner--error{padding:.75rem 1rem;border-radius:var(--ig-radius-md);font-family:var(--ig-font-sans);font-size:.875rem;background:var(--ig-error-light);color:var(--ig-error-text);border:1px solid var(--ig-error-border);margin-bottom:1.25rem}.ct-section{max-width:680px;margin-bottom:2.5rem}.section-heading{font-family:var(--ig-font-sans);font-size:.9375rem;font-weight:600;color:var(--ig-text);margin:0 0 1.25rem}.setup-form{display:flex;flex-direction:column;gap:1.25rem}.field{display:flex;flex-direction:column;gap:.375rem}.field-row{display:flex;flex-wrap:wrap;gap:1.25rem}.field-row .field{flex:1;min-width:140px}.field__label{font-family:var(--ig-font-sans);font-size:.875rem;font-weight:600;color:var(--ig-text)}.req{color:var(--ig-error);margin-left:.1em}.field__hint{font-family:var(--ig-font-sans);font-size:.8125rem;color:var(--ig-text-muted);margin:.25rem 0 0}.field__input{padding:.5625rem .75rem;border:1px solid var(--ig-border);border-radius:var(--ig-radius-md);background:var(--ig-bg);font-family:var(--ig-font-sans);font-size:.9375rem;color:var(--ig-text);max-width:220px;transition:border-color .15s}.field__input:focus{outline:none;border-color:var(--ig-accent)}.field__input--sm{max-width:180px}.field__select{padding:.5625rem .75rem;border:1px solid var(--ig-border);border-radius:var(--ig-radius-md);background:var(--ig-bg);font-family:var(--ig-font-sans);font-size:.9375rem;color:var(--ig-text);max-width:400px;cursor:pointer}.field__select:focus{outline:none;border-color:var(--ig-accent)}.ct-link{color:var(--ig-accent);text-decoration:none}.ct-link:hover{text-decoration:underline}.weeks-preview{display:flex;align-items:center;gap:.625rem;padding:.75rem 1rem;background:color-mix(in srgb,var(--ig-accent) 8%,var(--ig-bg));border:1px solid color-mix(in srgb,var(--ig-accent) 25%,var(--ig-border));border-radius:var(--ig-radius-md);flex-wrap:wrap}.weeks-preview__number{font-family:var(--ig-font-display);font-size:2rem;font-weight:700;color:var(--ig-accent);line-height:1}.weeks-preview__label{font-family:var(--ig-font-sans);font-size:.9375rem;color:var(--ig-text-muted)}.weeks-preview__plan{font-family:var(--ig-font-sans);font-size:.8125rem;color:var(--ig-text-muted);font-style:italic;margin-left:auto}.form-error{padding:.625rem .875rem;background:var(--ig-error-light);color:var(--ig-error-text);border:1px solid var(--ig-error-border);border-radius:var(--ig-radius-md);font-family:var(--ig-font-sans);font-size:.875rem}.form-actions{display:flex;gap:.75rem;align-items:center}.camp-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1.25rem}.camp-header__comp{font-family:var(--ig-font-display);font-size:1.375rem;font-weight:700;color:var(--ig-text);margin-bottom:.25rem}.camp-header__dates{font-family:var(--ig-font-sans);font-size:.875rem;color:var(--ig-text-muted)}.camp-header__actions{display:flex;gap:.5rem;align-items:center;flex-shrink:0}.camp-progress{display:flex;align-items:center;gap:1rem;margin-bottom:1.25rem;flex-wrap:wrap}.camp-progress__bar-wrap{flex:1;min-width:120px;height:8px;background:var(--ig-border);border-radius:4px;overflow:hidden}.camp-progress__bar{height:100%;background:var(--ig-accent);border-radius:4px;transition:width .5s ease}.camp-progress__label{font-family:var(--ig-font-sans);font-size:.8125rem;color:var(--ig-text-muted);white-space:nowrap;flex-shrink:0}.missed-banner{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:.75rem 1rem;background:color-mix(in srgb,var(--ig-warning) 10%,var(--ig-bg));border:1px solid color-mix(in srgb,var(--ig-warning) 35%,var(--ig-border));border-radius:var(--ig-radius-md);margin-bottom:1.25rem}.missed-banner__text{font-family:var(--ig-font-sans);font-size:.9375rem;color:var(--ig-text)}.ct-weight{padding:.875rem 1rem 1rem;border:1px solid var(--ig-border);border-radius:var(--ig-radius-lg);background:var(--ig-bg-alt);margin-bottom:2rem}.ct-weight__head{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.ct-weight__title{font-family:var(--ig-font-display);font-size:.9375rem;font-weight:700;color:var(--ig-text);margin:0}.ct-weight__target{display:inline-flex;align-items:center;gap:.4rem}.ct-weight__target-label{font-family:var(--ig-font-sans);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--ig-text-muted)}.ct-weight__target-input{width:5rem;padding:.35rem .5rem;border:1px solid var(--ig-border);border-radius:var(--ig-radius-md);background:var(--ig-bg);font-family:var(--ig-font-sans);font-size:.875rem;color:var(--ig-text);text-align:right}.ct-weight__unit{padding:.35rem .4rem;border:1px solid var(--ig-border);border-radius:var(--ig-radius-md);background:var(--ig-bg);font-family:var(--ig-font-sans);font-size:.875rem;color:var(--ig-text)}.ct-weight__target-input:focus,.ct-weight__unit:focus{outline:none;border-color:var(--ig-accent)}.ct-weight__status{font-family:var(--ig-font-sans);font-size:.8125rem;color:var(--ig-text-muted);margin:.6rem 0 .75rem}.ct-weigh-form{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}.ct-weigh-date,.ct-weigh-val{min-height:44px;padding:.5rem .75rem;border:1px solid var(--ig-border);border-radius:var(--ig-radius-md);background:var(--ig-bg);font-family:var(--ig-font-sans);font-size:1rem;color:var(--ig-text);box-sizing:border-box}.ct-weigh-val{width:6rem}.ct-weigh-date:focus,.ct-weigh-val:focus{outline:none;border-color:var(--ig-accent)}.ct-weigh-form .btn--sm,.camp-header__actions .btn--sm,.missed-banner .btn--sm{min-height:44px;padding-top:.625rem;padding-bottom:.625rem}.ct-weigh-log{list-style:none;margin:.75rem 0 0;padding:0;display:flex;flex-direction:column;gap:.25rem;max-height:14rem;overflow-y:auto}.ct-weigh-item{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.25rem .5rem;border-bottom:1px solid var(--ig-border);font-family:var(--ig-font-sans);font-size:.875rem;min-height:44px}.ct-weigh-item__date{color:var(--ig-text-muted)}.ct-weigh-item__val{flex:1}.ct-weigh-remove{min-width:44px;min-height:44px;padding:.25rem .5rem;background:transparent;border:1px solid transparent;border-radius:var(--ig-radius-md);color:var(--ig-text-muted);font-family:var(--ig-font-sans);font-size:.75rem;font-weight:600;cursor:pointer;flex-shrink:0;transition:border-color .15s,color .15s}.ct-weigh-remove:hover{border-color:var(--ig-error-border, #c0392b);color:var(--ig-error-text, #c0392b)}.ct-weigh-item__val{color:var(--ig-text);font-weight:600;font-variant-numeric:tabular-nums}.checkin-row{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:.875rem 1rem;border:1px solid var(--ig-border);border-radius:var(--ig-radius-lg);background:var(--ig-bg-alt);margin-bottom:2rem;flex-wrap:wrap}.checkin-row__info{flex:1;min-width:0}.checkin-row__label{display:block;font-family:var(--ig-font-sans);font-size:.9375rem;font-weight:600;color:var(--ig-text);margin-bottom:.125rem}.checkin-row__desc{font-family:var(--ig-font-sans);font-size:.8125rem;color:var(--ig-text-muted)}.toggle{display:flex;align-items:center;gap:.5rem;cursor:pointer;flex-shrink:0}.toggle input{position:absolute;opacity:0;pointer-events:none}.toggle__track{position:relative;width:2.5rem;height:1.375rem;border-radius:var(--ig-radius-pill);background:var(--ig-border);transition:background .2s;flex-shrink:0}.toggle input:checked~.toggle__track{background:var(--ig-accent)}.toggle__thumb{position:absolute;top:.1875rem;left:.1875rem;width:1rem;height:1rem;border-radius:50%;background:#fff;transition:transform .2s;box-shadow:0 1px 3px #0003}.toggle input:checked~.toggle__track .toggle__thumb{transform:translate(1.125rem)}.toggle__label{font-family:var(--ig-font-sans);font-size:.8125rem;font-weight:500;color:var(--ig-text-muted);min-width:2rem}.week-list{display:flex;flex-direction:column;gap:1.25rem}.week-block{border:1px solid var(--ig-border);border-radius:var(--ig-radius-lg);overflow:hidden;background:var(--ig-bg)}.week-block--current{border-color:color-mix(in srgb,var(--ig-accent) 40%,var(--ig-border))}.week-block--past{opacity:.75}.week-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.875rem 1rem;background:var(--ig-bg-alt);border-bottom:1px solid var(--ig-border);flex-wrap:wrap}.week-header__left{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.week-header__right{display:flex;align-items:center;gap:.75rem}.week-num{font-family:var(--ig-font-sans);font-size:.8125rem;font-weight:700;color:var(--ig-text-muted);text-transform:uppercase;letter-spacing:.04em}.week-current-badge{font-family:var(--ig-font-sans);font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--ig-accent);background:color-mix(in srgb,var(--ig-accent) 12%,transparent);padding:.1875rem .5rem;border-radius:var(--ig-radius-pill)}.week-progress{font-family:var(--ig-font-mono);font-size:.8125rem;color:var(--ig-text-muted)}.week-date{font-family:var(--ig-font-sans);font-size:.8125rem;color:var(--ig-text-faint, var(--ig-text-muted))}.week-type-badge,.session-type-pill{font-family:var(--ig-font-sans);font-size:.6875rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:.1875rem .5rem;border-radius:var(--ig-radius-pill)}.week-type-badge--accent,.session-type-pill--accent{color:var(--ig-accent);background:color-mix(in srgb,var(--ig-accent) 12%,transparent)}.week-type-badge--safe,.session-type-pill--safe{color:var(--ig-safe-text);background:var(--ig-safe-light)}.week-type-badge--warning,.session-type-pill--warning{color:var(--ig-warning-text);background:var(--ig-warning-light)}.week-type-badge--risk,.session-type-pill--risk{color:var(--ig-risk-text);background:var(--ig-risk-light)}.week-type-badge--muted,.session-type-pill--muted{color:var(--ig-text-muted);background:var(--ig-border)}.session-list{display:flex;flex-direction:column}.session-card{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border-bottom:1px solid var(--ig-border);cursor:pointer;transition:background .1s;user-select:none}.session-card:last-child{border-bottom:none}.session-card:hover{background:color-mix(in srgb,var(--ig-accent) 4%,var(--ig-bg))}.session-card--done{opacity:.55}.session-card--missed{background:color-mix(in srgb,var(--ig-warning) 5%,var(--ig-bg))}.session-check-label{display:flex;align-items:center;flex-shrink:0}.session-check{width:1rem;height:1rem;cursor:pointer;accent-color:var(--ig-accent)}.session-card__body{flex:1;display:flex;align-items:center;gap:.625rem;flex-wrap:wrap;min-width:0}.session-date{font-family:var(--ig-font-sans);font-size:.875rem;font-weight:500;color:var(--ig-text);white-space:nowrap}.session-content-count{font-family:var(--ig-font-sans);font-size:.75rem;color:var(--ig-text-muted)}.session-chevron{color:var(--ig-text-faint, var(--ig-text-muted));flex-shrink:0}.session-panel{position:fixed;bottom:0;left:0;right:0;max-height:70vh;background:var(--ig-bg);border-top:2px solid var(--ig-accent);border-radius:var(--ig-radius-lg, .75rem) var(--ig-radius-lg, .75rem) 0 0;box-shadow:0 -4px 32px #00000026;z-index:200;display:flex;flex-direction:column;overflow:hidden}.session-panel__header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.25rem .75rem;border-bottom:1px solid var(--ig-border);flex-shrink:0}.session-panel__title{font-family:var(--ig-font-sans);font-size:.9375rem;font-weight:600;color:var(--ig-text)}.panel-close{display:inline-flex;align-items:center;justify-content:center;background:none;border:1px solid var(--ig-border);border-radius:var(--ig-radius-md);width:44px;height:44px;color:var(--ig-text-muted);cursor:pointer;flex-shrink:0;line-height:1;transition:color .15s,border-color .15s}.panel-close:hover{color:var(--ig-text);border-color:var(--ig-border-strong)}.panel-content{flex:1;overflow-y:auto;padding:1rem 1.25rem}.panel-loading{font-family:var(--ig-font-sans);font-size:.875rem;color:var(--ig-text-muted);font-style:italic}.panel-empty{font-family:var(--ig-font-sans);font-size:.9375rem;color:var(--ig-text-muted);margin:0}.panel-section{margin-bottom:1.25rem}.panel-section-title{font-family:var(--ig-font-sans);font-size:.8125rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--ig-text-muted);margin:0 0 .5rem}.panel-item-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.25rem}.panel-item-list li{padding:.375rem .75rem;background:var(--ig-bg-alt);border-radius:var(--ig-radius-md)}.panel-link{font-family:var(--ig-font-sans);font-size:.9375rem;color:var(--ig-text);text-decoration:none}.panel-link:hover{color:var(--ig-accent)}.panel-notes{font-family:var(--ig-font-sans);font-size:.875rem;color:var(--ig-text-muted);border-top:1px solid var(--ig-border);padding-top:.75rem;margin-top:.75rem}.panel-footer{padding:.875rem 1.25rem;border-top:1px solid var(--ig-border);flex-shrink:0}.panel-complete{display:flex;align-items:center;gap:.5rem;font-family:var(--ig-font-sans);font-size:.9375rem;font-weight:500;color:var(--ig-text);cursor:pointer}.panel-complete input{accent-color:var(--ig-accent);width:1.125rem;height:1.125rem}.ct-preview{display:flex;flex-direction:column;gap:1rem;padding:.5rem .25rem 1rem}.ct-preview__meta{padding:.85rem 1rem;border:1px solid var(--ig-border);border-radius:var(--ig-radius-md, .5rem);background:var(--ig-bg-alt)}.ct-preview__title{font-family:var(--ig-font-display);font-size:1.0625rem;font-weight:500;color:var(--ig-text);margin:0 0 .25rem}.ct-preview__sub{font-family:var(--ig-font-sans);font-size:.8125rem;color:var(--ig-text-muted);margin:0}.ct-preview__weeks{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem}.ct-preview__weeks li{display:grid;grid-template-columns:3rem 6rem 1fr;align-items:center;gap:.875rem;padding:.6rem .875rem;border:1px solid var(--ig-border);border-radius:var(--ig-radius-md, .5rem)}.ct-preview__num{font-family:var(--ig-font-mono);font-size:.8125rem;color:var(--ig-gold);font-feature-settings:"tnum" 1}.ct-preview__phase{font-family:var(--ig-font-mono);font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ig-accent)}.ct-preview__detail{font-family:var(--ig-font-sans);font-size:.875rem;color:var(--ig-text-muted)}
