:root{--bg:#f6f5f0;--paper:#fffefa;--ink:#233d35;--muted:#80877d;--green:#1c4d40;--green-dark:#143b31;--soft:#eaf0e9;--line:#e6e8df;--red:#b85948;--gold:#ad8c4e;--gold-soft:#f5eddb;--shadow:0 12px 45px #15382b09;--radius:18px;font-family:Inter,"PingFang SC","Microsoft YaHei",system-ui,sans-serif;color:var(--ink);font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:var(--bg);font-size:14px;line-height:1.55}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}button,a{touch-action:manipulation}button{border:0}a{color:var(--green);text-decoration:none}svg{flex-shrink:0}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #b5995a;outline-offset:3px}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:650}h1{font-size:32px;letter-spacing:-1px;line-height:1.35}h2{font-size:18px;letter-spacing:-.3px}h3{font-size:15px}.muted{color:var(--muted)}.small{font-size:12px}.serif{font-family:"Noto Serif SC","Songti SC",SimSun,serif}.num{font-family:Inter,"Arial",sans-serif;font-variant-numeric:tabular-nums;letter-spacing:-.5px}.positive{color:var(--green)}.negative{color:var(--red)}.flex{display:flex;align-items:center;gap:12px}.spread{display:flex;justify-content:space-between;align-items:center;gap:14px}.wrap{flex-wrap:wrap}.stack{display:grid;gap:16px}.gap8{gap:8px}.full{width:100%}.mt16{margin-top:16px}.mt24{margin-top:24px}.initial-loading{min-height:100vh;display:grid;place-content:center;text-align:center;gap:18px;color:var(--muted)}.initial-loading .brand-mark{margin:auto}.brand-mark{width:43px;height:48px;display:grid;place-items:center;border-radius:10px;background:var(--green);color:#fffdf5;font-family:SimSun,serif;font-size:27px;border-bottom:5px solid #c3b48d;box-shadow:0 3px 0 #14392d}.brand-name{font-size:23px;letter-spacing:3px;font-family:"Songti SC",SimSun,serif;font-weight:700;white-space:nowrap}.brand-en{font-size:9px;letter-spacing:2.5px;color:var(--muted);margin-top:2px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:10px 17px;border-radius:10px;font-size:13px;font-weight:550;white-space:nowrap;transition:background .15s,transform .15s}.btn:hover{transform:translateY(-1px)}.btn-primary{background:var(--green);color:#fffdf6;box-shadow:0 3px 7px #18463810}.btn-primary:hover{background:var(--green-dark)}.btn-secondary{background:var(--paper);border:1px solid var(--line);color:var(--ink)}.btn-secondary:hover{background:var(--soft)}.btn-soft{background:var(--soft);color:var(--green)}.btn-ghost{background:transparent;color:var(--muted);padding:9px 12px}.btn-danger{background:#faeae6;color:#a34637}.btn-small{min-height:32px;padding:6px 10px;font-size:12px;border-radius:8px}.icon-btn{width:36px;height:36px;display:inline-grid;place-items:center;background:transparent;border-radius:9px;color:var(--muted)}.icon-btn:hover{background:var(--soft);color:var(--ink)}.text-link{background:none;color:var(--green);font-size:12px;padding:4px;display:inline-flex;align-items:center;gap:4px}.badge{font-size:10px;border-radius:5px;padding:3px 7px;font-weight:550;display:inline-flex;align-items:center;gap:4px;white-space:nowrap;line-height:1.5}.badge-green{background:var(--soft);color:#46705a}.badge-gold{background:var(--gold-soft);color:#9c7b3f}.badge-red{background:#f8eae5;color:var(--red)}.badge-gray{background:#f0f0eb;color:var(--muted)}.avatar{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#e8ecdf;color:#52644b;font-size:13px;font-weight:550;flex-shrink:0;border:2px solid var(--paper)}.avatar.lg{width:66px;height:66px;font-size:27px;border-width:3px}.avatar.md{width:44px;height:44px;font-size:17px}.avatar-group{display:flex;padding-left:5px}.avatar-group .avatar{margin-left:-5px}.empty{padding:45px 20px;text-align:center;display:grid;justify-items:center;gap:12px}.empty-illustration{width:62px;height:68px;border-radius:12px;border:1px solid #d8e1d1;border-bottom:6px solid #c3d2b9;background:#f1f4e9;display:grid;place-items:center;font-family:SimSun,serif;font-size:32px;color:#739268;transform:rotate(-8deg);margin-bottom:9px}.empty p{color:var(--muted);font-size:13px;max-width:320px}.empty h3{font-size:17px}.page-intro{margin-bottom:26px}.page-intro p{color:var(--muted);font-size:13px;margin-top:7px}.page-intro .eyebrow{color:var(--gold);margin-bottom:6px;font-size:11px;letter-spacing:1.3px}.panel{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.panel-head{padding:22px 24px 18px;display:flex;align-items:center;justify-content:space-between;gap:12px}.panel-head .kicker{color:var(--muted);font-size:10px;letter-spacing:1.5px;margin-top:3px}.panel-foot{border-top:1px solid var(--line);padding:13px 24px;font-size:12px;color:var(--muted)}.demo-banner{background:#f3ead5;color:#8a713b;min-height:36px;text-align:center;display:flex;align-items:center;justify-content:center;gap:12px;padding:7px 20px;font-size:11px}.demo-banner button{background:none;color:#78612e;text-decoration:underline;font-size:11px;padding:0}.sidebar{width:224px;background:#fdfcf8;border-right:1px solid var(--line);position:fixed;inset:0 auto 0 0;display:flex;flex-direction:column;padding:31px 24px;z-index:20}.sidebar-brand{display:flex;gap:11px;align-items:center;padding:0 3px 34px}.sidebar-label{padding:0 14px;font-size:9px;color:#9b9e91;letter-spacing:2px;margin-bottom:12px}.nav{display:grid;gap:7px}.nav-button{display:flex;align-items:center;gap:13px;width:100%;text-align:left;background:transparent;color:#7c857b;padding:13px 16px;border-radius:10px;font-size:14px}.nav-button.active{background:var(--soft);color:var(--green);font-weight:600}.nav-button:hover{background:#eef1e8}.nav-button .nav-dot{margin-left:auto;width:6px;height:6px;background:var(--red);border-radius:50%}.sidebar-footer{margin-top:auto}.rule-card{padding:17px 15px;border:1px solid #e9e7db;border-radius:12px;background:#f7f6ef;margin-bottom:19px}.rule-card p{font-size:11px;color:var(--muted);line-height:1.9}.rule-card strong{display:block;font-size:12px;margin-bottom:6px;font-weight:550;color:#6b765e}.sidebar-user{border-top:1px solid var(--line);padding-top:20px;display:flex;align-items:center;gap:9px}.sidebar-user>div{min-width:0}.sidebar-user .user-name{max-width:105px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:550;font-size:12px}.sidebar-user .icon-btn{margin-left:auto;width:27px}.main-shell{margin-left:224px}.topbar{height:84px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 42px;background:#fbfaf6ba;gap:16px}.club-select-wrap{display:flex;align-items:center;gap:10px}.club-icon{width:31px;height:31px;border-radius:8px;background:#e9eee3;color:var(--green);display:grid;place-items:center;font-family:SimSun,serif;font-weight:bold}.club-select{appearance:none;border:0;background:transparent;color:var(--ink);font-size:13px;font-weight:550;max-width:235px;padding:8px 22px 8px 0;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='none' stroke='%2380877d'%3E%3Cpath d='m4 5 3 3 3-3'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right center}.topbar-date{font-size:11px;color:var(--muted)}.topbar-actions{display:flex;align-items:center;gap:13px}.page{max-width:1430px;margin:auto;padding:35px 42px 38px}.hero{position:relative;overflow:hidden;min-height:209px;border-radius:19px;background:#e9eee3;border:1px solid #dfe6d8;padding:31px 35px;margin-bottom:23px;display:flex;align-items:center;justify-content:space-between;gap:20px}.hero::before{content:"";position:absolute;width:260px;height:260px;border:1px solid #c3cfb843;border-radius:50%;right:21px;top:-80px}.hero::after{content:"";position:absolute;width:350px;height:350px;border:1px solid #c3cfb843;border-radius:50%;right:-25px;top:-124px}.hero-copy{position:relative;z-index:1}.hero .eyebrow{font-size:10px;letter-spacing:2px;color:#7f8c70;margin-bottom:13px}.hero h1{font-size:31px;font-family:"Songti SC",SimSun,serif;letter-spacing:1px;color:#294a38;font-weight:600}.hero p{font-size:12px;color:#7a876f;margin:12px 0 19px}.hero-meta{display:flex;align-items:center;gap:14px;font-size:10px;color:#78846c}.hero-meta .line{height:11px;width:1px;background:#bbc5ac}.tile-scene{position:relative;width:240px;height:150px;z-index:1;flex-shrink:0;margin-right:8px}.mahjong-tile{width:69px;height:98px;position:absolute;top:22px;left:31px;border-radius:9px;border:1px solid #e6dfc9;border-bottom:10px solid #55775f;background:#fffdf3;box-shadow:7px 13px 12px #3e5b3c12;display:flex;justify-content:center;align-items:center;flex-direction:column;font-family:SimSun,serif;font-size:47px;color:var(--red);transform:rotate(-15deg)}.mahjong-tile::before{content:"";position:absolute;inset:5px;border:1px solid #e8e6d7;border-radius:5px}.mahjong-tile:nth-child(2){left:91px;top:14px;transform:rotate(3deg);z-index:1;font-size:39px;color:#306044;border-bottom-color:#375e49}.mahjong-tile:nth-child(3){left:148px;top:29px;transform:rotate(19deg);font-size:35px;color:#2f5b44;border-bottom-color:#6a8c6c;z-index:2}.tile-sub{font-family:Arial,sans-serif;font-size:8px;letter-spacing:1px;line-height:1;margin-top:-7px}.tile-star{position:absolute;left:13px;top:11px;color:#9f9f75;font-size:23px}.tile-star.two{left:auto;right:5px;top:120px;font-size:14px}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:26px}.stat{padding:21px 24px;background:var(--paper);border:1px solid var(--line);border-radius:14px;position:relative;overflow:hidden}.stat-label{font-size:11px;color:var(--muted);display:flex;justify-content:space-between;align-items:center}.stat-label svg{color:#a4ad98}.stat-value{font-size:29px;font-weight:550;line-height:1.3;margin:12px 0 7px}.stat-unit{font-size:11px;font-weight:400;margin-left:5px;color:var(--muted)}.stat-note{font-size:10px;color:#929788}.stat-note .dot{display:inline-block;width:4px;height:4px;border-radius:50%;background:#a9b19a;margin-right:5px;vertical-align:middle}.home-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(260px,1fr);gap:22px;align-items:start}.match-card{padding:19px 24px;border-top:1px solid var(--line);cursor:pointer;transition:background .15s}.match-card:hover{background:#f7f8f0}.match-card:first-child{border-top:0}.match-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.match-name{font-size:13px;font-weight:550}.match-date{font-size:10px;color:#929687;margin-top:3px}.match-bottom{display:flex;align-items:center;justify-content:space-between;gap:12px}.match-persons{display:flex;gap:12px;align-items:center;min-width:0}.match-persons .people-text{font-size:10px;color:var(--muted);max-width:170px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.match-winner{text-align:right;font-size:10px;color:var(--muted);flex-shrink:0}.match-winner strong{display:block;font-size:17px;font-weight:550;line-height:1.35}.match-winner small{font-size:9px}.match-records{display:flex;gap:5px;margin-top:12px;flex-wrap:wrap}.league-list{padding:0 22px 5px}.league-row{display:flex;align-items:center;gap:11px;padding:15px 0;border-bottom:1px solid var(--line)}.league-row:last-child{border-bottom:0}.league-number{width:19px;text-align:center;font-size:12px;font-weight:600;color:#9b9d8f}.league-number.gold{color:#b79b60}.league-number.silver{color:#969c99}.league-number.bronze{color:#b98c74}.league-person{flex:1;min-width:0}.league-name{font-size:12px;font-weight:550}.league-note{font-size:9px;color:var(--muted);margin-top:2px}.league-score{font-size:18px;font-weight:550}.league-score small{font-size:9px;margin-left:3px;font-weight:400;color:var(--muted)}.story-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding:0 23px 23px}.story-card{background:#f8f8f1;border:1px solid #ecece2;border-radius:12px;padding:17px;cursor:pointer;position:relative;overflow:hidden;min-height:154px}.story-card:hover{background:#eff2e8}.story-symbol{font-family:SimSun,serif;font-size:24px;color:#7e9677;margin-bottom:10px}.story-card h3{font-size:12px}.story-card p{font-size:10px;color:var(--muted);margin-top:8px;line-height:1.8;overflow-wrap:anywhere}.story-bottom{margin-top:13px;font-size:9px;color:#9c9e8e}.story-photo{width:100%;height:105px;object-fit:cover;display:block;border-radius:7px;margin-bottom:11px}.home-stories{margin-top:23px}.page-footer{text-align:center;color:#aaac9d;font-size:9px;letter-spacing:.5px;margin-top:31px;display:flex;align-items:center;justify-content:center;gap:10px}.page-footer::before,.page-footer::after{content:"";width:28px;height:1px;background:#d6dacc}.segmented{display:inline-flex;gap:3px;padding:4px;background:#eaece4;border-radius:10px;flex-wrap:wrap}.segmented button{background:transparent;padding:7px 13px;border-radius:7px;font-size:12px;color:var(--muted);min-height:32px}.segmented button.active{background:var(--paper);box-shadow:0 2px 5px #152b1f08;color:var(--green);font-weight:550}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:22px;flex-wrap:wrap}.search{border:1px solid var(--line);background:var(--paper);border-radius:10px;display:flex;align-items:center;gap:9px;padding:0 12px;max-width:220px;color:#929b8a}.search input{border:0;outline:0;background:transparent;padding:10px 0;color:var(--ink);width:100%;min-width:0;font-size:12px}.matches-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}.matches-grid .match-card{border:1px solid var(--line);border-radius:15px;background:var(--paper);padding:22px 24px}.matches-grid .match-card:hover{background:#f1f4e9}.notice{display:flex;align-items:flex-start;gap:8px;padding:12px 15px;border-radius:10px;font-size:11px;background:var(--soft);color:#6b7e62;line-height:1.8}.notice svg{margin-top:3px}.notice.amber{background:#f6efdc;color:#9a7f41}.leader-table{width:100%;border-collapse:collapse}.leader-table th{font-size:10px;color:#8d9686;font-weight:400;padding:13px 22px;text-align:right;border-bottom:1px solid var(--line);background:#f7f8f2}.leader-table th:first-child,.leader-table th:nth-child(2){text-align:left}.leader-table td{padding:18px 22px;text-align:right;border-bottom:1px solid var(--line);font-size:13px}.leader-table tr:last-child td{border-bottom:0}.leader-table td:first-child,.leader-table td:nth-child(2){text-align:left}.leader-table .my-row{background:#f0f4e9}.leader-table .my-row td:nth-child(2)::after{content:"我";font-size:9px;color:#7b8a6d;background:#e2ead6;padding:2px 5px;margin-left:7px;border-radius:4px}.leader-table td:nth-child(2) .flex{display:inline-flex}.rank-score{font-size:20px;font-weight:550}.ranking-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:21px;gap:12px}.podium{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin:25px 0}.podium-card{border:1px solid var(--line);border-radius:16px;background:var(--paper);text-align:center;padding:23px 16px 21px;position:relative}.podium-card.first{background:#f1eedf;border-color:#e5ddbd}.podium-card .rank-medal{position:absolute;top:12px;right:14px;font-size:12px;color:#b5a46e}.podium-card h3{margin-top:9px;font-size:13px}.podium-card .rank-score{margin:6px 0 4px;font-size:25px}.podium-card p{font-size:10px;color:var(--muted)}.achievement-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.achievement{padding:23px 20px;background:var(--paper);border:1px solid var(--line);border-radius:14px;text-align:center}.achievement.locked{opacity:.5}.achievement-icon{width:53px;height:58px;clip-path:polygon(50% 0,95% 23%,95% 73%,50% 100%,5% 73%,5% 23%);display:grid;place-items:center;background:#e9eddb;color:#637748;font-size:26px;font-family:SimSun,serif;margin:0 auto 12px}.achievement:nth-child(2n) .achievement-icon{background:#f0e7d0;color:#a58a4c}.achievement:nth-child(3n) .achievement-icon{background:#efe0d9;color:#b5755e}.achievement h3{font-size:12px}.achievement p{font-size:10px;color:var(--muted);margin-top:6px}.profile-top{display:flex;gap:20px;align-items:center;padding:29px 31px;margin-bottom:23px}.profile-top h1{font-size:24px}.profile-top p{font-size:11px;color:var(--muted);margin-top:5px}.profile-top .btn{margin-left:auto}.profile-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:23px}.chart{padding:0 24px 20px}.chart svg{display:block;width:100%;height:auto;overflow:visible}.chart-labels{display:flex;justify-content:space-between;font-size:9px;color:var(--muted);margin:3px 0 0}.chart-note{font-size:10px;color:var(--muted);margin-top:15px}.rival-row{display:flex;gap:10px;padding:15px 22px;border-top:1px solid var(--line);align-items:center;font-size:12px}.rival-row .rival-count{margin-left:auto;color:var(--red);font-size:17px}.rival-row .rival-count small{font-size:10px;color:var(--muted)}.my-achievements{margin-top:24px}.club-welcome{padding:48px;display:grid;grid-template-columns:1.3fr 1fr;align-items:center;gap:30px}.club-welcome h1{font-family:SimSun,serif;font-size:33px;margin:16px 0}.club-welcome p{color:var(--muted);font-size:13px;line-height:2;max-width:380px}.club-welcome .tile-scene{margin:auto}.welcome-actions{display:flex;gap:10px;margin-top:24px}.member-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;padding:0 24px 24px}.member-card{padding:15px;border:1px solid var(--line);border-radius:11px;display:flex;align-items:center;gap:10px}.member-card p{font-size:10px;color:var(--muted)}.auth-page{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr;background:#fdfcf7}.auth-story{background:#e8eee1;display:flex;flex-direction:column;padding:48px 8vw;justify-content:center;position:relative;overflow:hidden}.auth-story::after{content:"";position:absolute;right:-300px;top:-200px;width:850px;height:850px;border:1px solid #c9d5bd66;border-radius:50%;pointer-events:none}.auth-brand{display:flex;gap:13px;align-items:center;position:absolute;left:8vw;top:46px}.auth-story .eyebrow{font-size:11px;letter-spacing:2px;color:#859474;margin-bottom:18px}.auth-story h1{font-family:SimSun,serif;font-size:43px;line-height:1.65;font-weight:500;letter-spacing:2px;position:relative;z-index:1}.auth-story>p{color:#7f8b74;line-height:2.1;font-size:13px;margin-top:17px;max-width:330px}.auth-story .tile-scene{margin:32px 0 19px 30px;transform:scale(1.1)}.auth-features{display:flex;gap:19px;color:#839175;font-size:10px;flex-wrap:wrap;margin-top:8px}.auth-features span{display:flex;align-items:center;gap:5px}.auth-form-wrap{display:flex;align-items:center;justify-content:center;padding:45px 45px;min-height:100vh}.auth-form{max-width:350px;width:100%}.auth-form h2{font-size:25px;letter-spacing:.3px}.auth-form>p{font-size:12px;color:var(--muted);margin:8px 0 27px}.auth-tabs{display:flex;gap:22px;border-bottom:1px solid var(--line);margin-bottom:25px}.auth-tabs button{font-size:13px;color:var(--muted);padding:0 1px 12px;background:none;border-bottom:2px solid transparent}.auth-tabs button.active{color:var(--green);border-bottom-color:var(--green);font-weight:600}.field{display:grid;gap:7px;margin-bottom:18px}.field>label{font-size:12px;font-weight:500}.input{width:100%;border:1px solid #dfe4d9;border-radius:9px;background:#fffefa;color:var(--ink);padding:11px 12px;font-size:13px;min-height:43px;outline-offset:2px}.input::placeholder{color:#b0b3a6}.input:focus{border-color:#6d8b65}.field small{font-size:10px;color:var(--muted)}textarea.input{resize:vertical;min-height:73px;line-height:1.8}.auth-submit{width:100%;margin-top:5px;min-height:45px}.divider{display:flex;align-items:center;gap:12px;font-size:10px;color:#a3a799;margin:24px 0 17px}.divider::before,.divider::after{content:"";height:1px;flex:1;background:var(--line)}.auth-note{text-align:center;font-size:10px;color:#a3a799;margin-top:21px;line-height:1.9}.form-error{padding:10px 12px;border:1px solid #efd8d0;background:#fff2ee;color:#a44d3c;font-size:12px;border-radius:8px;margin-bottom:15px;line-height:1.7;display:none}.form-error:not(:empty){display:block}.invite-intro{background:#f2eddf;border-radius:10px;padding:14px 16px;font-size:12px;color:#977e42;margin-bottom:20px}.connection-error{padding:15px 20px;background:#f7e9e2;border-bottom:1px solid #eed5c5;color:#9b644b;font-size:12px;text-align:center}dialog{width:min(650px,calc(100% - 28px));max-height:min(88vh,880px);border:1px solid #e7e6da;border-radius:19px;padding:0;background:var(--paper);color:var(--ink);box-shadow:0 30px 100px #17372b30}dialog::backdrop{background:#203e3260;backdrop-filter:blur(4px)}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:24px 26px 18px;position:sticky;top:0;background:var(--paper);z-index:3;border-bottom:1px solid var(--line)}.modal-head h2{font-size:18px}.modal-body{padding:23px 26px 26px}.modal-subtitle{color:var(--muted);font-size:12px;margin-bottom:20px;line-height:1.9}.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:23px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.form-grid .field{margin-bottom:5px}.players-form{display:grid;gap:9px;margin:16px 0}.player-input{display:grid;grid-template-columns:26px minmax(0,1fr) 115px;gap:9px;align-items:center}.player-number{font-size:10px;color:#9ca38f;text-align:center}.score-input{font-family:Arial,sans-serif;font-variant-numeric:tabular-nums}.sum-check{text-align:right;font-size:11px;color:var(--muted);padding:0 4px;margin-bottom:20px}.sum-check.good{color:#64825a}.sum-check.bad{color:var(--red)}.form-section-title{display:flex;align-items:center;justify-content:space-between;margin-top:25px;padding-top:20px;border-top:1px solid var(--line)}.form-section-title h3{font-size:13px}.highlight-form{margin-top:13px;padding:15px;background:#f5f6ee;border:1px solid #e6eadc;border-radius:11px}.highlight-form .input{background:var(--paper);font-size:12px;padding:9px 10px}.highlight-form .field{margin:0}.highlight-form .form-grid{gap:10px;margin-bottom:11px}.check-label{display:inline-flex;align-items:center;gap:5px;font-size:11px;color:#7a866d;margin:0 12px 12px 0}.check-label input{accent-color:var(--green)}.photo-label{display:flex;align-items:center;gap:7px;padding:9px;border:1px dashed #cbd7bf;border-radius:7px;color:#7c8f6b;font-size:10px;cursor:pointer;flex-wrap:wrap}.photo-label input{width:100%;font-size:10px}.photo-preview{height:85px;width:100%;object-fit:contain;background:#ecefe5;border-radius:7px;margin-top:9px}.detail-results{display:grid;gap:0;border:1px solid var(--line);border-radius:12px;overflow:hidden;margin-top:17px}.detail-result{display:flex;align-items:center;gap:10px;padding:14px 17px;border-bottom:1px solid var(--line)}.detail-result:last-child{border-bottom:0}.detail-result .name{font-size:13px;font-weight:500}.detail-result .net{font-size:23px;font-weight:550;margin-left:auto}.detail-result .confirmation{font-size:9px;color:var(--muted)}.detail-result .score-tags{margin-left:9px}.detail-highlights{display:grid;gap:12px;margin-top:15px}.detail-highlight{padding:14px 16px;border-radius:10px;background:#f2f4ea}.detail-highlight .headline{font-size:12px;font-weight:550;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.detail-highlight p{font-size:11px;color:var(--muted);margin-top:8px;line-height:1.9;overflow-wrap:anywhere}.detail-photo{max-height:220px;max-width:100%;object-fit:contain;border-radius:7px;margin-top:12px}.history{font-size:10px;color:var(--muted);display:grid;gap:7px;margin-top:13px}.history div{display:flex;justify-content:space-between;gap:10px}.invite-code{font-size:28px;letter-spacing:3px;text-align:center;padding:20px;background:#eef2e6;border:1px dashed #c5d0b7;border-radius:12px;font-family:monospace;overflow-wrap:anywhere;margin-bottom:16px}.copy-row{display:flex;gap:8px}.copy-row input{min-width:0;font-size:10px;color:var(--muted)}.toast{position:fixed;bottom:30px;left:50%;transform:translate(-50%,15px);opacity:0;pointer-events:none;z-index:100;background:#1e4036;color:#fffdf4;padding:12px 21px;border-radius:11px;box-shadow:0 6px 25px #17372b25;font-size:12px;max-width:calc(100vw - 36px);text-align:center;transition:opacity .2s,transform .2s}.toast.visible{opacity:1;transform:translate(-50%,0)}.emoji-options{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:20px}.emoji-option{background:#f0f2e9;border:1px solid transparent;border-radius:9px;padding:7px 10px;font-size:22px}.emoji-option.active{border-color:var(--green);background:#e1e9d8}.mobile-only{display:none}.pending-callout{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;margin-bottom:23px;border:1px solid #e8dfc3;background:#f5f0e1;border-radius:12px;font-size:12px;color:#967d40}.pending-callout small{font-size:10px;display:block;color:#a79770;margin-top:2px}.loading-block{padding:100px 20px;text-align:center;color:var(--muted);font-size:13px}.mobile-nav-label{display:none}.member-actions{margin-left:auto}.invite-admin-footer{margin-top:23px;border-top:1px solid var(--line);padding-top:16px}.scroll-table{overflow-x:auto}.mobile-brand{display:none}.photo-uploading{font-size:10px;color:var(--muted)}
@media(min-width:1500px){.page{padding-top:44px}.hero{min-height:235px}.hero h1{font-size:36px}.hero p{font-size:13px}.tile-scene{transform:scale(1.1);margin-right:35px}.stats-grid{gap:20px}.stat{padding:24px 27px}.stat-value{font-size:33px}.home-grid{grid-template-columns:minmax(0,1.8fr) minmax(300px,1fr)}}
@media(max-width:1150px){.sidebar{width:196px;padding:30px 17px}.brand-name{font-size:20px}.brand-en{font-size:8px;letter-spacing:1.6px}.sidebar-brand{gap:10px}.main-shell{margin-left:196px}.page{padding:28px}.topbar{padding:0 28px}.topbar-date{display:none}.home-grid{grid-template-columns:minmax(0,1.5fr) minmax(235px,1fr);gap:17px}.hero{padding:27px}.hero h1{font-size:27px}.tile-scene{width:205px;transform:scale(.88);transform-origin:right center;margin-right:-5px}.stat{padding:18px}.stat-value{font-size:26px}.story-grid{grid-template-columns:repeat(2,minmax(0,1fr));padding:0 20px 20px}.story-grid .story-card:nth-child(3){display:none}.panel-head{padding:20px}.match-card{padding:17px 20px}.match-persons .people-text{max-width:110px}.member-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.auth-story{padding-left:6vw;padding-right:5vw}.auth-brand{left:6vw}.auth-story h1{font-size:37px}.leader-table th,.leader-table td{padding-left:16px;padding-right:16px}.profile-grid{grid-template-columns:1.3fr 1fr}.achievement-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.sidebar{width:83px;padding:28px 14px}.sidebar-brand{padding:0 5px 35px}.sidebar-brand>div:last-child,.sidebar-label,.nav-button span,.sidebar-footer,.nav-dot{display:none}.nav-button{padding:14px 16px;justify-content:center}.main-shell{margin-left:83px}.hero h1{font-size:26px}.hero .tile-scene{transform:scale(.8);margin-right:-20px;width:190px}.hero-meta{font-size:9px;gap:10px}.home-grid{grid-template-columns:minmax(0,1.5fr) minmax(225px,1fr)}.stats-grid{gap:11px}.stat{padding:16px}.stat-label{font-size:10px}.stat-label svg{display:none}.stat-value{font-size:25px}.stat-note{font-size:9px}.hero{min-height:195px}.member-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.auth-page{grid-template-columns:.95fr 1fr}.auth-story{padding-left:5vw;padding-right:3vw}.auth-brand{left:5vw}.auth-story h1{font-size:32px}.auth-form-wrap{padding:40px 30px}.auth-story>p{font-size:12px}.auth-features{gap:12px}.profile-grid{grid-template-columns:1fr}.rival-list{display:grid;grid-template-columns:1fr 1fr}.rival-list .rival-row:nth-child(2){border-left:1px solid var(--line)}}
@media(max-width:700px){body{font-size:13px}.sidebar{inset:auto 0 0;width:100%;height:70px;padding:0 8px max(0px,env(safe-area-inset-bottom));border:0;border-top:1px solid var(--line);background:#fffef9f5;backdrop-filter:blur(14px)}.sidebar-brand{display:none}.nav{display:flex;justify-content:space-around;gap:0;height:100%}.nav-button{display:flex;flex-direction:column;gap:4px;width:25%;padding:10px 2px 8px;border-radius:0;font-size:10px}.nav-button span{display:block}.nav-button svg{width:20px;height:20px}.nav-button.active{background:transparent;color:var(--green)}.nav-button .nav-dot{display:none}.main-shell{margin-left:0;padding-bottom:80px}.topbar{height:69px;padding:0 20px;background:#fbfaf6}.club-select{max-width:175px;font-size:12px}.topbar-actions{gap:4px}.topbar-actions .btn{font-size:11px;min-height:34px;padding:7px 11px}.topbar-actions .icon-btn{width:29px}.topbar-actions .btn svg{width:14px}.topbar .club-icon{width:29px;height:29px}.page{padding:24px 19px 22px}.hero{padding:23px 21px;min-height:186px;margin-bottom:17px;border-radius:15px;gap:0}.hero h1{font-size:24px;max-width:260px;line-height:1.5;letter-spacing:.3px}.hero .eyebrow{font-size:9px;margin-bottom:9px;letter-spacing:1.2px}.hero p{font-size:10px;margin:10px 0 13px;max-width:220px;line-height:1.9}.hero-meta{font-size:9px;gap:8px;max-width:225px;flex-wrap:wrap}.hero .tile-scene{position:absolute;right:-33px;top:23px;transform:scale(.64);opacity:.8;transform-origin:right center;width:220px}.hero-copy{max-width:72%}.hero::before{right:-80px}.hero::after{right:-130px}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;margin-bottom:19px}.stat{padding:16px 18px;border-radius:12px}.stat-label{font-size:10px}.stat-label svg{display:block;width:14px;height:14px}.stat-value{font-size:27px;margin:8px 0 5px}.stat-note{font-size:9px}.home-grid{grid-template-columns:1fr;gap:19px}.panel{border-radius:14px}.panel-head{padding:19px 20px 16px}h2{font-size:16px}.panel-head .kicker{font-size:8px}.match-card{padding:17px 20px}.match-persons .people-text{max-width:160px}.match-winner strong{font-size:18px}.league-list{padding:0 20px 5px}.league-row{padding:13px 0}.league-row .avatar{width:33px;height:33px}.league-score{font-size:19px}.home-stories{margin-top:19px}.story-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:0 16px 16px}.story-card{padding:14px;min-height:151px}.story-card h3{font-size:11px}.story-card p{font-size:10px}.story-symbol{font-size:23px}.page-footer{font-size:8px;margin-top:24px;letter-spacing:0}.demo-banner{font-size:10px;padding:7px 12px;gap:8px}.demo-banner button{font-size:10px;flex-shrink:0}.page-intro{margin-bottom:22px}.page-intro h1{font-size:25px}.page-intro p{font-size:11px}.page-intro .btn{font-size:11px;min-height:36px;padding:8px 11px}.page-intro .btn svg{width:14px}.toolbar{gap:10px;align-items:stretch}.segmented{padding:3px;gap:2px}.segmented button{font-size:11px;padding:6px 10px;min-height:31px}.search{width:100%;max-width:none}.search input{font-size:11px}.matches-grid{grid-template-columns:1fr;gap:13px}.matches-grid .match-card{padding:20px}.notice{font-size:10px;padding:11px 13px}.ranking-header{margin-bottom:14px}.ranking-header .segmented button{padding:5px 9px}.podium{gap:8px;margin:18px 0}.podium-card{padding:21px 8px 17px;border-radius:13px}.podium-card .avatar.lg{width:46px;height:46px;font-size:21px}.podium-card h3{font-size:11px}.podium-card .rank-score{font-size:23px}.podium-card p{font-size:8px}.podium-card .rank-medal{font-size:10px;top:8px;right:9px}.leader-table th,.leader-table td{padding:13px 11px;font-size:11px;white-space:nowrap}.leader-table .avatar{width:27px;height:27px;font-size:11px}.leader-table td:nth-child(2) .flex{gap:5px}.leader-table td:nth-child(2){min-width:102px}.leader-table .rank-score{font-size:17px}.leader-table .mobile-hide{display:none}.profile-top{padding:22px 19px;gap:13px;flex-wrap:wrap}.profile-top .avatar.lg{width:57px;height:57px;font-size:25px}.profile-top h1{font-size:21px}.profile-top p{font-size:10px}.profile-top .btn{font-size:10px;min-height:31px;padding:6px 10px;margin-left:auto}.profile-grid{gap:18px}.chart{padding:0 18px 17px}.achievement-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.achievement{padding:20px 14px}.achievement h3{font-size:11px}.achievement p{font-size:9px}.achievement-icon{width:46px;height:51px;font-size:23px}.rival-list{grid-template-columns:1fr}.rival-list .rival-row:nth-child(2){border-left:0}.club-welcome{grid-template-columns:1fr;padding:30px 24px;gap:10px}.club-welcome h1{font-size:28px}.club-welcome p{font-size:12px}.club-welcome .tile-scene{display:none}.welcome-actions .btn{font-size:12px}.member-grid{grid-template-columns:repeat(2,minmax(0,1fr));padding:0 17px 17px;gap:9px}.member-card{padding:10px;gap:6px}.member-card .avatar{width:29px;height:29px;font-size:12px}.member-card h3{font-size:11px}.member-card p{font-size:9px}.auth-page{display:block;background:var(--bg)}.auth-story{min-height:auto;padding:107px 26px 26px;display:block}.auth-brand{top:29px;left:27px}.auth-story h1{font-size:29px;line-height:1.65;letter-spacing:1px}.auth-story .eyebrow{font-size:9px;margin-bottom:10px}.auth-story>p{font-size:11px;margin-top:10px;max-width:245px}.auth-story .tile-scene{position:absolute;right:0;top:132px;transform:scale(.64);transform-origin:right top;opacity:.8}.auth-features{margin-top:19px;font-size:9px;gap:13px}.auth-form-wrap{min-height:0;padding:30px 27px 35px}.auth-form{max-width:440px}.auth-form h2{font-size:22px}.auth-form>p{font-size:11px;margin-bottom:21px}.auth-tabs{margin-bottom:22px}.field{margin-bottom:17px}.input{font-size:14px}.auth-note{font-size:9px}.modal-head{padding:19px 20px 15px}.modal-head h2{font-size:16px}.modal-body{padding:20px}.modal-subtitle{font-size:11px}.player-input{grid-template-columns:17px minmax(0,1fr) 100px;gap:6px}.player-input .input{font-size:12px;padding:9px;min-height:40px}.form-grid{gap:12px}.form-grid label{font-size:11px}.form-grid .input{font-size:12px;padding:10px}.modal-actions .btn{font-size:12px;padding:9px 13px}.detail-result{padding:12px;gap:8px}.detail-result .net{font-size:21px}.detail-result .name{font-size:12px}.detail-result .avatar{width:30px;height:30px;font-size:12px}.detail-result .score-tags{margin-left:2px}.detail-result .badge{font-size:8px;padding:2px 5px}.detail-result .confirmation{font-size:8px}.detail-highlight .headline{font-size:11px}.history{font-size:9px}.history div{flex-wrap:wrap;gap:3px}.toast{bottom:88px;font-size:11px}.pending-callout{padding:12px 14px;font-size:11px;margin-bottom:18px}.pending-callout small{font-size:9px}.pending-callout .btn{font-size:10px;padding:7px 9px}.mobile-only{display:block}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* Keep the scorebook comfortable to read on a phone as well as a large screen. */
.stat-label,.stat-note,.stat-unit,.match-date,.league-note,.story-card p,.story-bottom,
.hero p,.hero-meta,.panel-foot,.auth-note,.modal-subtitle,.history,.notice,.small,
.profile-top p,.achievement p,.check-label,.photo-label,.demo-banner{font-size:12px}
.match-name,.league-name,.story-card h3,.achievement h3,.detail-result .name{font-size:14px}
.league-score small,.match-winner,.detail-result .confirmation{font-size:11px}
.hero h1{text-wrap:balance}
.invite-code{font-size:16px;letter-spacing:1px;line-height:1.8;user-select:all}
.stat-note{line-height:1.7}
.story-card p{line-height:1.8}
.btn,.icon-btn{min-height:44px}
@media(max-width:700px){
  .input,.player-input .input,.form-grid .input,.highlight-form .input{font-size:16px;min-height:44px}
  .topbar-actions .btn,.topbar-actions .icon-btn,.page-intro .btn,.pending-callout .btn{min-height:44px}
  .topbar-actions .icon-btn{min-width:44px}
  .stat-note,.stat-label,.hero p,.hero-meta,.match-date,.league-note,.story-card p,
  .story-bottom,.notice,.modal-subtitle,.history,.auth-note,.profile-top p,.achievement p{font-size:12px}
  .hero p{max-width:220px}.hero .tile-scene{opacity:.55}
  .detail-result .confirmation,.detail-result .badge{font-size:11px}
  .form-grid label{font-size:13px}
  .segmented button{min-height:40px;font-size:12px}
  .toast{font-size:13px}
}


/* Collection pages share the club's paper, jade and cinnabar palette. */
.brand-name{font-size:23px;letter-spacing:1px}.brand-en{font-size:8px;letter-spacing:1.6px}
.achievement-banner{display:flex;align-items:center;gap:17px;padding:19px 23px;margin:24px 0;border:1px solid #e1e5d5;border-radius:14px;background:#eef2e6}.achievement-banner-icon{display:grid;place-items:center;width:47px;height:52px;background:#e1e8ce;clip-path:polygon(50% 0,96% 25%,96% 75%,50% 100%,4% 75%,4% 25%);font:26px SimSun,serif;color:#6e8355;flex-shrink:0}.achievement-banner strong{font-size:15px;font-weight:550}.achievement-banner p{font-size:12px;color:var(--muted);margin-top:6px}.achievement-banner>.small{margin-left:auto;max-width:160px;text-align:right}.podium-card small,.rank-score small{font-size:12px;font-weight:400;color:var(--muted)}button.podium-card{width:100%;color:inherit;cursor:pointer;transition:border-color .15s,transform .15s}button.podium-card:hover{border-color:#aebd97;transform:translateY(-2px)}.hall-link{white-space:nowrap;min-height:44px}.achievement-overview{display:flex;align-items:center;gap:24px;padding:26px 28px;flex-wrap:wrap}.achievement-owner{display:flex;align-items:center;gap:15px;flex:1;min-width:220px}.achievement-owner h2{font-size:21px}.achievement-owner p{font-size:12px;color:var(--muted);margin-top:7px;line-height:1.8}.collection-totals{display:flex;gap:28px;align-items:center}.collection-totals>div{display:flex;flex-direction:column;gap:6px}.collection-totals strong{font-size:29px;font-weight:550;color:var(--green)}.collection-totals small{font-size:13px;color:var(--muted);font-weight:400}.collection-totals span{font-size:11px;color:var(--muted)}.collection-member{display:grid;gap:7px;min-width:155px}.collection-member label{font-size:11px;color:var(--muted)}.collection-member .input{font-size:13px}.achievement-toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px;flex-wrap:wrap;margin:25px 0 16px}.achievement-categories{display:flex;gap:7px;flex-wrap:wrap}.achievement-categories button{background:#fdfcf7;border:1px solid var(--line);border-radius:9px;padding:9px 14px;color:var(--muted);font-size:12px;min-height:42px}.achievement-categories button.active{background:var(--green);border-color:var(--green);color:#fffdf6}.collection-caption{display:flex;justify-content:space-between;gap:10px;margin-bottom:15px;font-size:11px;color:var(--muted)}.achievement-card{display:flex;flex-direction:column;text-align:left;min-height:282px;color:var(--ink);cursor:pointer;transition:transform .15s,border-color .15s;background:var(--paper)}.achievement-card:hover{transform:translateY(-2px);border-color:#afbe98}.achievement-card.locked{opacity:1;background:#f8f8f1}.achievement-card.locked .achievement-icon{opacity:.6}.achievement-card-top{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:18px}.achievement-category-name{font-size:11px;color:var(--muted)}.rarity-label{font-size:10px;padding:4px 7px;border-radius:5px;color:#7a836b;background:#edf0e7;white-space:nowrap}.rarity-advanced .rarity-label{background:#e5eddf;color:#648059}.rarity-rare .rarity-label{background:#f2e9d1;color:#9d8037}.rarity-legendary .rarity-label{background:#eee2dc;color:#a35f4c}.achievement-card .achievement-icon{margin-left:0;margin-right:0;flex-shrink:0}.achievement-card.rarity-rare .achievement-icon{background:#f0e6c9;color:#a78937}.achievement-card.rarity-legendary .achievement-icon{background:#ebdcd3;color:#a3624c}.achievement-card h3{font-size:16px}.achievement-card p{font-size:12px;line-height:1.9;margin-bottom:19px;min-height:45px}.achievement-progress-label{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-top:auto;font-size:11px;color:var(--muted)}.achievement-progress-label strong{font-weight:500;color:#6c7e5c}.achievement-progress{display:block;height:5px;border-radius:5px;background:#e4e8db;overflow:hidden;margin:8px 0 13px;width:100%}.achievement-progress i{display:block;height:100%;border-radius:inherit;background:#a8b98c}.achievement-card.unlocked .achievement-progress i{background:#6e8e5b}.achievement-status-line{display:flex;align-items:center;gap:5px;font-size:10px;color:#7f8d70}.achievement-detail-hero{display:flex;gap:19px;align-items:center;padding:16px 0 20px}.achievement-detail-hero .achievement-icon{margin:0;width:69px;height:76px;font-size:34px;flex-shrink:0}.achievement-detail-hero h3{font-size:18px;margin:10px 0 7px}.achievement-detail-hero p{font-size:13px;line-height:1.8;color:var(--muted)}.achievement-detail-progress{display:flex;flex-direction:column;gap:8px;padding:16px 18px;background:#eef2e6;border-radius:10px;font-size:13px;color:#647b52;margin-bottom:25px}.achievement-detail-progress span{font-size:12px;line-height:1.9}.source-heading{font-size:14px;margin-bottom:16px}.hand-tags{border:0;padding:0;margin:14px 0 17px;min-width:0}.hand-tags legend{font-size:12px;font-weight:550;color:#667c58;margin-bottom:10px}.hand-tag-options{display:flex;gap:7px;flex-wrap:wrap}.hand-tag{display:inline-flex;align-items:center;gap:5px;padding:7px 9px;min-height:34px;background:#fffef9;border:1px solid #dfe6d3;border-radius:7px;cursor:pointer;font-size:12px;color:#718361}.hand-tag:has(input:checked){background:#e3ebd7;border-color:#b1c397;color:#4f6f3a}.hand-tag input{accent-color:var(--green);margin:0}.hand-tag.incompatible{opacity:.4;cursor:not-allowed}.hand-tags>p{font-size:11px;line-height:1.9;color:var(--muted);margin-top:9px}.highlight-explanation{padding:10px 12px;background:#edf0e5;border-left:2px solid #b7c7a5;font-size:12px;line-height:1.9;color:#77876a;margin-bottom:14px}.recording-note{font-size:12px;color:var(--muted);line-height:1.9;margin-top:13px}.achievement-collection .notice{line-height:1.9}.achievement-collection{margin-top:0}
@media(max-width:1150px){.brand-name{font-size:21px}.achievement-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.achievement-overview{padding:22px;gap:20px}.collection-totals{gap:22px}}
@media(max-width:700px){.achievement-banner{padding:16px;gap:12px;margin:20px 0}.achievement-banner strong{font-size:13px}.achievement-banner p{font-size:11px;line-height:1.9}.achievement-banner>.small{display:none}.achievement-banner-icon{width:39px;height:44px;font-size:23px}.achievement-overview{padding:22px 19px;gap:20px}.achievement-owner{min-width:100%;gap:12px}.achievement-owner .avatar.lg{width:50px;height:50px;font-size:24px}.achievement-owner h2{font-size:19px}.achievement-owner p{font-size:12px}.collection-totals{gap:30px;flex:1}.collection-totals strong{font-size:29px}.collection-totals span{font-size:12px}.collection-member{min-width:130px;max-width:160px}.collection-member .input{font-size:14px}.achievement-toolbar{gap:15px;margin-top:21px}.achievement-categories{gap:6px}.achievement-categories button{padding:8px 10px;font-size:12px;min-height:44px}.achievement-toolbar .segmented button{min-height:40px}.collection-caption{font-size:11px;line-height:1.8;flex-wrap:wrap}.achievement-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.achievement-card{padding:17px 13px;min-height:290px;border-radius:12px}.achievement-card-top{gap:4px;margin-bottom:14px}.achievement-category-name{font-size:10px}.rarity-label{font-size:10px;padding:3px 5px}.achievement-card .achievement-icon{width:45px;height:49px;font-size:23px}.achievement-card h3{font-size:14px}.achievement-card p{font-size:12px;line-height:1.8;margin-bottom:16px}.achievement-progress-label{font-size:10px;gap:5px}.achievement-status-line{font-size:10px;line-height:1.7;align-items:flex-start;min-height:32px}.achievement-status-line svg{flex-shrink:0;margin-top:3px}.achievement-detail-hero{gap:14px;padding-top:4px}.achievement-detail-hero .achievement-icon{width:56px;height:64px;font-size:29px}.achievement-detail-hero h3{font-size:17px}.achievement-detail-hero p{font-size:12px}.hand-tag{min-height:42px;padding:8px 9px}.hand-tags legend{font-size:13px}.hand-tags>p{font-size:12px}.highlight-explanation{font-size:12px}.recording-note{font-size:12px}.leader-table .hall-link{font-size:11px}.achievement-collection .notice{font-size:12px}.podium-card .rank-score small{font-size:10px}}

/* Mobile scoring and a shareable, local-only PNG preview. */
.score-entry{display:flex;align-items:stretch;min-width:0;gap:5px}.score-entry .input{min-width:0;width:100%}.score-sign{flex:0 0 44px;border:1px solid var(--line);border-radius:8px;background:#edf1e4;color:var(--green);font-size:22px;min-height:44px}.score-balance{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:14px}.score-balance .sum-check{margin-bottom:0;flex:1;min-width:170px}.score-balance .text-link{min-height:44px}.score-balance [hidden]{display:none}.player-input{grid-template-columns:22px minmax(0,1fr) 180px}.invite-steps{padding-left:23px;color:var(--muted);font-size:13px;line-height:2;margin:0 0 20px}.report-preview{background:#e9e9df;border:1px solid var(--line);border-radius:12px;padding:10px}.report-preview img{display:block;width:100%;height:auto;max-width:540px;margin:auto;border-radius:6px;user-select:auto;-webkit-touch-callout:default}.report-caption{font-size:12px;color:var(--muted);line-height:1.8;margin-top:14px}.report-actions{flex-wrap:wrap}.match-primary-actions{justify-content:flex-start;margin-top:20px;padding-bottom:20px;border-bottom:1px solid var(--line)}.modal-head{position:sticky;top:0;background:var(--paper);z-index:5}.modal-head h2{overflow-wrap:anywhere}.modal-body{min-width:0}.detail-result .name{overflow-wrap:anywhere}.invite-code{overflow-wrap:anywhere}
@media(max-width:700px){
  .sidebar{height:calc(70px + env(safe-area-inset-bottom,0px))}.main-shell{padding-bottom:calc(82px + env(safe-area-inset-bottom,0px))}.nav-button{position:relative}.nav-button .nav-dot{display:block;position:absolute;right:25%;top:9px}.topbar{padding:0 12px;gap:8px}.club-select-wrap{min-width:0;flex:1}.club-select{width:100%;min-width:0;max-width:180px}.topbar-actions{flex-shrink:0}.topbar-actions .btn{padding:7px 9px}.topbar-actions .btn[data-action="members"]{min-width:38px}.topbar-actions .btn[data-action="members"] span{display:none}.toolbar .segmented{max-width:100%;overflow-x:auto;flex-wrap:nowrap}.toolbar .segmented button{white-space:nowrap;flex-shrink:0}.player-input{grid-template-columns:20px minmax(0,1fr);gap:8px;padding:12px 0;border-bottom:1px solid var(--line)}.player-input .player-select{grid-column:2}.player-input .score-entry{grid-column:2}.score-entry .input{font-size:20px;padding:11px 13px}.score-sign{flex-basis:48px}.form-section-title{gap:8px;flex-wrap:wrap}.form-section-title .text-link{min-height:44px}dialog{max-height:calc(100dvh - 20px);max-width:calc(100vw - 20px)}.modal-body{padding:18px 16px max(20px,env(safe-area-inset-bottom,0px))}.modal-actions{gap:8px;flex-wrap:wrap}.match-primary-actions .btn{flex:1 1 42%;min-height:48px}.match-primary-actions .btn-primary{flex-basis:100%}.detail-result{flex-wrap:wrap}.detail-result .net{margin-left:auto}.detail-result .score-tags{flex-shrink:0}.copy-row{flex-wrap:wrap}.copy-row input{flex:1 1 100%;font-size:16px}.copy-row .btn{width:100%;min-height:48px}.report-actions .btn{flex:1 1 42%;min-height:48px}.report-actions .text-link{min-height:44px}.report-preview{padding:5px}.auth-form-wrap{padding-top:24px}.auth-tabs button{min-height:44px}
}

body:has(dialog[open]){overflow:hidden}.score-balance .sum-check{font-size:13px;line-height:1.7}

@media(max-width:700px){.home-grid,.matches-grid,.profile-grid{grid-template-columns:minmax(0,1fr)}.home-grid>*{min-width:0}.match-top{flex-wrap:wrap}.match-bottom{flex-wrap:wrap}}
