[hidden]{display:none!important}
.operations-qr{display:block;width:396px;max-width:100%;height:auto;object-fit:contain;margin:16px auto}
.practice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:22px}
.practice-card{min-width:0;border:1px solid var(--line);border-radius:6px;padding:20px;background:#fff;overflow-wrap:anywhere}
.practice-card h3{font-size:20px;line-height:1.5;margin:10px 0}
.practice-card p{margin:12px 0}.practice-card summary{cursor:pointer;color:var(--green);min-height:44px;padding:10px 0}
.practice-card details{border-top:1px solid var(--line);margin-top:18px}
@media(max-width:600px){.practice-grid{grid-template-columns:1fr}}
.alpha-form{max-width:460px;margin:24px 0;min-width:0}
.alpha-form label{display:block;font-size:14px;margin:16px 0 6px}
.alpha-form input,.alpha-form select,.alpha-form textarea{display:block;width:100%;min-width:0;max-width:100%;min-height:46px;background:#fff;border:1px solid var(--line);border-radius:5px;padding:10px;font-size:16px;color:var(--ink)}
.alpha-form .primary{margin-top:20px;width:100%}
.alpha-form .secondary{margin-top:12px;width:100%}
.alpha-form .form-error{margin-top:10px}
.alpha-status{border-top:1px solid var(--line);padding:18px 0;color:var(--muted)}
.alpha-time{display:block;overflow-wrap:anywhere;margin-top:8px}
.alpha-footer{margin-top:28px;display:flex;gap:16px;flex-wrap:wrap}
.alpha-ops-list{padding:14px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}
.alpha-ops-list .text-button{display:block}
.alpha-ops-tools{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:20px}
.alpha-ops-tools button{flex:1 1 120px}
.alpha-context-error{border-left:3px solid var(--orange);padding:12px 16px}
.alpha-diagnostic{max-width:560px;margin-top:20px;color:var(--muted);font-size:14px;overflow-wrap:anywhere}
.alpha-diagnostic summary{cursor:pointer;min-height:44px;padding:10px 0}
#connection-result,#send-result{display:block;width:100%;min-height:180px;margin:12px 0;white-space:pre-wrap;overflow-wrap:anywhere}
.alpha-pending{padding:18px 0;color:var(--muted);border-top:1px solid var(--line)}
.record-tools{display:flex;gap:12px;flex-wrap:wrap;margin:18px 0}
.record-list{list-style:none;padding:0;margin:16px 0}
.record-list li{border-top:1px solid var(--line)}
.record-list button{display:grid;width:100%;gap:8px;text-align:left;padding:18px 4px;background:transparent;border:0;color:var(--ink);min-width:0}
.record-preview,.record-body{white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word}
.record-list time,.record-list button>span:last-child{font-size:13px;color:var(--muted)}
.record-form{max-width:none}.record-form textarea{resize:vertical;min-height:200px;line-height:1.7}
#review-form textarea{min-height:110px}
.record-tools button{max-width:100%;white-space:normal;overflow-wrap:anywhere;min-height:44px}
#dialog{max-height:90dvh;overflow:hidden;max-width:min(680px,calc(100vw - 24px))}
#dialog[open]{display:flex;flex-direction:column}
#dialog .dialog-top{position:relative;flex:0 0 auto}
#dialog .dialog-top .icon-button{flex:0 0 44px;min-height:44px}
#dialog #dialog-body{flex:1 1 auto;min-height:0;overflow-y:auto;padding-bottom:calc(24px + env(safe-area-inset-bottom));scroll-padding:20px}
#dialog [data-record-status]{overflow-wrap:anywhere;min-height:24px}
@media(max-width:760px){.alpha-form{max-width:none}.review-inner{font-size:12px}.membership{flex-wrap:wrap}.membership>.chip{margin-left:44px}.alpha-footer button{min-height:44px}.alpha-time{font-size:12px}}
/* Joining forms share the existing dialog and keep private text inside it. */
.join-check { display:flex; align-items:flex-start; gap:12px; line-height:1.7; }
.member-links { display:grid; grid-template-columns:minmax(0,1fr); gap:12px; }
.member-links > button { width:100%; min-height:48px; text-align:left; white-space:normal; overflow-wrap:anywhere; margin:0; }
.account-links { margin-top:24px; }
.review-bar .prototype-tag { border:0; padding:2px 0; font-size:12px; font-weight:400; }
.review-bar .review-inner { min-height:24px; padding-top:2px; padding-bottom:2px; }
@media(max-width:600px){.record-tools,.alpha-footer { flex-direction:column; align-items:stretch; }.record-tools > button,.alpha-footer > button { width:100%; white-space:normal; }.profile > div { min-width:0; }.profile h2 { overflow-wrap:anywhere; }}
.alpha-form .join-check input { width:20px; height:20px; min-width:20px; margin-top:5px; }
.join-history { padding:16px 0; border-bottom:1px solid #dce3dc; }
.join-history p { white-space:pre-wrap; overflow-wrap:anywhere; }
[data-join-status] { color:#245b48; white-space:pre-wrap; overflow-wrap:anywhere; }
[data-join-form] textarea { width:100%; min-height:100px; resize:vertical; }
.support-cards{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;margin-top:16px}
.support-card{display:flex;flex-direction:column;align-items:stretch;gap:10px;min-width:0;padding:16px;border:1px solid #d9ded9;border-radius:6px}
#dialog-body .support-card p{margin:0}
.support-card h4,.support-card h3{margin:0;font-size:1.125em;line-height:1.5}
.event-surface,.coach-surface{font-size:1rem;line-height:1.6;word-break:normal;overflow-wrap:break-word}
.event-surface h3,.coach-surface h3{font-size:1.25em;line-height:1.45;margin:12px 0}
.event-surface h4,.coach-surface h4{font-size:1.06em;margin:18px 0 8px}
.event-surface .meta,.coach-surface .meta{font-size:.875em;line-height:1.6}
.event-time{display:flex;flex-direction:column;gap:4px;margin:8px 0 12px}
.event-time strong{font-weight:600}.event-time span,.event-time small{font-size:.875em;color:#526357}
.event-tabs,.event-actions{display:flex;flex-direction:column;gap:10px;margin:16px 0}
.event-surface button,.coach-surface button{font-size:1em;min-height:46px;max-width:100%;white-space:normal;text-align:left;justify-content:flex-start;line-height:1.5;padding:10px 14px}
.event-tabs{flex-direction:row;flex-wrap:wrap}.event-tabs button{flex:1 1 120px}
@media(max-width:480px){.event-tabs{flex-direction:column}.event-tabs button{flex:0 0 auto}}
.event-status{font-weight:600;color:#245b48}
#dialog-body .support-tag{font-size:.875em;color:#526357;margin:12px 0 4px}
.event-reminder{border-left:3px solid #92ab95;padding:8px 12px;font-size:.9375em}
#dialog-body .event-consent{display:flex;align-items:flex-start;gap:12px;text-align:left;font-size:1em;font-weight:400;line-height:1.6;padding:14px;border:1px solid #b9cabb;border-radius:6px;cursor:pointer;margin:16px 0}
#dialog-body .event-consent input{display:block;width:22px;height:22px;min-width:22px;min-height:22px;flex:0 0 22px;padding:0;margin:3px 0 0}
.event-consent span{flex:1;min-width:0}
.qa-recommendations{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:24px}
.qa-recommendations .resource{display:flex;flex-direction:column;min-width:0;border-radius:8px}
.qa-recommendations h3{font-size:1.125rem;line-height:1.5;overflow-wrap:anywhere}
.qa-recommendations p{line-height:1.7}
.qa-recommendations a{margin-top:auto;align-self:flex-start;display:inline-flex;align-items:center;gap:8px;min-height:44px}
.qa-extended{padding-left:20px}.qa-extended li{padding:8px 0;line-height:1.6}
.qa-extended a{overflow-wrap:anywhere}.qa-extended svg,.qa-recommendations svg{width:20px;height:20px;flex-shrink:0}
@media(max-width:800px){.qa-recommendations{grid-template-columns:minmax(0,1fr)}}
.coach-photo{display:block;width:100%;max-width:240px;height:240px;object-fit:contain;object-position:left center;background:#f4f6f4}
.coach-profile .coach-photo{max-width:320px;height:320px}
.preserve-lines{white-space:pre-line;overflow-wrap:anywhere}
.growth-ledger{padding-left:24px}
.growth-ledger li{border-bottom:1px solid #dce3de;padding:16px 0}
.growth-ledger details p{overflow-wrap:anywhere}
#dialog-body .alpha-form .consent-row {display:flex;align-items:flex-start;gap:12px;text-align:left;}
#dialog-body .alpha-form .consent-row input[type="checkbox"] {width:20px;height:20px;min-height:20px;flex:0 0 20px;margin:3px 0 0;padding:0;}
#dialog-body .alpha-form .consent-row span {min-width:0;overflow-wrap:anywhere;}
.camp-controls {display:flex;flex-wrap:wrap;gap:12px;margin-top:16px;}
.camp-controls > button {min-height:44px;}
.camp-row {border-bottom:1px solid #d8dfda;padding:16px 0;overflow-wrap:anywhere;}
.camp-calendar {padding-left:22px;}
.camp-calendar li {padding:12px 0;border-bottom:1px solid #d8dfda;}
.camp-calendar li > * {display:block;margin:4px 0;}
.camp-hero{background:#f6f7ee url('/assets/camp-shoot.png') right center/auto 100% no-repeat;min-height:210px;margin:8px 0 20px;padding:24px 18px;box-sizing:border-box}
.camp-hero-copy{width:76%;position:relative;color:#234a32}
#dialog-body .camp-hero h3{font-size:24px;line-height:1.65;margin:20px 0 16px;font-weight:600}
.camp-period{font-size:15px;margin:0;letter-spacing:0}
.camp-day{font-size:13px;margin:0;color:#52644b}
.camp-home-actions{display:grid;grid-template-columns:1fr;gap:10px;margin-bottom:24px}
.camp-home-actions button{width:100%;min-height:48px;white-space:normal}
.camp-home-actions button:first-child{background:#224e39;color:white;border-color:#224e39}
.camp-home-actions button:disabled{opacity:.55;cursor:not-allowed}
.camp-schedule{padding:8px 0 16px;border-bottom:1px solid #d8dfda}
.camp-schedule>h3{margin:0 0 12px;font-size:18px}
.camp-schedule:has(.camp-full-calendar[open]) .camp-nearest{display:none}
.arrangements-open,.camp-full-calendar[open] .arrangements-closed{display:none}
.camp-full-calendar[open] .arrangements-open{display:inline}
.camp-schedule .label{margin:0 0 2px}
.camp-schedule>.camp-session{margin-top:0;padding-top:0}
.camp-schedule>.camp-session>summary{padding-top:2px}
.camp-session summary{cursor:pointer;list-style:none;padding:8px 24px 8px 0;position:relative;line-height:1.6}
.camp-session summary::after{content:'+';position:absolute;right:2px;top:10px;color:#647567}
.camp-session[open]>summary::after{content:'−'}
.camp-session summary::-webkit-details-marker{display:none}
.camp-session strong,.camp-session-time,.camp-session small{display:block}
.camp-session strong{font-size:19px;font-weight:600;margin-bottom:6px}
.camp-session-time{font-size:15px;color:#344b3d}
.camp-session small{font-size:12px;color:#6c776d;margin-top:4px}
.camp-full-calendar>summary{cursor:pointer;padding:16px 0 8px;font-size:14px;color:#315e44;min-height:44px;box-sizing:border-box}
.camp-calendar{list-style:none;padding:0;margin:8px 0}
.camp-calendar li:last-child{border-bottom:0}
.camp-full-calendar[open]>.camp-calendar{margin-top:0}
.camp-full-calendar>.camp-calendar>li:first-child{padding-top:0}
.camp-full-calendar>.camp-calendar>li:first-child>details{margin-top:0}
.camp-material-shortcut{display:block;border:0;background:transparent;color:#315e44;font:inherit;font-size:15px;padding:8px 0;min-height:44px;text-align:left;cursor:pointer}
[data-opening-material-link]:empty,[data-camp-status]:empty{display:none}
.camp-learning{padding:16px 0 0}
.camp-materials{padding:8px 0 12px}
.camp-materials h4{font-size:15px;font-weight:500;color:#526357;margin:4px 0 8px}
.camp-materials ul{list-style:none;padding:0;margin:0}
.camp-calendar .camp-materials li{padding:0;border:0}
.camp-materials button{display:grid;grid-template-columns:1fr 16px;align-items:start;gap:10px;text-align:left;width:100%;min-height:48px;padding:12px 0;background:transparent;border:0;color:#234a32;font:inherit;line-height:1.6}
.camp-materials button span{min-width:0;overflow-wrap:anywhere}
.camp-photo{margin:18px 0 12px}
.camp-photo h4{font-size:16px;font-weight:500;margin:0 0 6px;color:#315e44}
.camp-photo .meta{margin:0 0 12px;font-size:13px}
.camp-photo button{display:block;width:100%;padding:0;border:0;background:transparent;cursor:zoom-in}
.camp-photo button[hidden]{display:none}
.camp-photo img,.camp-photo-large{display:block;width:100%;height:auto;object-fit:contain}
.camp-photo-pan{overflow:auto;margin-top:12px;max-height:65dvh}
.camp-photo-pan.is-zoomed .camp-photo-large{width:200%;max-width:none}
.camp-photo [data-photo-status]:empty{display:none}
.camp-material-dialog{width:720px;max-width:calc(100vw - 24px);max-height:90dvh;box-sizing:border-box;padding:16px;background:#fffdf8;color:#233b2b;border:1px solid #d8dfda;border-radius:8px}
.camp-material-dialog[open]{display:flex;flex-direction:column;overflow:hidden}
.camp-material-dialog::backdrop{background:#0007}
.camp-material-dialog header{display:flex;align-items:flex-start;gap:12px;justify-content:space-between;flex-shrink:0}
.camp-material-dialog h2{font-size:19px;font-weight:600;line-height:1.5;margin:8px 0 16px;overflow-wrap:anywhere}
.camp-material-dialog header button{min-width:44px;min-height:44px;font-size:25px;background:transparent;color:inherit;border:0}
.camp-material-dialog [data-material-body]{min-height:0;overflow:auto;padding-bottom:12px}
.camp-material-dialog canvas{display:block;width:100%;height:auto;background:#fff}
.camp-material-dialog canvas[hidden]{display:none}
.pdf-controls{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:8px 0 12px}
.pdf-controls button,[data-pdf-retry]{min-height:44px;padding:8px 12px;background:#f3f4ed;color:#234a32;border:1px solid #d8dfda;border-radius:6px;font:inherit}
.pdf-controls button:disabled{opacity:.45}
[data-pdf-status]:empty{display:none}
[data-pdf-reader]{margin-bottom:16px}
.camp-material-dialog video{display:block;width:100%;height:auto;max-height:60dvh;background:#18271f}
.camp-review-shell{display:flex;flex-direction:column;flex-shrink:0;min-height:0;max-height:calc(90vh - 34px);max-height:calc(90dvh - 34px);overflow:hidden}
.camp-review-shell:fullscreen{box-sizing:border-box;width:100%;height:100%;max-height:none;padding:16px;background:#fffdf8;color:#233b2b}
.camp-review-shell:fullscreen video{max-height:72dvh}
.camp-replay-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:8px 0}
.camp-replay-actions button{font:inherit;min-height:44px;padding:8px 12px;border:1px solid #b7c8bc;border-radius:6px;background:#fffdf8;color:#233b2b}
.camp-replay-actions [hidden]{display:none!important}
.camp-floating-status:empty{display:none}
.camp-material-dialog.is-floating[open]{position:sticky;inset:auto;top:env(safe-area-inset-top,0px);float:none;width:min(420px,100%);max-width:100%;max-height:calc(100dvh - 80px);height:auto;margin:0 0 16px auto;box-sizing:border-box;padding:10px;z-index:6;overflow:auto;box-shadow:0 3px 14px #18332618}
html.camp-has-floating-replay{scroll-padding-top:calc(var(--camp-replay-dock-height,0px) + 16px);scroll-padding-bottom:80px}
.camp-has-floating-replay :is(input,textarea,select,button,[contenteditable="true"]){scroll-margin-top:12px}
.camp-has-floating-replay dialog :is(input,textarea,select,button,[contenteditable="true"]){scroll-margin-top:12px}
.camp-material-dialog.is-floating .camp-review-shell{max-height:none;overflow:visible}
.camp-material-dialog.is-floating header h2{font-size:15px;margin:0 0 6px}
.camp-material-dialog.is-floating header button{font-size:15px;flex-shrink:0}
.camp-material-dialog.is-floating [data-material-body]{overflow:visible;padding:0}
.camp-material-dialog.is-floating video{width:100%;height:auto;max-height:140px;object-fit:contain;margin:4px 0}
.camp-material-dialog.is-floating [data-material-body]>.meta,.camp-material-dialog.is-floating [data-media-status],.camp-material-dialog.is-floating [data-review-fullscreen]{display:none}
.camp-material-dialog.is-floating [data-material-body]>.camp-floating-status{display:block;margin:6px 0;font-size:13px}
.camp-material-dialog.is-floating.is-floating-compact video{position:absolute;width:1px;height:1px;max-height:1px;clip-path:inset(50%);pointer-events:none}
.camp-floating-context{position:relative;box-sizing:border-box;min-width:0;width:100%;padding:10px 14px;border-bottom:1px solid #cdd7ce;background:#f3f5ee;color:#233b2b;flex-shrink:0}
.camp-floating-context p{margin:0;font-size:13px;line-height:1.5}
.camp-floating-context .camp-replay-actions{margin:6px 0 0;gap:6px}
@media(max-width:430px){.camp-material-dialog.is-floating{border-radius:0}.camp-material-dialog.is-floating .camp-replay-actions button,.camp-floating-context .camp-replay-actions button{font-size:14px;padding:7px 10px}}
#camp-form textarea {width:100%;box-sizing:border-box;font:inherit;min-height:100px;}
.camp-field {min-width:0;margin:12px 0;}
.camp-field label {display:block;line-height:1.6;overflow-wrap:anywhere;}
.camp-field .meta {margin:6px 0 10px;line-height:1.6;}
#camp-form details {padding:12px 0;border-bottom:1px solid #d8dfda;}
#camp-form summary {cursor:pointer;line-height:1.6;min-height:44px;overflow-wrap:anywhere;}
@media(max-width:600px){.camp-controls {display:grid;grid-template-columns:1fr;width:100%;}.camp-controls > button{width:100%;white-space:normal;}}
.camp-export-dialog{width:600px;max-width:calc(100vw - 24px);max-height:90dvh;box-sizing:border-box;padding:16px;border:1px solid #cdd7d0;border-radius:8px;color:#202c25;background:#fff}
.camp-export-dialog[open]{display:flex;flex-direction:column;overflow:hidden}
.camp-export-dialog::backdrop{background:#0006}
.camp-export-dialog header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;flex-shrink:0}
.camp-export-dialog h2{font-size:22px;margin:8px 0}
.camp-export-body{overflow:auto;min-height:0;padding-bottom:24px}
.camp-export-body fieldset{border:0;padding:0;margin:16px 0;min-width:0}
.camp-export-choice{display:flex;align-items:flex-start;gap:12px;padding:12px 0;line-height:1.6;cursor:pointer}
.camp-export-choice input{width:22px;height:22px;margin:2px 0;flex:0 0 22px}
.camp-export-choice span{min-width:0;overflow-wrap:anywhere}
.camp-export-text{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;line-height:1.7;background:#f3f7f4;padding:12px}
.camp-export-warning{border-left:3px solid #af7a21;padding:12px;background:#fff8e8}
.camp-export-body textarea,.camp-export-body input[type=text]{box-sizing:border-box;width:100%;font:inherit;padding:10px}
.camp-export-body img{display:block;width:100%;height:auto;margin:16px 0 12px}
.camp-export-body section{margin:20px 0}
.camp-export-body [hidden]{display:none}
.camp-reminder{padding:22px 0;border-top:2px solid #37654b;border-bottom:1px solid #cdd9d1;margin:20px 0 28px}
.camp-reminder h2{font-size:23px;line-height:1.5;margin:6px 0 12px}
.camp-reminder p{margin:8px 0;overflow-wrap:anywhere}
.camp-reminder .camp-encouragement{color:#315c42;font-weight:550}
.camp-reminder .camp-controls{margin-top:18px}
.camp-project{padding:18px 0;border-bottom:1px solid #d8dfda;min-width:0}
.camp-project p{margin:8px 0;overflow-wrap:anywhere}
.camp-project .secondary{margin-top:10px;min-height:44px}
@media(max-width:600px){.camp-project .secondary{width:100%}.camp-reminder h2{font-size:22px}}
#dialog-body [data-camp-status]:empty{display:none}
#dialog-body [data-material-load-status]:empty{display:none}
#camp-form details.camp-hint{padding:0;border:0}
#camp-form details.camp-hint summary{font-size:14px;color:#526357;min-height:36px;padding:5px 0}
#camp-form .camp-field label{margin-top:12px;margin-bottom:8px}
.monthly-visual{display:block;width:100%;max-width:560px;padding:0;text-align:left;background:#204b37;border:0;border-radius:4px;overflow:hidden;color:#fff;cursor:pointer}
.monthly-visual img{width:100%;height:auto;display:block}
.monthly-visual>span{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;padding:18px;line-height:1.6;min-width:0}
.monthly-visual strong{font-size:28px;font-weight:600;flex-shrink:0}.monthly-visual>span>span{font-size:14px;color:#f2eddc;overflow-wrap:anywhere}
.monthly-original{display:block;width:100%;height:auto;max-width:720px;margin:0 auto}
.monthly-section>.member-links{margin-top:16px}
.today-layout>.section,.direction-section{margin-top:28px}
.today-layout>.section>.section-head,.direction-section>.section-head{margin-bottom:14px}
.today-layout>.section>.section-head h2{margin:0}
.direction-section>.section-head h2{font-size:16px;font-weight:400;color:#617367;line-height:1.5}
.direction-body{display:flex;flex-direction:column;align-items:flex-start;gap:14px;min-width:0}
.direction-theme{margin:0;font-size:21px;font-weight:500;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere}
.direction-edit{font-size:15px;font-weight:400;padding:6px 0;min-height:44px;background:transparent;border:0;color:#315e44;text-align:left}
.today-layout>.section>.member-links{margin-top:14px}
.personal-section{margin:28px 0}
.personal-section h3{font-size:16px;font-weight:500;margin:0 0 14px;color:#56685d}
.personal-answer{white-space:pre-wrap;overflow-wrap:anywhere;font-size:20px;line-height:1.65;font-weight:400}
.space-help{margin-top:28px}
.space-content{display:grid;gap:16px}
.project-links{list-style:none;margin:0;padding:0}
.project-link{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;min-height:52px;padding:14px 0;background:transparent;border:0;border-bottom:1px solid #d8dfda;border-radius:0;text-align:left;color:#24513b;font-size:17px;font-weight:500;line-height:1.5;cursor:pointer}
.project-link span{min-width:0;overflow-wrap:anywhere}
.project-link svg{width:20px;height:20px;flex-shrink:0}
#dialog-body .camp-nearest .label{margin:0 0 2px}
.camp-export-body [data-export-output] section{margin:24px 0}
.camp-export-body [data-export-output] img{display:block;width:100%;height:auto;user-select:auto;-webkit-touch-callout:default}
.member-profile{display:flex;align-items:center;gap:20px;padding:20px 0 32px;margin:0 0 12px;color:#244635}
.member-profile>div{min-width:0}
.member-profile h2{font-size:28px;font-weight:600;margin:0 0 10px;overflow-wrap:anywhere}
.member-profile .text-button{padding:4px 0;font-size:14px;font-weight:400;text-align:left}
.member-avatar{display:block;width:88px;height:88px;flex:0 0 88px;border-radius:50%;object-fit:cover}
.avatar-initial{display:flex;align-items:center;justify-content:center;background:#244635;color:#faf7ee;font-size:34px;font-weight:400}
.member-profile-greeting{gap:14px;padding:8px 0 24px;margin:0}
.member-profile-greeting .member-avatar{width:48px;height:48px;flex-basis:48px;font-size:22px}
.member-profile-greeting h1{font-size:23px;font-weight:600;line-height:1.45;margin:0;overflow-wrap:anywhere}
.profile-editor{display:grid;gap:20px;padding-bottom:16px}
.profile-avatar-preview{display:flex;justify-content:center;padding-top:8px}
.profile-photo-actions{display:flex;justify-content:center;align-items:center;gap:16px;flex-wrap:wrap}
.photo-picker{position:relative;cursor:pointer;overflow:hidden;padding:10px 18px;text-align:center}
.photo-picker input{position:absolute;inset:0;opacity:0;width:100%;cursor:pointer}
.profile-crop{display:block;width:100%;max-width:280px;aspect-ratio:1;margin:12px auto;touch-action:none;background:#f7f4eb;border-radius:0}
.profile-zoom{display:flex;align-items:center;gap:12px;font-size:14px;font-weight:400}
.profile-zoom input{min-width:0;flex:1;accent-color:#244635}
.profile-name-label{display:grid;gap:10px;font-size:15px;font-weight:400}
.profile-name-label input{width:100%;min-width:0;font-size:18px;padding:12px;border:1px solid #d6ddd4;border-radius:6px;background:white}
.profile-editor [role=status]{margin:0;font-size:14px;line-height:1.5}
.profile-editor [role=status]:empty{display:none}
@media(max-width:380px){.member-profile{gap:16px}.member-profile h2{font-size:26px}.member-avatar{width:76px;height:76px;flex-basis:76px}}
.mine-brand-note{display:none}
body[data-page=mine] .mine-brand-note{display:block;font-size:11px;line-height:1.5;font-weight:400;color:#6b786d;margin-top:3px}
body[data-page=mine] .mobile-brand{padding:14px 0 12px}
body[data-page=mine] .mobile-thrive{gap:10px}
body[data-page=mine] .mobile-thrive .thrive-logo{width:42px;height:42px}
body[data-page=mine] .mobile-thrive .thrive-subtitle{font-size:15px;line-height:1.4}
body[data-page=mine] .member-profile{padding:14px 0 12px;margin:0;gap:20px}
body[data-page=mine] .member-profile+.section{margin-top:16px}
body[data-page=mine] .member-profile h2{font-size:28px;line-height:1.3;font-weight:600;margin:0 0 8px}
body[data-page=mine] .member-profile .text-button{min-height:44px;padding:8px 0;margin:0;font-size:14px;font-weight:400}
body[data-page=mine] .section{margin-top:24px}
body[data-page=mine] .section-head{margin-bottom:8px}
body[data-page=mine] .section-head h2{font-size:15px;font-weight:500;color:#68766c;line-height:1.5;margin:0}
.profile-links{display:grid}
.profile-link{display:flex;align-items:center;gap:14px;width:100%;min-height:56px;padding:14px 0;border:0;border-bottom:1px solid #e1e5dd;border-radius:0;background:transparent;color:#244635;text-align:left;font:inherit;cursor:pointer}
.profile-link span{flex:1;min-width:0;overflow-wrap:anywhere;font-size:16px;font-weight:400;line-height:1.5}
.profile-link svg{width:21px;height:21px;flex-shrink:0;stroke-width:1.6}
.profile-link svg:last-child{width:16px;height:16px;color:#819083}
.profile-link:hover{background:#eef1e9}
.profile-link:focus-visible{outline:2px solid #244635;outline-offset:3px}
body[data-page=mine] .membership{padding:12px 0}
body[data-page=mine] .project-link{min-height:56px;font-size:16px;font-weight:400}
body[data-page=mine] .profile-links .profile-link:last-child{border-bottom:0}

/* Cohort trail reuses protected records and the existing material viewer. */
.camp-trail{margin-top:28px}.camp-trail-item{padding:0 0 24px 18px;margin-left:3px;border-left:1px solid #d8ddce;position:relative}.camp-trail-item:before{content:'';position:absolute;left:-4px;top:7px;background:#71876a;width:7px;height:7px;border-radius:50%}.camp-trail-item h4{margin:8px 0;font-size:17px}.camp-trail-item>p:not(.meta){line-height:1.8;white-space:pre-line}.camp-trail-item>.secondary{border:0;background:transparent;padding:8px 0;width:auto}.camp-trail-event{margin:8px 0}.camp-record-read{white-space:pre-wrap;line-height:1.9;margin:20px 0}.trail-period{display:block;width:100%;text-align:left;border:0;border-top:1px solid #d9ddce;background:transparent;padding:24px 0;color:inherit;font:inherit}.trail-period-heading,.trail-period-bottom{display:flex;justify-content:space-between;gap:12px}.trail-period-heading strong{font-size:19px}.trail-period-heading small,.trail-dates{font-size:12px;color:#71806d}.trail-dates{display:block;margin:14px 0 20px}.trail-period-bottom{font-size:14px;color:#305c43}.trail-lead,.trail-eyebrow{color:#71806d}

/* Lightweight course support, below the personal experiment and action. */
.camp-xinfa{padding:16px 0 12px}.camp-xinfa h3{font-size:25px;line-height:1.5;margin:12px 0}.camp-xinfa p{line-height:1.85;margin:12px 0 22px}.camp-xinfa h4{margin:28px 0 10px;font-size:18px}.camp-xinfa .primary{width:100%;min-height:48px}.xinfa-duration{font-size:13px;font-weight:400;margin-left:8px}.camp-reading{max-width:680px;margin:auto;line-height:1.85}.camp-reading h3{font-size:25px;margin:8px 0 16px}.camp-reading details{border-bottom:1px solid var(--line,#d9ddd2);padding:18px 0}.camp-reading summary{font-size:18px;line-height:1.6;cursor:pointer}.camp-reading h4{font-size:16px;margin:24px 0 8px}.camp-reading p{font-size:16px;line-height:1.85;margin:8px 0 20px;overflow-wrap:anywhere}.camp-reading .meta{font-size:13px}.camp-reading-footer{margin-top:28px!important}.camp-reading-download{display:flex;flex-wrap:wrap;gap:12px;margin:12px 0}.camp-reading-download a,.camp-reading-download button{min-height:44px}
/* Personal camp companion: shared records, calm mobile hierarchy. */
.companion-home,.companion{color:#233e32;margin:24px 0;overflow-wrap:anywhere}
.companion-goal{border-left:2px solid #ac8d55;padding-left:14px;margin:24px 0 28px}
.companion-goal p{white-space:pre-wrap;margin:8px 0;font-size:17px;line-height:1.75}
.companion-goal .meta,.companion-action .meta{font-size:13px;color:#75806f;font-weight:400}
.companion-action{background:#eef1e6;border:1px solid #e4e8da;border-radius:18px;padding:22px 20px;margin:22px 0}
.plan-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}
.plan-heading .text-button{width:auto;min-height:44px}
#dialog-body .camp-plan-copy{font-size:16px;line-height:1.7;white-space:pre-wrap;overflow-wrap:anywhere;margin:10px 0;font-weight:400}
.camp-plan-copy:has(+[data-companion="toggle-plan"]):not(.expanded){display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.companion-row{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:52px;border:0;border-top:1px solid #e0e4d9;background:transparent;color:#35583f;text-align:left;padding:18px 0;font:inherit;cursor:pointer}
.companion-goal .companion-row{border:0;min-height:44px;font-size:14px;padding:8px 0}
.companion .primary,.companion-home .primary{display:block;width:100%;min-height:48px;margin-top:20px}
.companion-prompts{margin:24px 0}.companion-prompts p{margin:0 0 18px}.companion-prompts strong{font-size:17px;font-weight:600}.companion-prompts span{display:block;font-size:13px;color:#75806f;line-height:1.7;margin-top:4px}
.companion textarea{box-sizing:border-box;display:block;width:100%;font:inherit;font-size:16px;line-height:1.9;border:1px solid #dbe1d3;border-radius:12px;padding:16px;background:#fffef9;color:#2d4537;margin:10px 0;min-height:180px;resize:vertical}
.companion-text{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.9;margin:16px 0 24px}
.companion-week-record{border-left:1px solid #c4d0b8;padding:0 0 12px 16px;margin:20px 0}
.companion details{margin:24px 0}.companion details>summary{cursor:pointer;color:#63795e;font-size:14px}
.companion-badge{color:#60714e;font-size:13px}.companion h4{font-size:18px;font-weight:600;margin:0 0 10px}
.voice-panel{padding:18px 16px;background:#eef1e6;border-radius:14px;margin:12px 0 24px}.voice-panel audio{display:block;width:100%;margin:16px 0}.voice-panel .text-button{min-height:44px;margin-right:16px}.voice-panel textarea{background:#fffef9}.voice-panel label{display:block;font-weight:500;margin-top:18px}

.companion-followup{margin:24px 0}.companion input[type=text]{box-sizing:border-box;width:100%;font:inherit;font-size:16px;padding:14px;border:1px solid #dbe1d3;border-radius:12px;background:#fffef9;margin:10px 0 20px;color:#2d4537}#dialog-body .companion-confirm{display:flex;align-items:flex-start;gap:10px;min-height:48px;padding:12px 0;font-size:14px}#dialog-body .companion-confirm input{flex:none;width:20px;height:20px;margin:2px 0}.companion [hidden]{display:none!important}

#dialog-body [data-camp-support]{display:grid;grid-template-columns:minmax(0,1fr);gap:4px}
#dialog-body [data-camp-support] > .text-button{display:flex;align-items:center;justify-content:space-between;box-sizing:border-box;width:100%;min-height:48px;padding:10px 12px;margin:0;text-align:left;white-space:normal}
#dialog-body [data-camp-support] > .text-button::after{content:'';width:6px;height:6px;margin-right:3px;border-top:1px solid #71816e;border-right:1px solid #71816e;transform:rotate(45deg)}
#dialog-body [data-camp-support] > [role=status]:empty{display:none}

dialog.camp-story-chapter{box-sizing:border-box;width:min(32rem,94vw);max-height:84vh;max-height:84dvh;overflow-y:auto;overscroll-behavior:contain;padding:24px clamp(20px,6vw,32px);color:#293b32;background:#faf8f1}
dialog.camp-story-chapter h3,dialog.camp-story-chapter h4{font-family:"Songti SC",serif;color:#24473a;line-height:1.45}
dialog.camp-story-chapter h3{font-size:27px;margin:0 0 12px}
dialog.camp-story-chapter h4{font-size:21px;margin:28px 0 10px}
dialog.camp-story-chapter p{font-size:17px;line-height:1.95;margin:14px 0}
dialog.camp-story-chapter small{display:block;color:#686b5a}
dialog.camp-story-chapter button{margin-top:16px;min-height:44px}

[data-camp-support] dialog audio { width: 100%; margin-block: .5rem 1rem; }

#dialog-body [data-camp-support] > .camp-story-invitation { margin: 20px 12px 0; font-weight: 400; }

.camp-learning-dialog{max-width:540px;width:calc(100vw - 32px);box-sizing:border-box;max-height:88dvh;overflow:auto;padding:24px;}
.camp-learning-dialog h3{margin:0 0 16px;}
.camp-learning-dialog textarea{display:block;width:100%;box-sizing:border-box;font:inherit;line-height:1.7;margin:12px 0;min-height:220px;resize:vertical;}
.camp-learning-entry{margin:12px 0;}
.camp-learning-dialog p{overflow-wrap:anywhere;}

.weekly-photos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0}.weekly-photo>button:first-child{border:0;background:transparent;padding:0;width:100%;height:112px}.weekly-photo img{width:100%;height:100%;object-fit:contain}.weekly-photo-add{display:block;font-weight:400;margin:16px 0}.weekly-photo-add input{display:block;width:100%;margin-top:8px}.weekly-photo-large{width:min(94vw,900px);max-height:90dvh;padding:12px}.weekly-photo-large img{display:block;width:100%;height:auto;object-fit:contain}.weekly-photo-large button{position:sticky;top:0;display:block;margin-bottom:12px}

.camp-together{padding:12px 0 24px}.camp-together h3{margin:12px 0}.camp-together h4{margin:24px 0 12px}.together-tabs{display:flex;gap:24px;align-items:center;margin:20px 0}.together-post{padding:24px 0;border-bottom:1px solid #dce2da}.together-byline{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:baseline}.together-byline span{font-size:.85rem;color:#6b7770}.together-text{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.85;font-weight:400;margin:16px 0}.together-reactions,.together-own{display:flex;gap:16px;flex-wrap:wrap}.together-reactions [aria-pressed=true]{color:#194d39;background:#edf1df}.together-comment{padding:16px 0 16px 14px;border-left:2px solid #d9c797;margin:16px 0}.together-select{display:flex;align-items:flex-start;gap:12px;margin:18px 0}.together-select input{flex:0 0 auto;width:20px;margin-top:6px}.together-select span{display:block}.together-images{display:flex;gap:8px;flex-wrap:wrap}.together-images button{width:calc(33% - 6px);border:0;background:none;padding:0}.together-images img{width:100%;height:110px;object-fit:contain;background:#f6f3ea}.together-audience{color:#194d39;border-left:3px solid #b4965b;padding-left:12px}.camp-together textarea{width:100%;min-height:150px;line-height:1.8;font-size:1rem}.camp-together select{display:block;width:100%;min-height:44px;margin:8px 0 20px}.camp-together form>button{margin-top:16px}

.together-source-photo{max-width:160px;max-height:160px;object-fit:contain;display:block;margin-top:8px}


.together-entry-card{display:flex;flex-direction:column;gap:10px;width:100%;text-align:left;background:#f3f3e9;color:#214c3b;border:0;border-radius:12px;padding:18px;margin:24px 0;line-height:1.6}.together-entry-title{display:flex;justify-content:space-between;gap:12px;font-weight:600;font-size:1.05rem}.together-entry-card .meta{font-weight:400;margin:0}.together-save-invite{margin:16px 0 20px}.together-save-invite p{margin:0 0 8px}.together-save-invite button{min-height:44px}

.together-image-choice{min-width:0}.together-image-choice>button:first-child{padding:0;border:0;background:transparent;width:100%}.together-image-choice img{display:block;width:100%;height:130px;object-fit:contain;background:#f2f1e8}.together-add-image{display:block;position:relative;border:1px solid #b7c9bd;border-radius:8px;padding:12px 16px;text-align:center;color:#194c38;cursor:pointer}.together-add-image input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer}.together-images{grid-template-columns:repeat(auto-fit,minmax(90px,1fr))}

.together-share-dialog{box-sizing:border-box;width:min(440px,calc(100vw - 32px));padding:24px;background:#faf9f3;color:#234b3a;font-family:inherit;border:0;border-radius:12px}.together-share-dialog h3{margin:0 0 12px}.together-share-dialog p{font-size:14px;line-height:1.6;margin:8px 0}.together-share-dialog textarea{box-sizing:border-box;width:100%;font:inherit;font-size:15px;line-height:1.6;padding:12px;border:1px solid #d7ded3;border-radius:8px;margin:8px 0}.together-share-dialog button{margin:4px 0;min-height:44px}

/* Compact community actions; menu remains keyboard-accessible. */
.together-byline{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.together-byline>div>span{display:block}
.together-more{position:relative;margin:0}
.together-more summary{list-style:none;cursor:pointer;min-width:44px;min-height:44px;text-align:center;font-size:24px}
.together-more[open]>div{position:absolute;right:0;z-index:3;min-width:132px;padding:8px;background:#fffdf7;box-shadow:0 4px 20px #173f3020;border-radius:8px}
.together-more button{display:block;width:100%;text-align:left;min-height:44px}
.together-tools{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:20px 0}
.together-tools button{min-height:44px}
.together-tools [aria-pressed=true]{color:#8d713f}
.together-save-invite{margin-top:16px}
.together-tools>.meta{flex-basis:100%;order:2;font-size:.8rem}
.together-tabs{flex-wrap:wrap;gap:8px 16px}

/* Confirmed personal growth 2026-11-09 */
.camp-growth-response{display:flex;align-items:center;gap:16px;margin:20px 0 24px;padding:14px 12px;background:#eef2e7;border-radius:14px;color:#294c39}.growth-sprout{width:72px;height:72px;flex:0 0 72px}.camp-growth-response .meta{font-size:13px}.growth-value{display:flex;align-items:baseline;gap:9px;margin:4px 0!important}.growth-value strong{font-size:26px;font-weight:500}.growth-value span{font-size:13px}.camp-growth-response .text-button{min-height:40px;padding:4px 0;font-size:14px}.growth-leaf{transform-origin:37px 37px}.growth-celebrate .growth-leaf{animation:growth-unfurl 1.5s ease-out 1}.growth-celebrate [data-growth-plus]{color:#8b7544;animation:growth-plus 1.5s ease-out 1}.growth-response-toast{padding:10px 0;color:#34553c;font-size:15px;line-height:1.6}.growth-receipts{list-style:none;padding:0}.growth-receipts li{display:grid;grid-template-columns:1fr auto;gap:8px;padding:12px 0;border-bottom:1px solid #e0e5da}.growth-receipts small{color:#68756a}@keyframes growth-unfurl{0%{transform:rotate(-15deg) scale(.86)}65%{transform:rotate(3deg) scale(1.04)}100%{transform:none}}@keyframes growth-plus{0%{opacity:0;transform:translateY(8px)}25%{opacity:1}100%{opacity:0;transform:translateY(-12px)}}@media(prefers-reduced-motion:reduce){.growth-celebrate .growth-leaf,.growth-celebrate [data-growth-plus]{animation:none!important}}

.growth-confirm{display:flex!important;align-items:flex-start;gap:10px}.growth-confirm input{width:auto!important;flex:none;margin-top:5px}.camp-learning-dialog select,.camp-learning-dialog input[type=date]{width:100%;min-height:44px;margin:8px 0 16px}

/* Growth usability 2026-11-09 */
.growth-sheet{padding:0!important;overflow:hidden!important;max-height:calc(100dvh - 32px)!important;max-height:calc(100svh - 32px)!important}
.growth-sheet[open]{display:flex;flex-direction:column}.growth-sheet-head{flex:none;display:flex;align-items:center;gap:14px;padding:10px 18px;background:#fffef9;border-bottom:1px solid #e2e7df}.growth-sheet-head h3{margin:0!important;font-size:18px!important}.growth-sheet-head button{min-height:44px;flex:none}.growth-sheet-scroll{overflow-y:auto;overscroll-behavior:contain;min-height:0;padding:18px 22px 24px}.growth-sheet-scroll label{display:block}.growth-sheet-scroll input,.growth-sheet-scroll select{font:inherit;max-width:100%;box-sizing:border-box}
.growth-visible-feedback{position:fixed!important;top:12px;left:16px;right:16px;z-index:9999;display:flex;gap:12px;align-items:center;background:#f3f5e9;color:#234b37;border:1px solid #d9e2ce;box-shadow:0 3px 16px #203a2520;border-radius:12px;padding:12px 16px!important;pointer-events:none;max-width:480px;margin:0 auto!important;box-sizing:border-box}.growth-visible-feedback p{margin:0!important;font-size:15px!important;line-height:1.5}.growth-visible-feedback .growth-sprout{width:42px;height:42px;flex-basis:42px}.growth-visible-feedback strong{font-size:20px}.growth-visible-feedback [data-growth-plus]{animation:none!important}

.growth-sheet .growth-confirm .together-text{display:block;font-weight:400;font-size:15px;line-height:1.6}.growth-sheet textarea{font-weight:400!important}
