@font-face{font-family:NostalgicPoliceVibe;src:url(https://cdn.jsdelivr.net/gh/projectnoonnu/2601-6@1.0/Griun_PolSensibility-Rg.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Pretendard;src:url(https://cdn.jsdelivr.net/gh/projectnoonnu/pretendard@1.0/Pretendard-Thin.woff2)format("woff2");font-weight:100;font-display:swap}@font-face{font-family:Pretendard;src:url(https://cdn.jsdelivr.net/gh/projectnoonnu/pretendard@1.0/Pretendard-ExtraLight.woff2)format("woff2");font-weight:200;font-display:swap}@font-face{font-family:Pretendard;src:url(https://cdn.jsdelivr.net/gh/projectnoonnu/pretendard@1.0/Pretendard-Light.woff2)format("woff2");font-weight:300;font-display:swap}@font-face{font-family:Pretendard;src:url(https://cdn.jsdelivr.net/gh/projectnoonnu/pretendard@1.0/Pretendard-Regular.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Pretendard;src:url(https://cdn.jsdelivr.net/gh/projectnoonnu/pretendard@1.0/Pretendard-Medium.woff2)format("woff2");font-weight:500;font-display:swap}@font-face{font-family:Pretendard;src:url(https://cdn.jsdelivr.net/gh/projectnoonnu/pretendard@1.0/Pretendard-SemiBold.woff2)format("woff2");font-weight:600;font-display:swap}@font-face{font-family:Pretendard;src:url(https://cdn.jsdelivr.net/gh/projectnoonnu/pretendard@1.0/Pretendard-Bold.woff2)format("woff2");font-weight:700;font-display:swap}@font-face{font-family:Pretendard;src:url(https://cdn.jsdelivr.net/gh/projectnoonnu/pretendard@1.0/Pretendard-ExtraBold.woff2)format("woff2");font-weight:800;font-display:swap}@font-face{font-family:Pretendard;src:url(https://cdn.jsdelivr.net/gh/projectnoonnu/pretendard@1.0/Pretendard-Black.woff2)format("woff2");font-weight:900;font-display:swap}:root{color:#e7eaee;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#1f2329;font-family:Pretendard,system-ui,sans-serif;font-weight:400;line-height:1.5}html,body{color:#d8dce2;background:radial-gradient(circle at top,#464c5759,#0000 35%),linear-gradient(#2a2f37 0%,#1f2329 42%,#181c21 100%);min-width:320px;min-height:100vh;margin:0}#root{min-height:100vh}button{cursor:pointer}.app{box-sizing:border-box;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;min-height:100dvh;padding:2rem;display:flex}.app-title{color:#f4f7fb;letter-spacing:.04em;margin:0;font-family:NostalgicPoliceVibe,system-ui,sans-serif;font-size:clamp(2.75rem,8vw,5rem)}.app-subtitle{color:#9ea7b3;margin:0;font-size:1rem}@media (width>=769px){*{scrollbar-color:#7e8996b8 #ffffff14;scrollbar-width:thin}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:#ffffff0f}::-webkit-scrollbar-button{width:0;height:0;display:none}::-webkit-scrollbar-thumb{background:linear-gradient(#86909ceb,#5e6874d6);border:2px solid #1b1f25f2;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:linear-gradient(#9ca6b2f5,#707b88e6)}::-webkit-scrollbar-corner{background:0 0}}.screen{box-sizing:border-box;justify-content:center;align-items:center;min-height:100dvh;padding:2rem;display:flex}.panel{background:linear-gradient(#272c34f0,#1b1f25fa);border:1px solid #ffffff14;border-radius:28px;width:min(100%,70rem);padding:2rem;box-shadow:0 20px 50px #00000038}.panel-header,.section-heading{justify-content:space-between;align-items:flex-start;gap:1.5rem;display:flex}.panel-eyebrow{color:#d9af56;letter-spacing:.16em;text-transform:uppercase;margin:0 0 .75rem;font-size:.82rem}.panel-title{color:#f4f7fb;margin:0;font-size:clamp(1.5rem,3vw,2rem);line-height:1.25}.panel-description{color:#9ea7b3;margin:1rem 0 0;font-size:1rem;line-height:1.7}.setup-form,.round-form-section,.round-history-section,.stats-section{gap:1.5rem;margin-top:2rem;display:grid}.toast-message{z-index:20;text-align:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:16px;min-width:16rem;max-width:min(90vw,28rem);padding:.95rem 1.15rem;position:fixed;top:1.5rem;left:50%;transform:translate(-50%);box-shadow:0 18px 40px #00000047}.toast-success{color:#d9f3e2;background:#112e1ceb;border:1px solid #58a47647}.toast-error{color:#ffd8d8;background:#2d1212eb;border:1px solid #cf5d5d3d}.toast-line{margin:0}.toast-line+.toast-line{margin-top:.35rem}.start-button,.primary-button,.secondary-button,.board-tab-button,.add-round-button,.rank-toggle-button,.tichu-toggle-button{transition:border-color .18s,background .18s,color .18s,box-shadow .18s,filter .18s,transform .18s}.start-button{color:#fffdf8;letter-spacing:.12em;background:linear-gradient(#f2d78f 0%,#d9af56 100%);border:0;border-radius:20px;margin-top:.75rem;padding:.95rem 1.8rem;font-family:NostalgicPoliceVibe,system-ui,sans-serif;font-size:1rem;font-weight:700;box-shadow:0 12px 30px #d9af5657}.start-button:hover{filter:brightness(1.05);transform:translateY(-1px);box-shadow:0 16px 34px #d9af566b}.start-button:active{transform:translateY(0)}.primary-button,.secondary-button{cursor:pointer;border:0;border-radius:18px;padding:.9rem 1.25rem;font-size:.98rem;font-weight:600}.primary-button{color:#171a1f;background:linear-gradient(#f2d78f 0%,#d9af56 100%);box-shadow:0 12px 30px #d9af5647}.secondary-button{color:#f4f7fb;background:#ffffff14;border:1px solid #ffffff14}.secondary-button:hover,.primary-button:hover{filter:brightness(1.05)}.secondary-button:disabled{cursor:not-allowed;opacity:.45}.primary-button:disabled{cursor:not-allowed;opacity:.5;box-shadow:none}.danger-button{color:#ffcdc8}.button-row .secondary-button{font-weight:500}.modal-panel .action-row .secondary-button{font-weight:400}.board-tabs{gap:.75rem;margin-top:1.5rem;margin-bottom:1rem;display:flex}.board-tab-button{color:#c9cfd7;background:#ffffff0a;border:1px solid #ffffff1a;border-radius:999px;padding:.75rem 1.1rem;font-size:.95rem;font-weight:600}.board-tab-button:hover{color:#fff6dc;background:#d9af5614;border-color:#d9af5647;transform:translateY(-1px)}.board-tab-button.active{color:#fff6dc;background:#d9af5629;border-color:#d9af5680;box-shadow:inset 0 0 0 1px #fff4d61a}.setup-grid,.board-grid,.round-grid,.result-grid,.field-grid,.stats-summary-grid,.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.stats-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.stats-card-wide,.round-block-full,.field-full{grid-column:1/-1}.team-block,.team-card,.round-block,.result-card,.stats-summary-card,.stats-card{background:#ffffff08;border:1px solid #ffffff14;border-radius:22px;padding:1.25rem}.stats-summary-card{padding-top:.5rem;padding-bottom:.75rem}.team-block{gap:.9rem;display:grid}.history-card{background:#ffffff08;border:1px solid #ffffff14;border-radius:22px;padding:1.25rem}.player-input-card,.stats-detail-item{background:#0000001f;border:1px solid #ffffff0f;border-radius:18px;padding:1rem}.target-chip{color:#f2d78f;background:#d9af5614;border:1px solid #d9af562e;border-radius:999px;flex-shrink:0;padding:.85rem 1rem;font-size:.95rem}.winner-banner{background:linear-gradient(#143621e0,#0e2317f0);border:1px solid #58a4763d;border-radius:24px;margin-top:1.5rem;padding:1.4rem 1.5rem}.winner-banner-muted{background:linear-gradient(#3a2e1280,#221c0cb3);border-color:#d9af5633}.winner-label{color:#9be0b6;letter-spacing:.16em;text-transform:uppercase;margin:0 0 .5rem;font-size:.82rem}.winner-banner-muted .winner-label{color:#f2d78f}.winner-title{color:#f4f7fb;margin:0;font-size:clamp(1.5rem,3vw,2rem)}.winner-description{color:#d4dfd9;margin:.75rem 0 0;line-height:1.7}.award-grid{text-align:left;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;display:grid}.award-card{background:#0000002e;border:1px solid #ffffff14;border-radius:16px;padding:.9rem}.award-card-header{justify-content:space-between;align-items:center;gap:.6rem;display:flex}.award-card-header strong{color:#f8fafc;font-size:.98rem}.award-card-header span{color:#f2d78f;flex-shrink:0;font-size:.82rem;font-weight:700}.award-card p{color:#aeb6c1;margin:.45rem 0 0;font-size:.82rem;line-height:1.45}.award-winner{color:#9be0b6;margin-top:.7rem;font-size:.95rem;font-weight:700;line-height:1.4}.team-label{color:#d9af56;letter-spacing:.14em;text-transform:uppercase;margin:0;font-size:.8rem}.team-name{color:#f4f7fb;margin:.5rem 0 1rem;font-size:1.35rem;font-weight:600}.round-title{color:#f4f7fb;margin:0;font-size:1.35rem}.block-title,.stats-card-title{color:#f4f7fb;text-align:left;margin:0 0 1rem;font-size:1.1rem}.history-title{color:#aeb7c2;margin:0;font-size:.92rem;font-weight:600;line-height:1}.history-details-header{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.7rem;display:flex}.history-section-heading{align-items:flex-start}.history-heading-copy{width:100%}.history-heading-row{justify-content:space-between;align-items:center;gap:1rem;display:flex}.player-list,.preview-list{color:#c9cfd7;margin:0;line-height:1.8}.preview-list{padding:0;list-style:none}.player-list{flex-wrap:wrap;gap:.25rem .35rem;padding:0;list-style:none;display:flex}.player-list li{color:#f3dfaa;background:#d9af5614;border:1px solid #d9af562e;border-radius:999px;width:fit-content;max-width:100%;padding:.35rem .7rem;font-size:.92rem;line-height:1.2}.score-placeholder,.history-meta,.stats-summary-label,.round-progress-label{color:#9ea7b3}.score-placeholder{margin-top:1rem}.score-placeholder strong{color:#f2d78f;font-size:1.35rem;font-weight:800}.history-meta{font-size:.92rem}.history-header{justify-content:flex-end;margin-bottom:.8rem;display:flex}.result-summary{color:#c9cfd7;margin:0;line-height:1.7}.stats-summary-value{color:#f4f7fb;margin-top:.75rem;font-size:1.45rem;display:block}.stats-summary-meta{color:#d9af56;margin-top:.5rem;font-size:.88rem;display:block}.field{text-align:left;align-content:start;gap:.55rem;display:grid}.field span{color:#c9cfd7;font-size:.95rem}.field input,.field select{box-sizing:border-box;color:#f4f7fb;background:#0d101480;border:1px solid #ffffff1f;border-radius:16px;width:100%;padding:.95rem 1rem}.field input:focus,.field select:focus{border-color:#d9af56a6;outline:1px solid #d9af56a6}.player-input-list,.history-list,.stats-bar-list,.stats-detail-list{gap:1rem;display:grid}.history-list{background:0 0;border:1px solid #ffffff14;border-left:0;border-right:0;border-radius:0;gap:0;overflow:hidden}.player-input-list,.team-tichu-card .stats-detail-list{grid-template-columns:repeat(2,minmax(0,1fr))}@media (width>=769px){.team-tichu-card .stats-badge-row{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.team-tichu-card .stats-badge{box-sizing:border-box;text-align:center;justify-content:center;width:100%}}.player-input-header,.score-slider-header,.score-slider-scale,.stats-bar-header,.history-header,.stats-detail-header{justify-content:space-between;align-items:center;gap:1rem;display:flex}.player-input-header{color:#f4f7fb;margin-bottom:1rem}.player-input-header span,.score-slider-scale,.stats-bar-header,.stats-detail-header{color:#d8dce2}.player-input-header span{color:#9ea7b3;font-size:.92rem}.score-slider-group,.stats-bar-item{gap:.65rem;display:grid}.score-value{color:#f4f7fb;font-size:1rem}.score-slider-scale{color:#9ea7b3;font-size:.85rem}.score-slider{appearance:none;cursor:pointer;background:linear-gradient(90deg,#ffffff24,#d9af5647);border:0;border-radius:999px;width:100%;height:.45rem;padding:0}.score-slider::-webkit-slider-runnable-track{background:linear-gradient(90deg, #d9af56 0%, #d9af56 var(--fill-percent), #ffffff1f var(--fill-percent), #ffffff1f 100%);border-radius:999px;height:.45rem}.score-slider::-webkit-slider-thumb{appearance:none;background:#f2d78f;border:2px solid #171a1fbf;border-radius:999px;width:1rem;height:1rem;margin-top:-.275rem;box-shadow:0 2px 10px #00000047}.score-slider::-moz-range-track{background:#ffffff1f;border:0;border-radius:999px;height:.45rem}.score-slider::-moz-range-progress{background:#d9af56;border-radius:999px;height:.45rem}.score-slider::-moz-range-thumb{background:#f2d78f;border:2px solid #171a1fbf;border-radius:999px;width:1rem;height:1rem;box-shadow:0 2px 10px #00000047}.score-slider:disabled{cursor:not-allowed;opacity:.55}.rank-toggle-group{grid-template-columns:repeat(4,minmax(0,1fr));align-self:start;gap:.45rem;display:grid}.tichu-toggle-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.55rem;display:grid}.compact-grid{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:2rem}.rank-toggle-button,.tichu-toggle-button{color:#d9dee5;text-align:center;background:#0d101473;border:1px solid #ffffff1f;border-radius:14px;font-size:.9rem;font-weight:600;position:relative}.rank-toggle-button{padding:.5rem .4rem}.tichu-toggle-button{padding:.8rem .85rem}.rank-toggle-button:hover:not(.active),.tichu-toggle-button:hover:not(.active){background:#d9af5614;border-color:#d9af5673;transform:translateY(-1px)}.rank-toggle-button.active,.tichu-toggle-button.active{color:#fff6dc;background:#d9af5624;border-color:#d9af56a6;box-shadow:inset 0 0 0 1px #fff4d633,0 0 0 1px #d9af561f}.rank-toggle-button:disabled,.tichu-toggle-button:disabled{cursor:not-allowed;opacity:.45;transform:none}.rank-toggle-group:hover .rank-toggle-button.active:not(:hover),.tichu-toggle-grid:hover .tichu-toggle-button.active:not(:hover){color:#fff6dc;background:#d9af5624;border-color:#d9af56a6;transform:none;box-shadow:inset 0 0 0 1px #fff4d633,0 0 0 1px #d9af561f}.round-stepper{justify-content:center;align-items:center;margin-bottom:1.25rem;display:flex}.round-step-pill{background:#14171c;border:2px solid #ffffff24;border-radius:50%;justify-content:center;align-items:center;width:.9rem;height:.9rem;display:inline-flex;position:relative;box-shadow:0 0 0 4px #0d1014d1}.round-step-pill+.round-step-pill{margin-left:4.2rem}.round-step-pill+.round-step-pill:before{content:"";background:#ffffff24;width:4.2rem;height:2px;position:absolute;top:50%;right:calc(100% + 2px);transform:translateY(-50%)}.round-step-pill.active,.round-step-pill.complete{background:#d9af56;border-color:#d9af56;box-shadow:0 0 0 4px #d9af561f,0 0 18px #d9af5633}.round-step-pill.complete+.round-step-pill:before{background:#d9af56}.round-step-content{gap:1.25rem;display:grid}.round-step-heading{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.round-step-description{color:#9ea7b3;text-align:left;margin:-.45rem 0 0;font-size:.95rem;line-height:1.65}.round-selected-player{color:#f2d78f;background:#d9af5614;border:1px solid #d9af562e;border-radius:999px;flex-shrink:0;padding:.55rem .8rem;font-size:.9rem;font-weight:700}.round-mode-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;display:grid}.round-mode-button{color:#d9dee5;text-align:left;background:#0d101473;border:1px solid #ffffff1a;border-radius:18px;gap:.55rem;min-height:8rem;padding:1rem;display:grid}.round-mode-button:hover{background:#d9af5614;border-color:#d9af5673;transform:translateY(-1px)}.round-mode-button strong{color:#f4f7fb;font-size:1.05rem}.round-mode-button span{color:#9ea7b3;font-size:.9rem;line-height:1.55}.round-player-button-grid,.one-two-tichu-list,.score-rank-list{gap:.75rem;display:grid}.round-player-button-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.player-choice-button{text-align:left;gap:.35rem;min-height:5rem;padding:.85rem;display:grid}.player-choice-button strong{color:inherit;font-size:1rem}.player-choice-button span{color:#9ea7b3;font-size:.86rem}.player-choice-button.active span{color:#f2d78f}.rank-tichu-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.declaration-tichu-grid{grid-template-columns:1fr}.score-rank-list{grid-template-columns:repeat(2,minmax(0,1fr))}.one-two-tichu-list{grid-template-columns:repeat(4,minmax(0,1fr))}.score-rank-card{min-width:0}.round-step-actions{gap:.75rem;display:flex}.round-step-actions .secondary-button,.round-step-actions .primary-button{min-width:7rem}.round-form-status{gap:.7rem;min-width:0;margin-right:auto;display:grid}.round-progress-row{align-items:center;gap:.5rem;display:inline-flex}.round-progress-value{color:#f4f7fb;align-items:center;font-size:1.15rem;line-height:1;display:inline-flex}.round-status-badge{border-radius:999px;justify-content:center;align-items:center;padding:.38rem .65rem;font-size:.82rem;line-height:1;display:inline-flex}.round-status-badge.is-ready{color:#cdebd8;background:#58a4762e}.round-status-badge.is-pending{color:#f7e4b0;background:#d9af5629}.button-row,.action-row,.history-action-row{gap:.75rem;display:flex}.link-action-button{color:#aeb7c2;cursor:pointer;background:0 0;border:0;padding:0;font-size:.92rem;font-weight:500;line-height:1}.link-action-button:hover{color:#d8dce2}.button-row{justify-content:flex-end}@media (width>=769px){.stats-section+.button-row{margin-top:1rem}}.round-history-section+.button-row{margin-top:1rem}.history-edit-button{color:#c9cfd7;background:#ffffff0d;border-color:#ffffff0d;flex-shrink:0;padding:.65rem .9rem;font-size:.9rem;font-weight:500;line-height:1}.history-card{cursor:pointer;background:0 0;border:0;border-radius:0;padding:0 1rem}.history-card:focus-visible{outline-offset:2px;outline:1px solid #d9af56a6}.history-card+.history-card{border-top:1px solid #ffffff14}.history-summary-bar{grid-template-columns:1fr auto 1fr;align-items:center;gap:.75rem;padding:1.1rem 0;display:grid}.history-summary-score{color:#f4f7fb;font-size:1.05rem;font-weight:700}.history-summary-score:first-child{text-align:left}.history-summary-score:last-child{text-align:right}.history-summary-round{color:#d9af56;letter-spacing:.08em;font-size:.88rem;font-weight:700}.history-details{background:#ffffff05;border:1px solid #ffffff14;border-radius:16px;margin-top:0;margin-bottom:.85rem;padding:.9rem 1rem 1rem}@media (width>=769px){.history-details{padding:1.35rem 1.45rem 1.4rem}}.result-grid.history-detail-grid{grid-template-columns:1fr}.history-detail-grid .result-card{background:0 0;border:0;border-radius:0;padding:0}.history-results-table-wrapper{overflow-x:auto}.history-results-table{border-collapse:collapse;color:#d8dce2;width:100%;font-size:.92rem}.history-results-table th,.history-results-table td{text-align:center;white-space:nowrap;border-bottom:1px solid #ffffff14;padding:.8rem .7rem}.history-results-table thead th{color:#9ea7b3;font-size:.8rem;font-weight:600}.history-results-table tbody th{color:#f4f7fb;text-align:center}.history-results-table tbody tr:last-child th,.history-results-table tbody tr:last-child td{border-bottom:0}.history-score-value{font-weight:700}.history-score-value.is-positive{color:#9be0b6}.history-score-value.is-negative{color:#ffb9b9}.history-tichu-badge{border-radius:999px;justify-content:center;align-items:center;min-width:2.2rem;padding:.28rem .5rem;font-size:.8rem;font-weight:700;line-height:1;display:inline-flex}.history-tichu-badge.is-success{color:#cdebd8;background:#58a4762e}.history-tichu-badge.is-fail{color:#ffd8d8;background:#cf5d5d29}.history-tichu-badge.is-neutral{color:#c9cfd7;background:#ffffff14}.add-round-button{color:#f2d78f;background:#d9af560f;border:1px dashed #d9af5666;border-radius:22px;width:100%;margin-bottom:1rem;padding:1rem 1.25rem;font-size:2rem;line-height:1}.add-round-button:hover:not(:disabled){background:#d9af561f;border-color:#d9af5699;transform:translateY(-1px)}.add-round-button:disabled{cursor:not-allowed;opacity:.45}.modal-backdrop{z-index:15;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#080a0eb3;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.modal-panel{background:linear-gradient(#272c34fa,#1b1f25);border:1px solid #ffffff14;border-radius:28px;width:min(100%,72rem);max-height:calc(100vh - 3rem);padding:1.75rem;overflow-y:auto;box-shadow:0 24px 60px #00000057}.modal-section{margin-top:1.5rem}.modal-footer{justify-content:flex-end;align-items:center;gap:1rem;margin-top:1.5rem;display:flex}.celebration-backdrop{z-index:25;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:radial-gradient(circle at top,#f2d78f24,#0000 34%),#080a0ed1;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.celebration-panel{text-align:center;background:radial-gradient(circle at top,#f2d78f1f,#0000 45%),linear-gradient(#272c34fa,#171a1f);border:1px solid #f2d78f3d;border-radius:30px;width:min(100%,38rem);padding:3rem 2rem 2rem;position:relative;overflow:hidden;box-shadow:0 26px 80px #0000006b,inset 0 1px #ffffff0f}.celebration-eyebrow{z-index:1;color:#f2d78f;letter-spacing:.18em;text-transform:uppercase;margin:0 0 .85rem;font-size:.82rem;position:relative}.celebration-title{z-index:1;color:#f8fafc;margin:0;font-size:clamp(2rem,6vw,3.4rem);line-height:1.1;position:relative}.celebration-description{z-index:1;color:#d8dce2;max-width:28rem;margin:1rem auto 0;line-height:1.8;position:relative}.celebration-close-button{z-index:1;min-width:8rem;margin-top:1.75rem;position:relative}.fireworks-layer{pointer-events:none;position:absolute;inset:0;overflow:hidden}.firework{--burst-color:#f2d78fe6;aspect-ratio:1;background:radial-gradient(circle, var(--burst-color) 0 .22rem, transparent .24rem), radial-gradient(circle, transparent 0 1.7rem, #f2d78f99 1.7rem 1.9rem, transparent 1.92rem), radial-gradient(circle, transparent 0 3rem, #9be0b694 3rem 3.2rem, transparent 3.22rem), radial-gradient(circle, transparent 0 4.3rem, #ffffff7a 4.3rem 4.5rem, transparent 4.52rem);filter:drop-shadow(0 0 18px #f2d78f42);opacity:0;border-radius:999px;width:14rem;animation:1.8s ease-out infinite firework-burst;position:absolute;transform:translate(-50%,-50%)scale(.2)}.firework:before,.firework:after{content:"";border-radius:inherit;background:inherit;position:absolute;inset:0}.firework:before{transform:rotate(25deg)}.firework:after{transform:rotate(50deg)}.firework-left{animation-delay:0s;top:22%;left:24%}.firework-center{--burst-color:#9be0b6e6;animation-delay:.4s;top:14%;left:52%}.firework-right{--burst-color:#ffcd94eb;animation-delay:.8s;top:26%;left:80%}@keyframes firework-burst{0%{opacity:0;transform:translate(-50%,-35%)scale(.08)}18%{opacity:1}55%{opacity:1;transform:translate(-50%,-50%)scale(.72)}to{opacity:0;transform:translate(-50%,-62%)scale(1.02)}}.stats-bar-track{background:#ffffff14;border-radius:999px;height:.65rem;position:relative;overflow:hidden}.stats-bar-fill{border-radius:inherit;height:100%}.stats-bar-fill.team-tone{background:linear-gradient(90deg,#9be0b6,#58a476)}.stats-bar-fill.player-tone{background:linear-gradient(90deg,#f2d78f,#d9af56)}.stats-bar-fill.is-negative{background:linear-gradient(90deg,#d08a8a,#b56565)}.stats-table-wrapper{scrollbar-color:#7e8996b8 #ffffff14;scrollbar-width:thin;margin:0 -.2rem -.2rem;padding:0 .2rem .2rem;overflow-x:auto}.stats-table-wrapper::-webkit-scrollbar{height:10px}.stats-table-wrapper::-webkit-scrollbar-track{background:#ffffff0f}.stats-table-wrapper::-webkit-scrollbar-button{width:0;height:0;display:none}.stats-table-wrapper::-webkit-scrollbar-thumb{background:linear-gradient(#86909ceb,#5e6874d6);border:2px solid #1b1f25f2;border-radius:999px}.stats-table-wrapper::-webkit-scrollbar-thumb:hover{background:linear-gradient(#9ca6b2f5,#707b88e6)}.stats-table{border-collapse:collapse;color:#d8dce2;width:100%;min-width:32rem;font-size:.9rem}.stats-table th,.stats-table td{text-align:center;white-space:nowrap;border-bottom:1px solid #ffffff14;padding:.8rem .75rem}.stats-table thead th{color:#9ea7b3;font-size:.8rem;font-weight:600}.stats-table tbody th{color:#f4f7fb;text-align:left}.stats-table tbody tr:last-child th,.stats-table tbody tr:last-child td{border-bottom:0}.table-success{color:#9be0b6}.table-fail{color:#ffb9b9}.stats-badge-row{flex-wrap:wrap;gap:.5rem;margin-top:.85rem;display:flex}.stats-badge{border-radius:999px;padding:.45rem .7rem;font-size:.85rem;line-height:1}.success-badge{color:#cdebd8;background:#58a4762e}.fail-badge{color:#ffd8d8;background:#cf5d5d29}.stats-card-header-row{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.stats-card-header-row .stats-card-title{margin-bottom:0}.chart-toggle-group{background:#0d10145c;border:1px solid #ffffff1a;border-radius:999px;gap:.35rem;padding:.25rem;display:inline-flex}.chart-toggle-button{color:#aeb6c1;cursor:pointer;background:0 0;border:0;border-radius:999px;padding:.45rem .8rem;font-size:.88rem;font-weight:700;transition:background .18s,color .18s}.chart-toggle-button.active{color:#fff2c9;background:#d9af562e}.chart-toggle-button:not(.active):hover{color:#f4f7fb}.line-chart-legend{flex-wrap:wrap;gap:.85rem;margin-bottom:1rem;display:flex}.line-chart-legend-item{color:#d8dce2;align-items:center;gap:.45rem;font-size:.92rem;display:inline-flex}.line-chart-legend-dot{border-radius:999px;width:.75rem;height:.75rem}.line-chart-legend-dot.team-tone,.line-chart-legend-dot.series-0{background:#58a476}.line-chart-legend-dot.player-tone,.line-chart-legend-dot.series-1{background:#d9af56}.line-chart-legend-dot.series-2{background:#7ca7d8}.line-chart-legend-dot.series-3{background:#d98f7a}.line-chart-wrapper{overflow-x:auto}.line-chart{width:100%;min-width:34rem;height:auto}.line-chart-zero,.line-chart-guide{stroke:#ffffff1f;stroke-width:1px}.line-chart-guide{stroke-dasharray:4 6}.line-chart-label,.line-chart-value{fill:#c9cfd7;font-size:12px}.line-chart-value{fill:#f4f7fb}.line-chart-path{fill:none;stroke-width:3px;stroke-linecap:round;stroke-linejoin:round}.line-chart-path.team-tone,.line-chart-path.series-0{stroke:#58a476}.line-chart-path.player-tone,.line-chart-path.series-1{stroke:#d9af56}.line-chart-path.series-2{stroke:#7ca7d8}.line-chart-path.series-3{stroke:#d98f7a}.line-chart-point{fill:currentColor;stroke-width:3px}.line-chart-point.team-tone,.line-chart-point.series-0{stroke:#58a476;color:#58a476}.line-chart-point.player-tone,.line-chart-point.series-1{stroke:#d9af56;color:#d9af56}.line-chart-point.series-2{stroke:#7ca7d8;color:#7ca7d8}.line-chart-point.series-3{stroke:#d98f7a;color:#d98f7a}@media (width<=768px){.screen{align-items:stretch;padding:.75rem}.panel{border-radius:22px;padding:1.25rem 1rem}.panel-header,.section-heading,.button-row,.action-row,.history-header,.stats-bar-header,.stats-detail-header,.modal-footer{flex-direction:column;align-items:stretch}.round-grid,.field-grid,.compact-grid,.stats-summary-grid,.stats-grid{grid-template-columns:1fr}.result-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stats-grid>*,.stats-card,.stats-detail-item{min-width:0}.setup-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.setup-screen{justify-content:center;align-items:center}.stats-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.stats-summary-label{font-size:.76rem}.stats-summary-value{font-size:1.05rem}.stats-summary-meta{font-size:.74rem}.stats-table{min-width:28rem;font-size:.82rem}.stats-table th,.stats-table td{padding:.7rem .55rem}.board-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.target-chip{width:fit-content}.player-input-header{flex-flow:wrap;align-items:center}.player-input-list{grid-template-columns:1fr}.player-list{flex-wrap:wrap;gap:.4rem 1rem;display:flex}.board-tabs{flex-wrap:nowrap;gap:.5rem;padding-top:.15rem;padding-bottom:.2rem;overflow-x:hidden}.board-tab-button{white-space:nowrap;text-align:center;flex:1 1 0}.button-row{flex-direction:row}.stats-section+.button-row{margin-top:1rem}.button-row .primary-button,.button-row .secondary-button{flex:1 1 0}.team-block,.team-card,.round-block,.result-card,.stats-card,.player-input-card,.stats-detail-item{border-radius:18px;padding:1rem}.history-card{border-radius:0;padding:0 1rem}.stats-summary-card{border-radius:18px;padding:.5rem 1rem}.modal-backdrop{align-items:flex-end;padding:0}.modal-panel{-ms-overflow-style:none;scrollbar-width:none;border-radius:24px 24px 0 0;flex-direction:column;width:100%;height:min(92vh,52rem);padding:1rem 1rem 0;display:flex}.modal-panel::-webkit-scrollbar{display:none}.modal-panel .section-heading{flex-direction:row;justify-content:space-between;align-items:flex-end;gap:.75rem}.modal-panel .action-row{flex-flow:wrap;justify-content:flex-end;align-items:center;gap:.5rem}.modal-panel .action-row .secondary-button{white-space:nowrap;flex:none;width:auto;padding:.75rem .95rem}.history-header{flex-direction:row;align-items:flex-start}.history-action-row{margin-left:auto}.history-details-actions .secondary-button{width:auto}.history-details-header{align-items:center}.history-details-header .history-edit-button{color:#aeb7c2;background:#ffffff0a;border-color:#ffffff0a;width:auto;padding:.5rem .75rem;font-size:.84rem}.result-grid.history-detail-grid{grid-template-columns:1fr}.history-results-table{font-size:.86rem}.history-results-table th,.history-results-table td{padding:.72rem .55rem}.modal-section{margin-bottom:1rem}.round-stepper{margin-left:-1rem;margin-right:-1rem;padding:0 1rem .15rem}.round-step-pill+.round-step-pill{margin-left:clamp(2rem,13vw,4.2rem)}.round-step-pill+.round-step-pill:before{width:clamp(2rem,13vw,4.2rem)}.round-step-heading{flex-direction:column;align-items:stretch}.round-selected-player{width:fit-content}.round-player-button-grid,.round-mode-grid,.one-two-tichu-list,.score-rank-list{grid-template-columns:1fr}.one-two-tichu-list,.round-player-button-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.round-title{font-size:1.2rem}.tichu-toggle-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.declaration-tichu-grid{grid-template-columns:1fr}.rank-toggle-button,.tichu-toggle-button{min-height:2.85rem}.modal-footer{padding:.9rem 1rem calc(.9rem + env(safe-area-inset-bottom,0px));-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#1b1f25f5;border-top:1px solid #ffffff14;border-radius:0;margin:auto -1rem 0;position:sticky;bottom:0;left:0;right:0}.round-form-status{margin-right:0}.round-step-actions{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.round-step-actions .secondary-button,.round-step-actions .primary-button{min-width:0}.tichu-declaration-actions{flex:auto;grid-template-columns:1fr}.tichu-declaration-actions .primary-button{width:100%}.round-progress-value{font-size:1rem}.round-status-badge{margin-top:0}.primary-button,.secondary-button{width:100%}.add-round-button{min-height:3.45rem;font-size:1.5rem}.line-chart{min-width:0}.award-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.award-card-header{flex-direction:column;align-items:flex-start}.stats-card-header-row{flex-direction:column;align-items:stretch}.chart-toggle-group{width:100%}.chart-toggle-button{flex:1}.celebration-panel{padding:2.4rem 1.25rem 1.5rem}}
