.tiptap{font-size:16px;line-height:1.75;caret-color:var(--brand);outline:none;color:var(--foreground)}.tiptap p.is-editor-empty:first-child:before{content:attr(data-placeholder);float:left;color:var(--muted-foreground);opacity:.4;pointer-events:none;height:0}.tiptap h1{font-size:2em;font-weight:700;line-height:1.25;margin:1.4em 0 .5em;letter-spacing:-.03em;color:var(--foreground)}.tiptap h1:first-child{margin-top:0}.tiptap h2{font-size:1.5em;line-height:1.3;margin:1.2em 0 .45em;letter-spacing:-.02em}.tiptap h2,.tiptap h3{font-weight:600;color:var(--foreground)}.tiptap h3{font-size:1.2em;line-height:1.35;margin:1em 0 .35em;letter-spacing:-.01em}.tiptap p{margin:.4em 0;min-height:1.75em}.tiptap hr{border:none;height:1px;background:linear-gradient(90deg,transparent,var(--border) 15%,var(--border) 85%,transparent);margin:2em 0}.tiptap blockquote{border-left:3px solid var(--brand);padding-left:1.2em;margin:1em 0;color:var(--muted-foreground);font-style:italic}.tiptap pre{background:var(--muted);border:1px solid var(--border);border-radius:12px;padding:1em 1.2em;margin:1em 0;overflow-x:auto;font-family:var(--font-geist-mono),"JetBrains Mono",ui-monospace,monospace;font-size:.875em;line-height:1.65}.tiptap pre code{background:none;padding:0;border:none;font-size:inherit}.tiptap code{background:var(--muted);border:1px solid var(--border);border-radius:6px;padding:.15em .4em;font-family:var(--font-geist-mono),"JetBrains Mono",ui-monospace,monospace;font-size:.875em}.tiptap table{width:100%;border-collapse:collapse;margin:1.2em 0;border-radius:12px;overflow:hidden;border:1px solid var(--border);table-layout:fixed}.tiptap td,.tiptap th{border:1px solid var(--border);padding:.55em .85em;min-width:80px;word-wrap:break-word;overflow-wrap:break-word;transition:background-color .15s ease}.tiptap td:focus-within,.tiptap th:focus-within{background:oklch(from var(--brand) l c h/.06)}.tiptap th{background:var(--muted);font-weight:600;font-size:.9em;text-transform:none}.tiptap ::selection{background:oklch(from var(--brand) l c h/.25)}.tiptap strong{font-weight:700}.tiptap em{font-style:italic}.tiptap u{text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1.5px}.tiptap s{text-decoration:line-through;opacity:.65}.tiptap mark{border-radius:3px;padding:0 2px}.slash-command-char{opacity:.25}.tiptap:focus{outline:none}.ProseMirror-selectednode{outline:2px solid var(--brand);outline-offset:2px;border-radius:6px}.block-drop-indicator{position:absolute;left:0;right:0;height:2px;background:var(--brand);border-radius:1px;pointer-events:none;z-index:50}.block-drop-indicator:after,.block-drop-indicator:before{content:"";position:absolute;top:-3px;width:8px;height:8px;border-radius:50%;background:var(--brand)}.block-drop-indicator:before{left:-4px}.block-drop-indicator:after{right:-4px}.tiptap>blockquote:first-child,.tiptap>hr:first-child,.tiptap>pre:first-child,.tiptap>table:first-child{margin-top:1em}.tiptap>blockquote:last-child,.tiptap>pre:last-child,.tiptap>table:last-child{margin-bottom:2em}.tiptap>*+blockquote,.tiptap>*+pre,.tiptap>*+table{margin-top:1.2em}.tiptap blockquote+*,.tiptap pre+*,.tiptap table+*{margin-top:1em}.tiptap>.ProseMirror-gapcursor{position:relative}.tiptap>.ProseMirror-gapcursor:after{border-top:1px solid var(--brand);display:block;width:100%;margin:0}.whiteboard-container{position:relative;width:100%;height:100%;overflow:hidden;background:var(--background)}.whiteboard-canvas{position:absolute;top:0;left:0;width:100%;height:100%;touch-action:none}.whiteboard-canvas.static{z-index:1}.whiteboard-canvas.interactive{z-index:2;pointer-events:none}.whiteboard-text-editor{position:absolute;z-index:200;background:transparent;border:2px dashed var(--brand);border-radius:4px;font-family:inherit;font-size:16px;color:var(--foreground);padding:4px 8px;outline:none;resize:none;min-width:100px;min-height:20px}.wb-panel{background:var(--popover);border:1px solid var(--border);border-radius:12px;box-shadow:0 4px 24px rgba(0,0,0,.1),0 1px 4px rgba(0,0,0,.06)}.wb-btn{position:relative;background:transparent;border:none;width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--muted-foreground);transition:background .12s ease,color .12s ease,box-shadow .12s ease}.wb-btn:hover{background:var(--accent);color:var(--accent-foreground)}.wb-btn.active{background:var(--brand);color:var(--brand-foreground);box-shadow:0 1px 6px rgba(0,0,0,.18)}.wb-btn-danger{color:#ef4444}.wb-btn-danger:hover{background:#ef44441a;color:#dc2626}.wb-sep{width:1px;height:24px;background:var(--border);margin:0 4px;flex-shrink:0}.wb-toolbar{position:absolute;top:12px;left:50%;transform:translateX(-50%);z-index:100;display:flex;align-items:center;gap:2px;padding:4px 8px;background:var(--popover);border:1px solid var(--border);border-radius:12px;box-shadow:0 4px 24px rgba(0,0,0,.1),0 1px 4px rgba(0,0,0,.06)}.wb-toolbar-item{display:contents}.wb-color-bar{position:absolute;top:60px;left:50%;transform:translateX(-50%) translateY(-8px);z-index:99;display:flex;align-items:center;gap:10px;padding:6px 12px;background:var(--popover);border:1px solid var(--border);border-radius:10px;box-shadow:0 2px 12px rgba(0,0,0,.08),0 1px 3px rgba(0,0,0,.04);opacity:0;pointer-events:none;transition:opacity .18s ease,transform .18s ease}.wb-color-bar.open{opacity:1;pointer-events:auto;transform:translateX(-50%) translateY(0)}.wb-color-section{display:flex;align-items:center;gap:6px}.wb-color-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--muted-foreground);user-select:none;min-width:32px}.wb-color-row{display:flex;gap:3px}.wb-color-divider{width:1px;height:22px;background:var(--border)}.wb-color-swatch{width:20px;height:20px;border-radius:6px;border:1.5px solid var(--border);cursor:pointer;transition:transform .1s ease,box-shadow .1s ease;padding:0;flex-shrink:0}.wb-color-swatch:hover{transform:scale(1.15);z-index:1}.wb-color-swatch.active{border-color:var(--brand);box-shadow:0 0 0 2px var(--brand);transform:scale(1.1)}.wb-color-swatch.transparent-swatch{background:repeating-conic-gradient(var(--muted) 0 25%,transparent 0 50%) 50% /8px 8px!important}.wb-props{position:absolute;top:12px;right:12px;z-index:99;padding:12px 14px;min-width:180px;max-width:210px;display:flex;flex-direction:column;gap:10px;background:var(--popover);border:1px solid var(--border);border-radius:12px;box-shadow:0 4px 24px rgba(0,0,0,.1),0 1px 4px rgba(0,0,0,.06)}.wb-props-row label{display:block;font-size:10px;font-weight:600;color:var(--muted-foreground);margin-bottom:5px;text-transform:uppercase;letter-spacing:.5px}.wb-props-range-row{display:flex;align-items:center;gap:8px}.wb-props-range-row input[type=range]{flex:1;height:4px;border-radius:2px;background:var(--accent);outline:none;cursor:pointer;accent-color:var(--brand);-webkit-appearance:none;appearance:none}.wb-props-range-row input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:14px;height:14px;border-radius:50%;background:var(--brand);border:2px solid var(--brand-foreground);cursor:pointer}.wb-props-value{font-size:11px;font-weight:500;color:var(--muted-foreground);min-width:30px;text-align:right}.wb-style-btns{display:flex;gap:4px}.wb-style-btn{flex:1;height:30px;border:1px solid var(--border);border-radius:6px;background:var(--popover);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--muted-foreground);transition:all .12s ease}.wb-style-btn:hover{background:var(--accent)}.wb-style-btn.active{background:var(--brand);border-color:var(--brand);color:var(--brand-foreground)}.wb-stroke-preview{width:28px;height:4px}.wb-bottom-bar{position:absolute;bottom:12px;left:12px;z-index:100;display:flex;align-items:center;gap:2px;padding:4px 6px;background:var(--popover);border:1px solid var(--border);border-radius:12px;box-shadow:0 4px 24px rgba(0,0,0,.1),0 1px 4px rgba(0,0,0,.06)}.wb-zoom-display{min-width:52px;text-align:center;font-size:11px;font-weight:600;color:var(--muted-foreground);user-select:none;background:none;border:none;cursor:pointer;padding:4px 2px;border-radius:6px;transition:background .12s ease}.wb-zoom-display:hover{background:var(--accent);color:var(--accent-foreground)}.wb-overlay{position:fixed;inset:0;z-index:500;background:rgba(0,0,0,.4);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;animation:wb-fade-in .15s ease-out}.wb-export-popup{width:340px;background:var(--popover);border:1px solid var(--border);border-radius:16px;box-shadow:0 16px 48px rgba(0,0,0,.2);overflow:hidden;animation:wb-scale-in .2s ease-out}.wb-export-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--border)}.wb-export-title{font-size:14px;font-weight:600;color:var(--foreground)}.wb-export-options{padding:8px;display:flex;flex-direction:column;gap:4px}.wb-export-option{display:flex;align-items:center;gap:12px;padding:12px;border:none;background:transparent;border-radius:10px;cursor:pointer;text-align:left;color:var(--foreground);transition:background .12s ease;width:100%}.wb-export-icon,.wb-export-option:hover{background:var(--accent)}.wb-export-icon{width:44px;height:44px;border-radius:10px;display:flex;align-items:center;justify-content:center;color:var(--brand);flex-shrink:0}.wb-export-name{font-size:13px;font-weight:600;color:var(--foreground)}.wb-export-desc{font-size:11px;color:var(--muted-foreground);margin-top:2px}.wb-context-menu{position:fixed;z-index:600;min-width:180px;background:var(--popover);border:1px solid var(--border);border-radius:10px;box-shadow:0 8px 32px rgba(0,0,0,.18);padding:4px;animation:wb-scale-in .12s ease-out;transform-origin:top left}.wb-context-item{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;border:none;background:transparent;border-radius:8px;cursor:pointer;font-size:13px;font-weight:500;color:var(--foreground);transition:background .12s ease}.wb-context-item:hover{background:var(--accent)}.wb-context-item svg{color:var(--muted-foreground);flex-shrink:0}@keyframes wb-fade-in{0%{opacity:0}to{opacity:1}}@keyframes wb-scale-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@media (pointer:coarse){.wb-btn{width:40px;height:40px}.wb-toolbar{padding:6px 10px;gap:1px}.wb-color-bar{top:68px;padding:8px 10px}.wb-color-bar.open{transform:translateX(-50%) translateY(0)}.wb-color-swatch{width:24px;height:24px}.wb-bottom-bar{bottom:16px;left:16px}}