:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font:16px/1.5 system-ui,Segoe UI,Roboto,sans-serif}body{background:#f7f7f8;margin:0}:root{--tscale:1}.replayer{--felt:#22683f;--felt-edge:#16522f}.felt-wrap{--tscale:1;padding:.25rem 0}.table-stage{aspect-ratio:16/9.4;width:100%;max-width:980px;margin:0 auto;position:relative}@media (width>=1280px){.replayer{grid-template-columns:780px 360px;justify-content:center;align-items:start;column-gap:1.5rem;display:grid}.replayer .felt-wrap{grid-column:1}.replayer .right-col{flex-direction:column;grid-column:2;gap:.5rem;min-width:0;display:flex}.replayer .right-col .controls{margin-top:0}.replayer .right-col .annotations{max-height:60vh;overflow-y:auto}.replayer .right-col .editor{max-height:70vh;overflow-y:auto}}.felt{box-sizing:border-box;background:radial-gradient(ellipse at center, #2c7a4b 0%, var(--felt) 60%, var(--felt-edge) 100%);border:calc(10px * var(--tscale)) solid #5c3a1e;box-shadow:inset 0 0 calc(40px * var(--tscale)) #00000059, 0 2px 8px #00000040;border-radius:999px;position:absolute;inset:25% 14% 15%}.seat{width:calc(116px * var(--tscale));padding:calc(5px * var(--tscale)) calc(8px * var(--tscale));color:#f2f2f2;text-align:center;font-size:calc(.8rem * var(--tscale));box-sizing:border-box;z-index:2;background:#141419e6;border:1px solid #ffffff26;border-radius:8px;position:absolute;transform:translate(-50%,-50%)}.seat .holecards{margin-bottom:calc(2px * var(--tscale));position:absolute;bottom:100%;left:50%;transform:translate(-50%)}.seat.hero{border-color:#d6b34a}.seat.active{box-shadow:0 0 0 2px #ffd54a, 0 0 calc(14px * var(--tscale)) #ffd54ab3;background:#3c320aeb;border-color:#ffd54a}.seat.returned{background:#103622eb;border-color:#38a169;box-shadow:0 0 0 2px #38a169,0 0 14px #38a16999}.seat.won{background:#3a2e0ceb;border-color:#f6c94a;box-shadow:0 0 0 2px #f6c94a,0 0 16px #f6c94aa6}.seat.pending{background:#0c2842eb;border-color:#5db0ff;box-shadow:0 0 0 2px #5db0ff,0 0 14px #5db0ffb3}.pending-tag{font-size:calc(.6rem * var(--tscale));text-transform:uppercase;letter-spacing:.04em;color:#9fd0ff;margin-left:4px;font-weight:700;display:inline-block}.seat-name{white-space:nowrap;text-overflow:ellipsis;font-weight:700;overflow:hidden}.seat-meta{margin:calc(2px * var(--tscale)) 0 calc(4px * var(--tscale));color:#cbd5c0;font-size:calc(.7rem * var(--tscale));justify-content:space-between;gap:4px;display:flex}.seat-meta .pos{color:#ffe08a;font-weight:600}.seat.empty{color:#ffffff73;background:#14141959;border-style:dashed;border-color:#fff3}.seat.empty .seat-name{font-style:italic;font-weight:400}.seat.folded{opacity:.42;filter:grayscale()}.note-icon{width:calc(15px * var(--tscale));height:calc(15px * var(--tscale));margin-left:calc(5px * var(--tscale));color:#cfe0ff;font-size:calc(.62rem * var(--tscale));cursor:pointer;vertical-align:middle;background:0 0;border:1px solid #fff6;border-radius:50%;justify-content:center;align-items:center;padding:0;line-height:1;display:inline-flex}.note-icon.has-note{color:#ffe08a;border-color:#d6b34a}.note-icon:hover{background:#ffffff1f}.player-note-pop{color:#23303b;text-align:left;z-index:8;white-space:normal;background:#fffdf5;border:1px solid #d6b34a;border-radius:6px;width:190px;margin-top:5px;padding:.4rem;font-size:.72rem;line-height:1.3;position:absolute;top:100%;left:50%;transform:translate(-50%);box-shadow:0 3px 10px #00000059}.player-note-input{box-sizing:border-box;resize:vertical;width:100%;min-height:52px;font-family:inherit;font-size:.72rem}.player-note-actions{gap:.3rem;margin-top:.35rem;display:flex}.player-note-text{white-space:pre-wrap}.fold-tag{font-size:calc(.6rem * var(--tscale));text-transform:uppercase;letter-spacing:.04em;color:#ff9d9d;margin-left:4px;font-weight:700;display:inline-block}.chips{color:#3a2f05;font-size:calc(.72rem * var(--tscale));padding:calc(2px * var(--tscale)) calc(7px * var(--tscale));z-index:3;background:#f4d35e;border:1px solid #b9962e;border-radius:10px;font-weight:700;position:absolute;transform:translate(-50%,-50%);box-shadow:0 1px 3px #0006}.chips.is-check{color:#3a4453;background:#e6e9ef;border-color:#b8c2cc}.chips.is-ante{color:#4a5568;background:#d7dce3;border-color:#9aa5b4;font-style:italic;font-weight:600}.dealer-btn{width:calc(20px * var(--tscale));height:calc(20px * var(--tscale));color:#111;font-size:calc(.7rem * var(--tscale));z-index:5;background:#fff;border:1px solid #999;border-radius:50%;justify-content:center;align-items:center;font-weight:800;display:flex;position:absolute;box-shadow:0 1px 3px #00000080}.dealer-btn.top{top:calc(-9px * var(--tscale))}.dealer-btn.bottom{bottom:calc(-9px * var(--tscale))}.dealer-btn.left{left:calc(-9px * var(--tscale))}.dealer-btn.right{right:calc(-9px * var(--tscale))}.holecards,.board{gap:calc(3px * var(--tscale));justify-content:center;display:flex}.card{width:calc(32px * var(--tscale));height:calc(44px * var(--tscale));color:#111;-webkit-user-select:none;user-select:none;background:#fff;border:1px solid #999;border-radius:4px;flex-direction:column;justify-content:center;align-items:center;font-weight:700;line-height:1;display:flex;box-shadow:0 1px 2px #0000004d}.card .rank{font-size:calc(.82rem * var(--tscale))}.card .suit{font-size:calc(.8rem * var(--tscale))}.card.red{color:#d11b2b}.card.back{color:#ffffffb3;font-size:calc(.9rem * var(--tscale));background:repeating-linear-gradient(45deg,#34517e,#34517e 4px,#2a4066 4px 8px)}.center{text-align:center;position:absolute;transform:translate(-50%,-50%)}.board{min-height:calc(44px * var(--tscale))}.board-empty{color:#ffffffbf;font-size:calc(.8rem * var(--tscale));font-style:italic}.central-pot{margin-top:calc(8px * var(--tscale));color:#3a2f05;padding:calc(2px * var(--tscale)) calc(10px * var(--tscale));font-size:calc(.78rem * var(--tscale));background:#f4d35e;border:1px solid #b9962e;border-radius:10px;font-weight:700;display:inline-block;box-shadow:0 1px 3px #0006}.pot{margin-top:calc(6px * var(--tscale));color:#ffe08a;padding:calc(3px * var(--tscale)) calc(10px * var(--tscale));font-size:calc(.8rem * var(--tscale));background:#00000073;border-radius:12px;font-weight:600;display:block}.controls{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-top:.5rem;display:flex}.controls .buttons{gap:.4rem;display:flex}.controls .counter{color:#444;font-size:.85rem;font-weight:600}.controls .seat-mode{color:#555;align-items:center;gap:.35rem;font-size:.72rem;display:inline-flex}.controls .seat-mode select{padding:.15rem .25rem;font-size:.75rem}.phase-tag{text-transform:uppercase;letter-spacing:.05em;color:#1160a8;background:#dcecff;border:1px solid #b6d6f7;border-radius:8px;margin-left:6px;padding:1px 6px;font-size:.62rem;font-weight:700;display:inline-block}.caption{background:#f1f5f9;border-left:3px solid #2b6cb0;border-radius:4px;margin-top:.6rem;padding:.5rem .75rem;font-size:.9rem}.awards{background:#fbf3d8;border-left:3px solid #f6c94a;border-radius:4px;flex-direction:column;gap:.25rem;margin-top:.6rem;padding:.5rem .75rem;display:flex}.award{color:#5a4a12;font-size:.9rem}.award-who{font-weight:700}.award-amt{color:#8a6d0a;font-weight:700}.award-pot{font-style:italic}.annotations{flex-direction:column;gap:.6rem;margin-top:.75rem;display:flex}.annotation{border-radius:6px;padding:.6rem .8rem;font-size:.88rem}.annotation.note{background:#fffbea;border:1px solid #f0e0a0}.annotation.quiz{background:#eef6ff;border:1px solid #bcd8f5}.ann-label{text-transform:uppercase;letter-spacing:.05em;color:#666;margin-bottom:.25rem;font-size:.7rem;font-weight:700}.ann-label.quiz-paged{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.quiz-page-count{text-transform:none;letter-spacing:0;color:#888;font-weight:600}.quiz-pager{flex:none;gap:.25rem;display:inline-flex}.quiz-page-btn{color:#333;cursor:pointer;background:#eef2f7;border:1px solid #cbd5e0;border-radius:4px;padding:0 6px;font-size:.72rem;line-height:1.4}.quiz-page-btn:hover:not(:disabled){background:#dde6f0}.quiz-page-btn:disabled{opacity:.4;cursor:default}.ann-choices{margin:.4rem 0;padding-left:1.2rem}.ann-answer{color:#1a7f37;margin-top:.4rem;font-weight:700}button.reveal{background:#2b6cb0;margin-top:.4rem}.ann-choices.interactive{flex-direction:column;gap:.35rem;margin:.5rem 0 0;padding:0;list-style:none;display:flex}button.choice{text-align:left;color:#1a3b5c;cursor:pointer;background:#fff;border:1px solid #bcd8f5;border-radius:6px;width:100%;padding:.45rem .6rem;font-size:.85rem}button.choice:hover:not(:disabled){background:#f0f7ff}button.choice:disabled{cursor:default;opacity:1}button.choice.correct{color:#22543d;background:#f0fff4;border-color:#38a169;font-weight:700}button.choice.wrong{color:#742a2a;background:#fff5f5;border-color:#e53e3e}.ann-result{margin-top:.5rem}.verdict{margin-bottom:.25rem;font-weight:700}.verdict.correct{color:#1a7f37}.verdict.incorrect{color:#c53030}.ann-result .ann-answer{color:#333;margin-top:0;font-weight:400}.rt-p{margin:0}.rt-p+.rt-p{margin-top:.5em}.author-bar{flex-wrap:wrap;align-items:center;gap:.4rem;margin-top:.6rem;display:flex}.author-error{color:#c53030;font-size:.8rem}.editor{background:#f8fafc;border:1px solid #cbd5e0;border-radius:8px;margin-top:.6rem;padding:.7rem}.editor-head{text-transform:uppercase;letter-spacing:.05em;color:#666;margin-bottom:.5rem;font-size:.72rem;font-weight:700}.editor-empty{color:#777;margin:0 0 .5rem;font-size:.85rem}.draft{background:#fff;border:1px solid #e2e8f0;border-radius:6px;margin-bottom:.5rem;padding:.5rem}.draft.deleted{opacity:.5;background:#fff5f5}.draft-top{align-items:center;gap:.5rem;margin-bottom:.4rem;display:flex}.draft-top select{padding:.2rem;font-size:.8rem}.order-input{border:1px solid #ccc;border-radius:4px;width:64px;padding:.2rem .4rem;font-size:.8rem}.del-check{color:#742a2a;align-items:center;gap:.25rem;margin-left:auto;font-size:.78rem;display:inline-flex}.draft-text,.draft-answer{box-sizing:border-box;resize:vertical;border:1px solid #ccc;border-radius:4px;width:100%;min-height:48px;padding:.4rem;font-family:inherit;font-size:.82rem}.content-editor{flex-direction:column;align-items:flex-start;gap:.4rem;display:flex}.content-editor>select{padding:.2rem;font-size:.8rem}.content-editor>.draft-text,.content-editor>.quiz-edit{align-self:stretch}.quiz-edit{margin-top:.5rem}.quiz-hint{color:#6b7280;margin:0 0 .4rem;font-size:.72rem;line-height:1.3}.choices-edit{flex-direction:column;gap:.3rem;margin-bottom:.4rem;display:flex}.correct-opt{color:#555;align-items:center;gap:.3rem;font-size:.78rem;display:inline-flex}.choice-edit{align-items:center;gap:.4rem;display:flex}.choice-text{border:1px solid #ccc;border-radius:4px;flex:1 1 0;padding:.3rem .4rem;font-size:.82rem}.editor-add{gap:.4rem;margin:.3rem 0 .5rem;display:flex}.editor-error{color:#742a2a;white-space:pre-wrap;background:#fff5f5;border:1px solid #f0b4b4;border-radius:6px;margin-bottom:.5rem;padding:.5rem;font-size:.82rem}.editor-actions{gap:.5rem;display:flex}.tmpl-picker{border:1px solid #cbd2d9;border-radius:4px;padding:.1rem .2rem;font-size:.75rem}.editor-tmpl-msg{color:#2f855a;font-size:.75rem;font-weight:600}@media (width<=639px){.felt-wrap{padding-top:1.4rem}.table-stage{aspect-ratio:1/.92}.controls{gap:.5rem}.controls .buttons{width:100%}.controls .buttons button{flex:1 1 0;min-height:48px;padding:.3rem .2rem;font-size:.95rem}.annotation{font-size:1rem}button.choice{min-height:48px;padding:.65rem .75rem;font-size:1rem}button.reveal{width:100%;min-height:48px;font-size:1rem}.quiz-page-btn{min-width:44px;min-height:44px}}.builder-setup{flex-direction:column;gap:.8rem;display:flex}.setup-row,.setup-blinds{flex-wrap:wrap;align-items:center;gap:.8rem;display:flex}.builder-setup label{color:#444;align-items:center;gap:.35rem;font-size:.85rem;display:inline-flex}.builder-setup select,.builder-setup input{border:1px solid #cbd2d9;border-radius:4px;padding:.2rem .35rem;font-size:.85rem}.setup-blinds input{width:4rem}.setup-game{color:#2b6cb0;border:1px solid #cbd2d9;border-radius:4px;padding:0 6px;font-size:.8rem;font-weight:700}.setup-seats{border-collapse:collapse;font-size:.85rem}.setup-seats th,.setup-seats td{text-align:left;border-bottom:1px solid #eee;padding:.25rem .6rem}.setup-seats input{border:1px solid #cbd2d9;border-radius:4px;padding:.15rem .3rem}.setup-seats .seat-stack{width:5rem}.setup-seats .seat-cards{width:6rem}.build-topbar{gap:.4rem;display:flex}.btn-badge{color:#fff;background:#2b6cb0;border-radius:3px;margin-left:.4rem;padding:0 4px;font-size:.6rem;font-weight:700}.builder-error{color:#c53030;font-size:.85rem}.builder-meta{background:#fafbfc;border:1px solid #e2e6ea;border-radius:6px;margin:.4rem 0 .8rem}.builder-meta .meta-toggle{text-align:left;color:#374151;cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:.45rem;width:100%;padding:.45rem .7rem;font-size:.82rem;font-weight:600;display:flex}.builder-meta .meta-toggle:hover{background:#f0f2f5}.builder-meta .meta-caret{color:#6b7280;width:.9em;display:inline-block}.builder-meta-fields{border-top:1px solid #e2e6ea;margin-top:.1rem;padding:.2rem .7rem .7rem}.builder .valid-head .builder-close{color:#9a3b3b;background:#fff;border:1px solid #e0b4b4;font-weight:600}.builder .valid-head .builder-close:hover{background:#fdeaea;border-color:#d99a9a}.builder-body{grid-template-columns:minmax(0,1fr) minmax(300px,360px);align-items:start;gap:1rem;display:grid}@media (width<=959px){.builder-body{grid-template-columns:1fr}}@media (width>=960px){.panel.builder{box-sizing:border-box;width:min(1320px,96vw);max-width:none;margin-left:50%;transform:translate(-50%)}}.builder-preview{min-width:0}.builder-preview .replayer{display:block}.builder-side{flex-direction:column;gap:.7rem;display:flex}.builder-controls{background:#fafbfc;border:1px solid #e2e6ea;border-radius:6px;flex-direction:column;gap:.55rem;padding:.6rem .7rem;display:flex}.build-status{color:#555;align-items:center;gap:.8rem;font-size:.8rem;display:flex}.build-status button{margin-left:auto}.to-act{flex-wrap:wrap;align-items:center;gap:.6rem;font-size:.9rem;display:flex}.override{color:#6b7280;align-items:center;gap:.25rem;font-size:.75rem;display:inline-flex}.build-buttons{flex-wrap:wrap;align-items:center;gap:.35rem;display:flex}.build-buttons button{color:#1a1a1a;cursor:pointer;background:#fff;border:1px solid #cbd2d9;border-radius:5px;padding:.3rem .6rem;font-size:.85rem}.build-buttons button:hover:not(:disabled){background:#eef5ff}.build-buttons button:disabled{opacity:.5;cursor:default}.raise-group{gap:.2rem;display:inline-flex}.build-buttons .amt{border:1px solid #cbd2d9;border-radius:4px;width:4.5rem;padding:.25rem .35rem}.build-warn{color:#9a5b00;background:#fff7e6;border-left:3px solid #f6c94a;border-radius:3px;padding:.2rem .4rem;font-size:.78rem}.build-done{color:#2f855a;font-size:.85rem;font-style:italic}.build-cap{color:#2b6cb0;font-size:.8rem;font-weight:600}.build-skip{color:#4a5568;font-size:.78rem;font-style:italic}.build-hint{color:#4a5568;font-size:.78rem;line-height:1.35}.seat-note-toggle{white-space:nowrap}.seat-note-row td{padding-top:0}.seat-note-input{box-sizing:border-box;resize:vertical;width:100%;min-height:44px;padding:.3rem .4rem;font-family:inherit;font-size:.8rem}.build-notice{color:#22508a;background:#eef5ff;border:1px solid #bcd6f5;border-radius:6px;flex-direction:column;gap:.15rem;padding:.4rem .6rem;font-size:.8rem;display:flex}.build-invalid{color:#9b2c2c;background:#fdecec;border:1px solid #f5b5b5;border-radius:6px;flex-direction:column;gap:.15rem;padding:.4rem .6rem;font-size:.8rem;display:flex}.build-board{background:#fafbfc;border:1px solid #e2e6ea;border-radius:6px;flex-direction:column;gap:.35rem;padding:.55rem .7rem;display:flex}.board-row{align-items:center;gap:.5rem;font-size:.82rem;display:flex}.board-row-street{color:#6b7280;text-transform:capitalize;flex:0 0 3.2rem}.board-row input{border:1px solid #cbd2d9;border-radius:4px;flex:1;min-width:0;padding:.15rem .35rem}.build-deal,.build-hero{flex-wrap:wrap;align-items:center;gap:.35rem;display:flex}.build-deal input{border:1px solid #cbd2d9;border-radius:4px;flex:1;min-width:8rem;padding:.25rem .4rem}.build-deal button,.build-hero button{color:#1a1a1a;cursor:pointer;background:#fff;border:1px solid #cbd2d9;border-radius:4px;padding:.25rem .5rem}.build-deal button:disabled,.build-hero button:disabled{opacity:.5;cursor:default}.builder-setup .actions button{color:#1a1a1a}.build-hero label{color:#444;align-items:center;gap:.35rem;font-size:.8rem;display:inline-flex}.build-hero input{border:1px solid #cbd2d9;border-radius:4px;width:7rem;padding:.2rem .35rem}.builder-restart{margin-top:.2rem}.build-cards,.build-result{background:#fafbfc;border:1px solid #e2e6ea;border-radius:6px;flex-direction:column;gap:.35rem;padding:.55rem .7rem;display:flex}.build-cards-head{text-transform:uppercase;letter-spacing:.04em;color:#6b7280;font-size:.7rem;font-weight:600}.card-row{align-items:center;gap:.5rem;font-size:.82rem;display:flex}.card-row-who{color:#444;flex:0 0 8rem}.card-row input,.result-title input{border:1px solid #cbd2d9;border-radius:4px;flex:1;min-width:0;padding:.15rem .35rem}.result-pot{align-items:center;gap:.5rem;font-size:.85rem;display:flex}.pot-label{color:#6b7280;flex:0 0 5.5rem}.pot-amt{color:#8a6d0a;font-weight:700}.pot-arrow{color:#9aa2ab}.pot-winner{font-weight:600}.result-pot select{border:1px solid #cbd2d9;border-radius:4px;padding:.15rem .3rem}.result-meta{border-top:1px solid #e2e6ea;flex-direction:column;gap:.4rem;padding-top:.4rem;display:flex}.result-save{align-items:center;gap:.6rem;display:flex}.result-save button{color:#fff;cursor:pointer;background:#2b6cb0;border:1px solid #2b6cb0;border-radius:5px;padding:.35rem .8rem}.result-save button:disabled{opacity:.5;cursor:default}.save-msg{font-size:.82rem}.save-msg.ok{color:#2f855a;font-weight:600}.save-msg.err{color:#c53030}@media (width<=639px){.setup-seats{max-width:100%;display:block;overflow-x:auto}}.app{color:#1a1a1a;max-width:900px;margin:0 auto;padding:1.5rem 1rem 4rem;font-family:system-ui,sans-serif}@media (width>=1280px){.panel.valid,.panel.library{box-sizing:border-box;width:min(1320px,96vw);max-width:none;margin-left:50%;transform:translate(-50%)}}.app h1{margin:0;font-size:1.4rem}.app-head{justify-content:space-between;align-items:center;gap:1rem;margin:0 0 1rem;display:flex}.panel{background:#fff;border:1px solid #d9d9d9;border-radius:8px;margin-bottom:1.25rem;padding:1rem}.panel h2{margin:0 0 .75rem;font-size:1rem}label{margin-bottom:.4rem;font-size:.9rem;font-weight:600;display:block}textarea{box-sizing:border-box;resize:vertical;border:1px solid #ccc;border-radius:6px;width:100%;min-height:220px;padding:.6rem;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.85rem}.actions{margin-top:.75rem}button{color:#fff;cursor:pointer;background:#2b6cb0;border:1px solid #2b6cb0;border-radius:6px;padding:.5rem 1rem;font-size:.9rem}button:disabled{opacity:.5;cursor:not-allowed}.errors{background:#fff5f5;border-color:#e53e3e}.errors ul{margin:0;padding:0;list-style:none}.errors li{border-top:1px solid #fed7d7;align-items:baseline;gap:.75rem;padding:.35rem 0;font-size:.85rem;display:flex}.errors li:first-child{border-top:none}.errors .path{color:#742a2a;white-space:nowrap;background:#fed7d7;border-radius:4px;flex:none;padding:.1rem .4rem;font-family:ui-monospace,Menlo,Consolas,monospace}.errors .msg{color:#742a2a}.valid{background:#f0fff4;border-color:#38a169}.valid pre{color:#e2e8f0;background:#1a202c;border-radius:6px;max-height:360px;margin:0;padding:.75rem;font-size:.8rem;overflow:auto}.saveError{color:#742a2a;font-size:.85rem}.library table{border-collapse:collapse;width:100%;font-size:.85rem}.library th,.library td{text-align:left;border-bottom:1px solid #eee;padding:.4rem .5rem}.library th{color:#555;font-weight:600}.library .empty{color:#777;margin:0;font-size:.9rem}code{font-family:ui-monospace,Menlo,Consolas,monospace}.valid-head{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.5rem;display:flex}.valid-head h2{margin:0}.toggle{gap:0;display:flex}.toggle button{color:#2b6cb0;background:#fff;border-radius:0}.toggle button:first-child{border-radius:6px 0 0 6px}.toggle button:last-child{border-radius:0 6px 6px 0}.toggle button.on{color:#fff;background:#2b6cb0}.batch-results{margin:0;padding:0;list-style:none}.batch-row{background:#fafafa;border-left:3px solid #ccc;border-radius:0 4px 4px 0;margin-bottom:.35rem;padding:.4rem .6rem;font-size:.85rem}.batch-row .batch-label{margin-right:.6rem;font-weight:600}.batch-row.valid{border-left-color:#38a169}.batch-row.duplicate{background:#fffaf0;border-left-color:#dd6b20}.batch-row.invalid{background:#fff5f5;border-left-color:#e53e3e}.batch-ok{color:#2f855a;font-weight:600}.batch-dup{color:#9c4221}.batch-issues{margin:.3rem 0 0;padding:0;list-style:none}.batch-issues li{align-items:baseline;gap:.6rem;padding:.15rem 0;display:flex}.batch-issues .path{color:#742a2a;white-space:nowrap;background:#fed7d7;border-radius:4px;padding:.1rem .4rem;font-family:ui-monospace,Menlo,Consolas,monospace}.batch-issues .msg{color:#742a2a}.collisions{background:#fffaf0;border-color:#dd6b20}.toggle-actions{gap:.4rem;display:flex}.collision-list{margin:0;padding:0;list-style:none}.collision-row{border-top:1px solid #f0e0c0;justify-content:space-between;align-items:center;gap:1rem;padding:.5rem 0;font-size:.85rem;display:flex}.collision-row:first-child{border-top:none}.collision-info .existing-info{color:#9c4221;font-size:.8rem}.collision-choice{white-space:nowrap;flex:none;gap:.75rem;display:flex}.collision-choice label{align-items:center;gap:.25rem;margin:0;font-weight:400;display:inline-flex}.lib-list{margin:0;padding:0;list-style:none}.lib-item{border:1px solid #e2e2e2;border-radius:6px;margin-bottom:.4rem;overflow:hidden}.lib-item.selected{border-color:#2b6cb0;box-shadow:0 0 0 1px #2b6cb0}.lib-item.spinoff{border-left:3px solid #d7c7f0;margin-left:1.5rem}.lib-sort{align-items:center;gap:.4rem;display:flex}.lib-sort-label{color:#777;font-size:.75rem}.lib-row,.lib-head{align-items:center;gap:.6rem;padding:.45rem .6rem;font-size:.85rem;display:flex}.lib-head{text-transform:uppercase;letter-spacing:.05em;color:#999;border-bottom:1px solid #e2e2e2;padding-bottom:.35rem;font-size:.66rem}.lib-row.clickable{cursor:pointer}.lib-row.clickable:hover{background:#f5f9ff}.fam-chevron{color:#555;cursor:pointer;background:0 0;border:none;flex:none;width:18px;padding:0;font-size:.65rem;line-height:1;transition:transform .12s}.fam-chevron.open{transform:rotate(90deg)}.fam-spacer{flex:none;width:18px}.col-select{flex:none;justify-content:center;align-items:center;width:18px;display:inline-flex}.col-select input{cursor:pointer;margin:0}.bulk-bar{background:#eef5ff;border:1px solid #bcd6f5;border-radius:6px;flex-direction:column;gap:.5rem;margin:0 0 .5rem;padding:.4rem .6rem;display:flex}.bulk-bar-main{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.bulk-count{color:#22508a;margin-right:.2rem;font-size:.82rem;font-weight:700}.bulk-tag-form{border-top:1px solid #cfe0f5;flex-wrap:wrap;align-items:center;gap:.5rem;padding-top:.45rem;display:flex}.bulk-tag-input{min-width:220px}.bulk-msg{color:#22508a;font-size:.8rem}.col{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.col.id{color:#999;flex:0 0 108px;font-size:.8rem}.col.cards{flex:0 0 84px;font-family:ui-monospace,Menlo,Consolas,monospace;font-weight:600}.col.title{flex:3 1 0;font-size:.95rem;font-weight:600}.lib-head .col.title{font-size:.66rem;font-weight:inherit}.col.modified{color:#777;flex:0 0 118px;font-size:.8rem}.var-count{color:#888;font-size:.8rem;font-weight:400}.col.lineage{flex:1.4 1 0}.lineage-badge{color:#6b46c1;white-space:nowrap;background:#f0ebfb;border:1px solid #d7c7f0;border-radius:8px;padding:1px 6px;font-size:.72rem}.lineage-badge.missing{color:#9c4221;background:#fffaf0;border-color:#f5c99b}.row-actions{flex:none;gap:.3rem;display:flex}button.mini{color:#2b6cb0;background:#fff;border:1px solid #cbd5e0;padding:.25rem .5rem;font-size:.75rem}button.mini.danger{color:#c53030;border-color:#f0b4b4}button.mini.danger:hover{background:#fff5f5}.lib-detail{background:#fafafa;border-top:1px solid #eee;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.75rem;padding:.7rem .8rem .9rem;display:grid}.detail-group h3{text-transform:uppercase;letter-spacing:.05em;color:#777;margin:0 0 .4rem;font-size:.72rem}.field{align-items:baseline;gap:.5rem;padding:.15rem 0;font-size:.8rem;display:flex}.field-label{color:#888;flex:0 0 40%}.field-value{word-break:break-word;flex:1 1 0}.dash{color:#bbb}.chip-list{flex-wrap:wrap;gap:.25rem;display:inline-flex}.chip-tag{background:#eef2f7;border:1px solid #d5dde6;border-radius:8px;padding:1px 6px;font-size:.72rem}.lib-filters{background:#fafbfc;border:1px solid #e2e6ea;border-radius:6px;margin-bottom:.6rem}.lib-filters-head{align-items:center;gap:.6rem;padding:.4rem .6rem;display:flex}.filters-toggle{cursor:pointer;color:#33475b;background:0 0;border:none;align-items:center;gap:.35rem;padding:0;font-size:.85rem;font-weight:600;display:inline-flex}.lib-filters-count{color:#6b7280;margin-left:auto;font-size:.8rem}.filter-rows{flex-direction:column;gap:.3rem;padding:.1rem .6rem .6rem;display:flex}.filter-row{align-items:baseline;gap:.5rem;display:flex}.filter-dim-label{color:#6b7280;text-align:right;flex:0 0 8.5rem;padding-top:.15rem;font-size:.78rem}.filter-chips{flex-wrap:wrap;flex:1;gap:.25rem;min-width:0;display:flex}.chip-count{opacity:.6;font-size:.68rem}.filter-title-wrap{background:#fff;border:1px solid #d5dde6;border-radius:8px;flex:1;align-items:center;gap:.25rem;min-width:0;max-width:22rem;padding:0 .3rem 0 0;display:inline-flex}.filter-title-wrap.on{border-color:#2b6cb0;box-shadow:0 0 0 1px #2b6cb0}.filter-title-input{color:#33475b;background:0 0;border:none;outline:none;flex:1;min-width:0;padding:2px 7px;font-size:.75rem}.filter-title-clear{cursor:pointer;color:#6b7280;background:0 0;border:none;padding:2px 3px;font-size:.7rem;line-height:1}.filter-title-clear:hover{color:#33475b}.facet-chip.unclassified{color:#7a8590;font-style:italic}.facet-chip.unclassified.on{color:#fff}.meta-input{background:#fff;border:1px solid #cbd2d9;border-radius:4px;width:100%;min-width:0;padding:.2rem .35rem;font-size:.8rem}.facet-multi{flex-wrap:wrap;gap:.25rem;display:inline-flex}.facet-chip{cursor:pointer;color:#33475b;background:#eef2f7;border:1px solid #d5dde6;border-radius:8px;padding:1px 7px;font-size:.72rem}.facet-chip.on{color:#fff;background:#2b6cb0;border-color:#2b6cb0}.facet-none{color:#aab2bb;font-size:.75rem;font-style:italic}.detail-save{border-top:1px solid #eee;flex-wrap:wrap;grid-column:1/-1;align-items:center;gap:.5rem;margin-top:.2rem;padding-top:.6rem;display:flex}.detail-saved{color:#2f855a;font-size:.8rem;font-weight:600}.detail-save .json-issues{flex-basis:100%;margin:.3rem 0 0}button.mini.on{color:#fff;background:#2b6cb0;border-color:#2b6cb0}.lib-json{cursor:default;background:#fafafa;border-top:1px solid #eee;padding:.7rem .8rem .9rem}.lib-json textarea{box-sizing:border-box;resize:vertical;border:1px solid #ccc;border-radius:6px;width:100%;min-height:280px;padding:.6rem;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.8rem}.lib-json .actions{gap:.5rem;margin-top:.6rem;display:flex}.json-issues{background:#fff5f5;border:1px solid #f0b4b4;border-radius:6px;margin:.6rem 0 0;padding:.6rem;list-style:none}.json-issues li{align-items:baseline;gap:.6rem;padding:.15rem 0;font-size:.82rem;display:flex}.json-issues .path{color:#742a2a;white-space:nowrap;background:#fed7d7;border-radius:4px;padding:.1rem .4rem;font-family:ui-monospace,Menlo,Consolas,monospace}.json-issues .msg{color:#742a2a}.lib-dtext{cursor:default;background:#fafafa;border-top:1px solid #eee;align-items:flex-start;gap:.75rem;padding:.7rem .8rem .9rem;display:flex}.dtext-text{box-sizing:border-box;resize:vertical;white-space:pre;background:#fff;border:1px solid #ccc;border-radius:6px;flex:1 1 0;min-width:0;min-height:320px;padding:.6rem;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.8rem}.dtext-notices{flex:0 0 260px;font-size:.82rem}.dtext-notices h4{text-transform:uppercase;letter-spacing:.05em;color:#777;margin:0 0 .4rem;font-size:.72rem}.dtext-notices ul{margin:0;padding-left:1.1rem}.dtext-notices li{color:#9c4221;margin-bottom:.4rem}.dtext-clean{color:#2f855a;margin:0}.vocab-note{color:#555;margin:0 0 .75rem;font-size:.85rem}.vocab-facets{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.75rem;display:grid}.vocab-facet{background:#fafbfc;border:1px solid #d9dee3;border-radius:6px;flex-direction:column;padding:.6rem .7rem;display:flex}.vocab-facet-head{justify-content:space-between;align-items:baseline;gap:.5rem;margin-bottom:.4rem;display:flex}.vocab-facet-name{font-weight:600}.vocab-arity{text-transform:uppercase;letter-spacing:.04em;color:#6b7280;border:1px solid #cbd2d9;border-radius:3px;padding:0 4px;font-size:.62rem}.vocab-values{flex-direction:column;flex:1;gap:.2rem;margin:0 0 .5rem;padding:0;list-style:none;display:flex}.vocab-value{align-items:center;gap:.4rem;font-size:.85rem;display:flex}.vocab-label{text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.vocab-value-actions{gap:.2rem;margin-left:auto;display:flex}.vocab-value-actions .mini{opacity:.55}.vocab-value:hover .vocab-value-actions .mini,.vocab-value.editing .vocab-value-actions .mini{opacity:1}.vocab-edit-input{border:1px solid #5db0ff;border-radius:4px;flex:1;min-width:0;padding:.2rem .35rem;font-size:.85rem}.vocab-id{color:#6b7280;background:#eef1f4;border-radius:3px;padding:0 4px;font-size:.72rem}.vocab-empty{color:#9aa2ab;font-size:.8rem}.vocab-add{gap:.35rem;display:flex}.vocab-add input{border:1px solid #cbd2d9;border-radius:4px;flex:1;min-width:0;padding:.25rem .4rem;font-size:.85rem}.vocab-error{color:#c53030;margin-top:.35rem;font-size:.78rem}.tmpl-list{flex-direction:column;gap:.3rem;margin:0;padding:0;list-style:none;display:flex}.tmpl-item{background:#fafbfc;border:1px solid #e2e6ea;border-radius:5px;align-items:center;gap:.5rem;padding:.3rem .5rem;font-size:.85rem;display:flex}.tmpl-kind{text-transform:uppercase;letter-spacing:.04em;color:#6b7280;border:1px solid #cbd2d9;border-radius:3px;flex:none;padding:0 4px;font-size:.62rem}.tmpl-title{flex:none;font-weight:600}.tmpl-text{text-overflow:ellipsis;white-space:nowrap;color:#6b7280;flex:1;min-width:0;overflow:hidden}.tmpl-actions{flex:none;gap:.2rem;display:flex}.tmpl-edit{flex-direction:column;flex:1;gap:.5rem;min-width:0;display:flex}.tmpl-edit-title{align-self:stretch}.tmpl-edit-actions{gap:.3rem;display:flex}@media (width>=960px){.panel.study-session{box-sizing:border-box;width:min(1320px,96vw);max-width:none;margin-left:50%;transform:translate(-50%)}}.study-session .study-body{grid-template-columns:230px minmax(0,1fr);align-items:start;gap:1rem;display:grid}@media (width<=900px){.study-session .study-body{grid-template-columns:1fr}}.study-session .replayer{display:block}.study-queue{flex-direction:column;gap:.2rem;max-height:70vh;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.study-queue-item{text-align:left;color:#333;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:5px;align-items:baseline;gap:.45rem;width:100%;padding:.35rem .5rem;font-size:.8rem;display:flex}.study-queue-item:hover{background:#f0f4f9}.study-queue-item.current{color:#22508a;background:#eef5ff;border-color:#bcd6f5;font-weight:600}.study-queue-item .q-num{text-align:right;color:#8a97a6;font-variant-numeric:tabular-nums;flex:none;min-width:1.5em}.study-queue-item .q-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.study-nav{align-items:center;gap:.8rem;margin-bottom:.6rem;display:flex}.study-nav .study-progress{color:#444;font-size:.85rem;font-weight:600}.study-count{font-weight:600}.study-note{color:#9c4221;margin:-.3rem 0 .6rem;font-size:.8rem}.hand-lists .valid-head{flex-wrap:wrap;gap:.5rem}.hl-create{align-items:center;gap:.4rem;display:flex}.hl-create .meta-input{min-width:240px}.hl-lists{flex-direction:column;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.hl-list{border:1px solid #e3e3e3;border-radius:6px;padding:.35rem .5rem}.hl-list.open{background:#fafcff;border-color:#bcd6f5}.hl-list-row{align-items:center;gap:.6rem;display:flex}.hl-name{text-align:left;cursor:pointer;min-width:0;color:inherit;background:0 0;border:none;flex:auto;align-items:center;gap:.35rem;padding:.15rem 0;font-size:.92rem;font-weight:600;display:flex}.hl-rename{flex:auto;align-items:center;gap:.35rem;display:flex}.hl-count{color:#777;white-space:nowrap;font-size:.78rem}.hl-missing-count{color:#9c4221}.hl-export-msg{color:#555;margin-top:.35rem;font-size:.78rem}.hl-file-input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute;overflow:hidden}.hl-import-summary{background:#f5f9fd;border:1px solid #c8d6e5;border-radius:6px;margin:.5rem 0;padding:.5rem .65rem;font-size:.82rem}.hl-import-head{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.hl-import-counts{margin:.35rem 0 0;padding-left:1.1rem}.hl-import-note,.hl-import-failed{color:#9c4221;margin:.35rem 0 0}.hl-import-failed ul,.hl-import-skipped ul{margin:.2rem 0 0;padding-left:1.1rem}.hl-import-skipped{color:#555;margin-top:.35rem}.hl-export-warnings{color:#9c4221;margin:.25rem 0 0;padding-left:1.1rem}.hl-editor{border-top:1px solid #e3eaf3;margin-top:.5rem;padding-top:.5rem}.hl-hint{color:#888;margin:0 0 .35rem;font-size:.75rem}.hl-entries{flex-direction:column;gap:.2rem;margin:0 0 .75rem;padding:0;list-style:none;display:flex}.hl-entry,.hl-pick{background:#fff;border:1px solid #e6e6e6;border-radius:5px;align-items:center;gap:.55rem;padding:.3rem .45rem;font-size:.85rem;display:flex}.hl-entry{cursor:grab;-webkit-user-select:none;user-select:none}.hl-entry:hover{border-color:#bcd6f5}.hl-entry.dragging{opacity:.5;background:#eef5ff;border-style:dashed;border-color:#3b7dd8}.hl-entry.missing{background:#fffaf0}.hl-grip{color:#aab4c0;letter-spacing:-2px;font-size:.8rem}.hl-num{text-align:right;color:#8a97a6;font-variant-numeric:tabular-nums;min-width:1.5em}.hl-cards{flex:0 0 70px;font-family:ui-monospace,Menlo,Consolas,monospace;font-weight:600}.hl-title{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.hl-entry-actions{gap:.25rem;display:flex}.hl-picker-input{box-sizing:border-box;width:100%}.hl-picker-results{flex-direction:column;gap:.2rem;max-height:260px;margin:.4rem 0 0;padding:0;list-style:none;display:flex;overflow-y:auto}.hl-picker-empty,.hl-picker-more{color:#888;margin:.4rem 0 0;font-size:.78rem}@media (width<=639px){.app{flex-direction:column;padding:.75rem .5rem 3rem;display:flex}.app>*{min-width:0}.app>.app-head{order:-3}.app>.study-session{order:-2}.app>.hand-lists{order:-1}.panel{padding:.75rem .6rem}.app-head{flex-wrap:wrap;gap:.5rem}.hl-create{flex-wrap:wrap;width:100%}.hl-create .meta-input{flex:100%;min-width:0}.hl-create button.mini{flex:1 1 0;min-height:40px}.hl-list-row{flex-wrap:wrap;gap:.4rem}.hl-name{text-align:left;flex:100%;font-size:1rem}.hl-list-row .row-actions{flex-wrap:wrap;flex:100%}.hl-list-row .row-actions button.mini{min-height:40px;padding:.4rem .7rem;font-size:.85rem}.hl-list-row .row-actions button.hl-play{color:#fff;background:#2b6cb0;border-color:#2b6cb0;flex:100%;min-height:48px;font-size:1rem;font-weight:700}.hl-list-row .row-actions button.hl-play:disabled{background:#cbd5e0;border-color:#cbd5e0}.hl-editor .lib-row,.hl-editor li{flex-wrap:wrap}.study-session .valid-head{flex-wrap:wrap;gap:.5rem}.study-session .valid-head h2{font-size:1rem}.study-session .study-body{grid-template-columns:minmax(0,1fr)}.study-session .study-main{order:-1;min-width:0}.study-queue{max-height:40vh}.study-queue-item{min-height:40px}.study-nav{gap:.5rem}.study-nav button.mini{flex:1 1 0;min-height:48px;font-size:1rem}.lib-head,.lib-row .col.id,.lib-row .col.modified{display:none}.lib-row{flex-wrap:wrap}.lib-row .col.title{white-space:normal;flex:60%}.lib-row .row-actions{flex-wrap:wrap;flex:100%}.lib-json,.lib-dtext,.lib-detail{overflow-x:auto}.lib-detail{grid-template-columns:minmax(0,1fr)}}.update-note{left:50%;bottom:max(.75rem, env(safe-area-inset-bottom));z-index:50;box-sizing:border-box;color:#fff;background:#1a3b5c;border-radius:8px;align-items:center;gap:.5rem;max-width:calc(100vw - 1.5rem);padding:.5rem .75rem;font:.85rem system-ui,sans-serif;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 2px 10px #0000004d}
