/* Shared reading and touch defaults, including modal secondary-button states. */
:root{--muted:#52645b;color-scheme:light;font-size:18px;font-family:'Noto Sans TC','PingFang TC','Microsoft JhengHei',sans-serif}
body{line-height:1.75}p{line-height:1.9}h1,h2,h3{overflow-wrap:break-word;text-wrap:pretty}h1{font-size:2.05rem;line-height:1.5;letter-spacing:0}h2{font-size:1.4rem}h3{font-size:1.12rem}
.intro p,.navigator-card>p,.step-card p,.article-card p,.course-body p,.stat-card p,.form-card>p,.coach-info p{font-size:1rem}.eyebrow,.pill,.category,.article-meta,.section-label,.question-meta,.date-label,.fine,.form-note,.field small{font-size:.78rem!important}.brand small{font-size:.72rem;letter-spacing:1px}.brand{font-size:1.16rem}.goal{font-size:1rem;padding:17px 8px;gap:11px;min-height:104px}.goal .icon{width:30px;height:30px}.goals{gap:12px}.goal.selected{background:#fff;border:2px solid #124c46;box-shadow:none;padding:16px 7px}
.button,.button.small,.answer,.field input,.field select,.field textarea,.filter{font-size:1rem;min-height:52px}.button{padding:14px 22px}.button.small{padding:11px 17px}.link{font-size:.9rem;min-height:44px;line-height:1.65;gap:10px}.text-size{border:1px solid #abbfb2;border-radius:8px;color:var(--ink);min-height:44px;font-size:.85rem}.text-size[aria-pressed=true]{background:var(--green);color:#fff}.text-size[aria-pressed=true] b{color:#fff}button:disabled{opacity:1;background:#e6ebe6!important;border-color:#cbd5cd!important;color:#68766c!important;box-shadow:none}.answer{line-height:1.7;padding:16px 18px}.answer.selected{font-weight:600}.search::placeholder,input::placeholder,textarea::placeholder{color:#5d6f64;opacity:1}.field label,.checkbox,.filters .filter{font-size:.94rem}.checkbox{align-items:flex-start}.checkbox input{width:24px;height:24px;min-height:24px;accent-color:var(--green)}
.article-body .button{color:#fff;text-decoration:none}.article-body .button.secondary,.article-body a.button.secondary,.article-body button.button.secondary{color:#124c46;background:#fff;border-color:#8ca898}.article-body .button.secondary:hover{color:#124c46;background:#e5efea}.article-body .link{color:#124c46}.article-body p,.article-body li{font-size:1rem;line-height:1.95;color:#344e42}.article-body .notice{font-size:.89rem}.article-body .fine{color:#455c50}.article-body h2{font-size:1.55rem}.article-body h3{font-size:1.15rem;margin-top:28px}.article-body ul{padding-left:24px}.article-body details{padding:14px 0;border-block:1px solid var(--line);margin:20px 0}.article-body summary{font-weight:600;cursor:pointer;padding:8px 0;min-height:44px}
dialog{padding:0;max-height:min(92dvh,940px);width:min(740px,calc(100% - 32px));background:#fff;color:#163b36;overflow:hidden;border-radius:16px}dialog[open]{display:flex;flex-direction:column}#dialog-body,#admin-dialog-body{overflow:auto;overscroll-behavior:contain;padding:10px 34px 34px;min-height:0;scrollbar-gutter:stable}.dialog-close{position:static;order:-1;align-self:flex-end;flex-shrink:0;display:flex;align-items:center;justify-content:center;gap:12px;width:auto;min-width:100px;height:48px;margin:12px 22px 4px;padding:8px 16px;border:1px solid #b4c6ba;border-radius:9px;background:#fff;color:#124c46;font-size:.95rem;font-weight:600}.dialog-close:hover{background:#e5efea}html:has(dialog[open]){overflow:hidden}.article-body .results-actions{margin-bottom:12px}.article-body .button{white-space:normal}
.trust-strip{font-size:.82rem;line-height:1.8;gap:20px;flex-wrap:wrap}.trust-strip span{font-size:.82rem}.section-head{align-items:center}.section-head h2{font-size:1.4rem}.step-card h3{font-size:1rem}.step-number{width:32px;height:32px;min-width:32px;font-size:.83rem}.article-card h3{font-size:1.14rem;min-height:0}.article-card{padding:26px}.knowledge-grid,.steps{gap:22px}.result-header h1{font-size:1.8rem}.result-header p{color:#ecf4ee}.result-contact p{font-size:.95rem;color:#345545}.priority h2{font-size:1.25rem}.priority .action-line{font-size:.94rem}.family-banner p{font-size:.95rem;color:#e0ece3}.coach-info p{color:#e1ede4}.coach-info .fine{color:#e1ede4}.field small{line-height:1.8}.cloud-note{line-height:1.8}.location-list a{font-size:.95rem;padding:12px 17px}.notice{font-size:.89rem;line-height:1.9}.form-note{line-height:1.8}.button.orange{background:#a83d20;border-color:#a83d20}
.video-hero{background:#edf2e9;padding:28px}.video-hero>h2{font-size:1.27rem}.public-video h3{font-size:1rem;line-height:1.7;margin-bottom:14px}.media-stage{position:relative;width:100%;max-width:320px;aspect-ratio:9/16;margin:0 auto 16px;background:#163b36;border-radius:12px;overflow:hidden}.media-stage video,.video-hero .media-stage video,.coach-video-entry .media-stage video{width:100%;height:100%;max-height:none;object-fit:contain;border-radius:0}.media-cover{position:absolute;inset:0;border:0;margin:0;padding:0;background:#163b36;color:#fff;display:flex;align-items:center;justify-content:center;flex-direction:column;width:100%;height:100%;cursor:pointer}.media-cover img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.media-cover .play-label{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);display:flex;align-items:center;justify-content:center;gap:10px;background:#fff;color:#124c46;border:1px solid #124c46;border-radius:30px;padding:11px 18px;white-space:nowrap;font-size:.94rem;font-weight:700;box-shadow:0 2px 10px #0003}.media-cover:focus-visible{outline:4px solid #efc967;outline-offset:-5px}.media-cover[hidden]{display:none}.media-cover .cover-title{padding:24px;font-size:1.2rem}.media-message{font-size:.88rem;color:#9f391f;line-height:1.8}.public-videos{gap:30px}.public-video>.fine{max-width:36ch;margin:12px auto 20px}.coach-video-entry{grid-template-columns:1fr 245px}.video-hero .media-stage{max-width:260px}.coach-video-entry .media-stage{max-width:225px}.cover-preview{width:100%;max-height:250px;object-fit:contain;background:#edf2e9;border-radius:8px;margin:12px 0}.cover-controls{padding:18px;background:#eef3eb;border-radius:9px;margin-bottom:18px}.cover-controls label{font-size:.9rem;display:block;font-weight:600;margin-bottom:9px}.cover-controls input{width:100%;font-size:.85rem}.cover-controls .button{margin-top:12px}.storage-health{display:flex;gap:15px;flex-wrap:wrap;padding:16px 20px;background:#edf3eb;border:1px solid #c2d2c5;border-radius:10px;font-size:.88rem;margin:20px 0}.storage-health span{padding-right:20px}.storage-health .failed{color:#a0351b}.admin-tabs button,.admin-header .link{font-size:.95rem}.table-top p,.detail-list{font-size:.88rem}.admin-videos .field label{font-size:.9rem}.video-manage-card .actions .button{font-size:.88rem}
.big-text{font-size:21px}.big-text h1{font-size:1.9rem}.big-text .brand{font-size:1rem}.big-text nav{font-size:.9rem}.big-text .button,.big-text .goal{font-size:1rem}.big-text .card-bottom{flex-wrap:wrap}.big-text .card-bottom .button{width:100%}.big-text .home-top{grid-template-columns:1fr 1fr}
@media(max-width:1100px){header{gap:18px}nav{gap:19px}.header-cta{display:none}.card-bottom{flex-wrap:wrap}.card-bottom .muted{font-size:.78rem}.big-text .home-top{grid-template-columns:1fr}.trust-strip span:last-child{display:flex}}
@media(max-width:760px){header{height:auto;min-height:88px;padding:17px 5%}.brand-mark{width:54px;height:50px}.brand small{font-size:.65rem}.page{padding:28px 5% 52px}h1{font-size:1.65rem;line-height:1.5}.intro p{font-size:.95rem}.navigator-card{padding:22px}.navigator-card h2{font-size:1.3rem}.goal{font-size:.95rem;min-height:102px;padding:16px 5px}.goal.selected{padding:15px 4px}.goals{gap:9px}.card-bottom{align-items:center;gap:14px}.card-bottom .button{width:100%;justify-content:space-between;padding-inline:20px}.card-bottom .muted br{display:none}.card-bottom .muted{width:100%;text-align:center}.section-label{letter-spacing:0}.section-head h2{font-size:1.25rem}.section-head .link{font-size:.83rem;white-space:nowrap}.steps,.knowledge-grid{gap:15px}.step-card{padding:22px;gap:14px}.step-card p{font-size:.94rem}.trust-strip{gap:12px 18px;padding:22px 0}.trust-strip span:last-child{display:none}.trust-strip .icon{flex-shrink:0}.video-hero{padding:24px}.video-hero .media-stage{max-width:285px}.coach-video-entry{grid-template-columns:1fr;padding:24px}.coach-video-entry .media-stage{max-width:285px}.public-video video{height:100%}.result-contact{padding:23px}.result-contact h2{font-size:1.25rem}.result-header{padding:25px}.result-header h1{font-size:1.6rem}.contact-buttons .button{font-size:1rem}.question-shell{padding:24px 20px}.question-shell h1{font-size:1.4rem}.answer{font-size:1rem;min-height:60px}.form-actions .button{padding:13px 17px;gap:12px}.article-card h3{font-size:1.17rem}.article-card p{font-size:.94rem}dialog{width:calc(100% - 20px);max-height:calc(100dvh - 24px);border-radius:14px}#dialog-body,#admin-dialog-body{padding:8px 22px 28px}.dialog-close{margin:10px 16px 6px;min-height:48px}.article-body h2{font-size:1.45rem}.article-body h3{font-size:1.15rem}.article-body p,.article-body li{font-size:1rem}.article-body .results-actions{gap:12px}.article-body .results-actions .button{width:100%}.detail-list{grid-template-columns:90px 1fr}nav{height:calc(72px + env(safe-area-inset-bottom));padding:0 8px env(safe-area-inset-bottom)}nav a{font-size:.88rem;min-width:52px;justify-content:center;flex:1;padding:0 4px}nav a.active:after{bottom:10px;width:30px;left:calc(50% - 15px)}footer{padding-bottom:calc(105px + env(safe-area-inset-bottom));font-size:.85rem}.fine{font-size:.78rem!important}.big-text .home-top{grid-template-columns:1fr}.big-text .goals{grid-template-columns:repeat(2,1fr)}.big-text nav a{font-size:.81rem}.big-text .brand small{font-size:.65rem}.upload-panel{padding:22px}.admin-tabs button{font-size:.86rem}.metric small{font-size:.8rem}.metric p{font-size:.78rem}.storage-health{font-size:.83rem}.admin-header #admin-user{font-size:.78rem}.admin-header .link{font-size:.83rem}}
@media(max-width:370px){.goals{grid-template-columns:repeat(2,1fr)}.section-head{flex-wrap:wrap}.brand small{display:none}.form-actions{flex-wrap:wrap}.form-actions .button{flex:1}.text-size{padding:8px}}
@media print{.result-contact,.media-stage,.dialog-close{display:none!important}}
/* Keep file controls inside their cards at tablet and desktop widths. */
.upload-panel form{grid-template-columns:repeat(2,minmax(0,1fr))}.upload-panel .field,.video-manage-card{min-width:0}.upload-panel .field:first-child{grid-column:1/-1}.upload-panel input,.cover-controls input{max-width:100%;min-width:0}.upload-panel form>.button{justify-self:start;grid-column:1/-1}@media(max-width:800px){.upload-panel form{grid-template-columns:minmax(0,1fr)}}
