.trainer-auth-panel{max-width:360px}.auth-panel{color:var(--text-primary);font-family:var(--font-family);gap:8px;display:grid}.home-auth-panel .auth-panel-actions{flex-wrap:nowrap;display:flex}.auth-panel-status,.auth-panel-note,.auth-panel-error,.auth-panel-warning{color:var(--text-secondary);font-size:calc(13px * var(--ui-font-scale,1));font-weight:var(--fw-bold,700);overflow-wrap:anywhere;margin:0;line-height:1.45}.auth-panel-error,.auth-panel-warning{color:var(--error)}.auth-sensitive-warning,.auth-dialog .auth-sensitive-warning{--auth-warning:var(--warning,var(--error));padding:clamp(12px, calc(12px * var(--ui-font-scale,1)), 20px) clamp(14px, calc(16px * var(--ui-font-scale,1)), 24px);border:2px solid var(--auth-warning);border-radius:var(--radius-s);background:color-mix(in srgb, var(--auth-warning) 14%, var(--bg-card));color:var(--text-primary);font-size:calc(16px * var(--ui-font-scale,1));font-weight:var(--ui-font-heading-weight,var(--fw-bold,700));overflow-wrap:anywhere;margin:12px 0;line-height:1.6}.auth-privacy-link{color:var(--accent);font-weight:var(--fw-bold,700);text-underline-offset:3px}.auth-panel-actions,.auth-dialog-actions,.auth-radio-row{flex-wrap:wrap;gap:8px;display:flex}.auth-button{min-height:40px;padding:calc(8px * var(--ui-font-scale,1)) calc(14px * var(--ui-font-scale,1));border:1px solid var(--border-hover);border-radius:var(--radius-s);background:var(--bg-card);color:var(--text-primary);cursor:pointer;font:inherit;font-size:calc(13px * var(--ui-font-scale,1));font-weight:var(--fw-bold,700);justify-content:center;align-items:center;gap:8px;line-height:1.25;transition:background-color .18s,border-color .18s,color .18s,box-shadow .18s;display:inline-flex}.auth-button-primary{border-color:var(--accent-dark);background:var(--accent-dark);color:var(--text-on-accent)}.auth-button-secondary{background:var(--bg-card);color:var(--accent-dark)}.auth-button-primary:hover:not(:disabled){border-color:var(--accent-hover,var(--accent-dark));background:var(--accent-hover,var(--accent-dark))}.auth-button-secondary:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 8%, transparent)}.auth-button:disabled{cursor:not-allowed;opacity:.55}.auth-button:active{transform:none}.auth-button:focus-visible,.auth-provider-button:focus-visible,.auth-link-button:focus-visible,.auth-dialog input:focus-visible,.auth-dialog select:focus-visible{outline:3px solid color-mix(in srgb, var(--accent) 50%, white);outline-offset:2px}.auth-dialog-backdrop{z-index:1000;background:var(--bg-overlay,#0f172a94);place-items:center;padding-block:clamp(20px,4vh,40px);padding-inline:clamp(24px,5vw,56px);display:grid;position:fixed;inset:0}.auth-dialog{width:min(calc(680px * var(--ui-font-scale,1)), 100%);max-height:min(90vh, calc(920px * var(--ui-font-scale,1)));padding:clamp(24px, calc(28px * var(--ui-font-scale,1)), 44px);border:1px solid var(--border);border-radius:var(--radius-l);background:var(--bg-card);box-shadow:var(--shadow-floating);font-size:var(--ui-font-size,1rem);overflow:auto}.auth-profile-dialog{width:min(calc(860px * var(--ui-font-scale,1)), 100%)}.auth-account-dialog{width:min(calc(480px * var(--ui-font-scale,1)), 100%)}.auth-dialog h2{color:var(--text-primary);margin:0 0 12px}.auth-section-heading{color:var(--text-primary);font-size:calc(18px * var(--ui-font-scale,1));margin:22px 0 0}.auth-dialog p,.auth-dialog li{color:var(--text-secondary);font-weight:var(--fw-bold,700);line-height:1.65}.auth-dialog ul{margin:10px 0 12px;padding-inline-start:0;list-style-position:inside}.auth-dialog li{padding-inline-start:0}.auth-checkbox-row,.auth-radio-row label,.auth-profile-grid label,.auth-account-form label{color:var(--text-primary);font-weight:var(--fw-bold,700);gap:6px;display:grid}.auth-checkbox-row,.auth-radio-row label{grid-template-columns:auto minmax(0,1fr);align-items:start}.auth-dialog input,.auth-dialog select{border:1px solid var(--border-hover);border-radius:var(--radius-s);background:var(--bg-card);width:100%;min-height:44px;color:var(--text-primary);font:inherit;font-weight:var(--fw-bold,700);padding:10px 12px}.auth-dialog input[type=checkbox],.auth-dialog input[type=radio]{width:20px;min-height:20px;accent-color:var(--accent);margin-top:3px}.auth-profile-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:20px 0;display:grid}.auth-frequency-grid{grid-template-columns:repeat(3,minmax(120px,1fr));margin-bottom:0}.auth-account-form{gap:16px;margin-top:20px;display:grid}.turnstile-widget{place-items:center;width:100%;max-width:100%;display:grid;overflow-x:auto}.auth-provider-button{width:100%;min-height:44px;padding:calc(10px * var(--ui-font-scale,1)) calc(14px * var(--ui-font-scale,1));border:1px solid var(--border-hover);border-radius:var(--radius-s);background:var(--bg-card);color:var(--text-primary);cursor:pointer;font:inherit;font-weight:var(--fw-bold,700);justify-content:center;align-items:center;gap:10px;transition:background-color .18s,border-color .18s,color .18s,box-shadow .18s;display:inline-flex}.auth-provider-button:hover{background:color-mix(in srgb, var(--accent) 8%, transparent)}.auth-provider-button:disabled{cursor:not-allowed;opacity:.55}.auth-provider-mark{object-fit:contain;border-radius:50%;flex:none;width:22px;height:22px}.auth-divider{color:var(--text-muted,var(--text-secondary));font-size:calc(13px * var(--ui-font-scale,1));font-weight:var(--fw-regular,500);grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;display:grid}.auth-divider:before,.auth-divider:after{content:"";background:var(--border);height:1px}.auth-account-form .auth-dialog-actions{gap:8px;margin-top:8px;display:grid}.auth-account-form .auth-button-primary{width:100%;min-height:44px}.auth-switch-line{text-align:center;margin:10px 0 0}.auth-link-button{color:var(--accent-dark);cursor:pointer;font:inherit;font-weight:var(--fw-bold,700);text-underline-offset:3px;background:0 0;border:0;padding:0;text-decoration:underline;display:inline}.auth-cancel-link{color:var(--text-muted,var(--text-secondary));justify-self:center;margin-top:8px}.auth-dialog>.auth-panel+.auth-dialog-actions{margin-top:14px}.auth-fieldset{border:1px solid var(--border);border-radius:var(--radius-s);gap:10px;margin:18px 0;padding:18px;display:grid}.auth-fieldset legend{color:var(--accent);font-weight:var(--fw-bold,700);padding:0 8px}@media (max-width:780px){.trainer-auth-panel,.auth-panel-actions{width:100%}.auth-profile-grid,.auth-frequency-grid{grid-template-columns:1fr}.auth-dialog{padding:clamp(22px, calc(24px * var(--ui-font-scale,1)), 34px)}}@media (forced-colors:active){.auth-sensitive-warning,.auth-dialog .auth-sensitive-warning{--auth-warning:CanvasText;color:canvastext;background:canvas}}
.install-app-page{width:min(1180px,100% - 40px);color:var(--text-primary,var(--text,#202428));margin:0 auto;padding:48px 0 64px}.install-app-hero{max-width:760px;margin-bottom:32px}.install-app-kicker{color:var(--accent,var(--primary,#146c5b));letter-spacing:.08em;text-transform:uppercase;margin:0 0 6px;font-size:.82rem;font-weight:800}.install-app-hero h1{margin-bottom:10px}.install-app-button{border-radius:var(--radius-m,var(--radius,8px));background:var(--accent,var(--primary,#146c5b));min-height:46px;color:var(--text-on-accent,#fff);font:inherit;cursor:pointer;border:0;margin-top:10px;padding:10px 20px;font-weight:750}.install-app-button:disabled{opacity:.58;cursor:default}.install-app-status{min-height:1.5em;color:var(--text-secondary,var(--text-muted,#606970));margin:10px 0 0}.install-guide-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.install-guide-card{border:1px solid var(--border,#d4d9de);border-radius:var(--radius-l,var(--radius,8px));background:var(--bg-card,var(--surface,#fff));box-shadow:var(--shadow-card,var(--shadow-sm,0 1px 2px #14212b14));padding:24px}.install-guide-card h2{margin-bottom:14px}.install-guide-card li+li{margin-top:8px}.install-guide-card img{border:1px solid var(--border,#d4d9de);border-radius:var(--radius-m,var(--radius,8px));object-fit:contain;width:100%;height:auto;max-height:360px;margin:20px 0 12px}.install-guide-note{color:var(--text-secondary,var(--text-muted,#606970))}.install-guide-source{color:var(--accent,var(--primary,#146c5b));margin-top:10px;font-size:.84rem;font-weight:700;display:block}.install-attribution{border-left:4px solid var(--accent,var(--primary,#146c5b));background:var(--bg-panel,var(--surface-muted,#eef1f4));color:var(--text-secondary,var(--text-muted,#606970));margin-top:24px;padding:16px 18px;font-size:.82rem}.install-attribution a{color:var(--accent,var(--primary,#146c5b))}@media (max-width:760px){.install-app-page{width:min(100% - 24px,1180px);padding:24px 0 36px}.install-guide-grid{grid-template-columns:1fr}.install-guide-card{padding:18px}}
:root{--tt-surface:#fff;--tt-text:#202428;--tt-muted:#4e565f;--tt-accent:#146c5b;--tt-accent-hover:#0d5547;--tt-accent-bg:#e1f1ec;--tt-border:#ccd2d8;--tt-radius:10px;--tt-mask:#14181c8c;--tt-halo:#ffffffe6}#ttBlock,#ttSpot,#ttTip{display:none}#ttBlock.show{background:0 0;display:block;position:fixed;inset:0}#ttSpot.show{pointer-events:auto;box-shadow:0 0 0 200vmax var(--tt-mask);border:2px solid var(--tt-accent);border-radius:var(--tt-radius);outline:1px solid var(--tt-halo);outline-offset:0;transition:top .3s,left .3s,width .3s,height .3s,border-radius .3s;display:block;position:fixed}#ttSpot.tt-mask-off{box-shadow:none}#ttSpot.tt-ring-off{border-color:#0000;outline-color:#0000}#ttSpot.no-anim{transition:none!important}#ttTip.show{background:var(--tt-surface);color:var(--tt-text);border:2px solid var(--tt-border);border-radius:var(--tt-radius);width:max-content;max-width:min(480px,100vw - 24px);font-family:var(--font-body,"Noto Sans TC", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif);box-sizing:border-box;padding:1.4rem 1.6rem 1.25rem;font-size:19px;line-height:1.6;display:block;position:fixed;box-shadow:0 10px 32px #14212b29}#ttTip:before{content:"";background:var(--tt-surface);width:14px;height:14px;display:none;position:absolute;transform:rotate(45deg)}#ttTip.tip-right:before{left:-8px;top:var(--tt-arrow-off,24px);border-left:2px solid var(--tt-border);border-bottom:2px solid var(--tt-border);display:block}#ttTip.tip-left:before{right:-8px;top:var(--tt-arrow-off,24px);border-right:2px solid var(--tt-border);border-top:2px solid var(--tt-border);display:block}#ttTip.tip-bottom:before{top:-8px;left:var(--tt-arrow-off,24px);border-left:2px solid var(--tt-border);border-top:2px solid var(--tt-border);display:block}#ttTip.tip-top:before{bottom:-8px;left:var(--tt-arrow-off,24px);border-right:2px solid var(--tt-border);border-bottom:2px solid var(--tt-border);display:block}.tt-head{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.75rem;display:flex}.tt-ico{color:var(--tt-accent);justify-content:center;align-items:center;line-height:1;display:inline-flex}.tt-ico .material-symbols-outlined{width:32px;height:32px;font-size:32px}.tt-count{background:var(--tt-accent-bg);color:var(--tt-accent);letter-spacing:.02em;border-radius:999px;padding:.25rem .85rem;font-size:16px;font-weight:800}.tt-title{color:var(--tt-text);margin:0 0 .6rem;font-size:24px;font-weight:800;line-height:1.35}.tt-body{color:var(--tt-text);font-size:19px;font-weight:500;line-height:1.7}.tt-foot{gap:.75rem;margin-top:1.25rem;display:flex}.tt-btn{border:2px solid var(--tt-border);background:var(--tt-surface);color:var(--tt-text);border-radius:var(--tt-radius);cursor:pointer;flex:1;min-height:52px;padding:.75rem 1.2rem;font-size:18px;font-weight:700;line-height:1.4;transition:background-color .15s,border-color .15s,color .15s}.tt-btn:hover,.tt-btn:focus-visible{border-color:var(--tt-accent);color:var(--tt-accent);background:var(--tt-accent-bg)}.tt-btn-primary{background:var(--tt-accent);border-color:var(--tt-accent);color:#fff}.tt-btn-primary:hover,.tt-btn-primary:focus-visible{background:var(--tt-accent-hover);border-color:var(--tt-accent-hover);color:#fff}.tt-skip{width:100%;color:var(--tt-muted);cursor:pointer;text-underline-offset:4px;background:0 0;border:none;margin-top:.75rem;padding:.5rem;font-size:16px;font-weight:600;text-decoration:underline;display:block}.tt-skip:hover,.tt-skip:focus-visible{color:var(--tt-text)}@media (prefers-reduced-motion:reduce){#ttSpot.show,#ttTip.show{transition:none!important}}
