:root{font-family:Inter,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,Arial,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;color:#203447;background:#eaf0f3}*{box-sizing:border-box}body{margin:0}button,input,textarea{font:inherit}button{border:0;cursor:pointer}button:disabled{opacity:.37;cursor:default}button:focus-visible{outline:3px solid #6bdfc4;outline-offset:2px}button:active{transform:scale(.995)}.shell{min-height:100vh;min-height:100dvh;display:flex;gap:clamp(30px,7vw,118px);justify-content:center;align-items:center;padding:25px;background:radial-gradient(ellipse at 77% 30%,#d1e9e1 0,transparent 36%),#e9eff3}.desktop-rail{width:425px;max-width:42vw;color:#1c3750}.rail-brand{display:flex;align-items:center;gap:13px;font-size:22px;font-weight:900}.brand-symbol{width:48px;height:48px;border-radius:15px;background:#20384c;display:flex;justify-content:center;align-items:center;color:#56e4bf;font-size:28px}.rail-brand small{font-size:12px;color:#80909f;letter-spacing:3px}.rail-eyebrow{margin-top:65px;font-size:12px;letter-spacing:4px;font-weight:850;color:#00a887}.desktop-rail h1{font-size:clamp(38px,3.6vw,56px);line-height:1.25;letter-spacing:-2px;margin:20px 0}.desktop-rail h1 em{color:#0eb793;font-style:normal}.desktop-rail p{font-size:15px;color:#7c8b9c;line-height:1.95}.rail-feature{display:flex;gap:10px;flex-wrap:wrap;margin-top:25px}.rail-feature span{background:#ffffffab;padding:11px 13px;border:1px solid #dce5e8;border-radius:12px;font-size:12px;font-weight:800;color:#496475}.rail-foot{border-top:1px solid #cfdce0;margin-top:52px;padding-top:18px;display:flex;gap:10px;align-items:center;color:#8596a2;font-size:12px}.live-dot{width:8px;height:8px;background:#1fbd9e;box-shadow:0 0 0 4px #c9f4e9;border-radius:50%}.device{width:418px;height:min(870px,calc(100dvh - 40px));min-height:630px;display:flex;flex-direction:column;flex-shrink:0;background:#f6f8fa;position:relative;overflow:hidden;border-radius:38px;border:7px solid #24384a;box-shadow:0 32px 105px #23415a37,0 10px 30px #22364c22}.app-head{height:70px;background:#fff;display:flex;justify-content:space-between;align-items:center;padding:0 19px;flex-shrink:0}.head-brand{display:flex;align-items:center;gap:6px;font-size:19px;font-weight:900}.head-brand small{font-size:10px;color:#8296a2;font-weight:850;letter-spacing:2px}.head-spark{color:#15bca0;font-size:26px}.share-btn{background:#ecf8f3;color:#248878;padding:9px 13px;border-radius:20px;font-size:11px;font-weight:800}.scroller{flex:1;overflow:auto;overscroll-behavior:contain;scrollbar-width:none;padding-bottom:23px}.scroller::-webkit-scrollbar{display:none}.intro-card{margin:14px 14px 0;padding:25px 20px 19px;background:linear-gradient(124deg,#1b2e4c,#1b4255 75%,#137569 120%);border-radius:22px;color:#fff;position:relative;overflow:hidden}.intro-decoration{position:absolute;width:150px;height:150px;border:23px solid #ffffff08;border-radius:50%;right:-34px;top:-48px}.eyebrow{position:relative;color:#a1e8d8;letter-spacing:2.2px;font-weight:800;font-size:9px}.intro-card h2{font-size:22px;font-weight:900;line-height:1.35;margin:12px 0 8px;position:relative}.intro-card h2 span{font-size:19px}.intro-card p{font-size:11px;color:#b8d3d6;position:relative;margin:0}.intro-stats{position:relative;border-top:1px solid #ffffff2b;display:flex;align-items:center;justify-content:space-around;margin-top:22px;padding-top:16px}.intro-stats div{display:flex;align-items:baseline;gap:5px}.intro-stats strong{font-size:25px}.intro-stats small{color:#abced1;font-size:10px}.intro-stats i{height:24px;width:1px;background:#ffffff28}.section-heading{display:flex;align-items:center;justify-content:space-between;margin:22px 18px 11px;gap:10px}.section-heading h3{font-size:17px;margin:0 0 6px;line-height:1;font-weight:900}.section-heading p{font-size:11px;margin:0;color:#94a1af}.section-badge{font-size:9px;color:#a9b4c0;letter-spacing:1px}.panel{margin:0 14px;background:#fff;padding:17px;border-radius:19px;box-shadow:0 9px 24px #183e5806}.field-title{font-size:12px;font-weight:800;color:#607487}.mode-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:13px}.mode-option{display:flex;flex-direction:column;gap:4px;text-align:left;background:#f8fafb;border:1px solid #ebeff2;border-radius:13px;padding:12px;min-height:97px;color:#253d4c}.mode-option.active{background:#e6f9f2;border-color:#24c8a2}.mode-option b{font-size:13px}.mode-option small{color:#869aaa;font-size:10px}.mode-ico{font-size:23px;font-weight:900;color:#13b998;line-height:1.1}.setting-row{display:flex;align-items:center;justify-content:space-between;padding:14px 0;border-bottom:1px solid #edf2f4;font-size:13px;color:#5e7281}.setting-row:last-child{border:0;padding-bottom:2px}.stepper{display:flex;align-items:center;gap:9px}.stepper button{width:32px;height:32px;border-radius:10px;background:#f1f6f7;color:#617c8d;font-size:19px;font-weight:900}.stepper input{width:56px;height:44px;padding:0 4px;text-align:center;font-size:15px;font-weight:800;color:#20374c;background:#f4f8f9;border:1px solid #dce7eb;border-radius:10px;font-variant-numeric:tabular-nums}.inline-link{color:#12ab90;background:none;font-size:12px;font-weight:850;white-space:nowrap}.num-mini{font-size:10px;background:#e6f7f1;color:#14ad8e;border-radius:9px;padding:2px 5px;vertical-align:middle}.people-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px 7px}.person{display:flex;align-items:center;flex-direction:column;gap:6px;min-width:0}.person small{font-size:11px;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#566e7e}.avatar{width:34px;height:34px;border-radius:50%;display:flex;justify-content:center;align-items:center;font-size:13px;background:#dbf6eb;color:#208b73;font-weight:850}.avatar.v1{background:#e9ecff;color:#7c81ba}.avatar.v2{background:#ffeed7;color:#b9873d}.avatar.v3{background:#fee9ed;color:#c5748e}.avatar.v4{background:#e1f1fd;color:#5e8cbc}.dashed-import{width:100%;background:#f6fcf9;border:1px dashed #a9d9c9;color:#159e84;padding:13px;border-radius:13px;font-size:12px;font-weight:850;margin-top:16px}.note{margin:12px 18px;font-size:11px;color:#97a3ae;line-height:1.7}.warning,.parse-warning{color:#be8350}.big-primary{display:flex;align-items:center;justify-content:center;gap:10px;background:#1bbc9d;color:#fff;border-radius:14px;height:50px;width:calc(100% - 28px);margin:18px 14px;box-shadow:0 8px 19px #1abd9b35;font-size:14px;font-weight:900}.big-primary span{font-size:18px}.mini-action{background:#e6f7ef;color:#12a78c;font-size:11px;padding:9px 12px;border-radius:20px;font-weight:800;white-space:nowrap}.round-switch{display:flex;align-items:center;justify-content:space-between;margin:3px 22px 15px}.round-switch button{height:39px;width:39px;border-radius:50%;background:#fff;color:#13b597;font-size:27px}.round-switch>div{display:flex;flex-direction:column;align-items:center;gap:3px}.round-switch>div small{font-size:9px;letter-spacing:2px;font-weight:900;color:#18a78b}.round-switch>div strong{font-size:16px}.match-card{background:#fff;border-radius:19px;margin:0 14px 12px;overflow:hidden;box-shadow:0 9px 24px #15364b08}.match-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:#f9fbfc;border-bottom:1px solid #edf1f3}.match-header b{display:flex;align-items:center;gap:7px;font-size:12px}.court-dot{width:7px;height:7px;display:inline-block;border-radius:50%;background:#1ac7a6}.match-header span{font-size:10px;background:#f0f3f5;color:#899aab;border-radius:12px;padding:5px 9px}.match-header span.finished{background:#e9f8f1;color:#10ab89}.game-body{display:flex;align-items:center;justify-content:space-between;padding:17px 14px 12px;gap:2px}.side{display:flex;flex-direction:column;align-items:flex-start;width:43%;min-width:0;gap:9px}.side small{font-size:9px;color:#a4b1bc;letter-spacing:1.5px;font-weight:900}.player-btn{background:transparent;padding:2px 3px;display:flex;align-items:center;gap:6px;border-radius:9px;min-height:28px;max-width:100%;white-space:nowrap;color:#223649}.player-btn b{font-size:13px;text-overflow:ellipsis;overflow:hidden}.player-btn.selected,.rests .selected{outline:2px solid #35c9a6;background:#e7faf4}.mini-avatar{width:24px;height:24px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:800;font-style:normal}.warm{background:#fff1e6;color:#bd8058}.cool{background:#ddf8ec;color:#12a88a}.vs-word{font-size:13px;font-weight:850;color:#b0bbc6;text-align:center;display:flex;align-items:center;flex-direction:column;gap:10px}.vs-word span{height:23px;width:1px;background:#e5eced}.game-foot{display:flex;align-items:center;gap:7px;padding:12px;border-top:1px solid #edf1f3}.game-foot>span{font-size:10px;color:#8ea1af;margin-right:auto}.game-foot .manual-flag{color:#c28c53}.subtle-btn,.solid-btn{border-radius:10px;padding:10px 11px;font-size:11px;font-weight:850;white-space:nowrap}.subtle-btn{background:#f1f5f7;color:#5f7584}.solid-btn{background:#1dbd9b;color:#fff}.final-score{display:flex;justify-content:center;gap:18px;font-size:25px;font-weight:900;padding:0 0 14px}.final-score i{color:#b4c4cb;font-style:normal}.rest-panel{margin:0 14px 12px;padding:17px;background:#e7f6f1;border-radius:18px;color:#337e72}.rest-panel b{font-size:12px}.rests{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px;font-size:11px}.rests button{background:#fff;border-radius:18px;padding:7px 10px;color:#408475;font-size:11px}.edit-hint,.summary-note{font-size:11px;color:#95a3b0;line-height:1.7;margin:14px 20px;text-align:center}.edit-hint{color:#ba8552;text-align:left}.empty{display:flex;align-items:center;justify-content:center;flex-direction:column;min-height:235px;gap:9px}.empty>span{font-size:46px}.empty h3{margin:0}.empty p{font-size:12px;color:#95a6b3}.empty button{border-radius:10px;background:#18b998;padding:12px 18px;color:#fff}.record-stats{display:flex;justify-content:space-around;padding:23px 10px;margin:0 14px 14px;border-radius:18px;background:#1a3b51}.record-stats div{display:flex;flex-direction:column;align-items:center;gap:3px}.record-stats strong{color:#fff;font-size:24px}.record-stats small{font-size:10px;color:#bfd2d5}.records-card{padding-top:0;padding-bottom:0}.record-item{display:block;background:transparent;border-bottom:1px solid #edf1f4;width:100%;padding:17px 0;text-align:left;color:#2a4151}.record-item:last-child{border:0}.record-item>div{display:flex;justify-content:space-between;font-size:11px;color:#9cabb6}.record-item small{font-size:10px}.record-item small.ok{color:#1eac92}.record-item section{display:flex;align-items:center;justify-content:space-between;gap:9px;margin-top:11px}.record-item section b{font-size:11px;line-height:1.4;flex:1;min-width:0}.record-item section b:last-child{text-align:right}.record-item section strong{white-space:nowrap;font-size:15px}.rank-badge{font-size:11px;font-weight:800;border-radius:17px;background:#e7f8ee;color:#0aa88b;padding:8px 12px}.winner{margin:0 14px 13px;background:linear-gradient(130deg,#1b2f4e,#205467);border-radius:17px;color:#fff;display:flex;align-items:center;flex-direction:column;padding:20px 12px;gap:7px}.crown{color:#eec568;font-size:27px}.winner-avatar{height:45px;width:45px;border:3px solid #9addcd;border-radius:50%;background:#d8f5e9;color:#258672;font-size:18px;display:flex;justify-content:center;align-items:center;font-weight:850}.winner b{font-size:15px}.winner small{font-size:10px;color:#bfdbd9}.ranking-card{padding:8px 10px}.ranking-row{display:grid;grid-template-columns:2.5fr .58fr .58fr .78fr .78fr;gap:2px;align-items:center;text-align:center;font-size:10px;min-height:48px;border-top:1px solid #edf2f4;color:#698090}.ranking-row:first-child{border:0}.ranking-row.heading{min-height:35px;color:#9faab7}.ranking-row>span:first-child{text-align:left}.ranking-name{display:flex;align-items:center;gap:7px;min-width:0;font-weight:800;color:#324b60;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ranking-name i{font-style:normal;font-weight:900;color:#9aabb7;min-width:12px}.ranking-name i.rank-top{color:#cc9a3b}.green{color:#13a78c;font-weight:850}.bottom-nav{height:66px;flex-shrink:0;display:flex;justify-content:space-around;align-items:center;background:#fff;border-top:1px solid #e9eff2;padding-bottom:env(safe-area-inset-bottom);box-sizing:content-box}.bottom-nav button{display:flex;align-items:center;flex-direction:column;justify-content:center;gap:3px;flex:1;height:100%;background:none;color:#9daab5;font-size:10px;font-weight:750}.bottom-nav button.active{color:#0fa88a}.nav-icon{font-size:24px;height:27px;line-height:1}.overlay{position:absolute;inset:0;background:#10243899;z-index:20;display:flex;align-items:flex-end;justify-content:center}.sheet{width:100%;max-height:89%;overflow-y:auto;background:#fff;border-radius:25px 25px 0 0;padding:22px 20px calc(26px + env(safe-area-inset-bottom));scrollbar-width:thin}.sheet-head{display:flex;justify-content:space-between;align-items:center}.sheet-head h3{margin:0;font-size:19px}.sheet-head button{background:none;color:#96a6b2;font-size:27px}.sheet-note{font-size:11px;color:#8f9fac;line-height:1.7;margin:10px 0 14px}.sheet textarea{width:100%;border:1px solid #e2ebee;outline:0;border-radius:13px;background:#f7f9fa;padding:12px;color:#304859;font-size:12px;line-height:1.6;resize:vertical}.sheet textarea:focus,.add-person input:focus{border-color:#22bf9d}.sheet-actions{display:flex;gap:9px;margin-top:13px}.sheet-actions button{flex:1;min-height:43px;border-radius:11px;background:#eff3f5;color:#526c7c;font-size:12px;font-weight:800}.sheet-actions button.solid{background:#1cbd9e;color:#fff}.parse-warning{font-size:11px}.sheet-subtitle{font-size:12px;font-weight:850;margin:18px 0 9px}.sheet-subtitle span{font-size:10px;color:#9cabb6;font-weight:500}.edit-roster{max-height:170px;overflow-y:auto;border:1px solid #edf1f4;border-radius:11px;padding:3px 10px}.edit-roster>div{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #f1f4f6;min-height:34px;font-size:12px}.edit-roster>div:last-child{border:0}.edit-roster button{background:#f4f7f8;border-radius:6px;margin-left:5px;min-height:28px;min-width:29px;color:#466378;font-size:15px}.add-person{display:flex;gap:8px;margin-top:12px}.add-person input{height:38px;min-width:0;flex:1;padding:7px 10px;border-radius:9px;background:#f7f9fa;border:1px solid #e1e9eb;font-size:12px}.add-person button{border-radius:9px;padding:0 12px;background:#e7f8f2;color:#159c82;font-size:11px;font-weight:850}.score-form{display:flex;align-items:center;justify-content:space-between;gap:9px;margin:19px 0}.score-form label{display:flex;align-items:center;flex-direction:column;gap:11px;flex:1;min-width:0}.score-form label small{color:#93a2ac;font-size:11px}.score-form label b{text-align:center;font-size:12px;min-height:30px}.score-form input{width:100%;max-width:137px;height:77px;background:#f3f7f8;border:0;text-align:center;border-radius:13px;font-size:34px;color:#19394f;font-weight:900}.score-form>span{color:#b5c4cd;font-size:28px;margin-top:33px}.toast{position:absolute;z-index:40;bottom:90px;left:50%;transform:translate(-50%);max-width:87%;background:#1e3c50ed;border-radius:11px;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:11px 16px;font-size:11px;box-shadow:0 8px 24px #223a4a27}@media(max-width:860px){.shell{padding:0;align-items:stretch;gap:0;min-height:100dvh}.desktop-rail{display:none}.device{border:0;border-radius:0;box-shadow:none;width:100%;max-width:580px;height:100dvh;min-height:0;margin:0 auto}.app-head{padding-top:env(safe-area-inset-top);box-sizing:content-box}}@media(max-width:350px){.intro-card h2{font-size:20px}.player-btn b{font-size:12px}.side{width:44%}.mode-option{padding:10px}.ranking-row{font-size:9px}}.feature-fields{border:0;margin:0;padding:0;min-width:0}.form-field{display:flex;flex-direction:column;gap:7px;font-size:12px;font-weight:750;color:#567080;margin-bottom:15px}.form-field input{min-width:0;width:100%;min-height:44px;border:1px solid #dce7eb;border-radius:10px;padding:10px 12px;color:#203447;background:#f8fafb;outline-color:#1bbc9d}.setting-row select{max-width:180px;background:#f4f8f9;border:1px solid #dce7eb;border-radius:9px;padding:10px;font-size:11px;color:#476575}.save-config{background:#edf8f3;color:#12876f;width:100%;border-radius:10px;min-height:44px;font-size:12px;font-weight:800;margin-top:12px}.pair-banner{margin:14px 18px;color:#647e8b;font-size:11px;line-height:1.7}.publish-banner{display:flex;align-items:center;justify-content:space-between;margin:0 14px 16px;padding:10px 12px;background:#fff3de;color:#996723;border-radius:12px;gap:12px;font-size:11px}.activity-toolbar{display:flex;align-items:center;gap:6px;margin:16px 14px}.activity-toolbar select{flex:1;min-width:0;height:44px;background:#fff;border:1px solid #e3ebee;border-radius:10px;padding:7px;font-size:12px;color:#25465a}.activity-toolbar button,.readonly-note button{background:#e4f7ef;color:#148d77;border-radius:10px;min-height:44px;padding:8px 10px;font-size:11px;white-space:nowrap}.readonly-note{display:flex;justify-content:space-between;align-items:center;margin:15px 18px;font-size:11px;color:#657f8d}.login-panel{margin-top:22px}.login-intent{margin:10px 0 4px;padding:10px 12px;border-radius:10px;background:var(--brand-light);color:var(--brand);font-size:12px;line-height:1.6;font-weight:700}.login-panel h3{font-size:18px;margin:3px 0}.login-submit{width:100%;min-height:46px}.error-banner{margin:14px;padding:12px;border-radius:10px;background:#fff0e7;color:#945221;font-size:12px;line-height:1.6}.error-banner button{display:block;color:#945221;background:transparent;text-decoration:underline;min-height:44px}.loading-line{height:3px;font-size:0;flex-shrink:0;background:transparent}.loading-line.visible{background:#22bc9c}.pair-row{display:flex;align-items:center;gap:8px;margin:12px 0}.pair-row span{font-size:12px;color:#7e94a4}.pair-row select{flex:1;min-width:0;min-height:44px;border:1px solid #dbe6eb;background:#f7fafb;border-radius:9px;padding:8px;font-size:12px;color:#355366}.edit-roster>div{gap:5px}.edit-roster input{flex:1;min-width:0;width:45%;border:0;background:#f8fafb;padding:8px;font-size:12px;color:#355366;border-radius:7px}.edit-roster>div>div{display:flex;flex-shrink:0}.toast{white-space:normal;line-height:1.5;width:max-content}.section-heading p,.sheet-note,.note,.summary-note{color:#627989}.sheet-head button,.inline-link,.mini-action,.share-btn,.subtle-btn,.solid-btn,.stepper button,.edit-roster button,.rests button,.player-btn{min-height:44px}.stepper button,.edit-roster button,.sheet-head button{min-width:44px}.sheet{outline:none}.edit-roster{max-height:220px}.ranking-row{grid-template-columns:minmax(0,2.5fr) .58fr .58fr .78fr .78fr}.bottom-nav button{min-height:44px}.side{gap:4px}.game-foot{padding:10px;gap:5px}.game-foot>span{font-size:9px}.solid-btn,.subtle-btn{padding:8px;font-size:11px}.match-header span{color:#617a8d}.intro-card p{color:#c4dbdf}.device{max-width:100%}button:disabled{cursor:not-allowed}input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid #18b899;outline-offset:2px}@media(max-width:350px){.game-foot>span{font-size:8px}.solid-btn,.subtle-btn{font-size:10px;padding:7px}.activity-toolbar{gap:4px}.activity-toolbar button{padding:6px}.intro-card{padding:22px 16px}.intro-stats strong{font-size:23px}.ranking-name{font-size:9px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}button:active{transform:none}}.auth-switch{display:flex;gap:8px;margin-bottom:18px}.auth-switch button{flex:1;min-height:44px;border-radius:10px;background:#f2f6f7;color:#627989;font-weight:750}.auth-switch button.active{background:#e4f7ef;color:#138d76}.form-field small{font-weight:400;color:#627989;font-size:11px}.form-field select{min-width:0;width:100%;min-height:44px;border:1px solid #dce7eb;border-radius:10px;padding:10px;background:#f8fafb;color:#203447}.personal-panel h3{font-size:15px;margin:0}.personal-panel .save-config{margin:0 0 16px}.full-width{width:100%}.claim-row{display:flex;flex-direction:column;gap:7px;border-top:1px solid #edf1f4;padding-top:14px;margin-top:14px;font-size:12px}.claim-row b{display:flex;flex-direction:column;gap:5px}.claim-row small,.claim-request small{font-weight:400;color:#627989;font-size:11px}.claim-row>span{font-size:11px;color:#627989}.claim-row>.inline-link{align-self:flex-start}.claim-request{padding:12px 0;border-bottom:1px solid #edf1f4;font-size:12px}.claim-request:last-child{border:0}.personal-activity{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:52px;text-align:left;border-bottom:1px solid #edf1f4;background:#fff;color:#294659;font-size:12px}.personal-activity:last-child{border:0}.personal-activity b{overflow-wrap:anywhere}.personal-activity span{font-size:11px;white-space:nowrap;color:#148d77}.personal-match>div{gap:8px}.personal-match>div>span{min-width:0;overflow-wrap:anywhere}.personal-match>div>small{flex-shrink:0}.readonly-note{gap:8px}.readonly-note a{color:#148d77;font-size:11px;min-height:44px;display:flex;align-items:center}:root{--brand:#355fcc;--brand-light:#edf3ff;--ink:#22344d;--muted:#64748b;--line:#e0e8f2;--page:#f3f6fb;--surface:#fff;--green:#137a66;--amber:#9a6418}body{background:var(--page);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif}.shell{padding:0;min-height:100dvh;display:flex;justify-content:center;align-items:stretch;background:var(--page)}.device{width:100%;max-width:640px;height:100dvh;min-height:0;border:0;border-radius:0;box-shadow:none;background:var(--page);overflow:hidden}.app-head{height:62px;padding:0 20px;padding-top:env(safe-area-inset-top);box-sizing:content-box;border-bottom:1px solid var(--line);background:#edf4ff}.app-icon{width:24px;height:24px;flex-shrink:0;display:inline-block;vertical-align:middle}.head-brand{display:flex;gap:8px;align-items:center;background:transparent;color:var(--ink);min-height:44px;padding:0}.head-brand>.app-icon{color:var(--brand)}.head-brand b{font-size:19px}.head-brand small{font-size:11px;letter-spacing:1px;color:var(--muted)}.head-account{font-size:12px;color:var(--muted);max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scroller{padding:0 0 24px}.loading-line.visible{background:var(--brand)}.section-heading{margin:24px 20px 12px;align-items:center}.section-heading h3{font-size:16px;line-height:1.4;margin:0}.section-heading p{font-size:11px;color:var(--muted);line-height:1.6;margin:4px 0 0}.section-heading small{font-size:12px;font-weight:500;color:var(--muted)}.panel{margin:0 16px;padding:16px;border-radius:16px;background:var(--surface);box-shadow:none;border:1px solid var(--line)}button{transition:background-color .15s,color .15s,opacity .15s}button:active{transform:none;opacity:.8}button:disabled{opacity:.5}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--brand);outline-offset:3px}.solid-btn,.big-primary,.empty button,.sheet-actions button.solid{background:var(--brand);color:#fff;box-shadow:none}.solid-btn{padding:10px 12px;font-size:12px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:5px}.solid-btn .app-icon{width:17px;height:17px}.subtle-btn,.mini-action,.share-btn,.save-config{background:var(--brand-light);color:var(--brand);font-size:12px;min-height:44px;padding:10px 12px}.mini-action{border-radius:10px}.inline-link{color:var(--brand);font-size:12px}.big-primary{margin:18px 16px;width:calc(100% - 32px);border-radius:12px;height:48px;font-size:14px}.note,.sheet-note,.summary-note{color:var(--muted);font-size:11px;line-height:1.7}.note{margin:12px 20px}.error-banner{font-size:12px;margin:14px 16px}.empty p{margin:0 20px;text-align:center;line-height:1.7}.empty{min-height:220px}.empty-filter{padding:32px 20px;text-align:center;color:var(--muted);font-size:12px}.home-welcome{padding:28px 20px 24px;display:flex;justify-content:space-between;gap:12px;align-items:center}.home-welcome p{font-size:12px;color:var(--brand);margin:0 0 9px}.home-welcome h2{font-size:25px;margin:0 0 8px;letter-spacing:-.5px}.home-welcome span{font-size:12px;color:var(--muted)}.welcome-icon{background:#e6eeff;color:var(--brand);height:62px;width:62px;display:grid;place-items:center;border-radius:20px}.welcome-icon .app-icon{width:36px;height:36px}.home-tools{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:0 16px}.tool-card{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:9px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px 14px;text-align:left;color:var(--ink);min-height:164px}.tool-card b{font-size:17px}.tool-card small{font-size:10px;color:var(--muted);line-height:1.6}.tool-icon{height:40px;width:40px;display:grid;place-items:center;border-radius:12px;background:var(--brand-light);color:var(--brand);margin-bottom:3px}.wallet-icon{background:#edf7f0;color:#267a56}.tool-arrow{position:absolute;top:20px;right:14px;width:17px;height:17px;color:#8595ad}.home-current{margin-top:20px}.home-current .section-heading{margin:0 0 12px}.home-current h2{font-size:18px;margin:0 0 7px;overflow-wrap:anywhere}.home-current>p{font-size:12px;color:var(--muted);margin:0}.home-progress{display:flex;gap:16px;margin:18px 0;font-size:11px;color:var(--muted)}.home-progress strong{font-size:20px;margin-right:3px;color:var(--ink)}.home-empty{text-align:center;padding:12px 4px;font-size:12px;color:var(--muted)}.home-empty p{line-height:1.7}.personal-entry{margin:20px 16px 0;width:calc(100% - 32px);display:flex;align-items:center;gap:12px;padding:16px;border:1px solid var(--line);border-radius:16px;background:#fff;text-align:left;color:var(--brand)}.personal-entry span{display:flex;flex:1;flex-direction:column;gap:6px}.personal-entry b{font-size:14px;color:var(--ink)}.personal-entry small{font-size:11px;color:var(--muted)}.activity-summary{padding:20px 20px 0}.activity-summary h2{font-size:20px;margin:0 0 7px;overflow-wrap:anywhere}.activity-summary p{font-size:12px;margin:0;color:var(--muted)}.activity-toolbar{margin:16px;gap:8px}.activity-toolbar button{background:var(--brand-light);color:var(--brand);padding:8px 12px}.activity-toolbar select{border-color:var(--line);color:var(--ink);font-size:12px}.readonly-note{margin:12px 20px;color:var(--muted)}.readonly-note button{background:var(--brand-light);color:var(--brand)}.readonly-note a{color:var(--brand)}.detail-tabs{display:flex;margin:0 16px;background:#fff;padding:5px;border:1px solid var(--line);border-radius:12px;gap:4px}.detail-tabs button{flex:1;background:transparent;color:var(--muted);font-size:13px;min-height:44px;border-radius:9px;font-weight:750}.detail-tabs button.active{background:var(--brand-light);color:var(--brand)}.match-filters{display:flex;gap:6px;margin:0 16px 16px;position:sticky;top:0;z-index:3;background:var(--page);padding:5px 0}.match-filters button{flex:1;min-width:0;min-height:57px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;background:#fff;color:var(--muted);border:1px solid var(--line);border-radius:11px;font-size:10px}.match-filters strong{font-size:17px;line-height:1}.match-filters button.active{color:var(--brand);background:#e9efff;border-color:#b9c8ed}.match-card{margin:0 16px 14px;border:1px solid #dbe4f3;border-radius:17px;box-shadow:0 3px 12px #263c6310;overflow:hidden;background:#fff}.match-card.is-running{border-color:#9bcabf}.match-header{padding:13px 16px;background:#f8faff;border-bottom:1px solid #e7edf6}.match-header>div{display:flex;flex-direction:column;gap:4px;min-width:0}.match-header b{font-size:15px;color:var(--ink)}.match-header small{font-size:11px;color:var(--muted);overflow-wrap:anywhere;line-height:1.5}.match-header .match-status,.match-status{font-size:10px;padding:6px 9px;background:#f0f3f7;color:#526079;border-radius:20px;white-space:nowrap;flex-shrink:0}.match-status.in_progress{background:#e8f6f0;color:var(--green)}.match-status.finished{background:#eaf0ff;color:var(--brand)}.match-status.blocked{background:#fff3df;color:var(--amber)}.game-body{display:grid;grid-template-columns:minmax(0,1fr) 84px minmax(0,1fr);gap:6px;align-items:center;padding:18px 14px}.side{width:auto;gap:12px;min-width:0;display:flex;align-items:flex-start}.team-right{align-items:flex-end}.player-btn{padding:0;max-width:100%;min-height:32px;gap:7px}.player-btn:disabled{opacity:1;color:inherit;cursor:default}.player-btn b{font-size:12px;line-height:1.5;min-width:0;font-weight:750}.mini-avatar{height:28px;width:28px;font-size:12px;background:#e7efff;color:#5472ad}.mini-avatar.warm{background:#ebf1f8;color:#5c708e}.vs-word{font-size:19px;color:#8093b3;gap:6px}.vs-word small{font-size:10px;color:var(--green);font-weight:500}.final-score{font-size:22px;display:flex;gap:6px;padding:0;align-items:center;justify-content:center;color:var(--brand);font-variant-numeric:tabular-nums}.final-score i{font-size:15px;color:#93a2ba}.game-foot{border-top:1px solid #e9eef5;display:flex;flex-direction:column;gap:8px;align-items:stretch;padding:10px 12px;background:#fcfdff}.match-actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.match-actions button{flex:1;padding:9px 7px;font-size:11px;white-space:nowrap}.start-match{min-width:96px}.match-footnote{display:flex;align-items:center;gap:5px;font-size:10px;color:var(--muted);line-height:1.6}.match-footnote .app-icon{width:14px;height:14px;color:var(--brand)}.edit-tools{margin:0 16px 16px;background:#eef3fd;border:1px solid var(--line);border-radius:12px;padding:12px;color:#516783;font-size:11px}.edit-tools p{margin:0;line-height:1.7}.rests button{color:var(--brand)}.rests small{font-size:10px}.player-btn.selected,.rests .selected{outline-color:var(--brand);background:var(--brand-light)}.form-field input,.form-field select{background:#f9fbfe;border-color:var(--line);color:var(--ink);outline-color:var(--brand)}.form-field small{color:var(--muted)}.auth-switch button.active{background:var(--brand-light);color:var(--brand)}.login-panel{margin-top:20px}.mode-option.active{background:var(--brand-light);border-color:#7e9be0}.mode-ico,.num-mini{color:var(--brand)}.dashed-import{background:#f5f8ff;color:var(--brand);border-color:#a6b9e5}.stepper button{color:var(--brand)}.stepper input{background:#f7faff;border-color:var(--line);color:var(--ink)}.avatar{background:#e9effc;color:#4e6a9e}.rank-badge{background:var(--brand-light);color:var(--brand)}.winner{background:#e9efff;color:var(--ink);border:1px solid #d4def3;box-shadow:none}.winner small{color:var(--muted)}.winner-avatar{background:#fff;color:var(--brand);border-color:#b6c9ee}.green{color:var(--brand)}.personal-panel{margin-top:20px}.identity-summary{font-size:14px;font-weight:750;min-height:28px;cursor:pointer;color:var(--ink)}.personal-panel[open] .identity-summary{margin-bottom:14px}.personal-activity{color:var(--ink);font-size:12px;min-height:56px}.personal-activity span,.claim-row>span.green{color:var(--brand)}.account-logout{margin:24px 16px 0;min-height:44px;width:calc(100% - 32px);border:1px solid var(--line);border-radius:12px;color:var(--muted);background:#fff;font-size:12px}.fee-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.fee-fields .form-field{margin-bottom:12px}.fee-totals .form-field input{font-size:18px;font-variant-numeric:tabular-nums;background:#f7faff}.fee-note input{font-size:12px!important}.bill-total{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding-top:14px;font-size:12px;color:var(--muted)}.bill-total strong{font-size:24px;color:var(--ink)}.fee-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:16px}.fee-summary>div{background:#eaf0fc;padding:14px 10px;border-radius:12px;display:flex;flex-direction:column;gap:7px;min-width:0}.fee-summary small{font-size:10px;color:var(--muted)}.fee-summary b{font-size:16px;color:var(--brand);overflow-wrap:anywhere}.fee-warning{margin:16px;background:#fff4df;color:var(--amber);font-size:11px;line-height:1.7;border-radius:12px;padding:12px}.fee-members{padding:0 16px}.fee-member{border-bottom:1px solid var(--line);padding:16px 0}.fee-member:last-child{border:0}.fee-member summary{display:flex;list-style:none;align-items:center;justify-content:space-between;gap:8px;cursor:pointer;min-height:44px}.fee-member summary::-webkit-details-marker{display:none}.fee-person{display:flex;gap:10px;align-items:center;min-width:0}.fee-person .avatar{flex-shrink:0;width:32px;height:32px;font-style:normal}.fee-person b{font-size:13px;overflow-wrap:anywhere}.fee-due{display:flex;align-items:flex-end;flex-direction:column;gap:5px;flex-shrink:0}.fee-due b{font-size:17px}.fee-due small{font-size:10px;color:var(--muted)}.fee-breakdown{display:flex;flex-wrap:wrap;gap:8px;font-size:10px;color:var(--muted);margin:8px 0}.fee-balance{font-size:11px;color:var(--amber)}.fee-balance.settled{color:var(--green)}.fee-person-fields{border-top:1px dashed var(--line);margin-top:14px;padding-top:8px}.fee-presets{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px}.fee-presets button{background:var(--brand-light);color:var(--brand);font-size:11px;min-height:44px;padding:8px 10px;border-radius:9px}.fee-member:not([open])>.fee-breakdown,.fee-member:not([open])>.fee-balance{display:none}.saved-message{margin:12px 20px;text-align:center;color:var(--green);font-size:12px}.bottom-nav{height:62px;border-color:var(--line);background:#fff;padding-bottom:env(safe-area-inset-bottom)}.bottom-nav button{gap:4px;font-size:11px;color:#7788a0}.bottom-nav button.active{color:var(--brand)}.bottom-nav .app-icon{width:23px;height:23px}.toast{bottom:84px;background:#2d4361;font-size:11px}.sheet-actions button.solid{background:var(--brand)}.sheet textarea{background:#f7faff;border-color:var(--line)}.add-person button{background:var(--brand-light);color:var(--brand)}@media(min-width:861px){.shell{padding:24px}.device{height:calc(100dvh - 48px);border-radius:24px;border:1px solid #dce5f2;box-shadow:0 20px 70px #28416415}.app-head{padding:0 24px}.home-tools{gap:16px}.game-body{grid-template-columns:minmax(0,1fr) 110px minmax(0,1fr)}.player-btn b{font-size:15px}.mini-avatar{height:34px;width:34px}.final-score{font-size:27px}}@media(max-width:350px){.home-welcome{padding:24px 16px}.home-welcome h2{font-size:22px}.home-welcome span{font-size:11px}.welcome-icon{width:48px;height:48px}.welcome-icon .app-icon{width:29px;height:29px}.tool-card{padding:14px 12px;min-height:155px}.tool-card b{font-size:15px}.tool-card small{font-size:9px}.game-body{grid-template-columns:minmax(0,1fr) 68px minmax(0,1fr);padding:16px 10px;gap:5px}.mini-avatar{height:24px;width:24px;font-size:10px}.player-btn{gap:5px}.player-btn b{font-size:11px}.final-score{font-size:19px;gap:4px}.match-actions button{font-size:10px;padding:9px 6px}.match-filters button{font-size:9px}.fee-summary b{font-size:14px}.fee-summary>div{padding:12px 8px}.fee-due b{font-size:15px}.home-progress{gap:12px}}.player-btn{min-height:44px}.player-btn:not(:disabled){cursor:pointer}.activity-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.activity-title-row h2{flex:1;min-width:0;margin:0}.activity-title-row .inline-link{flex-shrink:0}.activity-summary>p{margin-top:6px}.activity-summary{padding:16px 20px}.detail-tabs{margin-top:0}.fee-member summary:focus-visible{outline-color:var(--brand)}.schedule-actions{display:flex;gap:6px;flex-shrink:0}.schedule-actions button{font-size:11px;padding:8px 10px}.schedule-actions .subtle-btn{color:var(--muted);background:transparent}.setup-hint{margin:14px 20px 24px;font-size:12px;line-height:1.8;color:var(--muted)}.config-panel .save-config{background:var(--brand);color:#fff;margin-top:20px;min-height:48px;font-size:14px}.config-panel .save-config:disabled{opacity:.5}.gender-buttons{display:flex;gap:8px;flex-shrink:0}.gender-buttons .gender-button{width:44px;min-height:44px;border:1px solid transparent;border-radius:10px;font-size:14px;font-weight:700;padding:6px}.gender-buttons .gender-button.male{background:#edf3ff;color:#315bc9;border-color:#d9e5ff}.gender-buttons .gender-button.female{background:#fff0f6;color:#b52e69;border-color:#f9d9e8}.gender-buttons .gender-button.active{box-shadow:inset 0 0 0 2px currentColor}.gender-buttons .gender-button.male.active{background:#dfeaff}.gender-buttons .gender-button.female.active{background:#ffe1ee}.gender-roster{display:flex;flex-direction:column}.gender-player{display:flex;gap:12px;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}.gender-player:last-child{border:0}.gender-player-name{display:flex;align-items:center;gap:10px;min-width:0}.gender-player-name span{display:flex;flex-direction:column;gap:4px;min-width:0}.gender-player-name b{font-size:13px;overflow-wrap:anywhere}.gender-player-name small{font-size:10px;color:var(--muted)}.avatar.male{background:#e5eeff;color:#315bc9}.avatar.female{background:#ffe6f0;color:#b52e69}.avatar.unknown{background:#eef1f6;color:#6c7d94}.doubles-preference{margin-top:18px}.preference-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.preference-buttons button{min-height:44px;border-radius:10px;border:1px solid var(--line);background:#f7faff;color:var(--muted);font-size:12px}.preference-buttons button.active{color:var(--brand);border-color:var(--brand);background:var(--brand-light);font-weight:800}.preference-buttons .women_first.active{color:#b52e69;border-color:#d85b92;background:#fff0f6}.preference-buttons .mixed_first.active{color:#7450be;border-color:#9271d2;background:#f2edff}.edit-roster .roster-edit-row{display:block;padding:10px;margin:8px 0;background:#f8fbff;border-radius:10px}.edit-roster .roster-edit-name{display:flex;gap:4px;width:100%;align-items:center}.edit-roster .roster-edit-name>div{display:flex;flex-shrink:0}.edit-roster .roster-edit-row>.gender-buttons{display:flex;justify-content:flex-end;margin-top:6px}.edit-roster .roster-edit-name input{width:0;flex:1;min-width:0}.sheet>.gender-buttons{margin:8px 0 16px;justify-content:flex-end}.mini-avatar.male{background:#e5eeff;color:#315bc9}.mini-avatar.female{background:#ffe6f0;color:#b52e69}.mini-avatar.unknown{background:#eef1f6;color:#6c7d94}.personal-activity{padding:0;gap:8px}.personal-activity .activity-open{flex:1;min-width:0;display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:56px;padding:0;background:transparent;color:inherit;font-size:inherit;text-align:left}.personal-activity .activity-open b{overflow-wrap:anywhere}.personal-activity .activity-delete{flex-shrink:0;min-height:44px;padding:0 12px;border-radius:10px;background:#fdf1ef;color:#c0392b;font-size:11px;font-weight:800}.personal-activity .activity-delete:active{background:#f9e0dc}.mini-avatar img,.avatar img,.winner-avatar img{width:100%;height:100%;object-fit:cover;border-radius:inherit;display:block}.mini-avatar,.avatar,.winner-avatar{overflow:hidden}.profile-panel{display:flex;align-items:center;gap:12px}.profile-panel .avatar{width:52px;height:52px;font-size:20px;flex-shrink:0}.profile-info{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}.profile-info b{font-size:15px;overflow-wrap:anywhere}.profile-info small{font-size:11px;color:var(--muted)}.avatar-action{position:relative;display:flex;align-items:center;justify-content:center;min-height:44px;padding:0 12px;border-radius:10px;background:var(--brand-light);color:var(--brand);font-size:12px;font-weight:800;cursor:pointer;flex-shrink:0;white-space:nowrap}.avatar-action input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.avatar-action.disabled{opacity:.5;pointer-events:none}.avatar-action.ghost{background:#f1f5f7;color:var(--muted)}.profile-note{margin:10px 18px 0;font-size:11px;color:var(--muted);line-height:1.6}.claim-picker{max-height:46vh;overflow-y:auto;border:1px solid var(--line);border-radius:12px;padding:2px 10px;margin-bottom:4px}.claim-option{display:flex;align-items:center;gap:10px;width:100%;min-height:54px;padding:8px 2px;text-align:left;border-bottom:1px solid var(--line);background:transparent;color:var(--ink)}.claim-option:last-child{border:0}.claim-option .avatar{width:36px;height:36px;flex-shrink:0}.claim-option b{flex:1;min-width:0;font-size:14px;font-weight:750;overflow-wrap:anywhere}.claim-option small{font-size:11px;font-weight:700;color:var(--brand);flex-shrink:0}.claim-option.taken{background:#f7f9fc;color:var(--muted)}.claim-option.taken small{color:var(--muted)}.claim-option.marked{background:var(--brand-light)}.claim-option.marked b{color:var(--brand)}@media(max-width:860px){.form-field input,.form-field select,.setting-row select,.activity-toolbar select,.pair-row select,.edit-roster input,.add-person input,.sheet textarea,.stepper input,.avatar-action input{font-size:16px}.fee-note input{font-size:16px!important}}
