:root{--tg-bg:#fff;--tg-bg-elevated:#f4f4f5;--tg-bg-hover:#f0f0f0;--tg-bg-sheet:#fbf8f0;--tg-bubble-bg:#e5f1fd;--tg-border:#e4e4e5;--tg-text:#1c1c1e;--tg-text-secondary:#707579;--tg-accent:#3390ec;--tg-accent-text:#fff;--tg-danger:#e53935;--tg-shadow:0 1px 2px #00000014;--tg-dot:#1c1c1e1f;--tg-hover-tint:#1c1c1e0f;--tg-text-idle-tint:#1c1c1e09;--tg-grid-line:#1c1c1e33;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}:root[data-theme=dark]{--tg-bg:#0e1621;--tg-bg-elevated:#17212b;--tg-bg-hover:#1c2733;--tg-bg-sheet:#202e3d;--tg-bubble-bg:#234a6b;--tg-border:#101921;--tg-text:#fff;--tg-text-secondary:#7d8b99;--tg-accent:#5288c1;--tg-accent-text:#fff;--tg-danger:#f16b6b;--tg-shadow:0 1px 2px #0006;--tg-dot:#ffffff1f;--tg-hover-tint:#ffffff14;--tg-text-idle-tint:#ffffff0b;--tg-grid-line:#fff3;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--tg-bg);color:var(--tg-text);overscroll-behavior:none;margin:0}button{cursor:pointer;font-family:inherit}input{font-family:inherit}.app-shell,.public-viewer-root{flex-direction:column;height:100%;display:flex;position:relative}.public-viewer-status{text-align:center;height:100%;color:var(--tg-text-secondary);justify-content:center;align-items:center;padding:24px;display:flex}.public-viewer-back-button{z-index:30;border:1px solid var(--tg-border);background:var(--tg-bg-elevated);color:var(--tg-text);box-shadow:var(--tg-shadow);border-radius:8px;padding:8px 14px;font-size:13px;position:absolute;top:12px;left:12px}.public-viewer-back-button:hover{background:var(--tg-bg-hover)}.save-toast{color:var(--tg-accent-text);background:var(--tg-accent);box-shadow:var(--tg-shadow);z-index:20;pointer-events:none;border-radius:8px;padding:8px 16px;font-size:13px;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}.save-toast-failed{background:var(--tg-danger)}.app-topbar{padding:0 12px;padding-top:var(--tg-safe-area-top,0px);height:calc(48px + var(--tg-safe-area-top,0px));min-height:calc(48px + var(--tg-safe-area-top,0px));background:var(--tg-bg-elevated);border-bottom:1px solid var(--tg-border);justify-content:space-between;align-items:center;display:flex}.app-topbar-title{font-size:16px;font-weight:600}.app-topbar-title-group{align-items:center;gap:2px;min-width:0;display:flex}.app-topbar-nav-button{width:28px;height:28px;color:var(--tg-text);background:0 0;border:none;border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:12px;display:inline-flex}.app-topbar-nav-button:disabled{opacity:.4;color:var(--tg-text-secondary)}.app-topbar-nav-button:not(:disabled):hover{background:var(--tg-bg-hover)}.app-settings-menu-row{flex-wrap:wrap;align-items:center;gap:8px;padding:10px 14px;font-size:14px;display:flex}.app-settings-language-options .language-option-button{padding:4px 10px;font-size:13px}.app-topbar-actions{align-items:center;gap:4px;display:flex}.app-settings-wrap{position:relative}.app-settings-menu{z-index:10;background:var(--tg-bg);border:1px solid var(--tg-border);box-shadow:var(--tg-shadow);border-radius:8px;flex-direction:column;min-width:170px;max-width:calc(100vw - 24px);display:flex;position:absolute;top:36px;right:0;overflow:hidden}.app-settings-menu button{color:var(--tg-text);text-align:left;white-space:normal;background:0 0;border:none;padding:10px 14px;font-size:14px}.app-settings-menu button:hover{background:var(--tg-bg-hover)}.app-settings-menu button:disabled{color:var(--tg-text-secondary);cursor:default}.app-settings-menu button:disabled:hover{background:0 0}.app-settings-menu-danger{color:var(--tg-danger)}.app-body{flex:1;min-height:0;display:flex}.app-body-mobile{flex-direction:column}.app-sidebar{flex-direction:column;min-height:0;display:flex;position:relative}.app-body-desktop .app-sidebar{border-right:1px solid var(--tg-border);background:var(--tg-bg-elevated);flex:none}.app-body-mobile .app-sidebar{flex:1}.app-sidebar-resize-handle{cursor:col-resize;touch-action:none;z-index:5;width:6px;height:100%;position:absolute;top:0;right:-3px}.app-sidebar-resize-handle:hover,.app-sidebar-resize-handle:active{background:var(--tg-accent);opacity:.3}.app-main{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.app-main-header{border-bottom:1px solid var(--tg-border);background:var(--tg-bg-elevated);align-items:center;gap:8px;min-height:40px;padding:8px 12px;display:flex}.chat-header-slot,.canvas-header-slot{flex:none;align-items:center;gap:8px;display:flex}.app-main-placeholder{color:var(--tg-text-secondary);text-align:center;flex:1;justify-content:center;align-items:center;padding:24px;display:flex}.app-loading{height:100%;color:var(--tg-text-secondary);justify-content:center;align-items:center;display:flex}.icon-button{color:var(--tg-text);background:0 0;border:none;border-radius:50%;flex:none;justify-content:center;align-items:center;width:32px;height:32px;font-size:16px;display:inline-flex}.icon-button:hover{background:var(--tg-bg-hover)}.sync-usage-badge{background:var(--tg-bg-hover);height:24px;color:var(--tg-text-secondary);font-variant-numeric:tabular-nums;white-space:nowrap;cursor:pointer;border:none;border-radius:12px;flex:none;align-items:center;gap:3px;padding:0 8px;font-size:11px;display:inline-flex}.sync-check-indicator{flex:none;justify-content:center;align-items:center;width:32px;height:32px;font-size:15px;animation:1.1s linear infinite sync-check-spin;display:inline-flex}@keyframes sync-check-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.board-list{flex-direction:column;flex:1;min-height:0;display:flex;overflow-y:auto}.board-list-header{justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.board-list-header-title{align-items:center;gap:8px;min-width:0;display:flex}.board-list-header h1{color:var(--tg-text-secondary);text-transform:uppercase;letter-spacing:.03em;margin:0;font-size:15px;font-weight:600}.board-list-status{color:var(--tg-text-secondary);text-transform:none;letter-spacing:normal;white-space:nowrap;align-items:center;gap:5px;font-size:11px;font-weight:500;display:flex}.board-list-status-spinner{border:2px solid var(--tg-border);border-top-color:var(--tg-accent);border-radius:50%;width:10px;height:10px;animation:.7s linear infinite board-list-status-spin}@keyframes board-list-status-spin{to{transform:rotate(360deg)}}.board-list-multiselect-status{color:var(--tg-accent)}.board-list-multiselect-clear,.board-list-multiselect-delete{color:inherit;font:inherit;cursor:pointer;background:0 0;border:none;padding:0 2px;font-size:11px}.board-list-multiselect-delete{color:var(--tg-danger)}.board-list-empty{color:var(--tg-text-secondary);padding:0 16px}.board-list-header-actions{gap:2px;display:flex}.board-list-items{flex-direction:column;display:flex}.board-list-item{align-items:center;padding:0 8px 0 12px;display:flex;position:relative}.board-list-item:hover,.board-list-item-active{background:var(--tg-bg-hover)}.board-list-item-multiselected{background:color-mix(in srgb, var(--tg-accent) 18%, transparent)}.board-list-item-multiselected:hover{background:color-mix(in srgb, var(--tg-accent) 26%, transparent)}.board-list-item-pending-restore{opacity:.55}.board-list-item-pending-restore:hover,.board-list-item-pending-restore:focus-within{opacity:1}.board-list-item-dragging{opacity:.85;z-index:5;background:var(--tg-bg-hover);box-shadow:var(--tg-shadow);position:relative}.board-list-item-drag-handle{color:var(--tg-text-secondary);cursor:grab;touch-action:none;background:0 0;border:none;flex:none;margin-right:2px;padding:4px;font-size:16px}.board-list-item-connector{color:var(--tg-text-secondary);flex:none;margin-right:2px;font-size:14px}.board-list-item-expand-toggle{color:var(--tg-text-secondary);cursor:pointer;background:0 0;border:none;flex:none;width:18px;padding:4px 0;font-size:11px}.board-list-item-expand-spacer{flex:none;width:18px}.board-list-item-main{text-align:left;min-width:0;color:inherit;background:0 0;border:none;flex:1;align-items:center;gap:12px;padding:10px 4px;display:flex}.board-list-item-avatar{background:var(--tg-accent);width:40px;height:40px;color:var(--tg-accent-text);background-position:50%;background-size:cover;border-radius:50%;flex:none;justify-content:center;align-items:center;font-weight:600;display:flex;position:relative;overflow:hidden}.board-list-item-avatar .image-upload-spinner{border-radius:50%}.board-list-item-avatar .image-upload-spinner:after{width:16px;height:16px}.board-list-item-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.board-list-item-title{text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.board-list-item-subtitle{color:var(--tg-text-secondary);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.board-list-item-time{color:var(--tg-text-secondary);flex:none;align-self:flex-start;padding-top:2px;font-size:12px}.board-list-item-rename-input{border:1px solid var(--tg-accent);background:var(--tg-bg);color:var(--tg-text);border-radius:8px;flex:1;margin:8px 4px;padding:8px 10px;font-size:14px}.board-list-item-menu-wrap{flex:none;position:relative}.board-list-item-menu{z-index:1000;background:var(--tg-bg);border:1px solid var(--tg-border);box-shadow:var(--tg-shadow);border-radius:8px;flex-direction:column;min-width:140px;display:flex;position:fixed;overflow:hidden}.board-list-item-menu button{color:var(--tg-text);text-align:left;background:0 0;border:none;padding:10px 14px;font-size:14px}.board-list-item-menu button:hover{background:var(--tg-bg-hover)}.board-list-item-menu button:disabled{color:var(--tg-text-secondary);cursor:default}.board-list-item-menu button:disabled:hover{background:0 0}.board-list-item-menu-danger{color:var(--tg-danger)}.board-list-item-pin{margin-right:4px;font-size:11px}.board-list-item-tag{color:var(--tg-accent);margin-left:6px;font-size:12px;font-weight:400}.board-list-item-tag-edit{color:var(--tg-text-secondary);flex:1;align-items:center;gap:2px;margin:0 4px;padding-left:6px;display:flex}.board-list-item-tag-edit .board-list-item-rename-input{margin:8px 0 8px 2px}.board-list-item-conflict-dot{background:var(--tg-danger);vertical-align:middle;border-radius:50%;width:6px;height:6px;margin-left:4px;display:inline-block}.breadcrumbs{white-space:nowrap;flex:1;align-items:center;gap:4px;min-width:0;display:flex;overflow-x:auto}.breadcrumb-segment{align-items:center;gap:4px;display:inline-flex}.breadcrumb-separator{color:var(--tg-text-secondary)}.breadcrumb-link{color:var(--tg-accent);background:0 0;border:none;padding:4px 2px;font-size:14px}.breadcrumb-current{font-size:14px;font-weight:600}.board-canvas{flex:1;min-height:0;position:relative;overflow:clip}.grid-settings-panel{background:var(--tg-bg-elevated);border-left:1px solid var(--tg-border);width:260px;box-shadow:var(--tg-shadow);z-index:900;flex-direction:column;gap:12px;padding:16px;transition:transform .2s;display:flex;position:absolute;top:0;bottom:0;right:0;transform:translate(100%)}.grid-settings-panel.open{transform:translate(0)}.canvas-viewport{touch-action:none;-webkit-user-select:none;user-select:none;background-color:var(--tg-bg);background-image:radial-gradient(var(--tg-dot) 1.5px, transparent 1.5px);position:absolute;inset:0;overflow:clip}.canvas-world{transform-origin:0 0;width:0;height:0;position:absolute;top:0;left:0}.board-canvas-toolbar{z-index:5;gap:8px;display:flex;position:absolute;top:8px;right:8px}.board-canvas-undo-button{background:var(--tg-bg-elevated);width:36px;height:36px;color:var(--tg-text);box-shadow:var(--tg-shadow);border:none;border-radius:50%;flex:none;font-size:15px}.board-canvas-undo-button:disabled{color:var(--tg-text-secondary);opacity:.5}.board-canvas-undo-button:not(:disabled):hover{background:var(--tg-bg-hover)}.add-scroll-button,.import-image-button{background:var(--tg-accent);color:var(--tg-accent-text);box-shadow:var(--tg-shadow);border:none;border-radius:20px;padding:8px 16px;font-size:13px;font-weight:600}.import-image-input{display:none}.canvas-create-menu{position:relative}.canvas-create-menu-trigger{background:var(--tg-accent);color:var(--tg-accent-text);box-shadow:var(--tg-shadow);border:none;border-radius:20px;padding:8px 16px;font-size:13px;font-weight:600}.canvas-create-menu-popover{z-index:1000;background:var(--tg-bg);border:1px solid var(--tg-border);min-width:150px;box-shadow:var(--tg-shadow);border-radius:8px;flex-direction:column;display:flex;position:absolute;top:calc(100% + 4px);right:0;overflow:hidden}.canvas-create-menu-item{color:var(--tg-text);text-align:left;white-space:nowrap;background:0 0;border:none;padding:10px 14px;font-size:13px}.canvas-create-menu-item:hover{background:var(--tg-bg-hover)}.shapes-palette{background:var(--tg-bg-elevated);border:1px solid var(--tg-border);box-shadow:var(--tg-shadow);border-radius:20px;align-items:center;gap:2px;padding:4px;display:flex}.shapes-palette-item{width:28px;height:28px;color:var(--tg-text);cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;border-radius:50%;justify-content:center;align-items:center;font-size:15px;display:flex}.shapes-palette-item:hover{background:var(--tg-bg-hover)}.shapes-palette-item-text{font-size:13px;font-weight:700}.shapes-palette-ghost{z-index:1000;background:var(--tg-bg-elevated);border:1px solid var(--tg-border);width:32px;height:32px;box-shadow:var(--tg-shadow);color:var(--tg-text);pointer-events:none;border-radius:50%;justify-content:center;align-items:center;font-size:16px;display:flex;position:fixed;transform:translate(-50%,-50%)}.canvas-side-drawer-tab{z-index:5;border:1px solid var(--tg-border);background:var(--tg-bg-elevated);width:36px;height:36px;box-shadow:var(--tg-shadow);border-radius:50%;justify-content:center;align-items:center;font-size:16px;display:flex;position:absolute;top:16px;left:8px}.conflict-tray-tab{top:56px}.canvas-pocket-count{background:var(--tg-accent);min-width:16px;height:16px;color:var(--tg-accent-text);border-radius:8px;padding:0 3px;font-size:10px;font-weight:700;line-height:16px;position:absolute;top:-4px;right:-4px}.canvas-side-drawer{z-index:5;border:1px solid var(--tg-border);background:var(--tg-bg-elevated);width:240px;max-height:60vh;box-shadow:var(--tg-shadow);border-radius:10px;flex-direction:column;display:flex;position:absolute;top:100px;left:8px;overflow:hidden}.canvas-pocket-drawer-header{border-bottom:1px solid var(--tg-border);justify-content:space-between;align-items:center;padding:8px 10px;font-size:13px;font-weight:600;display:flex}.canvas-pocket-hint{color:var(--tg-text-secondary);margin:0;padding:6px 10px 0;font-size:11px}.canvas-pocket-list{flex-direction:column;flex:1;gap:6px;min-height:0;padding:8px 10px;display:flex;overflow-y:auto}.canvas-pocket-item{border:1px solid var(--tg-border);background:var(--tg-bg);cursor:grab;touch-action:none;border-radius:8px;align-items:flex-start;gap:6px;padding:8px 28px 8px 8px;display:flex;position:relative}.canvas-pocket-item-content{min-width:0;color:var(--tg-text);overflow-wrap:break-word;flex:1;max-height:4.5em;font-size:13px;overflow:hidden}.canvas-pocket-item-image,.canvas-pocket-item-image-placeholder{border-radius:6px;flex-shrink:0;width:40px;height:40px}.canvas-pocket-item-image{object-fit:cover}.canvas-pocket-item-image-placeholder{background:var(--tg-hover-tint);justify-content:center;align-items:center;font-size:16px;display:flex}.canvas-pocket-item-scroll{min-width:0;color:var(--tg-text);overflow-wrap:break-word;flex:1;font-size:13px;font-weight:600}.canvas-pocket-item-discard{color:var(--tg-text-secondary);background:0 0;border:none;padding:2px;font-size:12px;position:absolute;top:4px;right:4px}.canvas-pocket-ghost{z-index:1000;border:1px solid var(--tg-border);background:var(--tg-bg-elevated);max-width:200px;box-shadow:var(--tg-shadow);color:var(--tg-text);pointer-events:none;border-radius:8px;padding:8px 10px;font-size:13px;position:fixed;transform:translate(-50%,-50%)}.conflict-list{flex-direction:column;gap:8px;display:flex}.conflict-card{border:1px solid var(--tg-border);border-radius:8px;padding:8px;font-size:12px}.conflict-card-label{margin-bottom:4px;font-weight:600}.conflict-card-gone{color:var(--tg-text-secondary);margin:4px 0;font-style:italic}.conflict-card-full{flex-direction:column;gap:6px;margin:6px 0;display:flex}.conflict-card-full-block{flex-direction:column;gap:2px;display:flex}.conflict-card-full-heading{text-transform:uppercase;color:var(--tg-text-secondary);font-size:10px}.conflict-card-full-content{border:1px solid var(--tg-border);background:var(--tg-bg);border-radius:6px;max-height:30vh;padding:4px 6px;overflow-y:auto}.conflict-card-actions{flex-wrap:wrap;gap:4px;margin-top:6px;display:flex}.conflict-card-actions button{border:1px solid var(--tg-border);background:var(--tg-bg);color:var(--tg-text);border-radius:6px;padding:4px 8px;font-size:11px}.conflict-card-actions button:disabled{opacity:.4}.conflict-list-clear-all{color:var(--tg-text-secondary);cursor:pointer;background:0 0;border:none;align-self:flex-start;margin-top:4px;font-size:11px;text-decoration:underline}.zoom-control{z-index:5;background:var(--tg-bg-elevated);border:1px solid var(--tg-border);box-shadow:var(--tg-shadow);border-radius:20px;align-items:center;gap:8px;padding:4px 12px;display:flex;position:absolute;bottom:12px;left:50%;transform:translate(-50%)}.zoom-control-button{width:24px;height:24px;color:var(--tg-text);background:0 0;border:none;border-radius:50%;flex:none;padding:0;font-size:16px;line-height:1}.zoom-control-button:hover{background:var(--tg-bg-hover)}.zoom-control-slider{width:120px;accent-color:var(--tg-accent)}.zoom-control-value{text-align:right;width:38px;color:var(--tg-text-secondary);flex:none;font-size:12px}.scroll-node{color:var(--tg-text);cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;position:absolute}.scroll-node.locked{cursor:default}.scroll-node-card{border:1px solid var(--tg-border);background:var(--tg-bg-elevated);box-shadow:var(--tg-shadow);border-radius:12px;justify-content:center;align-items:center;padding:8px 12px;display:flex;position:absolute;inset:0}.scroll-node.selected .scroll-node-card{outline:2px solid var(--tg-accent);outline-offset:1px}.scroll-title{text-align:center;overflow-wrap:break-word;font-size:13px;font-weight:600}.scroll-title-input{font:inherit;text-align:center;width:100%;color:var(--tg-text);background:0 0;border:none;outline:none;font-size:13px;font-weight:600}.scroll-peek-side,.scroll-peek-bottom{border:2px solid var(--tg-accent);background:var(--tg-bg-elevated);color:var(--tg-text-secondary);box-shadow:var(--tg-shadow);opacity:0;pointer-events:none;padding:0;transition:opacity .12s,transform .12s;display:flex;position:absolute}.scroll-peek-side.visible,.scroll-peek-bottom.visible{opacity:1;pointer-events:auto}.scroll-peek-side{align-items:center;height:100%;top:0}.scroll-peek-side-left{border-radius:12px 0 0 12px;justify-content:flex-start;padding-left:10px;left:-24px;transform:translate(24px)}.scroll-peek-side-right{border-radius:0 12px 12px 0;justify-content:flex-end;padding-right:10px;right:-24px;transform:translate(-24px)}.scroll-peek-side-left.visible,.scroll-peek-side-right.visible{transform:translate(0)}.scroll-peek-bottom{border-radius:0 0 12px 12px;justify-content:center;align-items:flex-end;height:48px;padding-bottom:6px;bottom:-24px;left:0;transform:translateY(-24px)}.scroll-peek-bottom.visible{transform:translateY(0)}.scroll-locked-button{color:var(--tg-accent)}.scroll-node.group-selected .scroll-peek-side,.scroll-node.group-selected .scroll-peek-bottom{display:none}@media (hover:none){.scroll-node.selected .scroll-peek-side,.scroll-node.selected .scroll-peek-bottom{opacity:1;pointer-events:auto}.scroll-node.selected .scroll-peek-side-left,.scroll-node.selected .scroll-peek-side-right{transform:translate(0)}.scroll-node.selected .scroll-peek-bottom{transform:translateY(0)}}.canvas-board-tile{cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;flex-direction:column;align-items:center;gap:4px;display:flex;position:absolute}.canvas-board-tile.locked{cursor:default}.drop-target-hover{outline:2px solid var(--tg-accent);outline-offset:-2px;background:color-mix(in srgb, var(--tg-accent) 20%, transparent)}.canvas-board-tile-icon{clip-path:inset(0 round 14px);background:var(--tg-bg-hover);border:1px solid var(--tg-border);width:96px;max-width:100%;height:96px;box-shadow:var(--tg-shadow);background-position:50%;background-size:cover;flex:none;position:relative}.canvas-board-tile.selected .canvas-board-tile-icon{outline:2px solid var(--tg-accent);outline-offset:1px}.canvas-board-tile-title{text-align:center;overflow-wrap:break-word;color:var(--tg-text);width:100%;font-size:13px;font-weight:600}.canvas-board-tile-title-input{font:inherit;text-align:center;width:100%;color:var(--tg-text);background:0 0;border:none;outline:none;font-size:13px;font-weight:600}.canvas-board-tile-subtitle{color:var(--tg-text-secondary);text-align:center;font-size:11px}.canvas-board-tile-menu-button{border:1px solid var(--tg-border);background:var(--tg-bg);width:20px;height:20px;color:var(--tg-text-secondary);box-shadow:var(--tg-shadow);opacity:0;pointer-events:none;border-radius:50%;padding:0;font-size:12px;line-height:1;transition:opacity .1s;position:absolute;top:-6px;right:-6px}.canvas-board-tile:hover .canvas-board-tile-menu-button,.canvas-board-tile.selected .canvas-board-tile-menu-button{opacity:1;pointer-events:auto}.canvas-board-tile.group-selected .canvas-board-tile-menu-button{display:none}.canvas-board-tile.locked .canvas-board-tile-menu-button{opacity:1;pointer-events:auto}.canvas-board-tile-lock-button{color:var(--tg-accent)}@media (hover:none){.canvas-board-tile.selected .canvas-board-tile-menu-button{opacity:1;pointer-events:auto}}.canvas-bag{cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;position:absolute}.canvas-bag.locked{cursor:default}.canvas-bag-tab{cursor:grab}.canvas-bag.locked .canvas-bag-tab{cursor:default}.canvas-bag-tab-content{box-sizing:border-box;justify-content:space-between;align-items:center;gap:6px;width:100%;height:100%;padding:0 34px;display:flex}.canvas-bag-title{text-overflow:ellipsis;white-space:nowrap;text-align:center;flex:1;min-width:0;font-size:13px;font-weight:600;overflow:hidden}.canvas-bag-menu-button,.canvas-bag-settings-button,.canvas-bag-collapse-button{width:22px;height:22px;color:inherit;cursor:pointer;background:0 0;border:none;flex:none;justify-content:center;align-items:center;padding:0;display:flex}.canvas-bag-collapse-button{opacity:.85}.canvas-bag-collapse-button:hover{opacity:1}.canvas-bag-shape{filter:drop-shadow(var(--tg-shadow));transition:filter .1s}.canvas-bag.drop-target .canvas-bag-shape{filter:drop-shadow(var(--tg-shadow)) brightness(1.15)}.canvas-image-context-menu .canvas-shape-stroke-width-row{margin:8px}.canvas-bag-tone-swatches{gap:8px;margin:0 8px 8px;display:flex}.canvas-bag-tone-swatch{cursor:pointer;border:2px solid #0000;border-radius:50%;width:24px;height:24px;padding:0}.canvas-bag-tone-swatch.active{border-color:var(--tg-accent)}.canvas-bag-open-button{cursor:pointer;border:none;border-radius:8px;justify-content:center;align-items:center;gap:6px;font-size:13px;font-weight:600;display:flex;position:absolute;inset:6px}.canvas-image{cursor:grab;touch-action:none;transform-origin:50%;position:absolute}.canvas-image.locked{cursor:default}.canvas-image.selected{outline:2px solid var(--tg-accent);outline-offset:1px}.canvas-image.locked .canvas-image-handle,.canvas-image.locked .canvas-resize-edge,.canvas-image.group-selected .canvas-image-handle,.canvas-image.group-selected .canvas-resize-edge,.canvas-image.group-selected .canvas-image-menu-button{display:none}.canvas-image-img{object-fit:fill;pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;box-shadow:var(--tg-shadow);border-radius:4px;display:block}.canvas-image-placeholder{background:var(--tg-bg-hover);border:1px dashed var(--tg-border);opacity:.6;border-radius:4px;justify-content:center;align-items:center;width:100%;height:100%;font-size:28px;display:flex}.canvas-image-handle{border:1.5px solid var(--tg-accent);width:12px;height:12px;box-shadow:var(--tg-shadow);opacity:0;pointer-events:none;touch-action:none;background:#fff;border-radius:50%;transition:opacity .1s;position:absolute}.canvas-image:hover .canvas-image-handle,.canvas-image.interacting .canvas-image-handle,.canvas-image:hover .canvas-resize-edge,.canvas-image.interacting .canvas-resize-edge{opacity:1;pointer-events:auto}@media (hover:none){.canvas-image.selected .canvas-image-handle{opacity:1;pointer-events:auto}}.canvas-image-handle-nw{cursor:nwse-resize;top:-6px;left:-6px}.canvas-image-handle-ne{cursor:nesw-resize;top:-6px;right:-6px}.canvas-image-handle-sw{cursor:nesw-resize;bottom:-6px;left:-6px}.canvas-image-handle-se{cursor:nwse-resize;bottom:-6px;right:-6px}.canvas-resize-edge{opacity:0;pointer-events:none;touch-action:none;position:absolute}.canvas-resize-edge-n,.canvas-resize-edge-s{cursor:ns-resize;height:14px;left:16px;right:16px}.canvas-resize-edge-n{top:-7px}.canvas-resize-edge-s{bottom:-7px}.canvas-resize-edge-e,.canvas-resize-edge-w{cursor:ew-resize;width:14px;top:16px;bottom:16px}.canvas-resize-edge-e{right:-7px}.canvas-resize-edge-w{left:-7px}.canvas-rotate-handle{border:1.5px solid var(--tg-accent);width:22px;height:22px;color:var(--tg-accent);box-shadow:var(--tg-shadow);cursor:grab;touch-action:none;z-index:999;background:#fff;border-radius:50%;justify-content:center;align-items:center;font-size:13px;line-height:1;display:flex;position:fixed;transform:translate(-50%,-50%)}.canvas-rotate-handle.rotating{cursor:grabbing}.canvas-rotate-tooltip{z-index:999;border:1px solid var(--tg-border);background:var(--tg-bg-elevated);color:var(--tg-text);box-shadow:var(--tg-shadow);pointer-events:none;border-radius:4px;padding:2px 6px;font-size:12px;position:fixed}svg.lucide{vertical-align:-3px;flex-shrink:0}.spin{animation:1.1s linear infinite sync-check-spin}.canvas-image-menu-button{border:1px solid var(--tg-border);background:var(--tg-bg);width:20px;height:20px;color:var(--tg-text-secondary);box-shadow:var(--tg-shadow);opacity:0;pointer-events:none;border-radius:50%;padding:0;font-size:12px;line-height:1;transition:opacity .1s;position:absolute;top:18px;right:-6px}.canvas-image:hover .canvas-image-menu-button,.canvas-image.interacting .canvas-image-menu-button{opacity:1;pointer-events:auto}@media (hover:none){.canvas-image.selected .canvas-image-menu-button{opacity:1;pointer-events:auto}}.canvas-image.locked .canvas-image-menu-button{opacity:1;pointer-events:auto}.canvas-image-lock-button{color:var(--tg-accent)}.canvas-image-context-menu{z-index:1000;background:var(--tg-bg);border:1px solid var(--tg-border);box-shadow:var(--tg-shadow);border-radius:8px;flex-direction:column;min-width:170px;display:flex;position:fixed;overflow:hidden}.canvas-image-context-menu button{color:var(--tg-text);text-align:left;white-space:nowrap;background:0 0;border:none;padding:10px 14px;font-size:13px}.canvas-image-context-menu button:hover{background:var(--tg-bg-hover)}.canvas-image-context-menu button:disabled{color:var(--tg-text-secondary);opacity:.5;cursor:default}.canvas-image-context-menu button:disabled:hover{background:0 0}.canvas-image-context-menu-danger{color:var(--tg-danger)}.list-style-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.list-style-custom-row{align-items:center;display:flex}.list-style-custom-row .list-style-row{flex:1}.list-style-edit-button{width:28px;height:100%;color:var(--tg-text-secondary);background:0 0;border:none;flex:none;justify-content:center;align-items:center;display:flex}.list-style-edit-button:hover{background:var(--tg-bg-hover);color:var(--tg-text)}.list-style-custom-panel{border:1px solid var(--tg-border);background:var(--tg-bg-elevated);width:220px;box-shadow:var(--tg-shadow);border-radius:8px;padding:10px}.list-style-symbol-input{border:1px solid var(--tg-border);background:var(--tg-bg);width:70px;height:28px;color:var(--tg-text);border-radius:6px;padding:0 8px;font-size:12px}.list-style-number-substyle-row{flex-wrap:wrap;gap:4px;display:flex}.list-style-number-substyle-row button{border:1px solid var(--tg-border);background:var(--tg-bg);min-width:40px;color:var(--tg-text-secondary);white-space:nowrap;border-radius:6px;flex:1;padding:4px 6px;font-size:11px}.list-style-number-substyle-row button:hover{background:var(--tg-bg-hover)}.list-style-number-substyle-row button.active{border-color:var(--tg-accent);color:var(--tg-accent);background:color-mix(in srgb, var(--tg-accent) 12%, transparent)}.list-style-custom-panel-actions{justify-content:flex-end;display:flex}.list-style-custom-panel-actions button{background:var(--tg-accent);color:var(--tg-accent-contrast,#fff);border:none;border-radius:6px;padding:6px 14px;font-size:12px}.list-style-custom-panel-actions button:disabled{opacity:.5}.layers-menu-flyout{z-index:1001;background:var(--tg-bg);border:1px solid var(--tg-border);box-shadow:var(--tg-shadow);border-radius:8px;flex-direction:column;min-width:170px;display:flex;position:fixed;overflow:hidden}.canvas-browser-window{border:1px solid var(--tg-border);box-shadow:var(--tg-shadow);background:var(--tg-bg-elevated);border-radius:8px;flex-direction:column;display:flex;position:absolute;overflow:hidden}.canvas-browser-window.selected,.canvas-browser-window.interacting{outline:2px solid var(--tg-accent);outline-offset:1px}.canvas-browser-window.locked .canvas-browser-window-header{cursor:default}.canvas-browser-window-header{background:var(--tg-bg);border-bottom:1px solid var(--tg-border);cursor:grab;touch-action:none;flex:none;align-items:center;gap:6px;padding:0 6px;display:flex}.canvas-browser-window-icon{flex:none;font-size:13px}.canvas-browser-window-address{background:var(--tg-bg-elevated);min-width:0;color:var(--tg-text);border:none;border-radius:10px;outline:none;flex:1;padding:3px 8px;font-size:12px}.canvas-browser-window-address:disabled{color:var(--tg-text-secondary)}.canvas-browser-window-menu-button{width:20px;height:20px;color:var(--tg-text-secondary);background:0 0;border:none;border-radius:50%;flex:none;padding:0;font-size:12px;line-height:1}.canvas-browser-window-menu-button:hover{background:var(--tg-bg-hover)}.canvas-browser-window-lock-button{color:var(--tg-accent)}.canvas-browser-window-body{flex:1;min-height:0;position:relative}.canvas-browser-window-placeholder{text-align:center;color:var(--tg-text-secondary);background:var(--tg-bg-elevated);flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:12px;display:flex;position:absolute;inset:0}.canvas-browser-window-placeholder-icon{font-size:28px}.canvas-browser-window-placeholder-title{color:var(--tg-text);overflow-wrap:anywhere;font-size:12px}.canvas-browser-window-placeholder-hint{font-size:11px}.canvas-browser-window-handle{border:1.5px solid var(--tg-accent);width:12px;height:12px;box-shadow:var(--tg-shadow);opacity:0;pointer-events:none;touch-action:none;z-index:1;background:#fff;border-radius:50%;transition:opacity .1s;position:absolute}.canvas-browser-window:hover .canvas-browser-window-handle,.canvas-browser-window.interacting .canvas-browser-window-handle{opacity:1;pointer-events:auto}.canvas-browser-window.locked .canvas-browser-window-handle,.canvas-browser-window.group-selected .canvas-browser-window-handle{display:none}@media (hover:none){.canvas-browser-window.selected .canvas-browser-window-handle{opacity:1;pointer-events:auto}}.canvas-browser-window-handle-nw{cursor:nwse-resize;top:-6px;left:-6px}.canvas-browser-window-handle-ne{cursor:nesw-resize;top:-6px;right:-6px}.canvas-browser-window-handle-sw{cursor:nesw-resize;bottom:-6px;left:-6px}.canvas-browser-window-handle-se{cursor:nwse-resize;bottom:-6px;right:-6px}.canvas-format-popover-action{white-space:nowrap;height:24px;width:auto!important;padding:0 8px!important;font-size:12px!important}.canvas-arrow-svg{touch-action:none;pointer-events:none}.canvas-arrow-hit-line{pointer-events:auto}.canvas-arrow-visible-line{stroke:var(--tg-text)}.canvas-arrow-marker-shape{fill:var(--tg-text)}.canvas-arrow-endpoint{pointer-events:auto;fill:var(--tg-bg-elevated);stroke:var(--tg-text-secondary);stroke-width:1.5px;opacity:0}.canvas-arrow-svg.selected .canvas-arrow-endpoint,.canvas-arrow-svg:hover .canvas-arrow-endpoint{opacity:1}.canvas-arrow-svg.selected .canvas-arrow-visible-line{stroke:var(--tg-accent)}.canvas-arrow-snap-preview{fill:none;stroke:var(--tg-accent);stroke-width:2px}.canvas-arrow-lock-badge{pointer-events:none}.canvas-arrow-label{text-align:center;max-width:220px;color:var(--tg-text);background:color-mix(in srgb, var(--tg-bg-elevated) 85%, transparent);pointer-events:none;overflow-wrap:break-word;border-radius:4px;padding:1px 6px;font-size:12px;position:absolute}.canvas-arrow-label-above{transform:translate(-50%,calc(-100% - 6px))}.canvas-arrow-label-below{transform:translate(-50%,6px)}.canvas-arrow-endpoint-menu button{justify-content:space-between;align-items:center;gap:12px;width:100%;display:flex}.canvas-arrow-line-menu button.active{color:var(--tg-accent);font-weight:600}.canvas-arrow-thickness-row{align-items:center;gap:6px;padding:8px 14px;display:flex}.canvas-arrow-thickness-button{border:1px solid var(--tg-border);background:var(--tg-bg);border-radius:6px;flex:1;justify-content:center;align-items:center;height:28px;display:flex}.canvas-arrow-thickness-button.active{border-color:var(--tg-accent);background:color-mix(in srgb, var(--tg-accent) 12%, transparent)}.canvas-arrow-thickness-button span{background:var(--tg-text);border-radius:2px;width:100%;display:block}.canvas-arrow-label-row{align-items:center;gap:6px;padding:8px 14px;display:flex}.canvas-arrow-label-caption{color:var(--tg-text-secondary);flex:none;width:64px;font-size:11px}.canvas-arrow-label-input{border:1px solid var(--tg-border);background:var(--tg-bg);min-width:0;height:28px;color:var(--tg-text);border-radius:6px;flex:1;padding:0 8px;font-size:12px}.canvas-arrow-label-color-button{border:1px solid var(--tg-border);background:var(--tg-bg);border-radius:6px;flex:none;width:28px;height:28px}.canvas-drag-select-rect{border:1px solid var(--tg-accent);background:color-mix(in srgb, var(--tg-accent) 15%, transparent);pointer-events:none;z-index:2000;position:fixed}.multi-select-overlay{border-style:dashed;border-color:var(--tg-accent);cursor:grab;touch-action:none;border-radius:4px;position:absolute}.multi-select-handle{border:1.5px solid var(--tg-accent);width:12px;height:12px;box-shadow:var(--tg-shadow);touch-action:none;z-index:1;background:#fff;border-radius:50%;position:absolute}.multi-select-handle-hidden{display:none}.multi-select-handle-nw{cursor:nwse-resize;top:-6px;left:-6px}.multi-select-handle-ne{cursor:nesw-resize;top:-6px;right:-6px}.multi-select-handle-sw{cursor:nesw-resize;bottom:-6px;left:-6px}.multi-select-handle-se{cursor:nwse-resize;bottom:-6px;right:-6px}.multi-select-menu-button{border:1px solid var(--tg-border);background:var(--tg-bg);width:22px;height:22px;color:var(--tg-text-secondary);box-shadow:var(--tg-shadow);z-index:1;border-radius:50%;padding:0;font-size:13px;line-height:1;position:absolute;top:-6px;right:-6px}.canvas-shape{cursor:grab;touch-action:none;position:absolute}.canvas-shape.locked{cursor:default}.canvas-shape.selected{outline:2px solid var(--tg-accent);outline-offset:1px}.canvas-shape.locked .canvas-shape-handle,.canvas-shape.locked .canvas-resize-edge,.canvas-shape.group-selected .canvas-shape-handle,.canvas-shape.group-selected .canvas-resize-edge,.canvas-shape.group-selected .canvas-shape-menu-button{display:none}.canvas-shape-fill{background:var(--tg-accent);opacity:.82;pointer-events:none;position:absolute;inset:0}.canvas-shape.hollow{pointer-events:none}.canvas-shape-hit-frame{pointer-events:auto;position:absolute}.canvas-shape-clip-square{clip-path:inset(0 round 4px)}.canvas-shape-clip-circle{clip-path:ellipse(50% 50%)}.canvas-shape-clip-triangle{clip-path:polygon(50% 0%,0% 100%,100% 100%)}.canvas-shape-clip-pentagon{clip-path:polygon(50% 0%,100% 38%,82% 100%,18% 100%,0% 38%)}.canvas-shape-clip-hexagon{clip-path:polygon(25% 0%,75% 0%,100% 50%,75% 100%,25% 100%,0% 50%)}.canvas-shape-handle{border:1.5px solid var(--tg-accent);width:12px;height:12px;box-shadow:var(--tg-shadow);opacity:0;pointer-events:none;touch-action:none;z-index:1;background:#fff;border-radius:50%;transition:opacity .1s;position:absolute}.canvas-shape:hover .canvas-shape-handle,.canvas-shape.interacting .canvas-shape-handle,.canvas-shape:hover .canvas-resize-edge,.canvas-shape.interacting .canvas-resize-edge{opacity:1;pointer-events:auto}.canvas-shape-handle-nw{cursor:nwse-resize;top:-6px;left:-6px}.canvas-shape-handle-ne{cursor:nesw-resize;top:-6px;right:-6px}.canvas-shape-handle-sw{cursor:nesw-resize;bottom:-6px;left:-6px}.canvas-shape-handle-se{cursor:nwse-resize;bottom:-6px;right:-6px}.canvas-shape-menu-button{border:1px solid var(--tg-border);background:var(--tg-bg);width:20px;height:20px;color:var(--tg-text-secondary);box-shadow:var(--tg-shadow);opacity:0;pointer-events:none;z-index:1;border-radius:50%;padding:0;font-size:12px;line-height:1;transition:opacity .1s;position:absolute;top:18px;right:-6px}.canvas-shape:hover .canvas-shape-menu-button,.canvas-shape.interacting .canvas-shape-menu-button,.canvas-shape.locked .canvas-shape-menu-button{opacity:1;pointer-events:auto}.canvas-shape-lock-button{color:var(--tg-accent)}@media (hover:none){.canvas-shape.selected .canvas-shape-handle,.canvas-shape.selected .canvas-shape-menu-button{opacity:1;pointer-events:auto}}.canvas-text{cursor:grab;touch-action:none;background:var(--tg-text-idle-tint);transition:background-color .12s;position:absolute}.canvas-text.locked{cursor:default}.canvas-text.selected{outline:2px solid var(--tg-accent);outline-offset:1px}.canvas-text.locked .canvas-text-handle,.canvas-text.locked .canvas-resize-edge,.canvas-text.group-selected .canvas-text-handle,.canvas-text.group-selected .canvas-resize-edge,.canvas-text.group-selected .canvas-text-menu-button{display:none}.canvas-text:hover,.canvas-text.interacting,.canvas-text.editing{background:var(--tg-hover-tint);border-radius:6px}.canvas-text.editing{cursor:text}.canvas-text-content{width:100%;height:100%;color:var(--tg-text);white-space:pre-wrap;overflow-wrap:break-word;pointer-events:none;padding:8px 10px;font-size:13px;overflow:hidden}.canvas-text-content a{pointer-events:auto;cursor:pointer}.canvas-text-editable code,.canvas-text-content code{background:color-mix(in srgb, currentColor 12%, transparent);border-radius:4px;padding:.05em .35em;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.9em}.canvas-text-editable blockquote,.canvas-text-content blockquote{border-left:3px solid color-mix(in srgb, currentColor 35%, transparent);opacity:.9;margin:4px 0;padding:2px 8px}[data-list-style=decimalDot] li{list-style-type:decimal}[data-list-style=alpha] li{list-style-type:lower-alpha}[data-list-style=roman] li{list-style-type:upper-roman}[data-list-style=dash] li,[data-list-style=decimalParen] li,[data-list-style=custom] li{list-style:none}[data-list-style=dash] li:before,[data-list-style=decimalParen] li:before,[data-list-style=custom] li:before{content:var(--li-marker)}[data-list-style=decimalParen] ul,[data-list-style=custom][data-list-numbered=true] ul{counter-reset:li}[data-list-style=decimalParen] li,[data-list-style=custom][data-list-numbered=true] li{counter-increment:li}.canvas-text-editable{width:100%;height:100%;color:var(--tg-text);white-space:pre-wrap;overflow-wrap:break-word;touch-action:pan-y;-webkit-user-select:text;user-select:text;background:0 0;outline:none;padding:8px 10px;font-family:inherit;font-size:13px;overflow:auto}.canvas-text-toolbar{z-index:1;border:1px solid var(--tg-border);background:var(--tg-bg-elevated);width:max-content;max-width:260px;box-shadow:var(--tg-shadow);border-radius:8px;flex-wrap:wrap;gap:4px;margin-bottom:4px;padding:4px 6px;display:flex;position:absolute;bottom:100%;left:0}.canvas-text-toolbar button{color:var(--tg-text);background:0 0;border:none;border-radius:6px;width:24px;height:24px;font-size:12px}.canvas-text-toolbar button:hover{background:var(--tg-bg-hover)}.canvas-text-toolbar button:disabled,.sheet-toolbar button:disabled,.canvas-format-popover button:disabled,.canvas-format-side-panel button:disabled{opacity:.4;cursor:default}.canvas-text-toolbar button:disabled:hover,.sheet-toolbar button:disabled:hover,.canvas-format-popover button:disabled:hover,.canvas-format-side-panel button:disabled:hover{background:0 0}.canvas-text-toolbar-divider{background:var(--tg-border);width:1px;margin:4px 2px}.canvas-format-popover,.canvas-format-side-panel{z-index:1000;border:1px solid var(--tg-border);background:var(--tg-bg-elevated);box-shadow:var(--tg-shadow);border-radius:8px;gap:4px;padding:4px 6px;display:flex;position:fixed}.canvas-format-popover{flex-wrap:wrap;width:max-content;max-width:260px}.canvas-format-side-panel{flex-direction:column;max-height:80vh;top:50%;right:8px;overflow-y:auto;transform:translateY(-50%)}.canvas-format-popover button,.canvas-format-side-panel button{color:var(--tg-text);background:0 0;border:none;border-radius:6px;flex:none;width:24px;height:24px;font-size:12px}.canvas-format-popover button:hover,.canvas-format-side-panel button:hover{background:var(--tg-bg-hover)}.canvas-format-side-panel .canvas-text-toolbar-divider,.canvas-format-side-panel .sheet-toolbar-divider{width:100%;height:1px;margin:2px 0}.canvas-text-handle{border:1.5px solid var(--tg-accent);width:12px;height:12px;box-shadow:var(--tg-shadow);opacity:0;pointer-events:none;touch-action:none;z-index:1;background:#fff;border-radius:50%;transition:opacity .1s;position:absolute}.canvas-text:hover .canvas-text-handle,.canvas-text.interacting .canvas-text-handle,.canvas-text:hover .canvas-resize-edge,.canvas-text.interacting .canvas-resize-edge{opacity:1;pointer-events:auto}.canvas-text-handle-nw{cursor:nwse-resize;top:-6px;left:-6px}.canvas-text-handle-ne{cursor:nesw-resize;top:-6px;right:-6px}.canvas-text-handle-sw{cursor:nesw-resize;bottom:-6px;left:-6px}.canvas-text-handle-se{cursor:nwse-resize;bottom:-6px;right:-6px}.canvas-text-menu-button{border:1px solid var(--tg-border);background:var(--tg-bg);width:20px;height:20px;color:var(--tg-text-secondary);box-shadow:var(--tg-shadow);opacity:0;pointer-events:none;z-index:1;border-radius:50%;padding:0;font-size:12px;line-height:1;transition:opacity .1s;position:absolute;top:18px;right:-6px}.canvas-text:hover .canvas-text-menu-button,.canvas-text.interacting .canvas-text-menu-button{opacity:1;pointer-events:auto}@media (hover:none){.canvas-text.selected .canvas-text-handle,.canvas-text.selected .canvas-text-menu-button{opacity:1;pointer-events:auto}}.canvas-text.locked .canvas-text-menu-button{opacity:1;pointer-events:auto}.canvas-text-locked-button{color:var(--tg-accent)}.color-picker-panel{border:1px solid var(--tg-border);background:var(--tg-bg-elevated);width:220px;box-shadow:var(--tg-shadow);-webkit-user-select:none;user-select:none;border-radius:10px;flex-direction:column;gap:10px;padding:10px;display:flex}.color-picker-header{color:var(--tg-text);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;font-size:13px;font-weight:600;display:flex}.color-picker-header:active{cursor:grabbing}.color-picker-square{touch-action:none;cursor:crosshair;-webkit-user-drag:none;border-radius:6px;width:100%;height:140px;position:relative;overflow:hidden}.color-picker-square-white{background:linear-gradient(90deg,#fff,#fff0);position:absolute;inset:0}.color-picker-square-black{background:linear-gradient(#0000,#000);position:absolute;inset:0}.color-picker-thumb{width:14px;height:14px;box-shadow:0 0 0 1px #0006, var(--tg-shadow);pointer-events:none;border:2px solid #fff;border-radius:50%;position:absolute;transform:translate(-50%,-50%)}.color-picker-hue,.color-picker-alpha{touch-action:none;cursor:pointer;-webkit-user-drag:none;border-radius:7px;width:100%;height:14px;position:relative}.color-picker-hue{background:linear-gradient(90deg,red,#ff0,#0f0,#0ff,#00f,#f0f,red)}.color-picker-alpha{background-size:100% 100%,12px 12px}.color-picker-slider-thumb{width:16px;height:16px;box-shadow:0 0 0 1px #0006, var(--tg-shadow);pointer-events:none;border:2px solid #fff;border-radius:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.color-picker-footer{align-items:center;gap:8px;display:flex}.color-picker-swatch-preview{border:1px solid var(--tg-border);background-image:repeating-conic-gradient(#0002 0% 25%,#0000 0% 50%);background-size:12px 12px;border-radius:6px;flex-shrink:0;width:28px;height:28px}.color-picker-hex-input{border:1px solid var(--tg-border);background:var(--tg-bg);min-width:0;height:28px;color:var(--tg-text);border-radius:6px;flex:1;padding:0 8px;font-family:monospace;font-size:12px}.color-picker-clear{border:1px solid var(--tg-border);background:var(--tg-bg);height:28px;color:var(--tg-text-secondary);white-space:nowrap;border-radius:6px;padding:0 8px;font-size:11px}.color-picker-clear:hover{background:var(--tg-bg-hover)}.shape-color-menu{flex-direction:column;gap:8px;display:flex}.canvas-shape-color-toggle-row{border:1px solid var(--tg-border);background:var(--tg-bg-elevated);color:var(--tg-text);box-shadow:var(--tg-shadow);border-radius:8px;align-items:center;gap:6px;padding:6px 8px;font-size:12px;display:flex}.canvas-shape-color-toggle-row label{cursor:pointer;-webkit-user-select:none;user-select:none;flex:1;align-items:center;gap:6px;display:flex}.canvas-shape-color-toggle-row input[type=checkbox]{margin:0}.canvas-shape-color-expand-button{width:20px;height:20px;color:var(--tg-text-secondary);background:0 0;border:none;flex:none;font-size:11px;transition:transform .1s;transform:rotate(0)}.canvas-shape-color-expand-button.expanded{transform:rotate(90deg)}.canvas-shape-stroke-width-row{border:1px solid var(--tg-border);background:var(--tg-bg-elevated);color:var(--tg-text-secondary);box-shadow:var(--tg-shadow);border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding:6px 10px;font-size:12px;display:flex}.canvas-shape-stroke-width-input{border:1px solid var(--tg-border);background:var(--tg-bg);width:60px;height:28px;color:var(--tg-text);border-radius:6px;padding:0 8px;font-size:12px}.sheet-panel{border:1px solid var(--tg-border);background:var(--tg-bg-sheet);box-shadow:var(--tg-shadow);touch-action:none;border-radius:10px;flex-direction:column;display:flex;position:absolute;overflow:hidden}.sheet-window-header{background:var(--tg-bg-elevated);border-bottom:1px solid var(--tg-border);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;flex:none;align-items:center;gap:4px;height:28px;padding:0 4px 0 10px;display:flex}.sheet-window-title{min-width:0;color:var(--tg-text-secondary);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:12px;font-weight:600;overflow:hidden}.sheet-window-header-actions{flex:none;align-items:center;gap:2px;display:flex}.sheet-window-header-button{width:22px;height:22px;color:var(--tg-text-secondary);background:0 0;border:none;border-radius:5px;justify-content:center;align-items:center;padding:0;display:flex}.sheet-window-header-button:hover{background:var(--tg-bg-hover);color:var(--tg-text)}.sheet-toolbar{border-bottom:1px solid var(--tg-border);background:var(--tg-bg-elevated);flex-wrap:wrap;flex:none;gap:4px;padding:4px 6px;display:flex}.sheet-toolbar button{color:var(--tg-text);background:0 0;border:none;border-radius:6px;width:24px;height:24px;font-size:12px}.sheet-toolbar button:hover{background:var(--tg-bg-hover)}.sheet-toolbar-divider{background:var(--tg-border);width:1px;margin:4px 2px}.sheet-content{min-height:0;color:var(--tg-text);white-space:pre-wrap;overflow-wrap:break-word;cursor:text;touch-action:pan-y;-webkit-user-select:text;user-select:text;outline:none;flex:1;padding:10px 16px 0;font-size:13px;overflow:auto}.sheet-content:after{content:"";height:18px;display:block}.sheet-resize-handle{background:var(--tg-border);cursor:nwse-resize;touch-action:none;border-radius:4px;width:16px;height:16px;position:absolute;bottom:-4px;right:-4px}.chat-board{background:var(--tg-bg);flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.chat-drop-overlay{z-index:500;background:color-mix(in srgb, var(--tg-accent) 12%, transparent);border:2px dashed var(--tg-accent);pointer-events:none;border-radius:8px;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.chat-drop-overlay-inner{background:var(--tg-bg-elevated);color:var(--tg-text);box-shadow:var(--tg-shadow);border-radius:10px;padding:10px 18px;font-size:14px;font-weight:600}.chat-pinned-banner{border-bottom:1px solid var(--tg-border);background:var(--tg-bg-elevated);flex:none;align-items:stretch;width:100%;display:flex}.chat-pinned-preview-button{text-align:left;cursor:pointer;background:0 0;border:none;flex:1;align-items:center;gap:8px;min-width:0;padding:8px 12px;display:flex}.chat-pinned-icon{flex:none;font-size:13px}.chat-pinned-thumb{object-fit:cover;border-radius:5px;flex:none;width:24px;height:24px}.chat-pinned-thumb-large{border-radius:6px;width:36px;height:36px}.chat-pinned-preview{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--tg-text);flex:1;font-size:13px;overflow:hidden}.chat-pinned-count{color:var(--tg-text-secondary);flex:none;font-size:11px}.chat-pinned-list-toggle{border:none;border-left:1px solid var(--tg-border);color:var(--tg-text-secondary);background:0 0;flex:none;padding:8px 14px;font-size:14px}.chat-pinned-list-toggle:hover{background:var(--tg-bg-hover)}.chat-search-bar{border-bottom:1px solid var(--tg-border);background:var(--tg-bg-elevated);flex:none;width:100%}.chat-search-bar-row{align-items:center;gap:4px;padding:6px 8px;display:flex}.chat-search-bar .icon-button{width:28px;height:28px;font-size:13px}.chat-search-bar .icon-button:disabled{opacity:.35}.chat-search-input{min-width:0;color:var(--tg-text);background:0 0;border:none;flex:1;padding:4px;font-size:14px}.chat-search-count{color:var(--tg-text-secondary);white-space:nowrap;flex:none;padding:0 2px;font-size:11px}.chat-search-filter-active{color:var(--tg-accent)}.chat-search-filters{gap:6px;padding:0 8px 8px;display:flex}.chat-search-filter{border:1px solid var(--tg-border);background:var(--tg-bg);color:var(--tg-text-secondary);border-radius:999px;padding:3px 10px;font-size:12px}.chat-search-filter.active{border-color:var(--tg-accent);background:var(--tg-accent);color:var(--tg-accent-text)}.chat-search-highlight{color:#1a1a1a;background:#ffd54a;border-radius:2px;padding:0 1px}.chat-conflict-button{position:relative}.chat-conflict-panel{z-index:20;border:1px solid var(--tg-border);background:var(--tg-bg-elevated);max-height:60vh;box-shadow:var(--tg-shadow);border-radius:10px;flex-direction:column;display:flex;position:absolute;top:52px;left:8px;right:8px;overflow:hidden}.chat-conflict-panel-list{overflow-y:auto}.chat-pinned-list,.chat-media-grid-panel{background:var(--tg-bg);flex-direction:column;flex:1;min-height:0;display:flex}.chat-media-grid{flex:1;grid-template-columns:repeat(auto-fill,minmax(72px,1fr));align-content:start;gap:3px;min-height:0;padding:2px;display:grid;overflow-y:auto}.chat-media-grid-item{aspect-ratio:1;background:var(--tg-bg-hover);border:none;padding:0;overflow:hidden}.chat-media-grid-item img{object-fit:contain;width:100%;height:100%;display:block}.chat-media-grid-placeholder{opacity:.5;justify-content:center;align-items:center;width:100%;height:100%;font-size:24px;display:flex}.chat-pinned-list-header{border-bottom:1px solid var(--tg-border);background:var(--tg-bg-elevated);flex:none;align-items:center;gap:8px;padding:6px 12px;font-size:14px;font-weight:600;display:flex}.chat-pinned-list-items{flex-direction:column;flex:1;min-height:0;display:flex;overflow-y:auto}.chat-pinned-list-item{border:none;border-bottom:1px solid var(--tg-border);width:100%;color:var(--tg-text);text-align:left;background:0 0;align-items:center;gap:10px;padding:10px 14px;display:flex}.chat-pinned-list-item:hover{background:var(--tg-bg-hover)}.chat-pinned-list-item-text{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:14px;overflow:hidden}.chat-pinned-list-item-time{color:var(--tg-text-secondary);flex:none;font-size:12px}.chat-messages{flex-direction:column;flex:1;gap:8px;min-height:0;padding:16px;display:flex;overflow-y:auto}.chat-empty{color:var(--tg-text-secondary);text-align:center;margin:auto}.chat-bubble-row{cursor:pointer;touch-action:pan-y;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;width:100%}.chat-bubble-swipe-area{justify-content:flex-end;align-items:center;width:100%;transition:transform .18s;display:flex;position:relative}.chat-bubble-swipe-area.swiping{transition:none}.chat-bubble-swipe-icon{color:var(--tg-accent);font-size:18px;line-height:1;position:absolute;top:50%;right:0;transform:translateY(-50%)}.chat-bubble-reply-quote{border-left:3px solid color-mix(in srgb, var(--tg-accent) 60%, transparent);color:var(--tg-text-secondary);text-overflow:ellipsis;white-space:nowrap;cursor:pointer;margin-bottom:4px;padding:2px 8px;font-size:12px;overflow:hidden}.chat-bubble-reply-missing{cursor:default;font-style:italic}.chat-bubble-row.selected{background:color-mix(in srgb, var(--tg-accent) 10%, transparent)}.chat-bubble-select-indicator{border:2px solid var(--tg-border);background:var(--tg-bg-elevated);box-sizing:border-box;border-radius:50%;flex:none;width:18px;height:18px}.chat-bubble-select-indicator.selected{border-color:var(--tg-accent);background:var(--tg-accent)}.chat-selection-bar{padding:10px 12px;padding-bottom:calc(10px + var(--tg-safe-area-bottom,0px));border-top:1px solid var(--tg-border);background:var(--tg-bg-elevated);flex-wrap:wrap;flex:none;align-items:center;gap:10px;display:flex}.chat-selection-count{flex:none;font-size:13px;font-weight:600}.chat-selection-actions{flex-wrap:wrap;flex:1;justify-content:flex-end;gap:6px;min-width:0;display:flex}.chat-selection-actions button{color:var(--tg-text);background:0 0;border:none;border-radius:6px;padding:6px 10px;font-size:13px}.chat-selection-actions button:hover{background:var(--tg-bg-hover)}@media (hover:hover) and (pointer:fine){.chat-bubble-row{cursor:default}.chat-bubble{-webkit-user-select:text;user-select:text;cursor:text}}.chat-bubble{background:var(--tg-bubble-bg);width:fit-content;max-width:min(82%,480px);color:var(--tg-text);box-shadow:var(--tg-shadow);border-radius:14px 14px 4px;margin-left:auto;padding:8px 12px;position:relative}.chat-bubble.menu-open{outline:2px solid var(--tg-accent)}.chat-bubble.highlighted{animation:1.2s chat-bubble-flash}@keyframes chat-bubble-flash{0%,to{outline:2px solid #0000}25%{outline:2px solid var(--tg-accent)}}.chat-bubble-text{white-space:pre-wrap;overflow-wrap:break-word;font-size:14px}.chat-bubble-text a{color:inherit;text-decoration:underline}.chat-bubble-text code{background:color-mix(in srgb, currentColor 12%, transparent);border-radius:4px;padding:.05em .35em;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.9em}.chat-bubble-quote{border-left:3px solid color-mix(in srgb, currentColor 35%, transparent);opacity:.9;margin:4px 0;padding:2px 8px}.chat-link-preview{border-left:3px solid var(--tg-accent);background:color-mix(in srgb, currentColor 6%, transparent);color:inherit;border-radius:6px;margin-top:6px;text-decoration:none;display:block;overflow:hidden}.chat-link-preview-image-wrap{background:#000;width:100%;max-height:360px;overflow:hidden}.chat-link-preview-image{object-fit:contain;width:100%;height:auto;max-height:360px;display:block}.chat-link-preview-text{padding:6px 8px}.chat-link-preview-title{color:var(--tg-accent);overflow-wrap:break-word;font-size:13px;font-weight:600}.chat-link-preview-description{color:var(--tg-text-secondary);overflow-wrap:break-word;-webkit-line-clamp:3;-webkit-box-orient:vertical;margin-top:2px;font-size:12.5px;display:-webkit-box;overflow:hidden}.chat-composer-link-preview-wrap{flex:none;padding:0 12px}.chat-composer-link-preview-wrap .chat-link-preview-status{margin-top:6px}.chat-composer-link-preview-wrap .chat-link-preview{margin-top:6px;margin-bottom:0}.chat-link-preview-status{border-left:3px solid var(--tg-border);background:color-mix(in srgb, currentColor 4%, transparent);color:var(--tg-text-secondary);border-radius:6px;align-items:center;gap:6px;margin-top:6px;padding:6px 8px;font-size:12.5px;display:flex}.chat-link-preview-spinner{border:2px solid color-mix(in srgb, currentColor 25%, transparent);border-top-color:var(--tg-accent);border-radius:50%;flex-shrink:0;width:12px;height:12px;animation:.8s linear infinite chat-link-preview-spin}@keyframes chat-link-preview-spin{to{transform:rotate(360deg)}}.chat-link-preview-status-error{border-left-color:var(--tg-danger)}.chat-link-preview-status-text{overflow-wrap:break-word}.chat-link-preview-reason{color:color-mix(in srgb, currentColor 65%, transparent)}.chat-link-preview-retry{width:22px;height:22px;color:var(--tg-accent);cursor:pointer;background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-left:auto;display:inline-flex}.chat-link-preview-retry:hover{background:color-mix(in srgb, currentColor 10%, transparent)}.chat-bubble-meta{color:var(--tg-text-secondary);justify-content:flex-end;align-items:center;gap:6px;margin-top:2px;font-size:11px;display:flex}.chat-bubble-edited{font-style:italic}.chat-bubble-menu{z-index:1000;background:var(--tg-bg);border:1px solid var(--tg-border);box-shadow:var(--tg-shadow);border-radius:8px;flex-direction:column;min-width:130px;display:flex;position:fixed;overflow:hidden}.chat-bubble-menu button{color:var(--tg-text);text-align:left;white-space:nowrap;background:0 0;border:none;padding:10px 14px;font-size:13px}.chat-bubble-menu button:hover{background:var(--tg-bg-hover)}.chat-bubble-menu-danger{color:var(--tg-danger)}.chat-bubble-menu-danger:hover{background:color-mix(in srgb, var(--tg-danger) 14%, transparent)}.image-gallery-backdrop{z-index:1000;background:#000000eb;flex-direction:column;display:flex;position:fixed;inset:0}.image-gallery-topbar{padding:10px 14px;padding-top:calc(10px + var(--tg-safe-area-top,0px));color:#fff;flex:none;justify-content:space-between;align-items:center;font-size:13px;display:flex}.image-gallery-actions{gap:8px;display:flex}.image-gallery-button{color:#fff;background:#ffffff29;border:1px solid #ffffff40;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:17px;display:flex}.image-gallery-track{scroll-snap-type:x mandatory;scrollbar-width:none;flex:1;min-height:0;display:flex;overflow-x:auto}.image-gallery-track::-webkit-scrollbar{display:none}.image-gallery-slide{scroll-snap-align:center;scroll-snap-stop:always;flex:none;justify-content:center;align-items:center;width:100%;display:flex;overflow:hidden}.image-gallery-nav{color:#fff;z-index:1;background:#ffffff29;border:1px solid #ffffff40;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;font-size:26px;line-height:1;display:none;position:absolute;top:50%;transform:translateY(-50%)}.image-gallery-nav:disabled{opacity:.3;cursor:default}.image-gallery-nav-prev{left:14px}.image-gallery-nav-next{right:14px}@media (hover:hover) and (pointer:fine){.image-gallery-nav{display:flex}}.image-gallery-image{object-fit:contain;-webkit-user-select:none;user-select:none;max-width:100%;max-height:100%}.image-gallery-placeholder{opacity:.5;font-size:48px}.chat-editing-banner{background:var(--tg-bg-elevated);border-top:1px solid var(--tg-border);color:var(--tg-text-secondary);flex:none;align-items:center;gap:8px;padding:6px 12px;font-size:12px;display:flex}.chat-editing-banner-icon{flex:none}.chat-editing-banner-text{flex:1}.chat-editing-banner-cancel{color:var(--tg-text-secondary);background:0 0;border:none;flex:none;padding:2px 6px;font-size:12px}.chat-reply-banner{background:var(--tg-bg-elevated);border-top:1px solid var(--tg-border);border-left:3px solid var(--tg-accent);flex:none;align-items:center;gap:8px;padding:6px 12px;font-size:12px;display:flex}.chat-reply-banner-icon{color:var(--tg-accent);flex:none}.chat-reply-banner-body{flex-direction:column;flex:1;min-width:0;display:flex}.chat-reply-banner-label{color:var(--tg-accent);font-weight:600}.chat-reply-banner-preview{color:var(--tg-text-secondary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.chat-reply-banner-cancel{color:var(--tg-text-secondary);background:0 0;border:none;flex:none;padding:2px 6px;font-size:12px}.chat-composer{padding:10px 12px;padding-bottom:calc(10px + var(--tg-safe-area-bottom,0px));border-top:1px solid var(--tg-border);background:var(--tg-bg-elevated);flex:none;align-items:flex-end;gap:8px;display:flex;position:relative}.chat-composer-with-expand{min-height:100px}.chat-composer-icons{flex:none;align-items:flex-end;gap:2px;display:flex}.chat-format-button-wrap{flex:none;position:relative}.chat-format-button{width:40px;height:40px;font-size:14px;font-weight:700}.chat-format-menu{z-index:1000;background:var(--tg-bg-elevated);border:1px solid var(--tg-border);border-radius:8px;gap:2px;padding:4px;display:flex;position:absolute;bottom:calc(100% + 6px);left:0;box-shadow:0 2px 10px #0003}.chat-format-menu button{min-width:28px;height:26px;color:var(--tg-text);background:0 0;border:none;border-radius:6px;flex:none;padding:0 8px;font-size:13px;font-weight:600}.chat-format-menu button:active{background:color-mix(in srgb, currentColor 12%, transparent)}.chat-format-menu-vertical{flex-direction:column;max-height:60vh;overflow-y:auto}.chat-format-menu-vertical button{width:32px}.chat-composer-format-italic{font-style:italic}.chat-composer-format-underline{text-decoration:underline}.chat-composer-format-strikethrough{text-decoration:line-through}.chat-composer-format-monospace{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.chat-composer-input{resize:none;min-height:26px;font:inherit;color:var(--tg-text);background:var(--tg-bg);border:1px solid var(--tg-border);scrollbar-width:none;border-radius:18px;flex:1;padding:11px 14px;font-size:14px;overflow-y:auto}.chat-composer-input::-webkit-scrollbar{display:none}.chat-composer-send{background:var(--tg-accent);width:40px;height:40px;color:var(--tg-accent-text);border:none;border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:16px;line-height:1;display:flex}.chat-composer-send:disabled{opacity:.5}.chat-attach-button{border:1px solid var(--tg-border);background:var(--tg-bg);width:40px;height:40px}.chat-attach-button-hidden{display:none}.chat-composer-input-wrap{flex:1;display:flex}.chat-composer-expand-button{z-index:1;border:1px solid var(--tg-border);background:var(--tg-bg-elevated);width:40px;height:40px;color:var(--tg-text);box-shadow:var(--tg-shadow);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:20px;line-height:1;display:flex;position:absolute;top:4px;right:12px}.chat-composer-expand-button span{display:block;transform:translateY(-1px)}.chat-fullscreen-composer{z-index:2000;background:var(--tg-bg-elevated);flex-direction:column;display:flex;position:fixed;inset:0}.chat-fullscreen-composer-topbar{padding:10px 12px;padding-top:calc(10px + var(--tg-safe-area-top,0px));border-bottom:1px solid var(--tg-border);flex:none;justify-content:space-between;align-items:center;gap:8px;display:flex}.chat-fullscreen-composer-close{border:1px solid var(--tg-border);background:var(--tg-bg);width:40px;height:40px}.chat-fullscreen-composer-toolbar{gap:4px;display:flex}.chat-fullscreen-composer-toolbar button{border:1px solid var(--tg-border);background:var(--tg-bg);min-width:36px;height:36px;color:var(--tg-text);border-radius:8px;flex:none;padding:0 10px;font-size:14px;font-weight:600}.chat-fullscreen-composer-toolbar button:active{background:color-mix(in srgb, currentColor 12%, transparent)}.chat-fullscreen-composer-input{resize:none;color:var(--tg-text);font:inherit;padding:16px;padding-bottom:calc(16px + var(--tg-safe-area-bottom,0px));background:0 0;border:none;outline:none;flex:1;font-size:16px;line-height:1.5}.chat-pending-attachments-wrap{flex:none;margin:8px 12px 0}.chat-pending-attachments{flex:none;gap:8px;display:flex;overflow-x:auto}.chat-full-quality-toggle{color:var(--tg-text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;margin-top:6px;font-size:12px;display:flex}.chat-full-quality-toggle input{margin:0}.chat-pending-attachment{flex:none;width:72px;height:72px;position:relative}.chat-pending-attachment img{object-fit:cover;border:1px solid var(--tg-border);border-radius:10px;width:100%;height:100%;display:block}.chat-pending-attachment-remove{border:1px solid var(--tg-border);background:var(--tg-bg);width:20px;height:20px;color:var(--tg-text);box-shadow:var(--tg-shadow);border-radius:50%;padding:0;font-size:10px;position:absolute;top:-6px;right:-6px}.chat-bubble-image-wrap{cursor:zoom-in;border-radius:10px;width:100%;max-width:220px;max-height:220px;margin-bottom:4px;display:block;position:relative;overflow:hidden}.chat-bubble-image{object-fit:cover;width:100%;height:100%;display:block}.image-upload-spinner{pointer-events:none;background:#00000047;flex-direction:column;justify-content:center;align-items:center;gap:4px;display:flex;position:absolute;inset:0}.image-upload-stage-label{color:#fff;text-align:center;padding:0 6px;font-size:10px}.image-upload-spinner:after{content:"";border:2.5px solid #ffffff59;border-top-color:#fff;border-radius:50%;width:22px;height:22px;animation:.8s linear infinite image-upload-spin}.image-upload-spinner-stalled:after{border-color:#ff7878 #ff787880 #ff787880;animation:none}@keyframes image-upload-spin{to{transform:rotate(360deg)}}.canvas-image .image-upload-spinner{border-radius:4px}.chat-bubble-image-placeholder{background:var(--tg-bg-hover);border:1px dashed var(--tg-border);opacity:.6;border-radius:10px;justify-content:center;align-items:center;width:160px;height:120px;margin-bottom:4px;font-size:28px;display:flex}.chat-bubble-group{border-radius:10px;gap:2px;width:220px;margin-bottom:4px;display:grid;overflow:hidden}.chat-bubble-group-2{grid-template-columns:1fr 1fr}.chat-bubble-group-3{grid-template-rows:1fr 1fr;grid-template-columns:1fr 1fr}.chat-bubble-group-3>:first-child{grid-row:span 2}.chat-bubble-group-4{grid-template-rows:1fr 1fr;grid-template-columns:1fr 1fr}.chat-bubble-group-5{grid-template-columns:1fr 1fr 1fr}.chat-bubble-group-image-wrap{cursor:zoom-in;width:100%;min-width:0;height:100%;min-height:0;position:relative}.chat-bubble-group-image-wrap.selected:after{content:"";background:color-mix(in srgb, var(--tg-accent) 25%, transparent);pointer-events:none;position:absolute;inset:0}.chat-bubble-group-select-indicator{box-sizing:border-box;z-index:1;background:#00000040;border:2px solid #fff;border-radius:50%;width:18px;height:18px;position:absolute;top:6px;right:6px;box-shadow:0 0 0 1px #0000004d}.chat-bubble-group-select-indicator.selected{border-color:var(--tg-accent);background:var(--tg-accent)}.chat-bubble-group-5>.chat-bubble-group-image-wrap{aspect-ratio:1}.chat-bubble-group-image{aspect-ratio:1;object-fit:cover;width:100%;height:100%;display:block}.pairing-screen{background:var(--tg-bg);justify-content:center;align-items:center;height:100%;padding:24px;display:flex}.pairing-card{text-align:center;flex-direction:column;align-items:center;gap:12px;max-width:360px;display:flex}.pairing-card h1{margin:0;font-size:20px}.pairing-card p{color:var(--tg-text-secondary);margin:0;font-size:14px}.pairing-qr{border:1px solid var(--tg-border);background:#fff;border-radius:12px;width:240px;height:240px;padding:12px}.pairing-manual-code code{color:var(--tg-text);letter-spacing:1px;font-family:ui-monospace,monospace;font-size:15px;font-weight:600}.pairing-hint{font-size:13px}.pairing-error{color:var(--tg-danger);font-size:13px}.pairing-modal-backdrop{z-index:100;background:#0006;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.language-options{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.language-option-button{border:1px solid var(--tg-border);background:var(--tg-bg-elevated);color:var(--tg-text);cursor:pointer;border-radius:8px;padding:8px 16px;font-size:14px}.language-option-button.active{border-color:var(--tg-accent);background:var(--tg-accent);color:var(--tg-accent-text)}.language-option-button.suggested{border-color:var(--tg-accent)}.template-gallery-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;width:100%;display:grid}.template-gallery-card{border:1px solid var(--tg-border);background:var(--tg-bg-elevated);color:var(--tg-text);cursor:pointer;text-align:center;border-radius:10px;flex-direction:column;align-items:center;gap:6px;padding:16px 10px;display:flex}.template-gallery-card:hover{background:var(--tg-hover-tint)}.template-gallery-card-blank{border-style:dashed}.template-gallery-card-icon{color:var(--tg-accent)}.template-gallery-card-title{font-size:13px;font-weight:600}.template-gallery-card-description{color:var(--tg-text-secondary);font-size:11px}.template-gallery-screen-card{max-width:520px}.pairing-modal.template-gallery-modal{max-width:460px}.pairing-modal.changelog-modal{width:100%;max-width:760px;max-height:min(760px,85vh);position:relative}.changelog-modal h2{padding-right:32px}.changelog-close-button{background:var(--tg-bg-hover);width:28px;height:28px;color:var(--tg-text-secondary);border:none;border-radius:8px;justify-content:center;align-items:center;font-size:15px;line-height:1;display:flex;position:absolute;top:12px;right:12px}.changelog-scroll{flex-direction:column;gap:20px;min-height:0;display:flex;overflow-y:auto}.changelog-entry{flex-direction:column;gap:16px;display:flex}.changelog-entry-heading{color:var(--tg-text);margin:0;font-size:16px;font-weight:700}.changelog-entry-divider{border:none;border-top:1px solid var(--tg-border);margin:4px 0 0}.changelog-section h4{color:var(--tg-text-secondary);text-transform:uppercase;letter-spacing:.03em;margin:0 0 6px;font-size:13px;font-weight:600}.changelog-section ul{flex-direction:column;gap:6px;margin:0;padding-left:18px;display:flex}.changelog-section li{color:var(--tg-text);font-size:14px;line-height:1.4}.pairing-modal{background:var(--tg-bg-elevated);width:100%;max-width:340px;box-shadow:var(--tg-shadow);border-radius:14px;flex-direction:column;gap:12px;padding:20px;display:flex}.pairing-modal h2{margin:0;font-size:17px}.canvas-image-staging-dialog{max-width:420px}.canvas-image-staging-grid{grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:6px;max-height:260px;display:grid;overflow-y:auto}.canvas-image-staging-thumb{aspect-ratio:1;background:var(--tg-bg-hover);border-radius:8px;overflow:hidden}.canvas-image-staging-thumb img{object-fit:cover;width:100%;height:100%;display:block}.pairing-modal p{color:var(--tg-text-secondary);margin:0;font-size:14px}.pairing-scan-button{background:var(--tg-accent);color:var(--tg-accent-text);border:none;border-radius:10px;padding:12px;font-size:14px;font-weight:600}.pairing-manual-entry{gap:8px;display:flex}.pairing-manual-entry input{border:1px solid var(--tg-border);background:var(--tg-bg);min-width:0;color:var(--tg-text);border-radius:8px;flex:1;padding:8px 10px;font-size:14px}.pairing-manual-entry button{background:var(--tg-bg-hover);color:var(--tg-text);border:none;border-radius:8px;padding:0 14px;font-size:13px;font-weight:600}.onboarding-backdrop{z-index:100;background:#0006;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.onboarding-modal{background:var(--tg-bg-elevated);width:100%;max-width:340px;box-shadow:var(--tg-shadow);text-align:center;border-radius:14px;flex-direction:column;align-items:center;gap:10px;padding:24px 20px 20px;display:flex;position:relative}.onboarding-skip{color:var(--tg-text-secondary);background:0 0;border:none;padding:4px;font-size:13px;position:absolute;top:12px;right:14px}.onboarding-icon{font-size:36px;line-height:1}.onboarding-modal h2{margin:0;font-size:17px}.onboarding-modal p{color:var(--tg-text-secondary);margin:0;font-size:14px}.onboarding-dots{gap:6px;margin:4px 0;display:flex}.onboarding-dot{background:var(--tg-border);border-radius:50%;width:6px;height:6px}.onboarding-dot-active{background:var(--tg-accent)}.onboarding-nav{justify-content:center;gap:8px;width:100%;display:flex}.onboarding-nav .app-dialog-button{flex:1}.tour-dim-bar{z-index:2600;pointer-events:none;background:#0000008c;position:fixed}.tour-spotlight-ring{z-index:2601;border:2px solid var(--tg-accent);pointer-events:none;border-radius:10px;transition:top .15s,left .15s,width .15s,height .15s;position:fixed;box-shadow:0 0 0 4px #3b82f640}.tour-tooltip{z-index:2610;background:var(--tg-bg-elevated);width:260px;max-width:calc(100vw - 16px);box-shadow:var(--tg-shadow);text-align:center;border-radius:14px;flex-direction:column;align-items:center;gap:8px;padding:20px 16px 16px;display:flex;position:fixed}.tour-tooltip .onboarding-icon{font-size:28px}.tour-tooltip h2{margin:0;font-size:15px}.tour-tooltip p{color:var(--tg-text-secondary);margin:0;font-size:13px}.tour-floating-hint{z-index:2610;background:var(--tg-bg-elevated);width:280px;max-width:calc(100vw - 32px);box-shadow:var(--tg-shadow);text-align:center;border-radius:14px;flex-direction:column;align-items:center;gap:8px;padding:20px 16px 16px;display:flex;position:fixed;bottom:16px;left:50%;transform:translate(-50%)}.tour-floating-hint .onboarding-icon{font-size:28px}.tour-floating-hint h2{margin:0;font-size:15px}.tour-floating-hint p{color:var(--tg-text-secondary);margin:0;font-size:13px}.app-dialog-backdrop{z-index:3000;background:#0006;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.app-dialog{background:var(--tg-bg-elevated);width:100%;max-width:340px;box-shadow:var(--tg-shadow);border-radius:14px;flex-direction:column;gap:14px;padding:20px;display:flex}.app-dialog-message{color:var(--tg-text);white-space:pre-wrap;margin:0;font-size:14px}.app-dialog-input{border:1px solid var(--tg-border);background:var(--tg-bg);color:var(--tg-text);border-radius:8px;padding:10px;font-size:14px}.app-dialog-actions{justify-content:flex-end;gap:8px;display:flex}.app-dialog-button{background:var(--tg-bg-hover);color:var(--tg-text);border:none;border-radius:10px;padding:10px 16px;font-size:14px;font-weight:600}.app-dialog-button-primary{background:var(--tg-accent);color:var(--tg-accent-text)}.app-dialog-button-danger{background:var(--tg-danger);color:#fff}.camera-capture-dialog{max-width:480px}.camera-capture-video{object-fit:contain;background:#000;border-radius:8px;width:100%;max-height:60vh}.new-chat-dialog-input,.new-chat-dialog-tag-input{border:1px solid var(--tg-border);background:var(--tg-bg);color:var(--tg-text);border-radius:8px;padding:8px 10px;font-size:14px}.new-chat-dialog-tag-input{color:var(--tg-text-secondary);align-items:center;gap:2px;display:flex}.new-chat-dialog-tag-input input{min-width:0;color:var(--tg-text);background:0 0;border:none;flex:1;padding:0;font-size:14px}.forward-dialog-descend-spacer{flex:none;width:32px;display:inline-block}.forward-dialog-list{flex-direction:column;gap:4px;max-height:40vh;display:flex;overflow-y:auto}.forward-dialog-item{border:1px solid var(--tg-border);background:var(--tg-bg);color:var(--tg-text);text-align:left;border-radius:8px;padding:10px 12px;font-size:14px}.forward-dialog-item:hover{background:var(--tg-bg-hover)}.forward-dialog-row{align-items:stretch;gap:4px;display:flex}.forward-dialog-row .forward-dialog-item{flex:1}.forward-dialog-descend{border:1px solid var(--tg-border);background:var(--tg-bg);color:var(--tg-text-secondary);border-radius:8px;padding:0 12px;font-size:14px}.forward-dialog-descend:hover{background:var(--tg-bg-hover)}.forward-dialog-breadcrumb{color:var(--tg-text-secondary);align-items:center;gap:8px;margin-bottom:8px;font-size:12px;display:flex}.forward-dialog-up{color:var(--tg-accent);white-space:nowrap;background:0 0;border:none;padding:0;font-size:12px}.forward-dialog-breadcrumb-path{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.forward-dialog-drop-here{border:1px solid var(--tg-accent);background:var(--tg-bg);color:var(--tg-accent);border-radius:8px;margin-top:8px;padding:10px 12px;font-size:14px;font-weight:600}.forward-dialog-drop-here:hover{background:var(--tg-bg-hover)}.forward-dialog-section-label{color:var(--tg-text-secondary);text-transform:uppercase;margin:10px 0 4px;font-size:12px;font-weight:600}.cleanup-dialog-option{color:var(--tg-text);cursor:pointer;align-items:flex-start;gap:8px;font-size:14px;display:flex}.cleanup-dialog-option input{flex-shrink:0;margin-top:3px}.cleanup-dialog-board-list{max-height:30vh}.bug-report-modal{max-height:90vh;overflow-y:auto}.bug-report-field{color:var(--tg-text-secondary);flex-direction:column;gap:4px;font-size:13px;display:flex}.bug-report-field input[type=text],.bug-report-field input[type=email],.bug-report-field textarea{border:1px solid var(--tg-border);background:var(--tg-bg);color:var(--tg-text);resize:vertical;border-radius:8px;padding:8px 10px;font-family:inherit;font-size:14px}.bug-report-photos{flex-wrap:wrap;gap:6px;display:flex}.bug-report-photo{width:56px;height:56px;position:relative}.bug-report-photo img{object-fit:cover;border-radius:8px;width:100%;height:100%}.bug-report-photo-remove{border:1px solid var(--tg-border);background:var(--tg-bg);width:18px;height:18px;color:var(--tg-text);box-shadow:var(--tg-shadow);border-radius:50%;padding:0;font-size:10px;position:absolute;top:-6px;right:-6px}.bug-report-add-photo{border:1px dashed var(--tg-border);width:fit-content;color:var(--tg-text-secondary);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;padding:8px 12px;font-size:13px;display:flex}.bug-report-add-photo:hover{background:var(--tg-bg-hover)}.bug-report-field input.bug-report-input-invalid{border-color:var(--tg-danger)}.bug-report-field-error{color:var(--tg-danger);font-size:11px}.cleanup-dialog-board-item{border:1px solid var(--tg-border);border-radius:8px;padding:8px 10px}.cleanup-dialog-board-time{color:var(--tg-text-secondary);font-size:12px}.pairing-close-button{color:var(--tg-text-secondary);background:0 0;border:none;align-self:center;padding:4px;font-size:13px}.share-dialog-link-row{gap:8px;display:flex}.share-dialog-link-row input{border:1px solid var(--tg-border);background:var(--tg-bg);min-width:0;color:var(--tg-text);border-radius:8px;flex:1;padding:8px 10px;font-size:14px}.share-dialog-link-row button{background:var(--tg-bg-hover);color:var(--tg-text);border:none;border-radius:8px;padding:0 14px;font-size:13px;font-weight:600}.share-dialog-actions{gap:8px;display:flex}.share-dialog-actions .pairing-scan-button{flex:1}@media (width<=480px){.app-topbar-title{font-size:15px}.board-list-item-time{display:none}.chat-bubble{max-width:96%}.chat-messages,.chat-composer{padding-left:6px;padding-right:6px}}
