:root{--surface:#ffffff;--surface-muted:#f6f8fa;--hover:#eef1f4;--text:#1f2328;--muted:#59636e;--border:#d1d9e0;--accent:#0969da;--accent-hover:#0550ae;--accent-soft:#ddf4ff;--accent-soft-hover:#b6e3ff;--accent-border:#80b9f0;--danger:#cf222e;--danger-hover:#a40e26;--danger-soft:#fff1f1;--danger-border:#ffb4b8;--danger-soft-hover:#ffebe9}:root{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans TC,sans-serif;color:var(--text);background:var(--surface-muted);font-synthesis:none;font-weight:450;-webkit-font-smoothing:antialiased;font-size:15px;color-scheme:light}*{box-sizing:border-box}body{margin:0}button,input,textarea{font:inherit}button{color:inherit;border:0;cursor:pointer;background:transparent;-webkit-tap-highlight-color:transparent}button:disabled{opacity:.32;cursor:default}button:focus-visible,[role=button]:focus-visible{outline:3px solid var(--accent);outline-offset:4px}input,textarea{width:100%;border:1px solid var(--border);border-radius:12px;background:var(--surface);padding:13px 14px;color:var(--text);outline:none}input:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #0969da1a}button svg{flex:none}p{line-height:1.7}h2{font-size:20px;letter-spacing:-.03em;margin:0}.wordmark{font-size:33px;font-weight:800;letter-spacing:-1.8px;line-height:1}.wordmark span{color:#c77644}.icon-button{width:44px;height:44px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;flex:none}.icon-button:hover{background:var(--hover)}.board-svg{width:100%;height:100%;display:block;overflow:hidden;touch-action:none;user-select:none;-webkit-user-select:none}.board-svg.drawing{cursor:crosshair}.player-token{cursor:grab}.player-token:active{cursor:grabbing}.zoom-control{cursor:pointer;outline:none}.zoom-control:focus-visible>circle{stroke:var(--accent);stroke-width:8}.toolbar button.active{background:var(--accent-soft);color:var(--accent)}.toolbar button:not(:disabled):not(.active):hover{background:var(--hover)}.popover{position:absolute;z-index:8;background:var(--surface);border:1px solid var(--border);border-radius:20px;box-shadow:0 8px 32px #1f232814}.add-popover .add-option{display:flex;gap:9px;align-items:center;padding:6px 10px;width:100%;text-align:left;border-radius:12px;min-height:48px}.add-popover .add-option:hover:not(:disabled){background:var(--surface-muted)}.add-popover small{display:block;color:var(--muted);font-size:11px;margin-top:4px}.mini-token{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;color:#fff;font-weight:700;flex:none}.mini-token.blue{background:#397bca}.mini-token.orange{background:#cf222e}.mini-token.ball{color:#7b4927;background:#f0ba84}.object-popup button{min-height:44px;display:flex;gap:6px;align-items:center;padding:8px;border-radius:10px;font-size:13px}.object-popup button:hover{background:var(--surface-muted)}.compact{width:32px}.danger{color:var(--danger)!important}.primary,.secondary,.danger-button{min-height:46px;border-radius:12px;padding:11px 17px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:14px;font-weight:550}.primary{background:var(--accent);color:var(--surface)}.primary:hover{background:var(--accent-hover)}.secondary{background:var(--surface-muted);border:1px solid var(--border)}.secondary:hover{background:var(--hover)}.danger-button{background:var(--danger);color:var(--surface)}.sheet{border:1px solid var(--border);outline:0;border-radius:24px;padding:0;background:var(--surface);color:var(--text);width:min(460px,calc(100vw - 28px));max-height:calc(100dvh - 48px);box-shadow:0 20px 80px #1f232825;overflow:auto}.sheet.wide{width:min(720px,calc(100vw - 28px))}.sheet::backdrop{background:#1f232848;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.sheet-header{display:flex;align-items:center;justify-content:space-between;padding:18px 20px 10px;position:sticky;top:0;background:var(--surface);z-index:3}.sheet-body{padding:4px 22px 24px}.menu-title{display:flex;align-items:center;justify-content:space-between;font-size:13px;color:var(--muted);padding-bottom:10px;border-bottom:1px solid var(--border);overflow-wrap:anywhere}.menu-list{padding:10px 0;display:flex;flex-direction:column;gap:3px}.menu-list>button{display:flex;align-items:center;gap:14px;min-height:52px;padding:12px 9px;text-align:left;border-radius:10px}.menu-list>button:hover{background:var(--hover)}.menu-list.subtle{border-top:1px solid var(--border);margin-top:14px}.menu-list.subtle button{flex-direction:column;gap:4px;align-items:flex-start;font-size:13px}.menu-list small{font-size:10px;color:var(--muted)}.segmented{display:flex;background:var(--surface-muted);padding:4px;border-radius:12px;gap:2px}.segmented button{flex:1;padding:9px 10px;border-radius:8px;font-size:12px;min-height:38px}.segmented button.active{background:var(--surface);box-shadow:0 1px 5px #1f23280e}.language-row{display:flex;align-items:center;justify-content:space-between;margin-top:17px;font-size:13px}.language-row .segmented{min-width:180px}.muted{color:var(--muted);font-size:13px}.small{font-size:11px}.library-actions{display:flex;gap:8px}.play-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:18px}.play-card{border:1px solid var(--border);border-radius:16px;position:relative;overflow:hidden;background:var(--surface-muted)}.play-open{display:flex;flex-direction:column;align-items:stretch;width:100%;padding:12px;text-align:left}.thumbnail{width:100%;height:150px;background:var(--surface-muted);border-radius:8px;padding:6px}.play-open strong{font-size:13px;margin-top:12px;font-weight:550;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:18px}.play-open time{font-size:10px;color:var(--muted);margin-top:5px}.card-more{position:absolute;right:2px;bottom:21px;width:32px;height:32px;background:var(--surface)}.card-actions{position:absolute;inset:auto 8px 8px;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:0 6px 18px #1f232814;padding:5px}.card-actions button{min-height:42px;text-align:left;padding:8px 12px;font-size:12px}.card-actions button:hover{background:var(--surface-muted)}.empty-state{padding:45px 0;text-align:center;color:var(--muted)}.field-label{display:flex;flex-direction:column;gap:8px;font-size:12px;color:var(--muted);margin:14px 0}.field-label input,.field-label textarea{font-size:16px}.form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:22px}.form-error{font-size:12px;color:var(--danger)}.share-preview{height:130px;padding:8px;border:1px solid var(--border);border-radius:14px;background:var(--surface-muted);margin:14px 0}.share-preview .thumbnail{height:100%}.share-buttons{display:grid;grid-template-columns:1fr 1fr;gap:8px}.share-buttons button{font-size:12px;padding:10px}.link-box{margin-top:20px;border-top:1px solid var(--border)}.link-box textarea{font-size:11px;word-break:break-all;resize:vertical}.toast{position:fixed;z-index:100;left:50%;top:max(12px,env(safe-area-inset-top));transform:translate(-50%);background:var(--text);color:var(--surface);border-radius:14px;padding:13px 16px;display:flex;gap:15px;align-items:center;font-size:12px;max-width:calc(100vw - 30px);width:max-content;line-height:1.6;box-shadow:0 8px 25px #1f232825}.toast button{color:inherit;display:grid;place-items:center;min-width:24px;min-height:24px}.loading{height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center}.loading p{font-size:12px;color:var(--muted)}@media(min-width:768px){.wordmark{font-size:37px}}@media(max-width:540px){.sheet{margin:auto auto max(12px,env(safe-area-inset-bottom));max-height:calc(100dvh - 30px);border-radius:24px}.sheet-body{padding:4px 18px 22px}.sheet-header{padding:14px 16px 8px}.share-buttons button{font-size:11px}.play-grid{gap:10px}.thumbnail{height:135px}}@media(orientation:landscape)and (max-height:600px){.wordmark{font-size:25px}}@media(prefers-reduced-motion:no-preference){button{transition:background .14s,opacity .14s}.sheet[open]{animation:appear .16s ease-out}.popover{animation:fade .12s ease-out}@keyframes appear{0%{opacity:0;translate:0 12px}to{opacity:1;translate:0 0}}@keyframes fade{0%{opacity:0}to{opacity:1}}}.app{--edge-top:max(6px,env(safe-area-inset-top));--edge-right:max(6px,env(safe-area-inset-right));--edge-bottom:max(6px,env(safe-area-inset-bottom));--edge-left:max(6px,env(safe-area-inset-left));height:100dvh;min-height:280px;overflow:hidden;position:relative;background:var(--surface-muted);isolation:isolate}.court-region{position:absolute;inset:var(--edge-top) var(--edge-right) var(--edge-bottom) var(--edge-left);display:flex;align-items:center;justify-content:center;overflow:hidden}.board-brand{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:30px;font-weight:750;letter-spacing:-1.5px;fill:#23465a;opacity:.9;font-style:italic;pointer-events:none;-webkit-user-select:none;user-select:none}.board-brand .brand-dot{fill:#c77644}.dock-layer{position:absolute;inset:var(--edge-top) var(--edge-right) var(--edge-bottom) var(--edge-left);z-index:6;pointer-events:none}.side-dock.moving{box-shadow:0 6px 26px #1f232830}.dock-grip{order:-1;flex:none;width:100%;height:44px;padding:0;display:grid;place-items:center;cursor:grab;color:var(--muted);border-radius:0;border-bottom:1px solid var(--border)}.dock-grip:focus-visible{outline-offset:-4px}.dock-grip:active,.moving .dock-grip{cursor:grabbing}.dock-grip:hover{background:var(--hover)}.toolbar::-webkit-scrollbar{width:4px}.toolbar::-webkit-scrollbar-thumb{background:#bcc6b6;border-radius:4px}.divider{height:1px;width:22px;flex-shrink:0;background:var(--border);margin:3px 0}.popover-header{display:flex;align-items:center;justify-content:space-between;padding-left:10px;font-size:13px;color:var(--muted)}.popover-header strong{font-weight:550}.brush-settings{padding:0 4px 4px}.color-options{display:grid;grid-template-columns:repeat(3,1fr);gap:0 4px;padding:2px 4px}.color-options button{height:44px;display:grid;place-items:center;border-radius:12px}.color-options button[aria-pressed=true]{background:var(--accent-soft)}.color-options button span{height:26px;width:26px;border:2px solid var(--surface);border-radius:50%;box-shadow:0 0 0 1px #1f232824}.color-options button[aria-pressed=true] span{box-shadow:0 0 0 2px var(--muted)}.custom-color{display:flex;align-items:center;justify-content:space-between;padding:8px;font-size:12px;color:var(--muted)}.custom-color input{width:52px;height:44px;padding:5px;border-radius:10px;cursor:pointer}.width-label{display:block;font-size:12px;color:var(--muted);margin:8px}.width-control{display:flex;align-items:center;gap:8px;padding:0 8px;font-size:11px;color:var(--muted)}.width-control input{min-width:0;min-height:44px;padding:0;accent-color:var(--accent);cursor:pointer;box-shadow:none}.brush-preview{display:block;width:100%;height:40px;background:var(--surface-muted);border-radius:10px;margin-top:6px}.board-svg.erasing{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cg transform='translate(3 2)' stroke='%231f2328' stroke-width='1.7' stroke-linejoin='round'%3E%3Cpath d='m4 13 10-10 7 7-10 10H7l-4-4Z' fill='%23ffffff'/%3E%3Cpath d='m10 7 7 7 4-4-7-7Z' fill='%23ddf4ff'/%3E%3Cpath d='M11 20h10' fill='none'/%3E%3C/g%3E%3C/svg%3E") 7 22,cell}.object-popup{bottom:var(--edge-bottom);left:50%;transform:translate(-50%);padding:8px 10px;display:flex;align-items:center;gap:7px;max-width:calc(100% - 12px);white-space:nowrap}.save-state{font-size:11px;color:var(--muted);margin:10px 0}.save-warning button{display:block;text-decoration:underline;min-height:36px;padding:4px 0}@media(max-height:400px){.board-brand{font-size:30px}.object-popup{left:var(--edge-left);transform:none}}.toolbar-tooltip{position:absolute;z-index:20;pointer-events:none;width:196px;padding:12px 14px;border-radius:10px;background:var(--text);color:var(--surface);font-size:14px;font-weight:650;line-height:1.45;box-shadow:0 4px 18px #0004;border:1px solid #ffffff80;overflow-wrap:anywhere}.menu-name{width:100%;margin:4px 0 8px}.qr-share{margin-top:16px;display:flex;flex-direction:column;align-items:center;gap:10px}.qr-image{display:block;width:100%;max-width:380px;height:auto;image-rendering:pixelated;background:#fff}.qr-share p{margin:0;align-self:stretch}.link-share>.primary,.link-share .link-box>.primary{width:100%;min-height:48px}.link-share .link-box{margin-top:0;border:0}.link-share .form-error{font-size:14px;line-height:1.7}.link-share .field-label{margin-top:0}.save-warning>span{display:block}.save-warning button{display:inline-flex;align-items:center;min-height:44px;padding:4px 8px}.dock-anchor{height:54px;min-height:54px;flex:none;display:grid;grid-template-columns:repeat(2,1fr);align-items:center;justify-items:center;padding:3px 4px}.dock-anchor button{height:48px;width:48px;border-radius:14px;display:grid;place-items:center}.dock-anchor button:hover{background:var(--hover)}.dock-anchor button:focus-visible{outline-offset:-3px}.opens-up .dock-anchor{order:2}.opens-down .dock-anchor{order:0}.toolbar button:focus-visible{outline-offset:-3px}.opens-up .toolbar{border-bottom:1px solid var(--border)}.opens-down .toolbar{border-top:1px solid var(--border)}.drawing-tools{display:grid;grid-template-columns:repeat(2,minmax(0,1fr)) 28px repeat(3,minmax(0,1fr));flex:none}.drawing-tools>button{min-width:0}.drawing-tools .pen-toggle{border-radius:12px 0 0 12px}.drawing-tools .brush-settings-toggle{border-radius:0 12px 12px 0;border-left:1px solid var(--border)}.drawing-tools .brush-settings-toggle[aria-expanded=true]{background:var(--accent-soft);color:var(--accent)}.read-only-tools{display:flex;gap:4px;flex:none}.read-only-tools>button{flex:1;min-width:0}.read-only-tools button{font-size:12px}.popover-shield{position:fixed;inset:0;z-index:7;pointer-events:auto}.handedness-row{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:13px;margin-top:16px}.handedness-row .segmented button{min-height:48px;min-width:70px;font-size:13px}.side-dock{position:absolute;display:flex;flex-direction:column;align-items:stretch;max-height:100%;padding:0;background:var(--surface);border:1px solid var(--border);border-radius:20px;box-shadow:0 5px 24px #1f232814;pointer-events:auto;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:none;overflow:hidden}.side-dock[data-drag-ready]{box-shadow:0 0 0 2px var(--accent),0 5px 24px #1f232814}.side-dock.moving,.side-dock.moving button{cursor:grabbing}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;pointer-events:none}.toolbar{display:flex;flex-direction:column;align-items:stretch;gap:4px;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;padding:4px;order:1}.toolbar button{width:auto;height:48px;min-height:48px;flex-shrink:0;border-radius:12px;display:flex;align-items:center;justify-content:center;gap:4px;font-size:12px;line-height:1.2;padding:4px}.dock-popover{max-height:100%;display:flex;flex-direction:column;overflow:auto;overscroll-behavior:contain;pointer-events:auto;padding:6px}.save-warning{position:absolute;z-index:7;left:var(--edge-left);top:var(--edge-top);max-width:calc(100% - 12px);border:1px solid var(--danger-border);border-radius:12px;background:var(--danger-soft);padding:10px 12px;color:var(--danger);font-size:12px;line-height:1.5}.record-entry{display:flex;flex:none}.record-entry>button{width:100%;justify-content:flex-start;padding-inline:12px}.record-entry-mark{display:inline-grid;place-items:center;width:20px;height:20px;flex:none}.record-entry-button[data-state=empty] .record-entry-mark,.record-start svg{color:var(--danger)}.toolbar .record-entry-button[data-state=recorded],.menu-list .record-entry-button[data-state=recorded]{background:var(--accent-soft);color:var(--accent)}.toolbar .record-entry-button[data-state=recorded]:hover,.menu-list .record-entry-button[data-state=recorded]:hover{background:var(--accent-soft-hover)}.toolbar .record-entry-button[data-state=recording],.menu-list .record-entry-button[data-state=recording]{background:var(--danger-soft);color:var(--danger)}.toolbar .record-entry-button[data-state=recording]:hover,.menu-list .record-entry-button[data-state=recording]:hover{background:var(--danger-soft-hover)}.record-controls{display:flex;flex-direction:column;gap:4px;flex:none}.record-heading{display:flex;align-items:center;justify-content:space-between;gap:4px;font-size:12px;padding-left:8px;min-height:48px}.record-heading>span{display:flex;align-items:center;gap:6px;min-width:0}.record-heading>button{width:48px;flex:none}.record-heading-meta{display:flex;flex-direction:column;gap:3px;min-width:0}.record-status{color:var(--danger);font-weight:650}.playback-status{display:flex;align-items:center;gap:4px;font-size:11px;font-weight:650;color:var(--accent)}.toolbar button.record-start,.toolbar button.record-again{background:var(--danger-soft);color:var(--danger);border:1px solid var(--danger-border);font-weight:600}.toolbar button.record-start:not(:disabled):hover,.toolbar button.record-again:not(:disabled):hover{background:var(--danger-soft-hover)}.toolbar button.record-finish{background:var(--danger);color:var(--surface);border:1px solid var(--danger);font-weight:650}.toolbar button.record-finish:not(:disabled):hover{background:var(--danger-hover)}.record-dot,.recording-badge{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--danger);flex:none;animation:recording-pulse 1.2s ease-in-out infinite}@keyframes recording-pulse{0%,to{opacity:1}50%{opacity:.25}}@media(prefers-reduced-motion:reduce){.record-dot,.recording-badge{animation:none}}.dock-anchor{position:relative}.recording-badge{position:absolute;left:calc(50% + 13px);top:13px;pointer-events:none}.record-time{font-size:13px;font-weight:650;font-variant-numeric:tabular-nums;white-space:nowrap}.record-timeline{position:relative;min-height:44px;padding:0 9px}.record-timeline input{width:100%;height:44px;margin:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;accent-color:var(--accent);cursor:pointer;touch-action:pan-y}.record-timeline input:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}.replay-actions{display:grid;grid-template-columns:minmax(0,1fr) 76px minmax(0,1fr);gap:4px}.replay-actions select{font:inherit;min-width:0;min-height:48px;border:1px solid var(--accent-border);border-radius:12px;background:var(--accent-soft);color:var(--accent);padding:0 4px}.replay-actions button{min-width:0}.replay-actions button svg{flex:none}.replay-actions button span{min-width:0;white-space:normal}.toolbar button.replay-toggle{background:var(--accent);color:var(--surface);font-weight:650}.toolbar button.replay-toggle:not(:disabled):hover{background:var(--accent-hover)}.toolbar button.replay-exit{border:1px solid var(--accent-border);background:var(--accent-soft);color:var(--accent);font-weight:600}.toolbar button.replay-exit:not(:disabled):hover{background:var(--accent-soft-hover)}.replay-actions.mirrored{direction:rtl}.replay-actions.mirrored>*{direction:ltr}.toolbar .record-again{font-size:12px;min-height:48px}.add-popover .add-new-board{border-top:1px solid var(--border);border-radius:0;margin-top:6px;gap:18px;padding-left:15px;min-height:52px}.record-save-actions{display:flex;gap:6px}.record-save-actions .record-finish{flex:1;min-width:0}.toolbar button.record-cancel{flex:none;width:64px;min-height:48px;background:var(--surface-muted);color:var(--text);border:1px solid var(--border)}.side-dock{background:transparent;border:0;border-radius:0;box-shadow:none;overflow:visible;pointer-events:none}.side-dock.moving,.side-dock[data-drag-ready]{box-shadow:none}.dock-anchor{height:56px;min-height:56px;width:100%;display:flex;gap:0;padding:3px 4px;background:#ffffffc7;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);border:1px solid var(--border);border-radius:16px;box-shadow:0 3px 16px #1f23281c;pointer-events:auto}.dock-anchor button{height:48px;min-height:48px;flex:none;width:44px;padding:4px;border-radius:10px}.dock-anchor .dock-grip{width:32px;border:0;order:0}.dock-shortcuts{display:flex;flex:none;order:1}.dock-shortcuts>button:first-child{width:32px}.tool-strip{flex:1;min-width:0;overflow-x:auto;scrollbar-width:none;overscroll-behavior:contain;order:2}.tool-strip::-webkit-scrollbar{display:none}.tool-strip button{display:flex;align-items:center;justify-content:center}.tool-strip button.active{background:var(--accent-soft);color:var(--accent)}.tool-strip button:focus-visible{outline-offset:-3px}.drawing-tools{display:flex;min-width:244px;width:100%}.drawing-tools>button{flex:1;min-width:44px}.drawing-tools .brush-settings-toggle{flex:none;width:24px;min-width:24px}.side-dock[data-hand=right] .dock-grip{order:3}.side-dock[data-hand=right] .dock-shortcuts{order:2}.side-dock[data-hand=right] .tool-strip{order:1}.is-compact .dock-anchor{width:118px;align-self:flex-start}.is-compact[data-hand=right] .dock-anchor{align-self:flex-end}.toolbar{pointer-events:auto;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:4px;margin:4px 0;box-shadow:0 3px 16px #1f23281c}.side-dock[data-drag-ready] .dock-anchor{outline:2px solid var(--accent)}.recording-badge{left:8px;top:6px}.side-dock[data-hand=right] .recording-badge{left:auto;right:8px}.record-controls{display:grid;gap:4px}.record-heading{display:contents}.record-heading>button{width:32px;min-height:44px;height:44px;grid-column:4;grid-row:1}.record-controls.capturing{grid-template-columns:minmax(66px,1fr) minmax(100px,1.5fr) 52px 32px;align-items:center}.record-status{display:flex;align-items:center;gap:5px;font-size:12px;font-variant-numeric:tabular-nums;padding-left:4px;white-space:nowrap}.capturing .record-status-name{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.record-save-actions{display:contents}.record-save-actions .record-finish{grid-column:2;grid-row:1}.toolbar button.record-cancel{grid-column:3;grid-row:1;width:52px;font-size:11px}.record-controls.preparing{grid-template-columns:1fr 1.5fr 32px;align-items:center}.preparing .record-heading>button{grid-column:3}.preparing .record-start{grid-column:2;grid-row:1}.record-controls.has-playback{grid-template-columns:minmax(0,1fr) 44px}.has-playback .record-heading>button{grid-column:2;grid-row:1;width:44px}.has-playback .record-heading-meta,.has-playback .playback-status{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.record-timeline{grid-column:1;grid-row:1;display:flex;gap:8px;align-items:center;padding:0 4px;min-width:0}.record-time{font-size:11px}.record-timeline input{flex:1;min-width:0;width:0}.replay-actions{grid-column:1;grid-row:2;grid-template-columns:minmax(52px,1fr) 68px minmax(84px,1.5fr)}.record-again{grid-column:2;grid-row:2}@media(max-width:373px){.tool-strip{box-shadow:inset -5px 0 5px -5px var(--muted)}}.side-dock[data-popover-direction=up]{--brush-chevron:180deg}.side-dock[data-popover-direction=down]{--brush-chevron:0deg}.side-dock[data-popover-direction=left]{--brush-chevron:90deg}.side-dock[data-popover-direction=right]{--brush-chevron:-90deg}.brush-settings-toggle svg{transform:rotate(var(--brush-chevron))}.brush-settings-toggle[aria-expanded=true] svg{transform:rotate(calc(var(--brush-chevron) + 180deg))}.drawing-tools{min-width:288px}.tool-strip{overflow:visible;box-shadow:none}.drawing-tools{min-width:0}.drawing-tools>button{min-width:0;width:0;flex:1;padding:2px}.drawing-tools .brush-settings-toggle{width:18px;min-width:18px;flex:none;padding:0}.dock-anchor .dock-grip{width:24px;padding:0}.dock-shortcuts>button:first-child{width:24px;padding:0}.dock-shortcuts>button:last-child{width:30px;padding:0}.is-compact .dock-anchor{width:88px}.drawing-tools .brush-settings-toggle{border-left:0}.dock-shortcuts{border-right:1px solid var(--border)}.side-dock[data-hand=right] .dock-shortcuts{border-right:0;border-left:1px solid var(--border)}.is-compact .dock-shortcuts,.is-compact[data-hand=right] .dock-shortcuts{border:0}.side-dock:not(.is-compact) .dock-shortcuts{margin-right:6px}.side-dock[data-hand=right]:not(.is-compact) .dock-shortcuts{margin-right:0;margin-left:6px}.opens-down .record-panel-collapse svg{transform:rotate(180deg)}.record-entry-button[data-activity=recording]{background:var(--danger-soft);color:var(--danger)}.record-entry-button[data-activity=playing],.record-entry-button[data-activity=paused]{background:var(--accent-soft);color:var(--accent)}.record-entry-button[data-activity=playing] svg{animation:playback-pulse 1.4s ease-in-out infinite;transform-origin:center}@keyframes playback-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(.88)}}@media(prefers-reduced-motion:reduce){.record-entry-button[data-activity=playing] svg{animation:none}}.replay-actions{grid-template-columns:minmax(84px,1.5fr) 68px minmax(52px,1fr)}.toolbar .record-controls button{height:40px;min-height:40px;border-radius:9px;font-size:11px;padding:4px 6px}.toolbar .record-controls button svg{width:16px;height:16px}.record-controls .record-heading>button{width:32px;height:40px;min-height:40px;padding:4px}.record-controls.has-playback{grid-template-columns:minmax(0,1fr) 32px}.record-controls .replay-actions{grid-template-columns:minmax(80px,1fr) 60px minmax(52px,1fr)}.record-controls .replay-actions select{min-height:40px;height:40px;border-radius:9px;font-size:12px}.record-controls .record-timeline{min-height:36px}.record-controls .record-timeline input{height:36px}.toolbar .record-controls .record-cancel{min-height:40px}.record-controls.has-playback{grid-template-columns:126px minmax(0,1fr) 30px 28px;align-items:center;gap:3px}.has-playback .replay-actions{grid-column:1;grid-row:1;grid-template-columns:32px 56px 32px;gap:3px}.has-playback .replay-actions button span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.has-playback .record-timeline{grid-column:2;grid-row:1;display:flex;flex-direction:column;gap:0;justify-content:center;padding:0 3px;height:40px;min-height:40px}.has-playback .record-time{font-size:9px;line-height:12px}.has-playback .record-timeline input{flex:none;width:100%;height:24px;min-height:24px}.has-playback .video-export-button{grid-column:3;grid-row:1;color:var(--accent)}.has-playback .record-heading>button{grid-column:4;grid-row:1;width:28px}.has-playback .replay-actions select{font-size:11px;padding:0 2px}.add-popover{display:flex;align-items:center;gap:3px}.add-popover .popover-header{order:5;padding:0;margin:0}.add-popover .popover-header strong{display:none}.add-popover .add-option{width:44px;min-width:0;height:40px;min-height:40px;padding:3px;justify-content:center;flex:1}.add-popover .add-option>span:last-child:not(.mini-token){display:none}.add-popover .add-new-board{border-top:0;border-left:1px solid var(--border);margin:0;border-radius:0;padding:3px}.add-popover .mini-token{width:27px;height:27px}.add-popover .icon-button{width:28px;height:40px}.compact-brush{display:flex;align-items:center;gap:4px;flex-wrap:wrap;padding:0}.compact-brush .popover-header{order:6;padding:0;margin:0}.compact-brush .popover-header strong,.compact-brush .width-label,.compact-brush .brush-preview{display:none}.compact-brush .popover-header button{width:28px;height:40px}.compact-brush .current-ink{width:32px;height:40px;display:grid;place-items:center;padding:3px}.compact-brush .current-ink span{width:24px;height:24px;border:2px solid white;border-radius:50%;box-shadow:0 0 0 1px var(--border)}.compact-brush .color-options{display:flex;gap:0;padding:0;margin:0}.compact-brush .color-options button{width:28px;height:40px;min-height:40px;padding:4px}.compact-brush .color-options button span{width:20px;height:20px}.compact-brush:not(.palette-open) .color-options button:nth-child(n+4){display:none}.compact-brush .width-control{flex:1;min-width:60px;margin:0;gap:3px;height:40px}.compact-brush .width-control input{min-width:0;width:100%;height:36px}.compact-brush .width-control span{font-size:9px}.compact-brush .custom-color{display:none}.compact-brush.palette-open .custom-color{display:flex;order:7;width:100%;margin:0;padding:4px;justify-content:space-between}@media(min-width:768px){.compact-brush:not(.palette-open) .color-options button:nth-child(n+4){display:block}.compact-brush .color-options button{width:23px}}.dock-popover[data-direction=down] .popover-header button svg{transform:rotate(180deg)}.dock-popover[data-direction=left] .popover-header button svg{transform:rotate(-90deg)}.dock-popover[data-direction=right] .popover-header button svg{transform:rotate(90deg)}.compact-brush .brush-preview{display:block;width:24px;height:22px;padding:0;margin:0;background:none;flex:none}.toolbar .inline-submenu{flex:none;min-width:0;padding:2px 0}.toolbar .inline-submenu+.inline-submenu,.toolbar .inline-submenu+.record-controls{border-top:1px solid var(--border);padding-top:5px}.toolbar .add-popover .add-option,.toolbar .compact-brush button{height:40px;min-height:40px}.toolbar .compact-brush .color-options button{width:28px;padding:4px}.toolbar .compact-brush .current-ink{width:32px;padding:3px}.toolbar .inline-submenu .popover-header button{width:28px}.opens-down .inline-submenu .popover-header button svg{transform:rotate(180deg)}@media(min-width:768px){.toolbar .compact-brush .color-options button{width:23px}}.video-details{display:grid;gap:9px;font-size:13px;margin:16px 0;padding:14px;border:1px solid var(--border);border-radius:12px;background:var(--surface-muted)}.video-details>div{display:flex;justify-content:space-between;gap:12px;align-items:start}.video-details dt{color:var(--muted);flex:1}.video-details dd{margin:0;text-align:right;font-variant-numeric:tabular-nums;line-height:1.6}.video-canvas,.video-preview{display:block;width:100%;height:auto;max-height:28dvh;object-fit:contain;background:var(--surface-muted);border-radius:8px}.video-canvas[hidden]{display:none}.video-progress{display:flex;flex-direction:column;gap:8px;font-size:13px;font-variant-numeric:tabular-nums}.video-progress progress{width:100%;height:10px;accent-color:var(--accent)}.video-export-dialog .form-error{line-height:1.7}.share-video-option{display:flex;flex-direction:column;gap:8px;margin-top:12px;width:100%}.share-video-option>.secondary{width:100%;min-height:48px}.share-video-option>p{margin:0}.menu-list .record-entry-button[data-activity=idle]{background:transparent;color:var(--text)}.menu-list .record-entry-button[data-activity=idle] .record-entry-mark{color:inherit}.video-export-dialog .form-actions{flex-wrap:wrap}@media(prefers-reduced-transparency:reduce){.dock-anchor{background:var(--surface);-webkit-backdrop-filter:none;backdrop-filter:none}}
