:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0f1419;--surface:#1a2332;--surface-2:#243044;--border:#2d3a4f;--text:#e7ecf3;--muted:#9aa8bc;--primary:#3b82f6;--primary-press:#2563eb;--ok:#22c55e;--bad:#ef4444;--warn:#f59e0b;--radius:12px;--safe-bottom:env(safe-area-inset-bottom,0px);background:var(--bg);color:var(--text);font-family:PingFang SC,Noto Sans SC,Microsoft YaHei,system-ui,-apple-system,sans-serif;font-size:16px;line-height:1.45}*{box-sizing:border-box}html,body,#root{background:var(--bg);min-height:100%;margin:0}button,input{font:inherit;color:inherit}.app{flex-direction:column;gap:10px;max-width:720px;min-height:100vh;margin:0 auto;padding:12px 12px 16px;display:flex}.app.is-score-tab{padding-bottom:calc(108px + var(--safe-bottom))}.app.is-ref-tab{padding-bottom:calc(16px + var(--safe-bottom))}.score-panel{flex-direction:column;flex:1;gap:10px;min-width:0;display:flex}.app-tabs{z-index:8;background:#0b1018;border:1px solid #1e293b;border-bottom:2px solid #334155;border-radius:12px 12px 0 0;grid-template-columns:1fr 1fr 1fr;gap:0;padding:0 4px;display:grid;position:sticky;top:0;box-shadow:0 4px 16px #00000059}.app-tab{color:#7c8da1;letter-spacing:.04em;cursor:pointer;background:0 0;border:none;border-radius:0;min-height:46px;font-size:.95rem;font-weight:600;transition:color .15s;position:relative}.app-tab:hover:not(.is-active){color:#c5d0de;background:#ffffff08}.app-tab.is-active{color:#f8fafc;background:0 0}.app-tab.is-active:after{content:"";background:linear-gradient(90deg,#38bdf8,#3b82f6);border-radius:3px 3px 0 0;height:3px;position:absolute;bottom:0;left:18%;right:18%;box-shadow:0 0 10px #3b82f68c}.app-tab:focus-visible{outline-offset:-2px;z-index:1;outline:2px solid #38bdf8}.ref-scroll{flex:1;min-width:0;min-height:0}.ref-panel{flex-direction:column;gap:10px;padding-bottom:8px;display:flex}.ref-hero{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 14px 12px}.ref-hero h2{margin:0 0 8px;font-size:1.15rem}.ref-lead{color:var(--muted);margin:0;font-size:.92rem;line-height:1.55}.ref-lead strong{color:var(--text)}.ref-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px}.ref-card.highlight{background:linear-gradient(180deg, #f59e0b14, var(--surface));border-color:#f59e0b59}.ref-card.muted{opacity:.98}.ref-card h3{color:#dbe7f7;margin:0 0 10px;font-size:.98rem}.mono-line{border:1px solid var(--border);word-break:break-word;background:#0b1018;border-radius:8px;margin:0 0 10px;padding:10px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.82rem;line-height:1.5}.ref-bullets{color:#d5deea;margin:0;padding-left:1.15em;font-size:.9rem}.ref-bullets li{margin:6px 0}.ref-bullets code{border:1px solid var(--border);background:#00000059;border-radius:4px;padding:0 4px;font-size:.85em}.ref-callout{color:#dbeafe;background:#3b82f61f;border:1px solid #3b82f659;border-radius:8px;margin:12px 0 0;padding:10px 12px;font-size:.9rem}.ref-note{color:var(--muted);margin:10px 0 0;font-size:.85rem}.ref-footer{color:var(--muted);margin:12px 0 0;font-size:.78rem}.straight-grid{gap:8px;display:grid}@media (width>=480px){.straight-grid{grid-template-columns:1fr 1fr}}.straight-item{border:1px solid var(--border);background:#0b1018;border-radius:10px;padding:10px}.straight-label{color:#fcd34d;margin-bottom:4px;font-size:.85rem;font-weight:700}.straight-ex{margin-bottom:6px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9rem}.straight-item p{color:#d5deea;margin:0;font-size:.85rem}.rank-list{margin:0;padding:0;list-style:none}.rank-item{border-bottom:1px solid var(--border);gap:10px;padding:10px 0;display:flex}.rank-item:last-child{border-bottom:none;padding-bottom:0}.rank-item:first-child{padding-top:0}.rank-badge{color:#93c5fd;background:#3b82f626;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:.85rem;font-weight:700;display:flex}.rank-item.is-top .rank-badge{color:#fcd34d;background:#f59e0b33}.rank-body{flex:1;min-width:0}.rank-title{flex-wrap:wrap;align-items:baseline;gap:6px 10px;margin-bottom:4px;display:flex}.rank-en{color:var(--muted);font-size:.8rem}.rank-example{color:#e7ecf3;margin-bottom:2px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.88rem}.rank-note{color:var(--muted);font-size:.85rem}.term-list{margin:0;padding:0;list-style:none}.term-item{border-bottom:1px solid var(--border);padding:10px 0}.term-item:last-child{border-bottom:none;padding-bottom:0}.term-item:first-child{padding-top:0}.term-name{margin-bottom:4px;font-size:.95rem;font-weight:700}.term-body{color:var(--muted);margin:0;font-size:.9rem;line-height:1.55}.score-toolbar{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);z-index:5;flex-wrap:nowrap;align-items:center;gap:10px;min-width:0;padding:8px 10px;display:flex;position:sticky;top:50px}.unit-field{color:var(--muted);flex:none;align-items:center;gap:6px;font-size:.82rem;display:flex}.unit-field input{border:1px solid var(--border);text-align:right;font-variant-numeric:tabular-nums;background:#0b1018;border-radius:8px;width:72px;padding:7px 8px;font-size:.9rem}.toolbar-metrics{flex:auto;justify-content:space-between;gap:4px;min-width:0;display:flex}.toolbar-metrics .metric{text-align:center;flex:1 1 0;min-width:0}.toolbar-metrics .label{color:var(--muted);white-space:nowrap;margin-bottom:1px;font-size:.68rem;display:block}.toolbar-metrics strong{font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap;font-size:.95rem;display:block;overflow:hidden}.toolbar-metrics .ok,.result.ok,.ok{color:var(--ok)}.toolbar-metrics .bad,.result.bad,.bad,.bad-text{color:var(--bad)}.toolbar-metrics .warn{color:var(--warn)}@media (width<=360px){.score-toolbar{gap:6px;padding:6px 8px}.unit-field input{width:60px;padding:6px}.toolbar-metrics strong{font-size:.85rem}}.banner{border:1px solid var(--border);border-radius:10px;justify-content:space-between;align-items:flex-start;gap:8px;padding:10px 12px;font-size:.92rem;display:flex}.banner.ok{background:#22c55e1f;border-color:#22c55e59}.banner.warn{background:#f59e0b1f;border-color:#f59e0b66}.banner-close{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:1.2rem;line-height:1}.list{flex-direction:column;flex:1;gap:10px;min-width:0;display:flex}.empty{text-align:center;color:var(--muted);border:1px dashed var(--border);border-radius:var(--radius);padding:40px 12px}.player-table{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.player-row{border-bottom:1px solid var(--border);grid-template-columns:minmax(52px,1.05fr) minmax(108px,1.55fr) minmax(52px,.9fr) minmax(48px,.85fr) 36px;align-items:center;gap:6px;min-width:0;padding:8px;display:grid}.player-row:last-child{border-bottom:none}.player-row-head{border-bottom:1px solid var(--border);color:var(--muted);letter-spacing:.02em;background:#00000038;padding:8px 8px 6px;font-size:.72rem;font-weight:600}.player-row-head>div{text-align:center}.player-row-head .col-name{text-align:left;padding-left:6px}.col-name,.col-buyin,.col-remain,.col-result,.col-action{min-width:0}.col-action{justify-content:center;display:flex}.name-input{border:1px solid var(--border);background:#0b1018;border-radius:8px;width:100%;min-width:0;height:36px;padding:0 8px;font-size:.9rem}.icon-btn{border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:8px;flex-shrink:0;width:32px;height:32px;padding:0;font-size:1.1rem;line-height:1}.icon-btn.danger{color:#fca5a5;border-color:#ef444466}.stepper{grid-template-columns:28px minmax(0,1fr) 28px;align-items:center;gap:3px;display:grid}.stepper button{border:1px solid var(--border);background:var(--surface-2);cursor:pointer;border-radius:8px;width:28px;height:36px;padding:0;font-size:1.05rem;line-height:1}.stepper input,.remain-input{border:1px solid var(--border);text-align:center;font-variant-numeric:tabular-nums;background:#0b1018;border-radius:8px;width:100%;min-width:0;height:36px;padding:0 4px;font-size:.88rem}.result{font-variant-numeric:tabular-nums;border:1px solid var(--border);text-overflow:ellipsis;white-space:nowrap;background:#0b1018;border-radius:8px;justify-content:center;align-items:center;height:36px;padding:0 2px;font-size:.88rem;font-weight:700;display:flex;overflow:hidden}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.bottom-bar{padding:10px 12px calc(10px + var(--safe-bottom));background:linear-gradient(180deg, transparent, #0f1419eb 20%, var(--bg));z-index:10;position:fixed;bottom:0;left:0;right:0;overflow:visible}.bottom-main{flex-wrap:nowrap;align-items:stretch;gap:8px;max-width:720px;margin:0 auto;display:flex;overflow:visible}.bottom-main.is-compact .btn.primary{flex:auto;min-width:0}.bottom-main.is-compact .btn.ghost,.bottom-main.is-expanded .btn{flex:none}.bottom-probe{pointer-events:none;visibility:hidden;flex-wrap:nowrap;gap:8px;width:max-content;display:flex;position:absolute;top:0;left:-99999px}.btn{border:1px solid var(--border);cursor:pointer;background:var(--surface-2);white-space:nowrap;border-radius:10px;min-height:44px;padding:0 14px;font-weight:600}.btn.primary{background:var(--primary);color:#fff;border-color:#0000}.btn.primary:active{background:var(--primary-press)}.btn.ghost{background:var(--surface)}.btn.danger{color:#fecaca;background:#ef444433;border-color:#ef444473}.btn:disabled{opacity:.5;cursor:not-allowed}.danger-text{color:#fca5a5!important}.hint{text-align:center;max-width:720px;color:var(--muted);margin:6px auto 0;font-size:.72rem}.more-wrap{z-index:30;flex:none;position:relative;overflow:visible}.more-menu{background:var(--surface);border:1px solid var(--border);z-index:40;border-radius:12px;flex-direction:column;gap:2px;min-width:160px;padding:6px;display:flex;position:absolute;bottom:calc(100% + 8px);right:0;box-shadow:0 10px 30px #00000073}.more-menu button{text-align:left;color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:12px}.more-menu button:hover{background:var(--surface-2)}.modal-backdrop{z-index:50;background:#0000008c;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;width:min(420px,100%);padding:18px 16px;box-shadow:0 16px 40px #0006}.modal-card h2{margin:0 0 8px;font-size:1.1rem}.modal-card p{color:#d5deea;margin:0 0 16px}.modal-actions{justify-content:flex-end;gap:8px;display:flex}.share-modal{width:min(480px,100%);max-height:90vh;overflow:auto}.share-preview{border:1px solid var(--border);border-radius:10px;width:100%;margin-bottom:12px;display:block}.share-offscreen{pointer-events:none;position:fixed;top:0;left:-10000px}.share-card{color:#e7ecf3;background:#0f1419;width:750px;padding:32px;font-family:PingFang SC,Noto Sans SC,Microsoft YaHei,sans-serif}.share-card-title{margin-bottom:8px;font-size:36px;font-weight:700}.share-card-time{color:#9aa8bc;margin-bottom:18px;font-size:18px}.share-card-meta{flex-wrap:wrap;gap:14px 20px;margin-bottom:20px;font-size:18px;display:flex}.share-card-meta .ok{color:#22c55e}.share-card-meta .bad{color:#ef4444}.share-card-table{border-collapse:collapse;width:100%;font-size:20px}.share-card-table th,.share-card-table td{text-align:center;border:1px solid #2d3a4f;padding:12px 10px}.share-card-table th{color:#9aa8bc;background:#1a2332;font-weight:600}.share-card-table td.ok{color:#22c55e;font-weight:700}.share-card-table td.bad{color:#ef4444;font-weight:700}.share-card-footer{color:#6b7a90;text-align:center;margin-top:18px;font-size:14px}@media (width>=480px){.player-row{grid-template-columns:minmax(80px,1.2fr) minmax(140px,1.6fr) minmax(72px,1fr) minmax(64px,.9fr) 40px;gap:8px;padding:10px 12px}.stepper{grid-template-columns:36px minmax(0,1fr) 36px;gap:4px}.stepper button{width:36px;height:40px}.stepper input,.remain-input,.name-input,.result{height:40px;font-size:.95rem}.icon-btn{width:36px;height:36px}}@media (width<=360px){.player-row{grid-template-columns:minmax(44px,.95fr) minmax(96px,1.5fr) minmax(44px,.85fr) minmax(40px,.8fr) 30px;gap:4px;padding:6px}.stepper{grid-template-columns:24px minmax(0,1fr) 24px;gap:2px}.stepper button{width:24px;height:32px;font-size:.95rem}.stepper input,.remain-input,.name-input,.result{height:32px;font-size:.8rem}.icon-btn{width:28px;height:28px}}body{margin:0}
