:root{--color-bg: #FFFFFF;--color-bg-subtle: #FAFAFA;--color-bg-hover: #F5F5F5;--color-text: #171717;--color-text-secondary: #525252;--color-text-tertiary: #737373;--color-text-faint: #D4D4D4;--color-accent: #2563EB;--color-accent-hover: #1D4ED8;--color-accent-soft: #EFF4FF;--color-border: #E5E5E5;--color-border-strong: #D4D4D4;--color-success: #0E9F6E;--color-warning: #D97706;--color-danger: #DC2626;--color-diff-added: #d4edda;--color-diff-removed: #f8d7da;--presence-a: #0E9F6E;--presence-b: #D97706;--radius: 6px}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:14px;line-height:1.5}a{color:inherit}button{font-family:inherit}input,textarea,select{font-family:inherit;color:inherit}kbd{font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;background:var(--color-bg-subtle);border:1px solid var(--color-border);border-radius:4px;padding:2px 5px;color:var(--color-text)}.app-editor{min-height:100vh;display:flex;flex-direction:column;padding-top:52px;padding-bottom:36px;background:var(--color-bg)}.topbar{position:fixed;top:0;left:0;right:0;height:52px;background:var(--color-bg);border-bottom:1px solid var(--color-border);z-index:20}.topbar-inner{display:flex;align-items:center;justify-content:space-between;height:52px;padding:0 16px;gap:12px}.topbar-left{display:flex;align-items:center;gap:8px;min-width:0;flex:1}.topbar-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.wordmark{font-weight:700;font-size:16px;letter-spacing:-.02em;color:var(--color-text);text-decoration:none;flex-shrink:0}.doc-title-wrapper{display:inline-flex;align-items:center;min-width:0;max-width:320px}.doc-title-btn{font-family:inherit;font-size:14px;font-weight:500;color:var(--color-text);background:transparent;border:1px solid transparent;border-radius:var(--radius);padding:4px 8px;cursor:pointer;text-align:left;display:inline-flex;align-items:center;max-width:100%;transition:background .1s ease,border-color .1s ease}.doc-title-btn:hover{background:var(--color-bg-hover);border-color:var(--color-border)}.doc-title-btn.view-only{cursor:default}.doc-title-btn.view-only:hover{background:transparent;border-color:transparent}.doc-title-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.doc-title-input{font-family:inherit;font-size:14px;font-weight:500;color:var(--color-text);background:var(--color-bg);border:1px solid var(--color-accent);border-radius:var(--radius);padding:4px 8px;outline:none;width:100%;box-shadow:0 0 0 1px var(--color-accent)}.avatars{display:flex;align-items:center}.avatars>.avatar{margin-left:-6px}.avatars>.avatar:first-child{margin-left:0}.user-avatar-btn{width:28px;height:28px;padding:0;border:2px solid white;outline:none;cursor:pointer;transition:transform .1s ease,box-shadow .1s ease;flex-shrink:0}.user-avatar-btn:hover{transform:scale(1.05);box-shadow:0 0 0 2px var(--color-accent)}.user-avatar-btn:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.options-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:transparent}.options-sheet{position:fixed;top:56px;right:16px;width:280px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);padding:12px;box-shadow:0 10px 25px -5px #0000001a,0 8px 10px -6px #0000001a;display:flex;flex-direction:column;z-index:51;animation:fadeIn .12s ease}.sheet-handle{display:none}.options-profile-card{display:flex;align-items:center;gap:10px;padding:4px}.profile-avatar{width:34px;height:34px;font-size:13px;border-radius:50%;flex-shrink:0}.profile-info{display:flex;flex-direction:column;min-width:0;flex:1}.profile-name{font-size:13px;font-weight:600;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-sub{font-size:11px;color:var(--color-text-secondary)}.btn-edit-name{padding:3px 8px;font-size:11px;flex-shrink:0}.options-divider{height:1px;background:var(--color-border);margin:10px 0;width:100%}.options-list{display:flex;flex-direction:column;gap:2px}.options-item{display:flex;align-items:center;gap:10px;padding:7px 8px;border-radius:var(--radius);border:none;background:transparent;color:var(--color-text);font-size:13px;font-weight:450;cursor:pointer;text-align:left;text-decoration:none;transition:background 80ms ease,color 80ms ease;width:100%}.options-item:hover{background:var(--color-bg-hover);color:var(--color-text)}.options-item:focus-visible{outline:2px solid var(--color-accent)}.options-item-icon{display:inline-flex;align-items:center;justify-content:center;color:var(--color-text-secondary);flex-shrink:0}.options-item-text{flex:1}.options-section-title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-tertiary);padding:2px 8px 6px}.options-collaborators-list{display:flex;flex-direction:column;gap:6px;padding:0 4px}.options-collaborator-row{display:flex;align-items:center;gap:8px}.collaborator-row-name{font-size:12px;color:var(--color-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.desktop-only{display:inline-flex}.mobile-only{display:none}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.avatar{width:26px;height:26px;border-radius:50%;border:2px solid white;color:#fff;font-size:10.5px;font-weight:600;display:flex;align-items:center;justify-content:center;cursor:pointer;-webkit-user-select:none;user-select:none;box-shadow:0 0 0 1px #0000000a}.btn{font-family:inherit;font-size:13px;font-weight:500;letter-spacing:-.005em;padding:5px 11px;border-radius:var(--radius);cursor:pointer;border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text-secondary);box-shadow:0 1px #00000005;white-space:nowrap;transition:background .12s ease,border-color .12s ease,color .12s ease;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;text-align:center}.btn:hover{background:var(--color-bg-subtle);color:var(--color-text);border-color:var(--color-border-strong)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--color-accent);color:#fff;border-color:var(--color-accent);box-shadow:inset 0 1px #ffffff26,0 1px 2px #00000014}.btn-primary:hover{background:var(--color-accent-hover);border-color:var(--color-accent-hover);color:#fff}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-danger{color:var(--color-danger);border-color:var(--color-border)}.btn-danger:hover{background:#fef2f2;border-color:var(--color-danger)}.canvas{flex:1;display:flex;justify-content:center;overflow-y:auto;padding:36px 32px 48px;width:100%}.doc{max-width:1600px;width:100%;min-width:0;margin:0 auto;position:relative;min-height:100%;display:flex;flex-direction:column}.bn-container{background:transparent;flex:1;display:flex;flex-direction:column;min-height:100%}.bn-editor,.ProseMirror{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif!important;flex:1;min-height:calc(100vh - 160px);outline:none;cursor:text}.bn-container,.ProseMirror,.bn-editor{font-family:Inter,system-ui,-apple-system,sans-serif!important}.doc .bn-block-content[data-content-type=heading][data-level="1"] .bn-inline-content{font-size:34px;font-weight:650;letter-spacing:-.03em;line-height:1.2}.doc .bn-block-content[data-content-type=heading][data-level="2"] .bn-inline-content{font-size:20px;font-weight:600;letter-spacing:-.02em;line-height:1.3}.doc .bn-block-content{font-size:15px;line-height:1.65;color:var(--color-text)}.bn-block-content>.bn-inline-content,.bn-block-content[data-content-type=checkListItem]>div,.bn-block-content[data-content-type=checkListItem]>div>.bn-inline-content{flex-grow:1}.doc .bn-block-content[data-content-type=checkListItem][data-checked=true]{text-decoration:line-through;opacity:.65}.statusbar{position:fixed;bottom:0;left:0;right:0;height:36px;width:100%;border-top:1px solid var(--color-border);background:var(--color-bg);display:flex;justify-content:space-between;align-items:center;gap:16px;padding:0 16px;font-size:12px;color:var(--color-text-tertiary);font-variant-numeric:tabular-nums;z-index:10}.statusbar>.left,.statusbar>.right{display:flex;align-items:center;gap:12px}.statusbar>.left{justify-content:flex-start;min-width:0}.statusbar>.right{justify-content:flex-end;margin-left:auto}.pill{display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border-radius:999px;background:var(--color-bg-subtle);border:1px solid var(--color-border);font-size:12px;font-weight:500;color:var(--color-text-secondary)}.pill .dot{width:8px;height:8px;border-radius:50%;background:var(--color-text-tertiary)}.pill.connected .dot{background:var(--color-success)}.pill.reconnecting .dot{background:var(--color-warning)}.pill.closed .dot{background:var(--color-danger)}.actions{display:flex;align-items:center;gap:6px}.front-page{min-height:100vh;display:flex;flex-direction:column;background:var(--color-bg-subtle)}.front-topbar{height:56px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:0 32px;border-bottom:1px solid var(--color-border);background:var(--color-bg-subtle)}.front-topbar .wordmark{font-weight:650;font-size:15px;letter-spacing:-.01em;color:var(--color-text);text-decoration:none}.topbar-meta{font-size:13px;color:var(--color-text-tertiary);font-weight:400}.gate{flex:1;display:flex;align-items:center;justify-content:center;padding:24px}.gate-inner{max-width:560px;width:100%;display:flex;flex-direction:column;align-items:center}.eyebrow{font-size:12px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--color-accent);margin-bottom:20px}.gate h1{font-size:40px;font-weight:600;letter-spacing:-.035em;line-height:1.15;color:var(--color-text);text-align:center;margin:0 0 16px}.gate .subline{font-size:15px;line-height:1.6;color:var(--color-text-secondary);text-align:center;max-width:420px;margin:0 0 48px}.composer{width:100%;background:var(--color-bg);border:1px solid var(--color-border);border-radius:8px;padding:24px;box-shadow:0 1px 2px #0000000a,0 8px 24px -12px #00000014}.composer-label{display:block;font-size:12px;font-weight:500;color:var(--color-text-tertiary);letter-spacing:.02em;margin-bottom:8px}.composer-input{width:100%;border:none;outline:none;background:transparent;font-family:inherit;font-size:24px;font-weight:500;letter-spacing:-.02em;color:var(--color-text);padding:4px 0 16px;border-bottom:1px solid transparent;caret-color:var(--color-accent)}.composer-input::placeholder{color:var(--color-text-tertiary);font-weight:400}.composer-row{display:flex;align-items:center;justify-content:space-between;margin-top:16px;gap:16px}.composer-hint{font-size:13px;color:var(--color-text-tertiary)}.composer-hint kbd{font-family:inherit;font-size:12px;color:var(--color-text-secondary);background:var(--color-bg-subtle);border:1px solid var(--color-border);border-radius:4px;padding:1px 5px;box-shadow:0 1px 0 var(--color-border)}.composer-row .btn-primary{background:var(--color-accent);color:#fff;border:none;border-radius:var(--radius);font-family:inherit;font-size:14px;font-weight:500;letter-spacing:-.005em;padding:8px 16px;cursor:pointer;box-shadow:inset 0 1px #ffffff1f,0 1px 2px #00000014;white-space:nowrap;transition:background .12s ease;display:inline-flex;align-items:center;justify-content:center}.composer-row .btn-primary:hover{background:var(--color-accent-hover)}.composer-row .btn-primary:disabled{opacity:.6;cursor:not-allowed}.features{display:flex;gap:24px;margin-top:32px;font-size:13px;color:var(--color-text-secondary);flex-wrap:wrap;justify-content:center}.feature-line{display:flex;align-items:center;gap:7px}.feature-line:before{content:"";width:5px;height:5px;border-radius:50%;background:var(--color-accent);flex-shrink:0}.error-notice{font-size:13px;color:var(--color-danger);margin-bottom:16px;padding:12px 16px;background:#fef2f2;border:1px solid #fecaca;border-radius:var(--radius);width:100%}.field-error{color:var(--color-danger);font-size:13px;margin-top:6px}.front-footer{height:56px;flex-shrink:0;display:flex;align-items:center;justify-content:center;gap:20px;border-top:1px solid var(--color-border);font-size:12px;color:var(--color-text-tertiary);background:var(--color-bg-subtle)}.front-footer a{color:var(--color-text-secondary);text-decoration:none}.front-footer a:hover{color:var(--color-text)}.front-footer .sep{color:var(--color-border-strong)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:100}.modal-content{background:#fff;max-width:460px;width:calc(100% - 32px);border-radius:8px;padding:24px;border:1px solid var(--color-border);box-shadow:0 10px 40px #00000026}.modal-content h2{font-size:16px;font-weight:600;margin:0 0 8px;color:var(--color-text)}.modal-content .explainer{font-size:13px;color:var(--color-text-secondary);margin:0 0 16px;line-height:1.5}.modal-input{width:100%;font-size:14px;padding:8px 10px;border:1px solid var(--color-border);border-radius:6px;outline:none;transition:border-color 75ms;background:#fff}.modal-input:focus{border-color:var(--color-accent)}.modal-actions{display:flex;gap:8px;margin-top:14px}.modal-actions .btn{flex:1;height:36px;padding:0 14px;font-size:13px;font-weight:500;justify-content:center;text-align:center}.tabs{display:inline-flex;background:var(--color-bg-subtle);border-radius:8px;padding:2px;border:1px solid var(--color-border)}.tab{font-size:12px;font-weight:500;padding:6px 12px;border-radius:4px;border:none;background:transparent;color:var(--color-text-secondary);cursor:pointer;transition:all 75ms}.tab.active{background:#fff;color:var(--color-text);border:1px solid var(--color-border);box-shadow:0 1px 2px #0000000a}.share-url-container{margin-top:16px}.share-url-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--color-bg-subtle);border:1px solid var(--color-border);border-radius:8px;padding:6px 8px 6px 14px;cursor:pointer;transition:all .14s ease;-webkit-user-select:none;user-select:none}.share-url-bar:hover{border-color:var(--color-text-tertiary);background:var(--color-bg-subtle)}.share-url-bar:focus-visible{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px #0f62fe26}.share-url-bar.copied{border-color:#0e9f6e;background:#0e9f6e0d}.share-url-text{font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;color:var(--color-text);white-space:nowrap;overflow-x:auto;-webkit-user-select:all;user-select:all;flex:1;min-width:0;scrollbar-width:none}.share-url-text::-webkit-scrollbar{display:none}.share-url-copy-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;font-size:12px;font-weight:500;border-radius:6px;border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text);cursor:pointer;flex-shrink:0;transition:all .12s ease}.share-url-bar:hover .share-url-copy-btn{background:var(--color-bg-subtle);border-color:var(--color-text-tertiary)}.share-url-bar.copied .share-url-copy-btn{background:#0e9f6e;color:#fff;border-color:#0e9f6e}.copy-status{display:inline-flex;align-items:center;gap:5px}.qr-code{display:flex;justify-content:center;margin-top:12px}.qr-code img{width:160px;height:160px;border:1px solid var(--color-border);border-radius:8px;padding:8px;background:#fff}.share-export{margin-top:16px;padding-top:16px;border-top:1px solid var(--color-border);display:flex;flex-direction:column;gap:8px}.history-drawer{position:fixed;top:52px;right:0;width:380px;bottom:36px;background:#fff;border-left:1px solid var(--color-border);box-shadow:-4px 0 12px #0000000d;z-index:30;transition:transform .2s ease-out;display:flex;flex-direction:column}.history-drawer.open{transform:translate(0)}.history-drawer:not(.open){transform:translate(100%)}.history-header{padding:16px;border-bottom:1px solid var(--color-border);display:flex;justify-content:space-between;align-items:center;font-size:14px;font-weight:600;color:var(--color-text)}.history-list{flex:1;overflow-y:auto;padding:8px}.version-row{padding:10px 12px;border-radius:6px;cursor:pointer;border:1px solid transparent;margin-bottom:4px;transition:background 75ms,border-color 75ms}.version-row:hover{background:var(--color-bg-subtle)}.version-row.selected{background:var(--color-bg-subtle);border-color:var(--color-border)}.version-row .label{font-size:13px;font-weight:500;color:var(--color-text)}.version-row .meta{font-size:12px;color:var(--color-text-secondary);margin-top:2px}.history-preview{border-top:1px solid var(--color-border);padding:16px;max-height:50%;overflow-y:auto}.history-preview .actions{display:flex;gap:8px;margin-bottom:12px}.diff-container{font-size:14px;line-height:1.6;white-space:pre-wrap;color:var(--color-text)}.diff-added{background:var(--color-diff-added);text-decoration:underline}.diff-removed{background:var(--color-diff-removed);text-decoration:line-through}.toast{position:fixed;bottom:80px;left:50%;transform:translate(-50%);background:#171717;color:#fff;padding:8px 16px;border-radius:6px;font-size:13px;z-index:200;animation:fadeInOut 3s forwards;pointer-events:none}@keyframes fadeInOut{0%{opacity:0}10%{opacity:1}90%{opacity:1}to{opacity:0}}@keyframes remoteChangePulse{0%{background-color:#2563eb2e}to{background-color:transparent}}.remote-change-pulse{animation:remoteChangePulse 1.5s ease-out forwards}.bn-selection{transition:all 75ms ease-out}.collaboration-cursor__label{color:#fff;font-weight:500;box-shadow:0 1px 3px #0003}.bn-container{background:transparent}.bn-cursor{transition:transform 75ms ease-out}[data-test=upload-tab],[data-test=upload-input],.bn-file-input,.bn-panel .mantine-Tabs-list{display:none!important}.bn-mantine .bn-panel,.bn-panel{width:440px!important;max-width:calc(100vw - 24px)!important;box-sizing:border-box!important;border-radius:8px!important;padding:10px!important;background:var(--color-bg)!important;border:1px solid var(--color-border)!important;box-shadow:0 8px 24px #0000001f!important}.bn-panel .mantine-Tabs-root{width:100%!important;box-sizing:border-box!important}.bn-panel .bn-tab-panel{width:100%!important;box-sizing:border-box!important;display:flex!important;flex-direction:column!important;gap:8px!important}.bn-panel .mantine-TextInput-root{width:100%!important}.bn-panel .mantine-TextInput-input{height:38px!important;font-size:14px!important;border-radius:6px!important;border:1px solid var(--color-border)!important;background:var(--color-bg-subtle)!important;color:var(--color-text)!important;box-sizing:border-box!important}.bn-panel .mantine-TextInput-input:focus{border-color:var(--color-primary)!important;outline:none!important}.bn-panel .mantine-Button-root{width:100%!important;height:36px!important;font-size:13px!important;font-weight:550!important;border-radius:6px!important;background:var(--color-primary, #0F62FE)!important;color:#fff!important;border:none!important;cursor:pointer!important;transition:opacity .12s ease!important}.bn-panel .mantine-Button-root:hover{opacity:.9!important}.bn-mantine .mantine-Popover-dropdown,.bn-panel-popover,.bn-form-popover{max-width:calc(100vw - 16px)!important;box-sizing:border-box!important}@media(max-width:720px){.bn-mantine .mantine-Popover-dropdown,.bn-panel-popover{left:8px!important;right:8px!important;width:calc(100vw - 16px)!important;max-width:calc(100vw - 16px)!important;box-sizing:border-box!important}.bn-mantine .bn-panel,.bn-panel{width:100%!important;max-width:100%!important}.bn-panel .mantine-TextInput-input{font-size:16px!important}.bn-panel .mantine-Button-root{width:100%!important;height:40px!important}.wordmark,.desktop-only{display:none!important}.mobile-only{display:block!important}.topbar-inner{padding:0 12px;gap:8px;height:52px}.topbar-left{gap:6px;min-width:0;flex:1}.doc-title-wrapper{max-width:none;flex:1}.doc-title-btn,.doc-title-input{font-size:14px;padding:4px 8px;width:100%}.topbar-right{justify-self:end;gap:8px;flex-shrink:0}.topbar-right .btn{padding:5px 10px;font-size:12px;min-height:32px}.options-backdrop{background:#0006;display:flex;align-items:flex-end;animation:fadeIn .15s ease}.options-sheet{position:relative;top:auto;right:auto;width:100%;max-height:80vh;border-radius:16px 16px 0 0;border:none;border-top:1px solid var(--color-border);padding:12px 16px max(24px,env(safe-area-inset-bottom,24px));box-shadow:0 -4px 24px #00000026;animation:slideUp .2s cubic-bezier(.16,1,.3,1);overflow-y:auto}.sheet-handle{width:36px;height:4px;background:var(--color-border-strong);border-radius:2px;margin:0 auto 12px}.options-item{padding:10px 8px;font-size:14px}.canvas{padding:16px 12px 36px}.bn-editor{padding-inline:8px!important;min-height:calc(100vh - 120px)}.history-drawer{width:100%;top:0;bottom:0}.statusbar{font-size:11px;padding:0 12px;gap:8px}.statusbar .words-chars{display:none}.features{flex-direction:column;align-items:center;gap:10px}.gate h1{font-size:30px}.gate{padding:16px}.gate .subline{margin-bottom:32px}.modal-overlay{padding:16px}.composer-row{flex-direction:column-reverse;align-items:stretch}.composer-row .composer-hint{text-align:center}.composer-row .btn-primary{width:100%}}.print-title{display:none}@media print{.topbar,.statusbar,.history-drawer,.modal-overlay,.toast{display:none!important}.canvas{overflow:visible;padding:0}.app-editor{min-height:auto;padding:0}.print-title{display:block;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:22px;font-weight:650;letter-spacing:-.02em;margin:0 0 16px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important;scroll-behavior:auto!important}}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}
