:root{--bg: #ebedee;--dot: #c9ccd0;--panel: #ffffff;--card: #ffffff;--text: #323b4a;--muted: #767c86;--faint: #8d929a;--border: rgba(0, 0, 0, .1);--divider: #dadcde;--accent: #3d7bfa;--accent-soft: rgba(61, 123, 250, .12);--select: #2b3240;--select-soft: rgba(43, 50, 64, .08);--danger: #e5484d;--shadow: 0 1px 2px rgba(0, 0, 0, .08), 0 0 0 .5px rgba(0, 0, 0, .04);--shadow-hover: 0 1px 3px rgba(0, 0, 0, .1), 0 1px 2px -1px rgba(0, 0, 0, .1);--shadow-lift: 0 10px 28px rgba(0, 0, 0, .16), 0 2px 6px rgba(0, 0, 0, .08);--shadow-pop: 0 8px 30px rgba(0, 0, 0, .14), 0 0 0 1px rgba(0, 0, 0, .05);--tool-card: #ffffff;--tool-glyph: #3a4352;--tool-inset: #e4e6e9;--tool-inset-strong: #d3d6da;--tool-trash: #b6bbc2;--tool-trash-lid: #8f959e;--input-bg: #f4f5f6;color-scheme:light;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:14px;font-feature-settings:"cv11","ss01";color:var(--text)}:root[data-theme=dark]{--bg: #1d1f22;--dot: #3a3d42;--panel: #26282c;--card: #2e3035;--text: #e9eaec;--muted: #a2a6ad;--faint: #80858d;--border: rgba(255, 255, 255, .1);--divider: #34373c;--accent-soft: rgba(61, 123, 250, .22);--select: #eceef1;--select-soft: rgba(236, 238, 241, .1);--shadow: 0 1px 2px rgba(0, 0, 0, .45), 0 0 0 .5px rgba(255, 255, 255, .04);--shadow-hover: 0 2px 4px rgba(0, 0, 0, .5);--shadow-lift: 0 10px 28px rgba(0, 0, 0, .55);--shadow-pop: 0 8px 30px rgba(0, 0, 0, .5), 0 0 0 1px rgba(255, 255, 255, .06);--tool-card: #3a3d43;--tool-glyph: #e2e4e7;--tool-inset: #4a4e55;--tool-inset-strong: #555a62;--tool-trash: #5d626a;--tool-trash-lid: #7c818a;--input-bg: #33363b;color-scheme:dark}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg: #1d1f22;--dot: #3a3d42;--panel: #26282c;--card: #2e3035;--text: #e9eaec;--muted: #a2a6ad;--faint: #80858d;--border: rgba(255, 255, 255, .1);--divider: #34373c;--accent-soft: rgba(61, 123, 250, .22);--select: #eceef1;--select-soft: rgba(236, 238, 241, .1);--shadow: 0 1px 2px rgba(0, 0, 0, .45), 0 0 0 .5px rgba(255, 255, 255, .04);--shadow-hover: 0 2px 4px rgba(0, 0, 0, .5);--shadow-lift: 0 10px 28px rgba(0, 0, 0, .55);--shadow-pop: 0 8px 30px rgba(0, 0, 0, .5), 0 0 0 1px rgba(255, 255, 255, .06);--tool-card: #3a3d43;--tool-glyph: #e2e4e7;--tool-inset: #4a4e55;--tool-inset-strong: #555a62;--tool-trash: #5d626a;--tool-trash-lid: #7c818a;--input-bg: #33363b;color-scheme:dark}}*{box-sizing:border-box}html,body,#root{margin:0;height:100%;overflow:hidden;background:var(--bg)}body{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}input,textarea,[contenteditable=true]{-webkit-user-select:text;user-select:text}img,svg{-webkit-user-drag:none}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:default}.loading{display:grid;place-items:center;height:100%;color:var(--muted)}.muted{color:var(--muted)}.small{font-size:12px;line-height:1.5}.app{display:flex;flex-direction:column;height:100%}.header{display:flex;align-items:center;justify-content:space-between;gap:16px;height:50px;padding:0 14px 0 18px;background:var(--panel);box-shadow:0 1px 0 var(--divider);z-index:30}.desktop .header{padding-left:88px;-webkit-app-region:drag}.desktop .header button,.desktop .header .editable,.desktop .header input{-webkit-app-region:no-drag}.breadcrumbs{display:flex;align-items:center;min-width:0;overflow:hidden;white-space:nowrap;font-size:15px}.logo{display:flex;color:var(--text);margin-right:10px}.crumb-wrap{display:flex;align-items:center;min-width:0}.crumb{border:0;background:none;padding:4px;border-radius:4px;color:var(--muted);font-weight:500}button.crumb:hover{color:var(--text)}.crumb.current{font-weight:600;color:var(--text);cursor:text;overflow:hidden;text-overflow:ellipsis}.crumb-back{display:none;place-items:center;flex-shrink:0;width:36px;height:40px;margin-left:-8px;border:0;background:none;padding:0;color:var(--text)}.crumb-sep{color:var(--faint);margin:0 4px}.header-actions{display:flex;align-items:center;gap:2px;flex-shrink:0}.icon-button{display:grid;place-items:center;border:0;background:none;border-radius:6px;width:36px;height:36px;padding:0;font-size:20px;color:var(--muted)}.icon-button:hover:not(:disabled){background:var(--accent-soft);color:var(--text)}.icon-button:disabled{opacity:.35}.divider{width:1px;height:22px;background:var(--divider);margin:0 8px;flex-shrink:0}.text-button{border:0;background:none;border-radius:6px;padding:6px 10px;font-size:13px;font-weight:500;color:var(--accent)}.text-button:hover:not(:disabled){background:var(--accent-soft)}.text-button.danger{color:var(--danger)}.text-button.danger:hover{background:#e5484d1a}.primary-button{border:0;border-radius:6px;padding:7px 14px;background:var(--accent);color:#fff;font-size:13px;font-weight:600}.primary-button.danger{background:var(--danger)}.main{position:relative;flex:1;display:flex;min-height:0}.canvas-area{position:relative;flex:1;min-width:0;display:flex}.toolbar{position:relative;display:flex;flex-direction:column;justify-content:space-between;flex-shrink:0;width:72px;background:var(--bg);box-shadow:1px 0 0 var(--divider);z-index:20;-webkit-user-select:none;user-select:none}.tool-list{flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;padding-top:10px;overflow-y:auto;scrollbar-width:none}.tool{display:flex;flex-direction:column;align-items:center;width:100%;border:0;background:none;padding:9px 0 8px;color:var(--muted);cursor:grab;touch-action:none}.tool-icon{display:flex;width:32px;height:32px;transition:transform .1s ease-in-out;filter:drop-shadow(0 1px 1px rgba(0,0,0,.12))}.tool:hover .tool-icon{transform:translate(3px);filter:drop-shadow(-3px 2px 4px rgba(0,0,0,.18))}.tool-name{margin-top:5px;font-size:10px;line-height:10px;max-width:64px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tool:hover .tool-name{color:var(--text)}.tool.active .tool-icon{outline:2px solid var(--select);outline-offset:2px;border-radius:4px}.tool-more{cursor:pointer;padding:2px 0 6px}.tool-more .tool-icon{height:20px;filter:none;overflow:hidden;align-items:center}.tool-more.open .tool-icon,.tool-more:hover .tool-icon{transform:none;background:var(--tool-inset);border-radius:6px}.tool-separator{width:36px;height:1px;background:var(--divider);margin:8px 0}.tool.trash{cursor:pointer;padding-bottom:14px}.tool.trash .tool-icon{filter:none}.tool.trash.drop-target .tool-icon{transform:scale(1.2)}.tool-ghost{position:fixed;transform:translate(-50%,-50%);padding:10px 16px;background:var(--card);box-shadow:var(--shadow-lift);pointer-events:none;z-index:100;font-size:13px;font-weight:500}.more-popover{position:absolute;left:78px;display:grid;grid-template-columns:repeat(3,96px);gap:4px;padding:14px;background:var(--panel);border-radius:12px;box-shadow:var(--shadow-pop);z-index:40}.more-popover:before{content:"";position:absolute;left:-7px;top:var(--arrow-top, 28px);border:7px solid transparent;border-left:0;border-right-color:var(--panel)}.more-tile{display:flex;flex-direction:column;align-items:center;gap:8px;border:0;background:none;border-radius:8px;padding:10px 4px;font-size:13px;color:var(--muted);cursor:grab;touch-action:none}.more-tile svg{filter:drop-shadow(0 1px 1.5px rgba(0,0,0,.18));transition:transform .1s ease-in-out}.more-tile:hover{color:var(--text)}.more-tile:hover svg{transform:translateY(-2px)}@media (max-height: 820px){.tool-list{padding-top:6px}.tool{padding:5px 0 4px}.tool-icon{width:26px;height:26px}.tool-icon svg{width:26px;height:26px}.tool-name{margin-top:4px}.tool-more{padding:0 0 4px}.tool-separator{margin:4px 0}.tool.trash{padding-bottom:8px}}.sel-tool{cursor:pointer}.sel-tool:disabled{opacity:.35}.sel-tool:disabled .tool-icon{transform:none}.sel-tool.active .tool-icon{outline:2px solid var(--select);outline-offset:2px;border-radius:4px}.tool-popover{position:absolute;left:78px;padding:12px;background:var(--panel);border-radius:12px;box-shadow:var(--shadow-pop);z-index:40}.tool-popover:before{content:"";position:absolute;left:-7px;top:var(--arrow-top, 20px);border:7px solid transparent;border-left:0;border-right-color:var(--panel)}.swatch-grid{display:grid;grid-template-columns:repeat(4,30px);gap:8px}.swatch.big{width:30px;height:30px}.arrange-popover{width:228px}.popover-title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--faint);margin:4px 0 6px}.popover-title:not(:first-child){margin-top:12px}.popover-row{display:flex;gap:4px}.popover-row button{flex:1;border:0;background:var(--input-bg);border-radius:5px;padding:6px 0;font-size:12px}.popover-icons{display:flex;gap:4px}.popover-icons button{border:0;background:none;border-radius:6px;padding:2px}.popover-row button:hover,.popover-icons button:hover{background:var(--accent-soft)}.tool-popover .icon-picker{position:static;transform:none;box-shadow:none;padding:0}.canvas{position:relative;flex:1;overflow:hidden;background-color:var(--bg);background-image:radial-gradient(circle,var(--dot) .9px,transparent 1.1px);background-size:16px 16px;touch-action:none;-webkit-user-select:none;user-select:none}.canvas.no-grid{background-image:none}.canvas.drawing-mode{cursor:crosshair}.space-pan .canvas{cursor:grab}.world{position:absolute;left:0;top:0;width:0;height:0;transform-origin:0 0}.selection-band{position:absolute;border:1px solid var(--select);background:var(--select-soft);pointer-events:none;z-index:5}.scrollbar{position:absolute;z-index:8}.scrollbar.horizontal{left:4px;right:12px;bottom:3px;height:8px}.scrollbar.vertical{top:4px;bottom:12px;right:3px;width:8px}.scrollbar .thumb{position:absolute;border-radius:4px;background:#00000038;cursor:default}.scrollbar.horizontal .thumb{top:0;height:100%}.scrollbar.vertical .thumb{left:0;width:100%}.scrollbar .thumb:hover{background:#00000059}.element{position:relative;background:var(--card);box-shadow:var(--shadow);cursor:default;line-height:1.5}.element.on-canvas{position:absolute}.element.in-list{width:100%;box-shadow:none;border:1px solid var(--border);margin-bottom:-1px}.element.selected:after,.element.drop-target:after{content:"";position:absolute;top:-2px;right:-2px;bottom:-2px;left:-2px;border:2px solid var(--select);pointer-events:none;z-index:3}.element.drop-target:after{top:-5px;right:-5px;bottom:-5px;left:-5px;border-style:dashed}.element.dragging{box-shadow:var(--shadow-lift);z-index:10;cursor:grabbing;transform:rotate(-1deg)}.editable{outline:none;min-height:1.5em;word-break:break-word}.editable[contenteditable=true]{cursor:text;-webkit-user-select:text;user-select:text}.editable:empty:before{content:attr(data-placeholder);color:var(--faint);pointer-events:none}.element.tinted{--card: var(--tint);background:var(--tint);color:#323b4a;--muted: #5f6670;--faint: #7a808a}.element.tinted.tint-dark{color:#f8f9fa;--muted: #ced4da;--faint: #adb5bd}:root[data-theme=dark] .element.tinted{--card: color-mix(in srgb, var(--tint) 18%, #2e3035);background:var(--card);color:var(--text);--muted: #a2a6ad;--faint: #80858d}@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .element.tinted{--card: color-mix(in srgb, var(--tint) 18%, #2e3035);background:var(--card);color:var(--text);--muted: #a2a6ad;--faint: #80858d}}.note-text{padding:13px 16px 14px;white-space:pre-wrap}.note-text h1,.document-text h1{font-size:20px;line-height:1.3;margin:4px 0 6px}.note-text h2,.document-text h2{font-size:16px;line-height:1.35;margin:4px 0}.note-text ul,.note-text ol{margin:2px 0;padding-left:22px;white-space:normal}.note-text blockquote,.document-text blockquote{margin:4px 0;padding-left:12px;border-left:3px solid var(--divider);color:var(--muted)}.note-text a,.document-text a{color:var(--accent)}.element-heading{background:none;box-shadow:none}.heading-text{font-size:30px;font-weight:700;line-height:1.2;letter-spacing:-.01em;padding:4px 2px}.element-heading.in-list .heading-text{font-size:18px;padding:10px 14px}.element-board.on-canvas,.element-document.on-canvas{background:none;box-shadow:none;text-align:center;padding:2px 0}.board-icon{position:relative;display:grid;place-items:center;margin:0 auto;border-radius:12px;overflow:hidden;box-shadow:var(--shadow);flex-shrink:0}.board-icon svg{fill:#ffffffeb}.board-icon img{width:100%;height:100%;object-fit:cover}.board-icon-letter{font-weight:600;color:#323b4a8c}.board-icon-emoji{line-height:1}.board-text{margin-top:9px}.board-title,.document-title{font-weight:600;font-size:14px;line-height:1.3;word-break:break-word}.board-count{font-size:12px;color:var(--muted);margin-top:2px}.element-board.in-list,.element-document.in-list{display:flex;align-items:center;gap:12px;text-align:left;padding:10px 12px}.element-board.in-list .board-icon{width:40px!important;height:40px!important;border-radius:7px}.element-board.in-list .board-text{margin-top:0}.document-icon{display:flex;justify-content:center;filter:drop-shadow(0 1px 1.5px rgba(0,0,0,.18))}.document-icon .page{fill:var(--card)}.document-icon .fold{fill:var(--tool-inset)}.document-icon .text{stroke:var(--faint);stroke-width:3;stroke-linecap:round}.element-document.on-canvas .document-title{margin-top:8px}.element-document.in-list .document-icon svg{width:26px;height:32px}.element-column{padding:10px 8px 8px}.element.element-column.drop-target:after{border-style:solid;top:-2px;right:-2px;bottom:-2px;left:-2px}.column-header{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:2px 6px 10px}.column-title{font-weight:600;flex:1}.column-count{font-size:12px;color:var(--muted)}.column-list{min-height:48px;padding-bottom:1px}.column-empty{display:grid;place-items:center;height:64px;border:1px dashed var(--border);color:var(--faint);font-size:12px}.tasklist-header{display:flex;align-items:baseline;gap:8px;padding:12px 16px 4px}.tasklist-title{font-weight:600;flex:1}.tasklist-progress{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}.tasklist-items{list-style:none;margin:0;padding:2px 12px 10px}.tasklist-items li{display:flex;align-items:center;gap:9px;padding:3px 4px}.tasklist-items input[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;flex-shrink:0;width:16px;height:16px;margin:0;border:1.5px solid var(--faint);border-radius:50%;cursor:pointer;display:grid;place-items:center}.tasklist-items input[type=checkbox]:checked{background:#3fb950;border-color:#3fb950}.tasklist-items input[type=checkbox]:checked:after{content:"";width:4px;height:8px;border:solid #fff;border-width:0 2px 2px 0;transform:translateY(-1px) rotate(45deg)}.tasklist-items input[type=text]{flex:1;min-width:0;border:0;background:none;font:inherit;color:inherit;padding:2px 0;outline:none}.tasklist-items li.done input[type=text]{text-decoration:line-through;color:var(--muted)}.link-body{display:flex;align-items:center;gap:12px;padding:12px 14px}.link-favicon{display:grid;place-items:center;flex-shrink:0;width:36px;height:36px;background:var(--input-bg);color:var(--muted);font-weight:700}.link-text{flex:1;min-width:0}.link-title{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.link-host{font-size:12px;color:var(--muted)}.link-open{color:var(--muted);text-decoration:none;font-size:16px;padding:4px}.link-open:hover{color:var(--accent)}.link-edit,.media-source{padding:12px 14px}.link-edit input,.media-source input,.search-input{width:100%;border:1px solid var(--border);border-radius:4px;padding:7px 9px;font:inherit;background:var(--input-bg);color:inherit;outline:none}.link-edit input:focus,.media-source input:focus,.search-input:focus{border-color:var(--select)}.image-caption{padding:8px 14px 10px;font-size:13px;color:var(--muted)}.image{display:block;width:100%;height:auto;pointer-events:none}.image-empty{padding:40px 12px;text-align:center;color:var(--muted)}.swatch-area{position:relative;height:96px}.swatch-picker{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;pointer-events:none}.element-color.editing .swatch-picker{pointer-events:auto;cursor:pointer}.swatch-info{padding:8px 12px 10px}.swatch-name{font-weight:600;font-size:13px}.swatch-value{font-size:11px;color:var(--muted);font-family:Roboto Mono,ui-monospace,Menlo,monospace}.table-bar{display:flex;align-items:center;gap:8px;padding:6px 10px;font-size:11px;font-weight:600;color:var(--muted);cursor:grab}.table-grip{width:10px;height:10px;background-image:radial-gradient(circle,var(--faint) 1.2px,transparent 1.4px);background-size:5px 5px}.table-size{margin-left:auto;font-weight:500;color:var(--faint)}.element-table:not(.selected) .table input{pointer-events:none}.table-scroll{overflow-x:auto}.table{border-collapse:collapse;width:100%;table-layout:fixed}.table td{border:1px solid var(--border);padding:0;min-width:70px}.table tr:first-child td{background:var(--input-bg);font-weight:600}.table input{width:100%;border:0;background:none;font:inherit;color:inherit;padding:7px 9px;outline:none}.table input:focus{box-shadow:inset 0 0 0 2px var(--select)}.table-actions{display:flex;gap:2px;padding:6px;border-top:1px solid var(--border)}.table-actions button,.source-actions button{border:0;background:var(--input-bg);border-radius:4px;padding:4px 8px;font-size:12px}.table-actions button:hover:not(:disabled),.source-actions button:hover:not(:disabled){background:var(--accent-soft)}.table-actions button:disabled{opacity:.4}.element-comment{border-radius:0 12px 12px;padding:6px 0 4px}.comment{padding:8px 14px;border-bottom:1px solid var(--border)}.comment-head{display:flex;align-items:center;gap:8px;font-size:12px}.comment-avatar{display:grid;place-items:center;height:22px;padding:0 7px;border-radius:11px;background:#4c8dff;color:#fff;font-weight:600;font-size:11px}.comment-time{color:var(--muted);flex:1}.comment-delete{border:0;background:none;color:var(--faint);font-size:15px;padding:0 2px;visibility:hidden}.comment:hover .comment-delete{visibility:visible}.comment-text{margin-top:4px;white-space:pre-wrap}.comment-input{display:block;width:calc(100% - 20px);margin:8px 10px 6px;border:1px solid var(--border);border-radius:14px;padding:6px 12px;font:inherit;background:var(--input-bg);color:inherit;resize:none;outline:none}.comment-input:focus{border-color:var(--select)}.file-body{display:flex;align-items:center;gap:12px;padding:12px 14px}.file-badge{display:grid;place-items:center;flex-shrink:0;width:40px;height:48px;background:#6c7a8c;color:#fff;font-size:10px;font-weight:700;clip-path:polygon(0 0,72% 0,100% 22%,100% 100%,0 100%)}.file-badge.pdf{background:#e5484d}.file-text{flex:1;min-width:0}.file-name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-meta{font-size:12px;color:var(--muted)}.file-actions{display:flex;gap:2px}.file-actions a{color:var(--muted);text-decoration:none;padding:4px 6px;font-size:15px}.file-actions a:hover{color:var(--accent)}.sketch-body{position:relative}.sketch-body svg{display:block;width:100%;aspect-ratio:272 / 180}.sketch-empty{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;color:var(--faint);font-size:12px}.element-drawing{background:none;box-shadow:none}.drawing-svg{display:block;overflow:visible}.stroke-preview{z-index:7}.audio-body{padding:12px 14px}.audio-head{display:flex;align-items:center;gap:10px;margin-bottom:10px}.audio-icon{display:grid;place-items:center;width:32px;height:32px;background:#51b06a;color:#fff;font-size:16px}.audio-name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.audio-player{width:100%;height:36px}.source-actions{display:flex;gap:6px;margin-top:8px}.source-actions .record{color:#e5484d;font-weight:600}.source-actions .record.stop{background:#e5484d;color:#fff}.source-error,.source-status{margin-top:6px;font-size:12px;color:var(--muted)}.media-bar{padding:8px 12px;font-size:12px;font-weight:600;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.media-source .media-bar{padding:0 0 8px}.media-frame{position:relative;aspect-ratio:16 / 9;background:#000}.media-frame.map{aspect-ratio:4 / 3;background:var(--input-bg)}.media-frame iframe,.media-frame video{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:0;pointer-events:none}.element.selected .media-frame iframe,.element.selected .media-frame video{pointer-events:auto}.element .media-frame.map iframe,.gesture-active iframe,.gesture-active video{pointer-events:none!important}.media-fallback{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;color:#fff}.map-label{display:flex;gap:10px;padding:10px 12px}.map-pin{color:#e5484d;font-size:12px;line-height:1.6}.map-title{font-weight:600}.map-link{font-size:12px;color:var(--muted);text-decoration:none}.map-link:hover{color:var(--accent)}.connector{position:absolute;right:-24px;top:50%;width:14px;height:14px;margin-top:-7px;border-radius:50%;background:var(--panel);border:2px solid var(--select);cursor:crosshair;z-index:4}.connector:hover{background:var(--select)}.resize-handle{position:absolute;bottom:-12px;width:24px;height:24px;z-index:4}.resize-handle.right{right:-12px;cursor:nwse-resize}.resize-handle.left{left:-12px;cursor:nesw-resize}.resize-handle:before{content:"";position:absolute;top:6px;right:6px;bottom:6px;left:6px;background:var(--panel);border:2px solid var(--select);transition:transform .08s ease-out}.resize-handle:hover:before{transform:scale(1.25);background:var(--select)}.line-layer{position:absolute;left:0;top:0;width:1px;height:1px;overflow:visible;pointer-events:none}.line-handles{z-index:6}.line-hit{stroke:transparent;stroke-width:14;fill:none;pointer-events:stroke;cursor:move}.line.selected path:first-child{filter:drop-shadow(0 0 1.5px var(--select))}.line-handle{fill:var(--panel);stroke:var(--select);stroke-width:2;pointer-events:all;cursor:crosshair}.line-handle.curve{fill:var(--select);cursor:grab}.line-label{position:absolute;transform:translate(-50%,-50%);padding:2px 8px;background:var(--bg);color:var(--text);font-size:13px;font-weight:500;white-space:nowrap;z-index:2;cursor:default}.line-label input{border:1px solid var(--select);background:var(--panel);font:inherit;color:inherit;padding:2px 6px;outline:none;width:160px}.selection-bar,.format-bar,.draw-bar{position:absolute;top:14px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:6px;padding:6px 8px;background:var(--panel);border-radius:8px;box-shadow:var(--shadow-pop);z-index:25;white-space:nowrap}.format-bar.inline{position:static;transform:none;box-shadow:none;padding:0;gap:2px}.format-bar button{min-width:30px;height:30px;border:0;background:none;border-radius:4px;font-size:13px;font-weight:600;color:var(--text)}.format-bar button:hover{background:var(--accent-soft)}.fmt-italic{font-style:italic}.fmt-underline{text-decoration:underline}.fmt-strike{text-decoration:line-through}.fmt-highlight{background:#fff3a3!important;color:#323b4a!important}.swatches{display:flex;gap:4px}.swatch{width:20px;height:20px;border-radius:50%;border:1px solid rgba(0,0,0,.14);padding:0;flex-shrink:0}.swatch-none{background:linear-gradient(135deg,var(--card) 45%,#e5484d 46%,#e5484d 54%,var(--card) 55%)}.swatch.active{outline:2px solid var(--select);outline-offset:1px}.bar-button{border:0;background:none;padding:5px 9px;border-radius:5px;font-size:13px;font-weight:500}.bar-button:hover:not(:disabled){background:var(--accent-soft)}.bar-button.active{background:var(--accent-soft);color:var(--accent)}.bar-button.primary{background:var(--accent);color:#fff}.bar-button.danger:hover{background:#e5484d1f;color:var(--danger)}.bar-button:disabled{opacity:.4}.bar-count{font-size:12px;color:var(--muted);padding-right:4px}.size-dot{display:grid;place-items:center;width:26px;height:26px;border:0;border-radius:5px;background:none}.size-dot span{border-radius:50%;background:var(--text)}.size-dot.active{background:var(--accent-soft)}.icon-picker-wrap{position:relative}.icon-picker{position:absolute;top:40px;left:50%;transform:translate(-50%);width:252px;padding:10px;background:var(--panel);border-radius:10px;box-shadow:var(--shadow-pop)}.icon-picker-row{display:flex;gap:4px;margin-bottom:8px}.icon-picker-row button{flex:1;border:0;background:var(--input-bg);border-radius:5px;padding:5px 0;font-size:12px}.emoji-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:2px}.emoji-grid button{border:0;background:none;border-radius:5px;font-size:18px;padding:3px 0}.emoji-grid button:hover,.icon-picker-row button:hover{background:var(--accent-soft)}.zoom-controls{position:absolute;right:18px;bottom:18px;display:flex;align-items:center;background:var(--panel);border-radius:8px;box-shadow:var(--shadow-pop);z-index:15}.zoom-controls button{border:0;background:none;height:32px;min-width:32px;padding:0 6px;font-size:15px;color:var(--muted)}.zoom-controls button:hover{color:var(--text)}.zoom-controls .zoom-label{min-width:52px;font-size:12px;font-weight:500;font-variant-numeric:tabular-nums}.zoom-controls .zoom-fit{display:grid;place-items:center;border-left:1px solid var(--divider)}.unsorted-tray{position:absolute;top:14px;right:18px;width:288px;display:flex;flex-direction:column;align-items:flex-end;max-height:calc(100% - 90px);z-index:18;pointer-events:none}.unsorted-tray>*{pointer-events:auto}.unsorted-pill{border:1px solid var(--divider);background:var(--bg);border-radius:4px;padding:4px 10px;font-size:12px;color:var(--muted)}.unsorted-pill:hover,.unsorted-tray.open .unsorted-pill,.unsorted-tray.drop-target .unsorted-pill{background:var(--panel);color:var(--text)}.unsorted-tray.drop-target .unsorted-pill{border-color:var(--select)}.unsorted-list{width:100%;margin-top:8px;padding:10px;background:var(--panel);box-shadow:var(--shadow-pop);overflow-x:hidden;overflow-y:auto}.unsorted-list .connector{display:none}.unsorted-list .element.in-list{margin-bottom:8px;box-shadow:var(--shadow);border:0}.unsorted-empty{padding:18px 8px;text-align:center;color:var(--faint);font-size:12px}.unsorted-add{width:100%;border:1px dashed var(--divider);background:none;padding:7px;font-size:13px;color:var(--muted)}.unsorted-add:hover{color:var(--accent);border-color:var(--accent)}.context-menu{position:fixed;min-width:190px;padding:6px;background:var(--panel);border-radius:8px;box-shadow:var(--shadow-pop);z-index:60}.context-menu button{display:block;width:100%;text-align:left;border:0;background:none;border-radius:5px;padding:7px 10px;font-size:13px}.context-menu button:hover{background:var(--accent-soft)}.context-menu button.danger{color:var(--danger)}.context-sep{height:1px;background:var(--divider);margin:5px 4px}.dialog-backdrop,.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;justify-content:center;align-items:flex-start;padding-top:10vh;background:#14181e59;z-index:70}.dialog{width:min(560px,calc(100vw - 32px));max-height:76vh;display:flex;flex-direction:column;background:var(--panel);border-radius:12px;box-shadow:var(--shadow-pop)}.dialog.wide{width:min(680px,calc(100vw - 32px))}.dialog-head{display:flex;align-items:center;justify-content:space-between;padding:14px 14px 6px 20px}.dialog-head h2{margin:0;font-size:16px}.dialog-body{padding:6px 20px 18px;overflow-y:auto}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}.result-list{list-style:none;margin:10px 0 0;padding:0}.result-list li{display:flex;align-items:center;gap:12px;padding:8px 10px;border-radius:7px}.result-list li.active,.result-list li:hover{background:var(--input-bg)}.result-list li .board-icon{margin:0;border-radius:6px}.result-type{flex-shrink:0;width:76px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--faint)}.result-text{flex:1;min-width:0;display:flex;flex-direction:column}.result-text b,.result-text small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.result-text b{font-weight:500}.result-text small{color:var(--muted);font-size:12px}.search-input{font-size:15px;padding:10px 12px}.setting{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--divider)}.setting>.text-button{flex-shrink:0;white-space:nowrap}.danger-zone{margin-top:18px;padding:2px 14px 6px;border:1px solid rgba(229,72,77,.35);border-radius:10px}.danger-zone h3{margin:12px 0 0;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--danger)}.danger-zone .setting>span{display:flex;flex-direction:column;gap:2px}.danger-zone .setting small{font-size:12px}.danger-confirm{display:flex;flex-direction:column;gap:10px;margin:4px 0 10px;padding:12px;border-radius:8px;background:#e5484d14;font-size:13px;line-height:1.5}.danger-confirm p{margin:0}.danger-check{display:flex;align-items:center;gap:8px}.danger-type{display:flex;flex-direction:column;gap:6px}.danger-confirm .dialog-actions{margin-top:0}.primary-button:disabled{opacity:.4}.setting-buttons{display:flex;gap:4px}.segmented{display:flex;background:var(--input-bg);border-radius:7px;padding:2px}.segmented button{white-space:nowrap;border:0;background:none;border-radius:5px;padding:5px 12px;font-size:13px}.segmented button.active{background:var(--panel);box-shadow:var(--shadow);font-weight:600}.shortcut-table{width:100%;border-collapse:collapse}.shortcut-table td{padding:6px 0;border-bottom:1px solid var(--divider);font-size:13px}.shortcut-table td:first-child{width:46%}kbd{font-family:inherit;font-size:12px;background:var(--input-bg);border-radius:4px;padding:2px 6px}.modal-backdrop{padding-top:4vh}.document-modal,.sketch-modal{display:flex;flex-direction:column;width:min(820px,calc(100vw - 32px));max-height:92vh;background:var(--panel);border-radius:10px;box-shadow:var(--shadow-pop);overflow:hidden}.sketch-modal{width:min(980px,calc(100vw - 32px))}.modal-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 10px 8px 14px;border-bottom:1px solid var(--divider)}.draw-tools{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.document-page{overflow-y:auto;padding:40px 72px 64px}.document-title-input{width:100%;border:0;background:none;font:inherit;font-size:30px;font-weight:700;color:inherit;outline:none;margin-bottom:16px}.document-text{min-height:50vh;font-size:16px;line-height:1.65;white-space:pre-wrap}.sketch-pad{display:block;width:min(100%,calc((88vh - 64px) * 272 / 180));margin:0 auto;background:var(--card);cursor:crosshair;touch-action:none}.sketch-pad.erasing{cursor:cell}.document-text h1{font-size:28px;margin:18px 0 8px}.document-text h2{font-size:21px;margin:16px 0 6px}.toast{position:absolute;left:50%;bottom:24px;transform:translate(-50%);display:flex;align-items:center;gap:10px;max-width:calc(100% - 48px);padding:10px 10px 10px 16px;background:var(--panel);border-radius:10px;box-shadow:var(--shadow-pop);font-size:13px;z-index:30;animation:toast-in .2s ease-out}.toast-close{border:0;background:none;color:var(--faint);font-size:16px;padding:0 4px}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,8px)}}.auth-screen{display:grid;place-items:center;height:100%;padding:24px;background-color:var(--bg);background-image:radial-gradient(circle,var(--dot) .9px,transparent 1.1px);background-size:16px 16px}.auth-card{display:flex;flex-direction:column;gap:14px;width:min(380px,100%);padding:28px 28px 22px;background:var(--panel);border-radius:14px;box-shadow:var(--shadow-pop)}.auth-brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:16px}.auth-brand .logo{margin:0}.auth-card h1{margin:4px 0 2px;font-size:22px}.auth-card label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:500;color:var(--muted)}.auth-card input{border:1px solid var(--border);border-radius:7px;padding:10px 12px;font:inherit;font-size:15px;color:var(--text);background:var(--input-bg);outline:none}.auth-card input:focus{border-color:var(--select)}.auth-submit{padding:11px;font-size:14px}.auth-error,.auth-notice{font-size:13px;line-height:1.45;padding:9px 11px;border-radius:7px}.auth-error{background:#e5484d1f;color:var(--danger)}.auth-notice{background:var(--accent-soft);color:var(--text)}.auth-links{display:flex;flex-wrap:wrap;gap:4px 14px}.auth-links button,.auth-local{border:0;background:none;padding:0;font-size:13px;color:var(--accent)}.auth-local{margin-top:6px;color:var(--muted);text-align:center}.account-button{display:flex;align-items:center;gap:8px;margin-left:6px;border:0;background:none;border-radius:18px;padding:3px}.account-button:hover{background:var(--accent-soft)}.account-name{max-width:160px;padding-left:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:500;color:var(--muted)}.account-button:hover .account-name{color:var(--text)}.account-avatar{position:relative;display:grid;place-items:center;flex-shrink:0;width:28px;height:28px;border-radius:50%;background:var(--text);color:var(--panel);font-size:13px;font-weight:700}.account-avatar .sync-dot{position:absolute;right:-2px;bottom:-2px;border:2px solid var(--panel)}.sync-dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--faint)}.sync-synced .sync-dot{background:#3fb950}.sync-syncing .sync-dot{background:#f2c94c}.sync-offline .sync-dot,.sync-error .sync-dot{background:var(--danger)}.account-status{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--muted)}.account-status .sync-dot{width:8px;height:8px}.profile-head{display:flex;align-items:center;gap:16px;padding:10px 0 6px}.profile-avatar{display:grid;place-items:center;flex-shrink:0;width:64px;height:64px;border-radius:50%;background:var(--text);color:var(--panel);font-size:28px;font-weight:700}.profile-who{display:flex;flex-direction:column;gap:3px;min-width:0}.profile-who b{font-size:18px;overflow:hidden;text-overflow:ellipsis}.profile-who .muted{font-size:13px;overflow:hidden;text-overflow:ellipsis}.profile-section{margin:22px 0 0;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--faint)}.profile-input{width:min(260px,100%);border:1px solid var(--border);border-radius:6px;padding:7px 10px;font:inherit;font-size:14px;color:var(--text);background:var(--input-bg);outline:none}.profile-input:focus{border-color:var(--select)}.profile-value{min-width:0;overflow:hidden;text-overflow:ellipsis}.avatar-colors{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.avatar-color{width:24px;height:24px;border:0;border-radius:50%;padding:0}.avatar-color.active{box-shadow:0 0 0 2px var(--panel),0 0 0 4px var(--text)}.password-form{display:flex;flex-direction:column;align-items:flex-end;gap:8px;padding:4px 0 12px;border-bottom:1px solid var(--divider)}.password-form .dialog-actions{margin-top:0}.claude-intro{margin:8px 0 4px}.claude-link{display:flex;flex-direction:column;gap:8px;margin:8px 0;padding:12px;border-radius:8px;background:var(--accent-soft);font-size:13px;line-height:1.5}.claude-link-row{display:flex;gap:6px}.claude-link-row .profile-input{flex:1;width:auto;min-width:0;font-family:ui-monospace,monospace;font-size:12px}.claude-link ol{margin:0;padding-left:18px}.claude-link p{margin:0}.setting>span:has(small){display:flex;flex-direction:column;gap:2px}.setting>span>small{font-size:12px}.profile-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:12px 0;border-bottom:1px solid var(--divider)}.profile-stats>div{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-radius:8px;background:var(--input-bg)}.profile-stats b{font-size:20px;font-variant-numeric:tabular-nums}.profile-stats span{font-size:12px;color:var(--muted)}.image-loading{background:var(--input-bg)}@media (pointer: coarse){.resize-handle{bottom:-22px;width:44px;height:44px}.resize-handle.right{right:-22px}.resize-handle.left{left:-22px}.resize-handle:before{top:14px;right:14px;bottom:14px;left:14px}.connector:after{content:"";position:absolute;top:-14px;right:-14px;bottom:-14px;left:-14px;border-radius:50%}.line-hit{stroke-width:32}.scrollbar{display:none}.context-menu button{padding:11px 12px;font-size:15px}.tool:hover .tool-icon,.more-tile:hover svg{transform:none}}@media (max-width: 700px){.app{height:100dvh}.header{height:46px;gap:8px;padding:0 6px 0 10px;padding-top:env(safe-area-inset-top);box-sizing:content-box}.hide-phone,.breadcrumbs .logo{display:none}.crumb-wrap:not(:last-child){display:none}.crumb-wrap:last-child .crumb-sep{display:none}.crumb-back{display:grid}.account-name{display:none}.canvas{background-image:none}.profile-stats{grid-template-columns:repeat(2,1fr)}.crumb.current .editable:not([contenteditable=true]){display:block;overflow:hidden;text-overflow:ellipsis}.breadcrumbs{font-size:16px}.header-actions{gap:0}.icon-button{width:40px;height:40px}.main{flex-direction:column}.canvas-area{order:1;min-height:0}.toolbar{order:2;flex-direction:row;align-items:stretch;width:auto;padding-bottom:env(safe-area-inset-bottom);box-shadow:0 -1px 0 var(--divider)}.tool-list{flex-direction:row;align-items:stretch;padding:2px 4px;overflow-x:auto;overflow-y:hidden;overscroll-behavior:contain}.tool,.tool.trash{width:60px;flex-shrink:0;padding:7px 0 6px;touch-action:pan-x}.tool-icon,.tool-icon svg{width:28px;height:28px}.tool-name{max-width:56px}.tool-more{justify-content:center;padding:0}.tool-separator{width:1px;height:auto;margin:10px 4px;flex-shrink:0}.tool.trash{box-shadow:-1px 0 0 var(--divider)}.more-popover,.tool-popover{position:fixed;left:8px;right:8px;top:auto!important;bottom:calc(66px + env(safe-area-inset-bottom));max-height:60dvh;overflow-y:auto}.more-popover{grid-template-columns:repeat(auto-fill,minmax(88px,1fr))}.tool-popover{width:auto}.more-popover:before,.tool-popover:before{display:none}.selection-bar,.format-bar,.draw-bar{top:8px;max-width:calc(100% - 16px);overflow-x:auto}.zoom-controls{right:10px;bottom:10px}.zoom-controls>button:not(.zoom-label):not(.zoom-fit){display:none}.unsorted-tray{top:8px;right:8px;width:min(288px,calc(100% - 16px))}.dialog-backdrop,.modal-backdrop{padding-top:calc(8px + env(safe-area-inset-top))}.dialog,.dialog.wide,.document-modal,.sketch-modal{width:calc(100vw - 16px);max-height:calc(100dvh - 16px)}.document-page{padding:20px 18px 40px}}
