:root{--bg:#fbf7ec;--card:#fff;--card-soft:#fdfbf3;--secondary-btn:#eee8d8;--secondary-btn-hover:#e2d8c0;--text:#1a202c;--muted:#718096;--accent:#319795;--accent-deep:#2c7a7b;--accent-soft:#e6fffa;--positive:#38a169;--negative:#e53e3e;--line:#e2e8f0;--shadow:0 1px 3px #00000014, 0 1px 2px #0000000a;--focus-ring:0 0 0 3px #31979559}*{box-sizing:border-box;margin:0;padding:0}.screen-ripple{pointer-events:none;opacity:1;z-index:9999;background:radial-gradient(circle,#2c7a7b94 0%,#31979557 30%,#31979524 64%,#31979506 100%);border:1px solid #3197951a;border-radius:50%;width:10px;height:10px;animation:.76s cubic-bezier(.16,1,.3,1) forwards screen-ripple;position:fixed;transform:scale(1);box-shadow:inset 0 0 24px #3197950f}.screen-ripple:before,.screen-ripple:after{content:"";border:1px solid #3197951a;border-radius:50%;position:absolute}.screen-ripple:before{inset:16%}.screen-ripple:after{inset:32%}@keyframes screen-ripple{to{opacity:0;transform:scale(12)}}@media (prefers-reduced-motion:reduce){.screen-ripple{animation-duration:1ms}}body{background:var(--bg);color:var(--text);min-height:100vh;font-family:Pretendard,sans-serif}body.auth-checking>*{visibility:hidden}body[data-game]{background:var(--bg)}.loading-screen{z-index:10001;background:var(--bg);place-items:center;min-height:100dvh;padding:24px;display:grid;position:fixed;inset:0}.loading-label{color:var(--accent-deep);letter-spacing:.02em;align-items:baseline;font-size:clamp(1.15rem,4.5vw,1.45rem);font-weight:700;display:inline-flex}.loading-dots{text-align:left;width:2.5em;display:inline-block}.loading-dots:after{content:".";animation:2s step-end infinite loading-dots}@keyframes loading-dots{0%,19.999%{content:"."}20%,39.999%{content:".."}40%,59.999%{content:"..."}60%,79.999%{content:"...."}80%,99.999%{content:"....."}to{content:"."}}@media (prefers-reduced-motion:reduce){.loading-dots:after{animation-duration:5s}}.container{z-index:1;max-width:640px;margin:0 auto;padding:20px 16px 60px;position:relative}.game-bg{pointer-events:none;z-index:0;opacity:0;background-position:bottom;background-repeat:no-repeat;background-size:contain;width:50vw;height:50vh;transition:opacity .25s;position:fixed;bottom:5vh;left:50%;transform:translate(-50%)}.game-bg[data-active=skullking]{opacity:.3;background-image:url(/assets/bg-skullking-Bqu64leB.png)}.game-bg[data-active=tichu]{opacity:.3;background-image:url(/assets/bg-tichu-Cd9GyRcP.png)}.menu-toggle{z-index:5;background:var(--card);border:1px solid var(--line);width:42px;height:42px;box-shadow:var(--shadow);cursor:pointer;touch-action:manipulation;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:4px;display:flex;position:fixed;top:16px;left:16px}.menu-toggle:focus-visible{box-shadow:var(--focus-ring);outline:none}.menu-toggle span{background:var(--text);border-radius:1px;width:18px;height:2px;display:block}.side-menu-backdrop{z-index:19;background:#1a202c59;display:none;position:fixed;inset:0}.side-menu-backdrop.show{display:block}.side-menu{background:var(--card);z-index:20;flex-direction:column;gap:8px;width:min(78vw,300px);padding:24px 16px;transition:transform .25s;display:flex;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%);box-shadow:4px 0 20px #0000001f}.side-menu.open{transform:translate(0)}.side-menu-header{margin-bottom:8px;font-size:1.05rem;font-weight:700}.side-menu-divider{background:var(--line);height:1px;margin:6px 0}.account-menu-item{color:var(--accent-deep)}.side-menu-home{font-weight:700}.side-menu-item{text-align:left;border:1px solid var(--line);background:var(--card-soft);color:var(--text);cursor:pointer;touch-action:manipulation;border-radius:10px;padding:12px 14px;font-size:.95rem;font-weight:600}.side-menu-item:hover:not(:disabled){border-color:var(--accent)}.side-menu-item.current{color:var(--accent-deep);background:var(--accent-soft);border-color:var(--accent)}.side-menu-item:focus-visible{box-shadow:var(--focus-ring);outline:none}.side-menu-item:disabled{color:var(--muted);cursor:not-allowed;opacity:.6}.side-menu-logout{color:var(--muted);font:inherit;text-underline-offset:3px;cursor:pointer;background:0 0;border:0;align-self:flex-start;margin-top:auto;padding:8px 4px;font-size:.88rem;text-decoration:underline}.side-menu-logout:hover{color:var(--text)}.side-menu-logout:focus-visible{box-shadow:var(--focus-ring);border-radius:4px;outline:none}header{text-align:center;padding:24px 0 8px;position:relative}.account-status{text-overflow:ellipsis;white-space:nowrap;color:#5f584a;background:var(--secondary-btn);border:1px solid var(--secondary-btn-hover);cursor:pointer;border-radius:999px;max-width:126px;padding:7px 10px;font-size:.75rem;position:absolute;top:0;right:0;overflow:hidden}.account-status.signed-in{color:var(--accent-deep);background:var(--accent-soft);border-color:var(--accent)}header h1{letter-spacing:.5px;font-size:1.5rem}header p{color:var(--muted);margin-top:6px;font-size:.85rem}.screen{display:none}.screen.active{display:block}.card{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:12px;margin-top:16px;padding:18px}.card h2{margin-bottom:12px;font-size:1.05rem}.mode-buttons{grid-template-columns:1fr 1fr;gap:12px;margin-top:4px;display:grid}.screen>.mode-buttons{margin-top:20px}.mode-btn{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);color:var(--text);cursor:pointer;border-radius:12px;padding:26px 12px;font-size:1.15rem;font-weight:700;transition:border-color .15s,box-shadow .15s,transform .1s}.mode-btn small{color:var(--muted);word-break:keep-all;overflow-wrap:break-word;margin-top:8px;font-size:.8rem;font-weight:400;display:block}.mode-btn:hover{border-color:var(--accent)}.mode-btn:focus-visible{box-shadow:var(--focus-ring);outline:none}.mode-btn:active{transform:scale(.98)}.chip-list{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1px solid var(--line);background:var(--card);color:var(--text);cursor:pointer;touch-action:manipulation;border-radius:999px;padding:9px 16px;font-size:.95rem;transition:background .15s,border-color .15s,color .15s}.chip:focus-visible{box-shadow:var(--focus-ring);outline:none}.chip.selected{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-deep);font-weight:700}.guest-row{gap:8px;margin-top:12px;display:flex}.guest-row input,.extra-bonus-input,select.call-select{background:var(--card);border:1px solid var(--line);color:var(--text);border-radius:8px;padding:10px 12px;font-size:1rem}.guest-row input{flex:1}.participant-search-row input{width:100%;min-width:0}.guest-row input:focus,.extra-bonus-input:focus,select.call-select:focus{border-color:var(--accent);box-shadow:var(--focus-ring);outline:none}.btn{background:var(--accent);color:#fff;cursor:pointer;box-shadow:var(--shadow);touch-action:manipulation;border:none;border-radius:8px;padding:12px 18px;font-size:1rem;font-weight:700}.btn:hover{background:var(--accent-deep)}.btn:disabled{cursor:not-allowed;opacity:.6}.btn:focus-visible{box-shadow:var(--focus-ring);outline:none}.btn.ghost{background:var(--secondary-btn);color:#5f584a;border:1px solid var(--secondary-btn-hover);box-shadow:var(--shadow);font-weight:500}.btn.ghost:hover{background:var(--secondary-btn-hover);color:var(--text)}.btn.block{width:100%;margin-top:16px;display:block}.hint{color:var(--muted);margin-top:10px;font-size:.82rem;line-height:1.5}.error{color:var(--negative);margin-top:10px;font-size:.85rem;display:none}.error.show{display:block}.friend-suggestions{background:var(--card-soft);border:1px solid var(--line);border-radius:10px;margin-top:10px;overflow:hidden}.friend-suggestions-title{color:var(--text);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;font-size:.82rem;display:flex}.friend-suggestions-title span{color:var(--muted);flex:none;font-size:.7rem;font-weight:500}.friend-suggestions-empty{color:var(--muted);text-align:center;padding:18px 12px;font-size:.8rem}.friend-suggestion{width:100%;min-height:58px;color:var(--text);border:0;border-bottom:1px solid var(--line);font:inherit;text-align:left;cursor:pointer;touch-action:manipulation;background:0 0;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.friend-suggestion:last-child{border-bottom:0}.friend-suggestion:hover{background:var(--accent-soft)}.friend-suggestion.unavailable,.friend-suggestion.unavailable:hover{color:var(--muted);cursor:not-allowed;opacity:.68;background:#71809614}.friend-suggestion:focus-visible{box-shadow:inset var(--focus-ring);outline:none;position:relative}.friend-suggestion>span:first-child{min-width:0}.friend-suggestion strong,.friend-suggestion small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.friend-suggestion strong{font-size:.9rem}.friend-suggestion small{color:var(--muted);margin-top:3px;font-size:.72rem}.guest-add-button{font-size:.88rem;margin-top:10px!important}.guest-add-button:disabled{cursor:not-allowed;opacity:.55}.toast-message{left:50%;bottom:max(24px, calc(env(safe-area-inset-bottom) + 16px));z-index:10000;color:#fff;text-align:center;background:#1a202cf0;border-radius:10px;width:max-content;max-width:calc(100vw - 32px);padding:12px 16px;font-size:.88rem;font-weight:600;animation:.18s ease-out toast-in;position:fixed;transform:translate(-50%);box-shadow:0 8px 24px #0003}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,8px)}}.top-row{justify-content:space-between;align-items:center;gap:8px;margin-top:16px;display:flex}.round-badge{font-size:1.1rem;font-weight:700}.round-badge span{color:var(--accent-deep)}.round-sub{color:var(--muted);margin-top:5px;font-size:.8rem}.custom-mode-panel{border:1px solid var(--line);box-shadow:var(--shadow);background:#fffffff5;border-radius:10px;margin-top:16px;padding:12px 14px}.custom-check-row{color:var(--text);cursor:pointer;align-items:center;gap:9px;font-size:.9rem;font-weight:600;display:flex}.participant-self-check{background:var(--card-soft);border:1px solid var(--line);border-radius:9px;margin:2px 0 12px;padding:11px 12px}.participant-self-check input{width:18px;height:18px;accent-color:var(--accent)}.custom-check-row input{width:19px;height:19px;accent-color:var(--accent);flex-shrink:0}.custom-mode-options{border-top:1px solid var(--line);margin-top:12px;padding-top:12px}.custom-round-row{color:var(--muted);justify-content:space-between;align-items:center;gap:12px;font-size:.85rem;display:flex}.custom-round-stepper{width:150px}.custom-round-stepper button:disabled{color:var(--line);cursor:not-allowed}.auto-round-check{margin-top:12px;font-weight:500}table.score-board{border-collapse:collapse;width:100%;font-size:.92rem}table.score-board th,table.score-board td{text-align:center;border-bottom:1px solid var(--line);white-space:nowrap;padding:8px 6px}table.score-board th{color:var(--muted);font-size:.8rem;font-weight:500}table.score-board td.name{text-align:left;font-weight:600}.total-pos{color:var(--positive);font-weight:700}.total-neg{color:var(--negative);font-weight:700}.rank-1 .name:after{content:" 👑"}.skullking-ranking .rank-1 .name:after{content:none}.skullking-ranking .rank-position-1 td{background:#fffbea;padding-top:17px;padding-bottom:17px;font-size:1rem;font-weight:700}.skullking-ranking .rank-position-1 td.name{font-size:1.12rem}.rank-medal{flex-direction:column;align-items:center;gap:2px;min-width:34px;font-weight:700;line-height:1.05;display:inline-flex}.rank-crown{font-size:1.45rem;line-height:1}.rank-medal-1 .rank-crown{color:#d4a017;font-size:1.9rem}.rank-medal-2 .rank-crown{color:#98a2b3}.rank-medal-3 .rank-crown{color:#b7791f}.player-entry{background:var(--card-soft);border:1px solid var(--line);border-radius:10px;margin-top:12px;padding:14px}.player-entry .p-name{margin-bottom:10px;font-weight:700}.tichu-entry{padding:16px}.tichu-entry>div>label{margin-bottom:14px;line-height:1.45;display:block}.tichu-entry .field-label{margin-bottom:12px;line-height:1.45}.tichu-entry-section,.tichu-rank-entry .rank-picker+.rank-picker{margin-top:20px}.tichu-entry .preview{margin-top:18px}.one-two-chips .chip{min-height:58px;line-height:1.2}.one-two-chips .team-chip-meta{color:var(--muted);white-space:nowrap;margin-top:4px;font-size:.68rem;font-weight:500;display:block}.one-two-chips .chip.selected .team-chip-meta{color:var(--accent-deep)}.entry-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.entry-grid .bonus-field{grid-column:1/-1}.entry-grid label,.field-label{color:var(--muted);margin-bottom:8px;font-size:.75rem;display:block}.stepper{border:1px solid var(--line);background:var(--card);border-radius:8px;align-items:center;display:flex;overflow:hidden}.stepper button{background:var(--card);color:var(--text);cursor:pointer;touch-action:manipulation;border:none;flex-shrink:0;min-width:44px;height:44px;font-size:1.05rem}.stepper button:hover{background:var(--accent-soft);color:var(--accent-deep)}.stepper button:active{background:var(--line)}.stepper button:disabled{color:#cbd5e0;cursor:not-allowed;background:#f7fafc}.stepper .val{text-align:center;flex:1;min-width:44px;font-size:1rem;font-weight:600}.shared-trick-limit{color:var(--muted);border:1px solid var(--line);text-align:center;background:#fffffff5;border-radius:8px;margin-top:12px;padding:10px 12px;font-size:.84rem}.shared-trick-limit b{color:var(--accent-deep);font-size:1rem}.generic-unit-panel{background:var(--card-soft);border:1px solid var(--line);border-radius:10px;margin-top:12px;padding:14px}.generic-unit-controls{grid-template-columns:minmax(0,1fr) 112px;align-items:center;gap:10px;display:grid}.generic-unit-chips{flex-wrap:nowrap;gap:6px}.generic-unit-chips .chip{flex:1 1 0;min-width:0;padding:9px 7px}.generic-unit-input{width:100%;min-width:0;color:var(--text);background:var(--card);border:1px solid var(--line);text-align:center;border-radius:8px;padding:10px 8px;font-size:.9rem}.generic-unit-input.selected{border-color:var(--accent);background:var(--accent-soft)}.generic-unit-input:focus{border-color:var(--accent);box-shadow:var(--focus-ring);outline:none}.generic-unit-input[aria-invalid=true]{border-color:var(--negative);background:#fff5f5}.generic-score-stepper{width:100%}.generic-score-stepper .val{font-size:1.1rem}.bonus-note{color:var(--muted);margin-top:12px;font-size:.72rem;line-height:1.5}.bonus-row{justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex}.bonus-row .bonus-label{color:var(--muted);font-size:.78rem}.extra-bonus-input{text-align:center;width:132px}.preview{color:var(--muted);margin-top:14px;font-size:.85rem;line-height:1.5}.preview b.pos{color:var(--positive)}.preview b.neg{color:var(--negative)}.team-cols{grid-template-columns:1fr 1fr;gap:10px;margin-top:12px;display:grid}.team-box{background:var(--card-soft);border:1px solid var(--line);border-radius:10px;min-height:108px;padding:12px}.team-box h3{color:var(--accent-deep);margin-bottom:8px;font-size:.85rem}.team-box .chip{text-align:center;width:100%;margin-bottom:6px;display:block}.call-row{justify-content:space-between;align-items:center;gap:8px;margin-top:12px;display:flex}.call-row .call-name{font-size:.9rem;font-weight:600}select.call-select{min-width:132px}.result-banner{text-align:center;padding:10px 0 4px}.result-banner .winner{color:var(--accent-deep);margin-top:4px;font-size:1.25rem;font-weight:800}details.rules{color:var(--muted);border-radius:12px;margin-top:16px;font-size:.83rem}details.rules summary{cursor:pointer;color:var(--text);background:var(--secondary-btn);border:1px solid var(--secondary-btn-hover);box-shadow:var(--shadow);border-radius:8px;padding:10px 12px;font-size:.9rem}details.rules[open]{border:1px solid var(--line);box-shadow:var(--shadow);background:#fffffff5;padding:12px 14px 14px}details.rules[open] summary{background:var(--card-soft);border-color:var(--line);box-shadow:none}details.rules ul{margin:12px 0 0 18px;line-height:1.7}.rule-pirate{color:#c53030;font-weight:700}.rule-mermaid{color:#2f855a;font-weight:700}.rule-skullking{color:#000;font-weight:800}details.rules .pirate-abilities,details.rules .special-card-rules{margin-top:6px}details.rules .special-card-rules li+li{margin-top:8px}details.rules .special-card-subrules{margin-top:6px}details.rules summary.floating-summary{justify-content:space-between;align-items:center;gap:8px;display:flex}details.rules.is-floating>ul{display:none}.rule-float-btn{color:#5f584a;background:var(--card);border:1px solid var(--secondary-btn-hover);cursor:pointer;border-radius:6px;flex:none;padding:6px 9px;font-size:.75rem}.floating-panel{z-index:15;width:min(84vw,340px);max-height:calc(100vh - 86px);color:var(--text);border:1px solid var(--line);opacity:.3;background:#fffffffa;border-radius:12px;transition:opacity .2s,box-shadow .2s;position:fixed;top:68px;left:12px;overflow:hidden;box-shadow:0 10px 28px #1a202c2e}.floating-panel.paired{max-height:calc(50vh - 16px)}.floating-panel.focused{opacity:1;box-shadow:0 12px 32px #1a202c3d}.floating-panel.snapped{border-color:var(--accent);box-shadow:0 12px 32px #31979547}.floating-header{background:var(--secondary-btn);border-bottom:1px solid var(--line);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;font-size:.86rem;display:flex}.floating-panel.dragging .floating-header{cursor:grabbing}.floating-actions{gap:6px;display:flex}.floating-actions button{color:#5f584a;background:var(--card);border:1px solid var(--secondary-btn-hover);cursor:pointer;border-radius:6px;padding:6px 8px;font-size:.75rem}.floating-body{max-height:calc(100vh - 145px);padding:10px 14px 12px;font-size:.78rem;overflow-y:auto}.floating-panel.paired .floating-body{max-height:calc(50vh - 59px)}.floating-body ul{margin-left:17px;line-height:1.65}.floating-body li+li{margin-top:4px}.footer-actions{gap:10px;margin-top:20px;display:flex}.footer-actions .btn{flex:1}.modal-overlay{z-index:30;background:#1a202c73;justify-content:center;align-items:center;padding:20px;display:none;position:fixed;inset:0}.modal-overlay.show{display:flex}.modal-box{background:var(--card);border:1px solid var(--line);text-align:center;border-radius:12px;width:100%;max-width:320px;padding:24px 18px;box-shadow:0 10px 25px #00000026}.modal-box p{font-weight:600;line-height:1.6}.modal-box .sub{color:var(--muted);margin-top:8px;font-size:.85rem;font-weight:400}.modal-actions{gap:10px;margin-top:20px;display:flex}.modal-actions .btn{flex:1}.account-box{text-align:left;max-width:390px}.auth-page{background:radial-gradient(circle at 50% 5%, #3197951c, transparent 32%), var(--bg);min-height:100vh}.auth-page-shell{width:min(100%,440px);min-height:100vh;padding:max(24px, env(safe-area-inset-top)) 16px max(36px, env(safe-area-inset-bottom));flex-direction:column;justify-content:center;margin:0 auto;display:flex}.auth-back-link{color:#5f584a;align-self:flex-start;margin-bottom:16px;font-size:.86rem;font-weight:600;text-decoration:none}.auth-page-card{border:1px solid var(--line);background:#fffffffa;border-radius:16px;padding:26px 20px;box-shadow:0 12px 32px #1a202c1a}.auth-brand{text-align:center;margin-bottom:10px;font-size:2rem}.auth-page-card h1{text-align:center;font-size:1.45rem}.auth-lead{color:var(--muted);text-align:center;margin:8px 0 20px;font-size:.86rem;font-weight:400!important}.auth-page-card .account-field{margin-top:16px}.auth-page-switch{border-top:1px solid var(--line);color:var(--muted);text-align:center;margin-top:22px;padding-top:18px;font-size:.84rem}.auth-page-switch a{color:var(--accent-deep);font-weight:700}.auth-divider{color:var(--muted);align-items:center;gap:10px;margin:18px 0 2px;font-size:.72rem;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--line);flex:1;height:1px}.guest-login-btn{margin-top:12px!important}.guest-note{text-align:center;line-height:1.5!important}.list-modal-box{max-height:min(82vh,680px);overflow-y:auto}.modal-title-row{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.modal-title-row h2{font-size:1.1rem}.modal-close{border:1px solid var(--line);background:var(--secondary-btn);width:36px;height:36px;color:var(--text);cursor:pointer;border-radius:50%;font-size:1.35rem}.auth-tabs{background:var(--secondary-btn);border-radius:10px;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:16px;padding:4px;display:grid}.auth-tabs button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:8px;padding:9px;font-weight:700}.auth-tabs button.selected{background:var(--card);color:var(--accent-deep);box-shadow:var(--shadow)}.account-field{color:var(--muted);margin-top:13px;font-size:.8rem;font-weight:600;display:block}.account-field>input,.inline-input input{width:100%;color:var(--text);background:var(--card);border:1px solid var(--line);border-radius:8px;margin-top:7px;padding:12px;font-size:1rem}.account-field>input:focus,.inline-input input:focus{border-color:var(--accent);box-shadow:var(--focus-ring);outline:none}.inline-input{align-items:stretch;gap:8px;display:flex}.account-field .inline-input input{margin-top:7px}.account-field .inline-input .btn{flex:none;margin-top:7px;padding-inline:12px}.account-note{color:var(--muted);margin-top:12px!important;font-size:.75rem!important;font-weight:400!important}.account-feedback{color:var(--negative);display:none;margin-top:10px!important;font-size:.8rem!important;font-weight:500!important}.account-feedback.show{display:block}.account-feedback.success{color:var(--positive)}.account-profile{background:var(--card-soft);border:1px solid var(--line);text-align:center;border-radius:10px;padding:16px}.account-profile strong,.account-profile span{display:block}.account-profile strong{font-size:1.1rem}.account-profile span{color:var(--muted);margin-top:5px;font-size:.82rem}.account-page-container{padding-top:max(20px, env(safe-area-inset-top))}.account-page-header{padding-top:16px}.game-record-cta{min-height:56px;margin-top:16px;font-size:1.05rem}.account-route-nav{background:var(--secondary-btn);border:1px solid var(--secondary-btn-hover);border-radius:12px;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:16px;padding:5px;display:grid}.account-route-nav a{color:#5f584a;text-align:center;border-radius:8px;min-width:0;padding:10px 6px;font-size:.84rem;font-weight:700;text-decoration:none}.account-route-nav a.active{color:var(--accent-deep);background:var(--card);box-shadow:var(--shadow)}.account-route-nav a:focus-visible{box-shadow:var(--focus-ring);outline:none}.account-page-card{margin-top:12px}.friend-add-form{border-bottom:1px solid var(--line);padding-bottom:15px}.friend-add-form label{color:var(--muted);margin-bottom:8px;font-size:.78rem;font-weight:600;display:block}.friend-add-form>div{align-items:stretch;gap:8px;display:flex}.friend-add-form .friend-search-input-wrap{flex:1;min-width:0;position:relative}.friend-add-form input{min-width:0;color:var(--text);background:var(--card);border:1px solid var(--line);border-radius:8px;flex:1;padding:11px 12px;font-size:.95rem}.friend-add-form input:focus{border-color:var(--accent);box-shadow:var(--focus-ring);outline:none}.friend-search-control{position:relative}.friend-search-input-wrap input{width:100%}.friend-search-results{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;background:var(--card);border:1px solid var(--line);z-index:6;border-radius:9px;max-height:242px;position:absolute;top:calc(100% + 5px);left:0;right:0;overflow:hidden auto;box-shadow:0 8px 20px #0000001f}.friend-search-results button,.friend-search-results p{width:100%;color:var(--text);background:var(--card);border:0;border-bottom:1px solid var(--line);text-align:left;padding:10px 12px;font-size:.84rem;display:block}.friend-search-results button{cursor:pointer;touch-action:manipulation}.friend-search-results button:hover,.friend-search-results button:focus-visible{background:var(--accent-soft);outline:none}.friend-search-results button:last-child,.friend-search-results p:last-child{border-bottom:0}.friend-search-results p{color:var(--muted);text-align:center}.friend-add-form .btn{flex:none}.legend{color:var(--muted);flex-wrap:wrap;gap:12px;margin:14px 0 8px;font-size:.72rem;display:flex}.legend span,.presence{align-items:center;gap:5px;display:inline-flex}.legend i,.presence i{background:#a0aec0;border-radius:50%;width:9px;height:9px}.legend i.online,.presence.online i{background:#9ae6b4}.legend i.offline,.presence.offline i{background:#a0aec0}.legend i.playing,.presence.playing i{background:#e53e3e}.account-list{border-top:1px solid var(--line);margin-top:8px}.account-list.standalone{border-top:0;margin-top:0}.friend-row,.history-row,.ranking-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:10px;min-height:62px;padding:11px 2px;display:flex}.friend-row>div:first-child,.history-row>div:first-child,.ranking-row>div:nth-child(2){min-width:0}.friend-row strong,.friend-row small,.history-row strong,.history-row small,.ranking-row strong,.ranking-row small{display:block}.friend-row small,.history-row small,.ranking-row small{color:var(--muted);margin-top:3px;font-size:.73rem}.friend-actions{gap:5px;display:flex}.btn.small{padding:7px 9px;font-size:.75rem}.friend-pending{color:var(--muted);font-size:.75rem}.presence{color:var(--muted);flex:none;font-size:.75rem}.history-row>div:last-child,.ranking-row>div:last-child{text-align:right;flex:none}.history-row>div:last-child b,.history-row>div:last-child span{display:block}.history-row>div:last-child b{color:var(--accent-deep)}.history-row>div:last-child span{color:var(--muted);margin-top:3px;font-size:.75rem}.ranking-number{color:var(--accent-deep);text-align:center;flex:0 0 30px;font-size:1rem;font-weight:800}.ranking-position-1{background:#fffbea;border-radius:10px;padding:16px 10px}.ranking-position-1 .ranking-number{color:#b7791f;font-size:1.25rem}.history-score-area>div{justify-content:flex-end;align-items:center;gap:8px;display:flex}.history-score-area .btn{flex:none}.history-detail-box{text-align:left;width:min(92vw,520px);max-height:82vh;overflow-y:auto}.history-detail-box .modal-title-row small{color:var(--muted);margin-top:4px;font-size:.72rem;display:block}.history-detail-list{border-top:1px solid var(--line)}.history-detail-row{border-bottom:1px solid var(--line);grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:58px;padding:10px 2px;display:grid}.history-detail-row>div{min-width:0}.history-detail-row strong,.history-detail-row small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.history-detail-row small{color:var(--muted);margin-top:3px;font-size:.72rem}.history-detail-rank{color:var(--accent-deep);font-size:.82rem;font-weight:800}.history-detail-row.rank-1{background:#fffbea}.ranking-record b,.ranking-record span{display:block}.ranking-record span{color:var(--muted);margin-top:3px;font-size:.75rem}.empty-state{color:var(--muted);text-align:center;padding:26px 8px;font-size:.82rem;font-weight:400!important}.game-guide-content{margin-top:24px}.game-guide-list,.game-guide-detail{gap:12px;display:grid}.game-guide-search label{margin-bottom:8px;font-size:.85rem;font-weight:700;display:block}.game-guide-search input{width:100%;color:var(--text);background:var(--card);border:1px solid var(--line);font:inherit;border-radius:9px;padding:12px 13px}.game-guide-search input:focus{border-color:var(--accent);box-shadow:var(--focus-ring);outline:none}.game-guide-results,.edition-options{gap:8px;display:grid}.edition-options{margin-top:16px}.game-guide-card{width:100%;min-height:72px;color:var(--text);border:1px solid var(--line);box-shadow:var(--shadow);font:inherit;text-align:left;cursor:pointer;touch-action:manipulation;background:#fffffff5;border-radius:11px;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.game-guide-card:hover{background:var(--accent-soft);border-color:var(--accent)}.game-guide-card:focus-visible{box-shadow:var(--focus-ring);outline:none}.game-guide-card strong,.game-guide-card small{display:block}.game-guide-card strong{font-size:1rem}.game-guide-card small{color:var(--muted);margin-top:5px;font-size:.75rem;line-height:1.45}.game-guide-arrow{color:var(--accent-deep);flex:none;font-size:1.6rem}.game-guide-back{justify-self:end;padding:9px 12px!important;font-size:.82rem!important}.game-guide-article{padding:20px 18px}.game-guide-title{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.game-guide-title h2{margin:0}.game-guide-title p{color:var(--muted);margin-top:4px;font-size:.78rem}.game-guide-title>span{max-width:48%;color:var(--accent-deep);background:var(--accent-soft);text-align:center;border-radius:7px;flex:none;padding:5px 8px;font-size:.7rem;font-weight:700}.game-guide-meta{flex-wrap:wrap;gap:8px;margin:15px 0 4px;display:flex}.game-guide-meta span{color:var(--muted);background:var(--card-soft);border:1px solid var(--line);border-radius:7px;padding:6px 9px;font-size:.75rem}.game-guide-section{border-top:1px solid var(--line);margin-top:18px;padding-top:16px}.game-guide-section h3{color:var(--accent-deep);margin-bottom:8px;font-size:.9rem}.game-guide-section p,.game-guide-section li{font-size:.85rem;line-height:1.7}.game-guide-section ul{padding-left:20px}.game-guide-section li+li{margin-top:6px}.game-guide-source{color:var(--muted);margin-top:20px;font-size:.72rem;display:inline-block}.edit-rounds-box{text-align:left;max-width:min(92vw,640px);max-height:86vh;overflow-y:auto}.edit-rounds-box h2{font-size:1.05rem}.round-edit-scroll{border:1px solid var(--line);border-radius:10px;margin-top:16px;overflow-x:auto}.round-edit-table{border-collapse:collapse;width:100%;font-size:.85rem}.round-edit-table th,.round-edit-table td{text-align:center;border-bottom:1px solid var(--line);white-space:nowrap;padding:8px 6px}.round-edit-table tr:last-child td{border-bottom:none}.round-edit-table th{color:var(--muted);background:var(--card-soft);font-weight:600}.round-edit-table th:first-child,.round-edit-table td:first-child{z-index:1;text-align:left;background:var(--card);min-width:88px;font-weight:600;position:sticky;left:0}.round-edit-table th:first-child{background:var(--card-soft)}.round-score-input{border:1px solid var(--line);width:76px;color:var(--text);background:var(--card);text-align:center;border-radius:7px;padding:9px 6px;font-size:.95rem}.round-score-input:focus{border-color:var(--accent);box-shadow:var(--focus-ring);outline:none}@media (width<=480px){.container{padding:12px 10px 48px}header h1{font-size:1.25rem}.card{padding:14px 12px}.mode-btn{padding:22px 8px;font-size:1.05rem}.chip{padding:9px 13px;font-size:.9rem}table.score-board{font-size:.85rem}table.score-board th,table.score-board td{padding:7px 5px}.generic-unit-panel{padding:12px 10px}.generic-unit-controls{grid-template-columns:minmax(0,1fr) 96px;gap:7px}.generic-unit-chips{gap:4px}.generic-unit-chips .chip{padding:9px 4px;font-size:.86rem}.generic-unit-input{padding:10px 5px;font-size:.82rem}}
