:root{font-family:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;color:#24362f;background:#f5f4ee;font-synthesis:none;--green:#164f43;--muted:#738078;--line:#e1e4da}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.5;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #b48a3b;outline-offset:3px}button{min-height:44px;border:0;border-radius:8px;background:#e8ede6;color:var(--green);padding:10px 16px;font-weight:600}a{color:inherit;text-decoration:none}header{max-width:1140px;margin:auto;padding:26px 30px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);gap:12px}.brand{display:flex;gap:12px;align-items:center;font-size:25px;letter-spacing:3px;font-weight:750}.brand small{display:block;font-size:10px;letter-spacing:1px;color:var(--muted);margin-top:4px;font-weight:500}.tile{font-family:serif;display:grid;place-items:center;width:43px;height:52px;background:var(--green);color:#fffaf0;border-radius:8px;font-size:28px;box-shadow:0 4px 0 #a6b9aa}.quiet{background:transparent;color:var(--muted);font-size:12px}main{max-width:1080px;padding:34px 30px;margin:auto}.intro{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:24px}.eyebrow{font-size:10px;letter-spacing:2.5px;color:#8c743b;font-weight:700;margin:0 0 10px}h1{font-size:32px;letter-spacing:1px;font-weight:650;margin:0 0 12px}h2{font-size:20px;font-weight:650}p{line-height:1.7}.intro p:last-child{font-size:13px;color:var(--muted);margin:0}label{font-size:12px;color:var(--muted);display:block}input,select{display:block;width:100%;padding:12px;border:1px solid #cfd7cd;border-radius:8px;background:#fff;color:#24362f;font-size:16px;min-height:46px;margin-top:7px}nav{display:flex;gap:25px;border-bottom:1px solid var(--line);margin-bottom:25px;overflow:auto}nav button{background:none;color:var(--muted);border-radius:0;white-space:nowrap;padding:12px 1px;border-bottom:3px solid transparent}nav button.active{color:var(--green);border-bottom-color:var(--green)}.stats{display:grid;grid-template-columns:repeat(3,1fr);background:var(--green);color:#fff;border-radius:14px;padding:25px 12px;margin-bottom:30px}.stat{padding:0 22px;border-right:1px solid #ffffff25}.stat:last-child{border:0}.stat small{display:block;font-size:11px;color:#bed1c5;margin-bottom:10px}.stat strong{font-size:30px;font-weight:550;font-variant-numeric:tabular-nums}.stat em{font-style:normal;font-size:12px;margin-left:5px;color:#bed1c5}.section-head{display:flex;justify-content:space-between;align-items:center;margin:8px 0 15px}.section-head h2{margin:0}.section-head span{font-size:11px;color:var(--muted)}.ranking{background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}.rank-row{display:grid;grid-template-columns:44px 1fr 90px 90px 110px;align-items:center;padding:19px 22px;border-bottom:1px solid #edf0e9;gap:10px}.rank-row:last-child{border:0}.rank-row.labels{padding-top:13px;padding-bottom:13px;background:#fafbf7;font-size:10px;color:var(--muted)}.rank-no{font-family:Georgia,serif;font-size:23px;color:#9aa298}.rank-row.first .rank-no{color:#a98533}.player-name{background:none;text-align:left;padding:0;min-height:44px;color:#24362f}.avatar{display:inline-grid;place-items:center;background:#eef1e8;border-radius:50%;width:34px;height:34px;margin-right:10px;font-size:12px;color:#5b7460}.number{text-align:right;font-variant-numeric:tabular-nums}.number b{font-size:21px;font-weight:600}.positive{color:#16694c}.negative{color:#a96550}.tiny{display:block;color:var(--muted);font-size:10px;margin-top:5px}.panel{background:white;border:1px solid var(--line);padding:24px;border-radius:12px;margin-bottom:18px}.matches{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.match-head{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:12px}.match-head strong{font-size:13px}.match-head small{color:var(--muted)}.score-line{display:grid;grid-template-columns:22px 1fr 65px 52px;gap:8px;align-items:center;font-size:13px;padding:9px 0}.score-line b{font-weight:600}.seat{color:var(--muted);font-size:11px}.personal-top{max-width:300px;margin-bottom:22px}.detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.metric{background:white;border:1px solid var(--line);padding:20px;border-radius:10px}.metric small{font-size:11px;color:var(--muted);display:block;margin-bottom:10px}.metric strong{font-size:26px}.rank-bars{display:flex;overflow:hidden;border-radius:6px;height:22px;margin:18px 0}.rank-bars span{display:block;min-width:0}.bar1{background:#215e4c}.bar2{background:#89a98b}.bar3{background:#bcbfa0}.bar4{background:#dac5b0}.legend{display:flex;justify-content:space-between;font-size:11px;color:var(--muted)}.entry-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin:20px 0}.entry-seat{padding:20px;border:1px solid var(--line);border-radius:10px;background:#fff}.entry-seat h2{margin:0 0 13px;color:var(--green)}.entry-seat label+label{margin-top:12px}.primary{background:var(--green);color:white;min-width:150px}.actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.total{font-size:18px;font-variant-numeric:tabular-nums;margin-right:auto}.total small{font-size:12px;color:var(--muted)}.notice,#message{background:#eee7d3;padding:12px 16px;border-radius:8px;font-size:13px;margin-bottom:20px}#message.error{background:#f9e5df;color:#934835}.empty{padding:45px;text-align:center;color:var(--muted)}footer{margin-top:40px;padding-top:20px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;font-size:9px;letter-spacing:1px;color:#919a90}dialog{border:1px solid var(--line);border-radius:15px;padding:30px;max-width:420px;width:calc(100% - 32px);color:#24362f}dialog::backdrop{background:#122c2460}dialog p{font-size:13px;color:var(--muted)}.close{float:right;font-size:24px;padding:0;min-width:40px}#login-error{color:#a44c39}dialog .primary{width:100%;margin-top:15px}.confirm{margin-top:22px}.confirm strong{color:var(--green)}[hidden]{display:none!important}@media(max-width:650px){header{padding:19px 18px}.brand{font-size:21px}.brand small{font-size:9px;letter-spacing:0}.quiet{padding:8px;font-size:11px}main{padding:25px 16px}h1{font-size:26px}.intro{align-items:flex-start;flex-direction:column}.intro label{width:100%}.intro select{padding:10px;font-size:14px}nav{gap:23px}nav button{font-size:13px}.stats{padding:22px 2px;border-radius:10px}.stat{padding:0 14px}.stat strong{font-size:25px}.stat small{font-size:10px}.rank-row{grid-template-columns:25px 1fr 55px 74px;padding:14px 12px;gap:6px}.rank-row .games-col{display:none}.avatar{width:27px;height:27px;margin-right:6px}.player-name{font-size:13px}.number b{font-size:18px}.matches{grid-template-columns:1fr}.detail-grid{grid-template-columns:repeat(2,1fr)}.metric{padding:17px}.entry-grid{gap:10px}.entry-seat{padding:13px}.entry-seat h2{font-size:18px}.entry-seat select{font-size:14px}.actions .primary{flex:1}.total{width:100%;margin-bottom:10px}.panel{padding:18px}footer{gap:8px}.section-head span{font-size:10px}.rank-row.labels{font-size:9px}}
.chart-panel{margin-top:24px}.chart-panel h2{margin:0 0 8px}.chart-note{font-size:12px;color:var(--muted);margin:0 0 18px}.chart-svg{display:block;width:100%;height:auto;max-width:780px;margin:auto;overflow:visible}.chart-label{font-size:14px;fill:#53675c}.chart-value{font-size:15px;font-weight:600;fill:#24362f}.chart-zero{stroke:#7d8e83;stroke-width:1}.chart-grid{stroke:#e1e4da;stroke-width:1}.chart-plus,.chart-place-1{fill:#21694f}.chart-minus{fill:#b86b54}.chart-place-2{fill:#89a98b}.chart-place-3{fill:#bcbfa0}.chart-place-4{fill:#dac5b0}.chart-line{fill:none;stroke:#21694f;stroke-width:3;stroke-linejoin:round;stroke-linecap:round}.chart-dot{fill:#21694f;stroke:white;stroke-width:1}.chart-data{margin-top:14px;font-size:12px;color:var(--muted)}.chart-data summary{cursor:pointer;padding:12px 0;min-height:44px}.chart-table{overflow:auto}.chart-table table{width:100%;border-collapse:collapse;color:#24362f}.chart-table th,.chart-table td{padding:10px;border-bottom:1px solid var(--line);text-align:left;font-weight:400}.chart-table td{text-align:right;font-variant-numeric:tabular-nums}@media(max-width:650px){.chart-panel{padding:14px}.chart-label{font-size:18px}.chart-value{font-size:20px}.chart-note{font-size:11px}}
