/* Shared structural rules. The current art direction lives in production.css. */
html,body{min-height:100%;margin:0}h1,h2,h3,p{margin-top:0}button{touch-action:manipulation}button:active{filter:brightness(1.08)}
.small-btn{min-height:40px;padding:7px 11px}.danger{border-color:#aa2033!important}.subtle,.legal-note{color:var(--muted)}.legal-note{font-size:12px}
.board{touch-action:manipulation;margin:auto}.square{display:block}.piece{z-index:3}.coord{position:absolute}.square.lesson-from{outline:2px solid #89b2d5;outline-offset:-3px}.square.lesson-to:after,.square.training-to:after{content:'';position:absolute;inset:5px;border:2px solid #ead174;pointer-events:none;z-index:4}
.lesson-banner,.training-banner,.online-banner{display:flex;align-items:center;justify-content:space-between;gap:14px}.lesson-progress{font-size:12px;margin-top:8px}.online-actions{display:flex;gap:8px;flex-wrap:wrap}.realtime-dot{display:inline-block;width:7px;height:7px;background:#737782;margin-left:7px}.realtime-dot.live{background:#d0a144}
.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.settings-grid label,.settings-panel label{font-size:13px;color:var(--muted)}.settings-grid input{width:100%;margin-top:8px}.settings-panel small{display:block}.manual-save-row input{flex:1;min-width:180px}.save-list{display:flex;flex-direction:column}.save-row>div:last-child{display:flex;gap:8px;flex-wrap:wrap}.save-row b{display:block}.empty-note{font-size:13px;color:var(--muted);padding:12px 0}.action-stack{display:grid;gap:12px}.section-gap,.recent-games{margin-top:24px}.academy-stats{margin-top:18px;font-size:13px;color:var(--muted)}
.rules-long{margin-top:28px}.rule-grid h3{margin-bottom:10px}.rules-long p,.rule-grid p{line-height:1.6}.rule-grid article{padding-bottom:14px}.player-tag-card{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 0;border-bottom:1px solid var(--line);font-size:13px}.player-tag-card b{letter-spacing:.1em;color:var(--gold)}.invite-card{padding:20px;border:1px solid var(--line);margin:18px 0}.invite-code{font:30px ui-monospace,monospace;letter-spacing:.15em;color:var(--gold);margin:14px 0}.invite-card input{width:100%}.peer-status{padding:14px 0;font-size:13px;color:var(--muted)}
.promotion-card{text-align:center}.promotion-grid{margin:20px 0}.promotion-grid .sprite{width:100%;height:auto;aspect-ratio:1;display:block}
.toast{position:fixed;left:50%;bottom:max(18px,env(safe-area-inset-bottom));transform:translate(-50%,20px);opacity:0;pointer-events:none;text-align:center;transition:opacity .2s,transform .2s}.toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:680px){.lesson-banner,.training-banner,.online-banner{align-items:flex-start;flex-direction:column}.settings-grid{grid-template-columns:1fr}.player-tag-card{align-items:flex-start;flex-direction:column}.topbar .brand .eyebrow{display:none}}
