/* Public league and reusable, printable activity tools. */
.league-home{padding:100px 0;background:#f5f3e9;color:#173e32}.league-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:38px}.league-heading h2{font-size:43px;margin-top:15px}.league-heading>p{font-size:14px;line-height:1.9;color:#576856}.milestone-card{background:#dced8d;border:1px solid #cfdf87;border-radius:20px;display:grid;grid-template-columns:1.1fr 1fr;overflow:hidden;position:relative}.milestone-copy{padding:46px 48px;z-index:1}.league-pill{display:inline-block;border:1px solid #69834170;border-radius:100px;font-size:11px;padding:5px 13px;font-weight:600}.milestone-copy h3{font-size:29px;line-height:1.4;margin-top:24px}.milestone-copy h3 strong{font-size:76px;line-height:1.4;font-variant-numeric:tabular-nums;letter-spacing:-.065em}.milestone-copy h3>span{font-size:26px;margin-left:5px}.milestone-copy>p{font-size:14px;line-height:1.9;margin-top:10px;color:#365438}.milestone-progress{height:9px;border-radius:20px;background:#6b83332b;margin-top:25px;overflow:hidden}.milestone-progress i{display:block;height:100%;background:#285a38;border-radius:20px;transition:width 1.2s ease}.milestone-copy .milestone-caption{font-size:10px;margin-top:9px}.milestone-art{position:relative;min-height:380px;display:grid;place-items:center;overflow:hidden}.trophy-number{position:relative;font-size:140px;line-height:1;font-weight:900;letter-spacing:-.1em;color:#1c452f;z-index:1;transform:rotate(-8deg);text-align:center}.trophy-number span{display:block;font-size:15px;line-height:1.5;font-weight:500;letter-spacing:-.04em;margin-top:22px;transform:rotate(8deg)}.milestone-ring{width:300px;height:300px;border:1px solid #50743755;border-radius:50%;position:absolute;transform:rotate(20deg);animation:leagueOrbit 35s linear infinite}.ring-two{width:420px;height:420px;border-style:dashed;animation-direction:reverse}.number-orbit{position:absolute;z-index:2;width:62px;height:62px;border-radius:18px;background:#f4f7d3;display:grid;place-items:center;font-size:23px;font-weight:700;box-shadow:0 8px 30px #526d1710;animation:leagueFloat 5s ease-in-out infinite}.orbit-one{top:56px;left:60px;transform:rotate(-12deg)}.orbit-two{right:65px;top:95px;background:#214e36;color:#dced8d;animation-delay:-2s}.orbit-three{bottom:46px;right:130px;animation-delay:-3.5s}.league-records{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:20px}.league-records article{background:#fffef7;border:1px solid #daddca;border-radius:14px;padding:29px}.league-record-tag{font-size:11px;background:#e6eccc;border-radius:5px;padding:5px 9px}.league-records article>strong{display:block;margin-top:23px;font-size:47px;letter-spacing:-.055em;line-height:1.3;font-variant-numeric:tabular-nums}.league-records small{font-size:13px;margin-left:7px;font-weight:500;letter-spacing:-.03em}.league-records h3{font-size:18px;margin-top:13px}.league-records p{font-size:12px;color:#62715a;line-height:1.8;margin-top:10px}.challenge-invite{display:grid;grid-template-columns:1.2fr 1fr;gap:60px;padding:44px 0 15px;align-items:center}.challenge-invite h3{font-size:28px;margin-top:15px}.challenge-invite p:not(.eyebrow){font-size:14px;margin:18px 0 22px;line-height:1.9;color:#576856}.challenge-invite small{display:block;font-size:10px;color:#748166;margin-top:12px}.check-preview{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;transform:rotate(-3deg);padding:20px}.check-preview span{aspect-ratio:1;display:grid;place-items:center;border:1px solid #b6c39f;border-radius:12px;background:#fdfdf4;color:#8d9c79;font-size:21px;font-weight:600}.check-preview .done{background:#254f36;color:#dced8d;border-color:#254f36}.check-preview .preview-goal{background:#dced8d;font-size:17px;line-height:1.2;color:#254f36}.league-footnote{font-size:10px;color:#6b795e;margin-top:25px}.admin-insight-link{display:block;font-size:13px;font-weight:600;margin-top:18px;text-decoration:underline;text-underline-offset:4px}.sports-home{padding:85px 0;background:#fdfcf7}.sports-home-grid{display:grid;grid-template-columns:1fr 1fr;gap:65px;align-items:center}.sports-home-photo{position:relative}.sports-home-photo img{width:100%;height:450px;object-fit:cover;border-radius:18px}.sports-home-photo span{position:absolute;left:23px;bottom:23px;background:#f8f9ed;color:#274a32;padding:12px 18px;border-radius:6px;font-size:12px}.sports-home-copy h2{font-size:40px;margin-top:14px}.sports-home-copy>p:not(.eyebrow){color:#5e6b56;font-size:14px;line-height:1.9;margin:20px 0}.sport-tags{display:flex;flex-wrap:wrap;gap:7px;margin:24px 0}.sport-tags span{padding:6px 11px;background:#edf0df;border-radius:100px;font-size:11px}.sports-home-copy .text-button{display:flex;margin-top:18px}.league-home.motion-paused *{animation:none!important;transition:none!important}
@keyframes leagueOrbit{to{transform:rotate(380deg)}}@keyframes leagueFloat{0%,100%{translate:0 0}50%{translate:0 -10px}}
.league-app{margin:0;background:#f7f8f1;color:#183d32;font:15px/1.7 system-ui,-apple-system,'Noto Sans KR',sans-serif;word-break:keep-all}.league-app *{box-sizing:border-box}.league-app a{color:inherit;text-decoration:none}.league-app button,.league-app input,.league-app select{font:inherit}.league-app button{cursor:pointer}.league-app h1,.league-app h2,.league-app h3,.league-app p{margin:0}.league-app h1,.league-app h2,.league-app h3{line-height:1.3;letter-spacing:-.05em}.league-app button:focus-visible,.league-app a:focus-visible,.league-app input:focus-visible,.league-app select:focus-visible{outline:3px solid #a87a27;outline-offset:4px}.app-header{display:flex;justify-content:space-between;gap:22px;align-items:center;padding:22px max(24px,calc((100% - 1200px)/2));border-bottom:1px solid #dce2d2;background:#fffef8}.app-header>a{font-size:23px;font-weight:800;white-space:nowrap}.app-header nav{display:flex;flex-wrap:wrap;gap:22px;font-size:12px}.app-wrap{max-width:1200px;width:calc(100% - 48px);margin:0 auto;padding:55px 0 70px}.app-heading{margin-bottom:35px}.kicker{font-size:11px;font-weight:700;letter-spacing:.12em;color:#6b8453}.app-heading h1{font-size:40px;margin:14px 0 18px}.app-heading>p:last-child{font-size:14px;color:#61705a}.report-filters,.challenge-controls{display:flex;flex-wrap:wrap;align-items:flex-end;gap:14px;padding:24px;background:#e9eedb;border-radius:13px}.report-filters label,.challenge-controls label{display:flex;flex-direction:column;gap:5px;font-size:11px;font-weight:600}.league-app select,.league-app input{border:1px solid #bfceb0;background:white;padding:10px 12px;border-radius:6px;color:#183d32;min-height:44px;max-width:100%}.app-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:44px;padding:11px 18px;border:1px solid #234b32;border-radius:7px;color:#fff!important;background:#234b32;font-size:12px;font-weight:600}.app-button.light{color:#234b32!important;background:#fffef6;border-color:#bdc9ac}.app-button.text{color:#627358!important;background:transparent;border-color:transparent}.report-meta{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;margin:30px 0 13px;font-size:12px}.report-meta span{color:#768068;font-size:11px}.report-table-scroll,.heat-scroll{overflow-x:auto;border:1px solid #dce3d1;border-radius:10px;background:#fff}.report-table{border-collapse:collapse;width:100%;font-size:12px;text-align:left}.report-table caption,.heat-table caption{padding:14px;text-align:left;font-size:11px;color:#67765c}.report-table th{background:#e8eddf;color:#365333;font-size:11px;white-space:nowrap}.report-table th,.report-table td{padding:14px 12px;border-bottom:1px solid #e7ebdf}.report-table td{vertical-align:middle}.report-table td:not(:nth-child(2)){white-space:nowrap}.report-table td small{display:block;font-size:10px;color:#778269;margin-top:3px;white-space:normal}.report-table td strong{font-weight:600}.report-table tbody tr:hover{background:#f5f8ed}.rank-medal{display:inline-grid;place-items:center;border-radius:6px;min-width:28px;height:28px;background:#edf1e2;color:#637b4c;font-size:11px}.report-table tbody tr:nth-child(-n+3) .rank-medal{background:#d8ed99;color:#284c2c}.detail-link{font-size:11px;text-decoration:underline!important;text-underline-offset:4px}.report-note{font-size:11px;line-height:1.9;color:#6d7b61;margin:14px 0!important}.org-detail{margin-top:55px;padding-top:35px;border-top:2px solid #bccca7;scroll-margin-top:25px}.org-detail h2{font-size:28px;margin-top:12px}.org-detail h3{font-size:19px;margin-top:30px}.heat-table{width:100%;border-spacing:3px;font-size:10px;min-width:800px}.heat-table th{font-weight:500;color:#768468}.heat-cell{border:0;border-radius:3px;width:100%;min-width:26px;height:34px;font-size:9px!important;padding:0;color:#415b39;background:#f0f3e8}.heat-cell.level-1{background:#d9e9ba}.heat-cell.level-2{background:#aacc83}.heat-cell.level-3{background:#699755;color:#fff}.heat-cell.level-4{background:#244e32;color:#fff}.detail-columns{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:20px}.detail-columns section{min-width:0;overflow-x:auto}.compact td,.compact th{padding:12px 9px}.report-method{background:#e9eedd;border-radius:10px;padding:24px;margin-top:35px}.report-method h3{font-size:16px}.report-method p{font-size:11px;line-height:1.9;color:#66765c;margin-top:10px}.challenge-wrap{max-width:1000px}.challenge-controls label:first-child{flex:1;min-width:190px}.challenge-notice{font-size:11px;color:#738364;margin:15px 0 26px!important}.challenge-sheet{background:white;border:1px solid #d6dfc7;border-radius:15px;padding:36px;box-shadow:0 10px 45px #314f2106}.sheet-top{display:flex;justify-content:space-between;gap:25px;align-items:center}.sheet-top h2{font-size:29px;margin-top:12px;overflow-wrap:anywhere}.sheet-top>div>p:last-child{font-size:12px;color:#78886b;margin-top:9px}.sheet-score{text-align:right;white-space:nowrap}.sheet-score>strong{font-size:64px;line-height:1;letter-spacing:-.07em;font-variant-numeric:tabular-nums}.sheet-score>span{font-size:20px;margin-left:8px;color:#81916a}.sheet-score small{display:block;font-size:10px;color:#81916a}.sheet-progress{height:8px;border-radius:8px;background:#eef2e4;overflow:hidden;margin-top:28px}.sheet-progress i{display:block;width:0;height:100%;background:#3c713e;transition:width .4s ease}.sheet-summary{display:flex;justify-content:space-between;gap:15px;font-size:12px;color:#6c8158;margin:12px 0 24px}.challenge-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}.challenge-day{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:110px;border:1px solid #d7e0c6;border-radius:10px;background:#f8faf3;color:#91a279;transition:background .2s,transform .2s}.challenge-day strong{font-size:27px;line-height:1.2;font-weight:600}.challenge-day small{font-size:10px}.day-check{font-size:16px;line-height:1.2}.challenge-day.checked{background:#254f36;color:#e1f5ae;border-color:#254f36;transform:translateY(-2px)}.sheet-bottom{display:flex;justify-content:space-between;gap:15px;font-size:10px;color:#869476;margin-top:25px}.challenge-sheet.complete{border-color:#85ae4c;background:#fbfdee}.challenge-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:25px}.storage-status{font-size:11px;color:#6d7f5d;margin-top:14px!important}.challenge-tips{display:grid;grid-template-columns:repeat(3,1fr);gap:25px;margin-top:50px}.challenge-tips article{border-top:1px solid #bacba5;padding-top:18px}.challenge-tips span{font-size:12px;color:#879877}.challenge-tips h3{font-size:17px;margin:10px 0}.challenge-tips p{font-size:12px;color:#70835e;line-height:1.9}
@media(max-width:800px){.league-home{padding:65px 0}.league-heading{display:block}.league-heading h2{font-size:34px}.league-heading>p{font-size:13px;margin-top:18px}.milestone-card{grid-template-columns:1fr}.milestone-copy{padding:30px}.milestone-copy h3{font-size:24px}.milestone-copy h3 strong{font-size:64px}.milestone-copy>p{font-size:13px}.milestone-art{min-height:260px}.trophy-number{font-size:105px}.milestone-ring{width:200px;height:200px}.ring-two{width:300px;height:300px}.number-orbit{height:48px;width:48px;font-size:18px;border-radius:13px}.orbit-one{top:24px;left:45px}.orbit-two{right:45px;top:42px}.orbit-three{bottom:25px;right:85px}.league-records{grid-template-columns:1fr;gap:12px}.league-records article{display:grid;grid-template-columns:1fr 1fr;padding:23px;gap:10px 15px;align-items:center}.league-records article>strong{grid-column:2;grid-row:1/4;margin-top:0;text-align:right;font-size:43px}.league-records small{display:block;font-size:11px}.league-record-tag{justify-self:start;font-size:10px}.league-records h3{font-size:16px;margin:0}.league-records p{font-size:11px;margin:0}.challenge-invite{grid-template-columns:1fr;gap:20px;padding-top:35px}.challenge-invite h3{font-size:24px}.challenge-invite p:not(.eyebrow){font-size:13px}.check-preview{padding:18px 8px}.check-preview span{font-size:17px}.league-footnote{font-size:9px}.sports-home{padding:60px 0}.sports-home-grid{grid-template-columns:1fr;gap:30px}.sports-home-photo img{height:310px}.sports-home-copy h2{font-size:34px}.sports-home-copy>p:not(.eyebrow){font-size:13px}.app-header{padding:18px 20px;gap:15px}.app-header nav{gap:12px;font-size:10px}.app-wrap{width:calc(100% - 36px);padding-top:35px}.app-heading h1{font-size:29px}.app-heading>p:last-child{font-size:12px}.report-filters,.challenge-controls{padding:18px;gap:12px}.report-table{font-size:11px}.report-table-scroll .report-table{min-width:800px}.detail-columns{grid-template-columns:1fr}.challenge-controls label{flex:1}.challenge-controls .app-button{width:100%}.challenge-sheet{padding:23px 18px}.sheet-top{gap:15px;align-items:flex-start}.sheet-top h2{font-size:22px}.sheet-score>strong{font-size:47px}.sheet-score>span{font-size:14px}.sheet-top .kicker{font-size:8px}.sheet-top>div>p:last-child{font-size:10px}.challenge-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.challenge-day{min-height:96px}.challenge-day strong{font-size:24px}.sheet-summary{font-size:10px}.sheet-bottom{font-size:8px}.challenge-tips{grid-template-columns:1fr;gap:22px}.challenge-actions{gap:9px}.challenge-actions .app-button{font-size:11px;padding:10px 13px}.org-detail h2{font-size:25px}.league-app .detail-columns .report-table{font-size:10px}}
@media(prefers-reduced-motion:reduce){.league-home *,.league-app *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@page{size:A4;margin:14mm}
@media print{.league-app{background:white;color:black;font-size:10px}.app-header,.report-filters,.challenge-controls,.challenge-notice,.challenge-actions,.challenge-tips,.storage-status,.report-method,.detail-link{display:none!important}.app-wrap{width:100%;padding:0;margin:0;max-width:none}.challenge-app .app-heading{display:none}.challenge-sheet{padding:14px;border:1px solid #777;box-shadow:none;border-radius:0;print-color-adjust:exact;-webkit-print-color-adjust:exact}.sheet-top h2{font-size:24px}.sheet-score>strong{font-size:42px}.challenge-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}.challenge-day{min-height:78px;border:1px solid #aaa}.challenge-day.checked{background:#dce8c6;color:#173e32;transform:none}.challenge-day strong{font-size:22px}.sheet-bottom{font-size:9px}.challenge-sheet{break-inside:avoid}.report-table-scroll,.heat-scroll,.detail-columns section{overflow:visible!important;border:0}.report-table-scroll .report-table,.heat-table{min-width:0!important;width:100%}.report-table{font-size:8px}.report-table th,.report-table td{padding:6px 4px;white-space:normal!important}.report-table thead{display:table-header-group}.report-table tr{break-inside:avoid}.report-table td small{font-size:7px}.app-heading h1{font-size:23px}.app-heading{margin-bottom:15px}.report-note{font-size:8px}.detail-columns{display:block}.org-detail{break-before:page}.heat-cell{min-width:0;height:22px;font-size:6px!important;print-color-adjust:exact;-webkit-print-color-adjust:exact}.heat-table{border-spacing:1px;font-size:7px}.heat-table caption{font-size:8px}.rank-medal{font-size:8px;min-width:18px;height:18px}.sheet-progress{print-color-adjust:exact;-webkit-print-color-adjust:exact}.org-detail h3{font-size:16px}.compact{font-size:9px}}
.guide-hero{display:grid;grid-template-columns:1.1fr 1fr;gap:45px;align-items:center}.guide-hero .app-heading{margin:0}.guide-hero .app-heading h1{font-size:39px}.guide-hero .app-heading>p{line-height:1.9}.guide-hero .app-button{margin-top:24px;margin-right:7px}.guide-hero img{width:100%;height:370px;object-fit:cover;border-radius:17px}.guide-toc{display:flex;gap:12px;flex-wrap:wrap;margin:35px 0;border-block:1px solid #dce3cd;padding:20px 0}.guide-toc a{font-size:12px;background:#e8eddb;padding:9px 13px;border-radius:100px}.guide-section{padding:45px 0;scroll-margin-top:20px}.guide-section h2{font-size:33px;margin:14px 0 25px}.guide-intro{font-size:13px;color:#65765a;margin-bottom:24px!important;line-height:1.9}.mode-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.mode-grid article{padding:26px;background:#e8eddb;border-radius:12px}.mode-grid article>span{font-size:11px;color:#63814b;font-weight:600}.mode-grid h3{font-size:21px;margin:17px 0}.mode-grid p{font-size:13px;line-height:1.9;color:#576b4b}.mode-grid strong,.mode-grid small{display:block;font-size:10px;margin-top:18px;line-height:1.9}.mode-grid small{color:#6a7d5c;font-weight:400;margin-top:10px}.sport-accordion{display:grid;grid-template-columns:1fr 1fr;gap:13px;align-items:start}.sport-accordion details{border:1px solid #d3dec4;border-radius:10px;background:#fffef8;overflow:hidden}.sport-accordion summary{display:flex;gap:16px;align-items:center;cursor:pointer;padding:20px;font-size:14px;list-style:none}.sport-accordion summary::-webkit-details-marker{display:none}.sport-accordion summary>span{font-size:11px;color:#859775}.sport-accordion summary>b{margin-left:auto;font-size:19px;font-weight:400}.sport-accordion details[open] summary>b{transform:rotate(45deg)}.sport-accordion details>div{padding:0 22px 24px}.sport-accordion h3{font-size:17px;margin:5px 0 15px}.sport-accordion p{font-size:12px;color:#657558;line-height:1.9}.sport-accordion .metric-idea{padding:13px;background:#eef3e4;margin:17px 0}.metric-idea b{display:block;font-size:10px}.strategy-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.strategy-grid article{border-top:2px solid #b8c9a0;padding:20px 8px}.strategy-grid article>span{font-size:12px;color:#7f9668}.strategy-grid h3{font-size:20px;margin:12px 0}.strategy-grid p{font-size:12px;line-height:1.9;color:#617754}.rollout-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px}.rollout-grid article{background:#224c35;color:#eff4dc;padding:23px;border-radius:11px}.rollout-grid b{font-size:11px;color:#cfe996}.rollout-grid h3{font-size:18px;margin:14px 0}.rollout-grid p{font-size:12px;color:#c5d4b4;line-height:1.9}.guide-actions{display:flex;gap:13px;flex-wrap:wrap;margin-top:25px}.operation-checklist{max-width:760px}.operation-checklist label{display:flex;gap:12px;font-size:14px;padding:13px 0;border-bottom:1px solid #dde4d0;cursor:pointer}.operation-checklist input{width:18px;height:18px;min-height:0;margin-top:4px;accent-color:#254f36}.operation-checklist .app-button{margin-top:24px}
@media(max-width:800px){.guide-hero{grid-template-columns:1fr;gap:30px}.guide-hero .app-heading h1{font-size:31px}.guide-hero img{height:285px}.guide-toc a{font-size:10px}.guide-section{padding:30px 0}.guide-section h2{font-size:29px}.mode-grid,.sport-accordion{grid-template-columns:1fr}.strategy-grid{grid-template-columns:1fr 1fr;gap:20px 15px}.strategy-grid h3{font-size:17px}.strategy-grid p{font-size:11px}.rollout-grid{grid-template-columns:1fr 1fr}.rollout-grid article{padding:20px}.rollout-grid h3{font-size:16px}.rollout-grid p{font-size:11px}.operation-checklist label{font-size:12px}}
@media print{.guide-toc,.guide-actions,.guide-hero img,.guide-app .app-button{display:none!important}.guide-hero{display:block}.guide-section{padding:20px 0}.guide-section h2{font-size:22px}.mode-grid,.strategy-grid,.rollout-grid{grid-template-columns:1fr 1fr}.mode-grid article,.strategy-grid article,.rollout-grid article{break-inside:avoid;print-color-adjust:exact;-webkit-print-color-adjust:exact}.sport-accordion{display:block}.sport-accordion details{margin-bottom:12px;break-inside:avoid}.sport-accordion details>div{display:block!important;content-visibility:visible!important}.guide-hero .app-heading h1{font-size:26px}}
