@import"https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css";@import"https://cdn.jsdelivr.net/npm/@kfonts/nanum-barun-gothic/index.css";@import"https://fonts.googleapis.com/css2?family=Gowun+Batang:wght@400;700&family=Inter:wght@300;400;500;600;800&family=Lora:ital,wght@0,500;0,600;0,700;1,500&family=Nanum+Myeongjo:wght@400;700;800&family=Noto+Sans+JP:wght@400;500;600;700&family=Noto+Sans+KR:wght@400;500;600;700&family=Noto+Serif+JP:wght@400;500;600;700&family=Noto+Serif+KR:wght@400;500;600;700&display=swap";@font-face{font-family:MaruBuri;src:url(https://hangeul.pstatic.net/hangeul_static/webfont/MaruBuri/MaruBuri-Regular.woff2) format("woff2");font-display:swap;font-weight:400}@font-face{font-family:MaruBuri;src:url(https://hangeul.pstatic.net/hangeul_static/webfont/MaruBuri/MaruBuri-SemiBold.woff2) format("woff2");font-display:swap;font-weight:600}@font-face{font-family:MaruBuri;src:url(https://hangeul.pstatic.net/hangeul_static/webfont/MaruBuri/MaruBuri-Bold.woff2) format("woff2");font-display:swap;font-weight:700}@font-face{font-family:RIDIBatang;src:url(https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_twelve@1.0/RIDIBatang.woff) format("woff");font-display:swap;font-weight:400}:root{--app-bg-1-main: #fefefe;--app-bg-2-sub: #f1f1f1;--app-bg-3-small: #e5e5e5;--app-bg-4-extra: #d8d8d8;--app-text-on-bg-1: #1a1a1a;--app-text-on-bg-2: #202020;--app-text-on-bg-3: #262626;--app-text-on-bg-4: #2c2c2c;--app-text-secondary-common: #666666;--app-text-muted-common: #8a8a8a;--app-surface-page: var(--app-bg-1-main);--app-surface-panel: var(--app-bg-2-sub);--app-surface-card: var(--app-bg-3-small);--app-surface-elevated: var(--app-bg-1-main);--app-surface-extra: var(--app-bg-4-extra);--app-surface-bg: var(--app-bg-1-main);--app-text-primary: var(--app-text-on-bg-2);--app-text-secondary: var(--app-text-secondary-common);--app-text-muted: var(--app-text-muted-common);--app-text-tertiary: var(--app-text-muted-common);--app-border: rgba(10, 22, 40, .1);--app-border-soft: rgba(10, 22, 40, .08);--app-hover: rgba(10, 22, 40, .08);--app-focus-ring: rgba(10, 22, 40, .24);--app-danger: #d33345;--app-danger-bg: rgba(211, 51, 69, .14);--app-success: #10b981;--app-warning: #d6a84a;--app-note-bg: #fff9cc;--app-overlay-backdrop: color-mix(in srgb, var(--app-text-on-bg-1) 42%, transparent);--app-overlay-backdrop-soft: color-mix(in srgb, var(--app-text-on-bg-1) 32%, transparent);--editor-content-bg: var(--app-bg-1-main);--editor-scroll-thumb: rgba(10, 22, 40, .28);--editor-scroll-thumb-hover: rgba(10, 22, 40, .42);--editor-scroll-track: var(--app-border);--bg-main: var(--app-bg-1-main);--bg-side: var(--app-bg-2-sub);--ink-strong: var(--app-text-on-bg-1);--ink-body: var(--app-text-secondary-common);--ink-muted: var(--app-text-muted-common);--ink-soft: var(--app-text-muted-common);--line: #e5e7eb;--naver: #03c75a;--kakao: #fee500;--kakao-ink: #3c1e1e;--app-ui-font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--app-viewport-h: 100vh}:root[data-theme=dark]{--app-bg-1-main: #181818;--app-bg-2-sub: #202020;--app-bg-3-small: #292929;--app-bg-4-extra: #333333;--app-text-on-bg-1: #f5f5f5;--app-text-on-bg-2: #eeeeee;--app-text-on-bg-3: #e6e6e6;--app-text-on-bg-4: #dddddd;--app-text-secondary-common: #b8b8b8;--app-text-muted-common: #929292;--app-surface-page: var(--app-bg-1-main);--app-surface-panel: var(--app-bg-2-sub);--app-surface-card: var(--app-bg-3-small);--app-surface-elevated: var(--app-bg-1-main);--app-surface-extra: var(--app-bg-4-extra);--app-surface-bg: var(--app-bg-1-main);--app-text-primary: var(--app-text-on-bg-2);--app-text-secondary: var(--app-text-secondary-common);--app-text-muted: var(--app-text-muted-common);--app-text-tertiary: var(--app-text-muted-common);--app-border: rgba(255, 255, 255, .14);--app-border-soft: rgba(255, 255, 255, .1);--app-hover: rgba(255, 255, 255, .1);--app-focus-ring: rgba(255, 255, 255, .28);--app-danger: #ff8d9e;--app-danger-bg: rgba(255, 110, 128, .18);--app-success: #34d399;--app-warning: #e8c26b;--app-note-bg: #3c3820;--app-overlay-backdrop: color-mix(in srgb, var(--app-text-on-bg-1) 52%, transparent);--app-overlay-backdrop-soft: color-mix(in srgb, var(--app-text-on-bg-1) 40%, transparent);--editor-content-bg: var(--app-bg-1-main);--editor-scroll-thumb: rgba(186, 199, 226, .5);--editor-scroll-thumb-hover: rgba(186, 199, 226, .68);--editor-scroll-track: rgba(186, 199, 226, .14);--bg-main: var(--app-bg-1-main);--bg-side: var(--app-bg-2-sub);--ink-strong: var(--app-text-on-bg-1);--ink-body: var(--app-text-secondary-common);--ink-muted: var(--app-text-muted-common);--ink-soft: var(--app-text-muted-common)}@supports (height: 100svh){:root{--app-viewport-h: 100svh}}*{box-sizing:border-box}html,body,#root{min-height:-webkit-fill-available}body{margin:0;min-height:var(--app-viewport-h);width:100%;background:var(--bg-main);color:var(--ink-strong);font-family:var(--app-ui-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);overflow-x:hidden}button,input,select,textarea{font:inherit;color:inherit}#root{min-height:var(--app-viewport-h);width:100%;overflow-x:hidden}.primary-btn{border:1px solid var(--app-border);border-radius:10px;background:var(--app-bg-3-small);color:var(--app-text-primary);height:41px;padding:0 16px;font-size:14px;font-weight:500;cursor:pointer;box-shadow:none;display:inline-flex;align-items:center;gap:8px}.primary-btn:hover,.primary-btn:focus-visible{background:var(--app-bg-4-extra)}.primary-btn-text-mobile{display:none}.save-btn{border:1px solid var(--app-border);border-radius:12px;height:42px;padding:0 22px;background:var(--app-bg-3-small);color:var(--app-text-primary);font-size:16px;font-weight:500;cursor:pointer}.save-btn:hover,.save-btn:focus-visible{background:var(--app-bg-4-extra)}.secondary-action-btn,.primary-action-btn{border-radius:999px;height:30px;padding:0 16px;font-size:12px;font-weight:500;cursor:pointer}.secondary-action-btn{border:1px solid var(--app-border);background:var(--app-bg-2-sub);color:var(--app-text-secondary)}.primary-action-btn{border:1px solid var(--app-border);background:var(--app-bg-3-small);color:var(--app-text-primary)}.app-theme-btn{height:30px;border:1px solid var(--app-border);border-radius:9px;background:var(--app-bg-3-small);color:var(--app-text-primary);font-size:12px;font-weight:600;padding:0 10px;display:inline-flex;align-items:center;gap:6px}.app-theme-btn:hover,.app-theme-btn:focus-visible{background:var(--app-hover)}.setting-control select,.setting-control input{height:30px;border-radius:9px;border:1px solid var(--app-border);background:var(--app-bg-3-small);color:var(--app-text-primary);font-size:14px;padding:0 10px;outline:none}.setting-control select{min-width:170px}.setting-control.with-suffix input{width:96px}.setting-control.with-suffix span{color:var(--app-text-secondary);font-size:14px}.editor-input-row label{height:28px;border:1px solid var(--app-border);border-radius:8px;padding:0 8px;display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--app-text-secondary);background:var(--app-bg-3-small)}.editor-input-row select{border:0;background:transparent;color:var(--app-text-secondary);font-size:12px;outline:none}.editor-modal-layer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:grid;place-items:center;padding:60px}.editor-modal-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;border:0;background:color-mix(in srgb,var(--app-text-primary) 48%,transparent)}.editor-modal{position:relative;width:min(560px,calc(100vw - 120px));max-height:calc(100vh - 120px);background:var(--app-bg-1-main);border:1px solid var(--app-border);border-radius:18px;box-shadow:0 28px 48px var(--app-border-soft);overflow:hidden}.editor-modal-header{height:52px;border-bottom:1px solid var(--app-border-soft);padding:0 16px 0 18px;display:flex;align-items:center;justify-content:space-between}.editor-modal-header h3{margin:0;font-size:18px;font-weight:600;color:var(--app-text-primary)}.editor-modal-header button{width:28px;height:28px;border:0;border-radius:8px;background:transparent;color:var(--app-text-secondary);display:grid;place-items:center}.editor-modal-body{padding:16px 18px 12px;display:grid;gap:14px}.editor-modal-section p{margin:0 0 8px;font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--app-text-muted);font-weight:600}.editor-modal-options{display:flex;flex-wrap:wrap;gap:8px}.editor-modal-options button{height:32px;border:1px solid var(--app-border);border-radius:9px;background:var(--app-bg-1-main);color:var(--app-text-secondary);font-size:12px;font-weight:500;padding:0 12px}.editor-modal-options button.active{border-color:var(--app-text-primary);background:var(--app-bg-3-small);color:var(--app-text-primary)}.editor-modal-grid{display:grid;gap:10px;grid-template-columns:repeat(3,minmax(0,1fr))}.editor-modal-grid label{display:grid;gap:6px;color:var(--app-text-secondary);font-size:12px;font-weight:500}.editor-modal-grid select{height:34px;border:1px solid var(--app-border);border-radius:9px;background:var(--app-bg-1-main);color:var(--app-text-primary);padding:0 10px;font-size:13px;outline:none}.editor-modal-actions{border-top:1px solid var(--app-border-soft);padding:12px 18px 16px;display:flex;justify-content:flex-end;gap:8px}.editor-modal-actions button{height:32px;border-radius:9px;font-size:12px;font-weight:600;padding:0 12px}.editor-modal-actions .ghost{border:1px solid var(--app-border);background:var(--app-bg-1-main);color:var(--app-text-secondary)}.editor-modal-actions .solid{border:1px solid var(--app-text-primary);background:var(--app-text-primary);color:var(--app-bg-1-main)}.editor-modal-actions .solid.full{width:100%}.inline-range{height:28px;border:1px solid var(--app-border);border-radius:8px;padding:0 8px;display:inline-flex;align-items:center;gap:8px;font-size:12px;color:var(--app-text-secondary)}.inline-range input{width:90px}.inline-color{height:28px;border:1px solid var(--app-border);border-radius:8px;padding:0 8px;display:inline-flex;align-items:center;gap:8px;font-size:12px;color:var(--app-text-secondary)}.inline-color input{border:0;width:20px;height:20px;padding:0;background:transparent}.app-alert-modal-layer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:120;display:grid;place-items:center;padding:28px}.app-alert-modal-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;border:0;background:color-mix(in srgb,var(--app-text-primary) 52%,transparent)}.app-alert-modal{position:relative;width:min(560px,calc(100vw - 56px));border-radius:20px;border:1px solid var(--app-border);background:var(--app-bg-1-main);box-shadow:0 20px 42px var(--app-border-soft);padding:24px 24px 20px;display:grid;gap:14px}.app-alert-modal header h3{margin:0;font-size:34px;line-height:1.04;font-family:var(--app-ui-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);color:var(--app-text-primary)}.app-alert-modal p{margin:0;color:var(--app-text-secondary);font-size:17px;line-height:1.52;white-space:pre-line}.app-alert-modal footer{display:flex;align-items:center;justify-content:flex-end;gap:12px}.app-alert-modal footer button{border:0;border-radius:999px;height:46px;padding:0 26px;font-size:17px;font-weight:700;background:var(--app-bg-4-extra);color:var(--app-text-primary)}.app-alert-modal footer a{color:var(--app-text-secondary);font-weight:700;font-size:14px;text-decoration:underline}.app-prompt-modal input{width:100%;height:48px;border:1px solid var(--app-border);border-radius:14px;background:var(--app-bg-1-main);color:var(--app-text-primary);font-size:14px;padding:0 16px;outline:none}.app-alert-modal.app-prompt-modal header h3{font-family:var(--app-ui-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:18px;line-height:1.2;font-weight:700}.app-alert-modal.app-prompt-modal p{font-size:14px;line-height:1.45}.app-alert-modal.app-prompt-modal footer button{height:44px;padding:0 22px;font-size:14px;border-radius:14px}.app-prompt-modal footer .ghost{background:var(--app-bg-3-small);color:var(--app-text-primary)}.plot-modal-body input,.plot-modal-body select,.plot-modal-body textarea{width:100%;border:1px solid var(--app-border);border-radius:12px;padding:0 14px;font-size:15px;line-height:1.5;color:var(--app-text-primary);background:var(--app-surface-elevated);outline:none}.plot-modal-body input::placeholder,.plot-modal-body textarea::placeholder{color:var(--app-text-muted)}.plot-modal-body input,.plot-modal-body select{height:42px}.plot-modal-body textarea{min-height:112px;padding-top:10px;resize:vertical}.character-link-modal.relationship-modal label select,.character-link-modal.relationship-modal label input[type=text]{width:100%;height:58px;border:1px solid var(--app-border);border-radius:20px;background:var(--app-bg-3-small);color:var(--app-text-primary);font-size:16px;line-height:1;font-weight:500;padding:0 24px;outline:none}.character-link-modal.relationship-modal label select:focus-visible,.character-link-modal.relationship-modal label input[type=text]:focus-visible{border-color:var(--app-focus-ring);box-shadow:0 0 0 2px var(--app-hover)}.app-color-picker-modal{width:min(360px,calc(100vw - 56px));padding:0;gap:0}.app-color-picker-modal-header{height:52px;border-bottom:1px solid var(--app-border-soft);padding:0 14px 0 16px;display:flex;align-items:center;justify-content:space-between}.app-color-picker-modal-header h3{margin:0;font-size:16px;font-weight:600;color:var(--app-text-primary)}.app-color-picker-modal-header button{width:28px;height:28px;border:0;border-radius:8px;background:transparent;color:var(--app-text-secondary);display:grid;place-items:center}.app-color-picker-modal-body{padding:14px 16px 16px;display:grid;gap:10px}.app-color-picker-modal-row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.app-color-picker-swatch{width:28px;height:28px;border-radius:999px;border:1px solid var(--app-border);padding:0;cursor:pointer;justify-self:center}.app-color-picker-swatch.active{box-shadow:0 0 0 3px var(--app-hover)}.app-color-picker-modal-picker{position:relative;width:32px;height:32px;border-radius:999px;border:1px dashed var(--app-border);background:var(--app-bg-3-small);color:var(--app-text-muted);display:inline-grid;place-items:center;cursor:pointer}.app-color-picker-spacer{width:28px;height:28px;justify-self:center}.app-color-picker-modal-row-picker .app-color-picker-modal-picker{justify-self:center}.app-color-picker-modal-picker input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer}.login-page{position:relative;height:var(--app-viewport-h);display:grid;grid-template-columns:1fr 1fr;background:linear-gradient(to right,var(--bg-side) 0 50%,var(--bg-main) 50% 100%);overflow:hidden}.login-language-switch{position:fixed;top:16px;right:20px;z-index:30}.intro-panel{position:relative;overflow:auto;height:var(--app-viewport-h);padding:56px 48px;display:flex;align-items:center;justify-content:center}.intro-image{width:100%;height:100%;object-fit:cover;object-position:center}.login-intro-content{width:min(760px,100%);display:grid;gap:36px}.login-intro-copy h1{margin:0;font-family:var(--app-ui-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:clamp(2.2rem,4.5vw,3.55rem);line-height:1.16;letter-spacing:-.02em;color:var(--app-text-primary);font-weight:600;text-align:center}.login-intro-copy h1 span{color:var(--app-text-secondary)}.login-intro-copy p{margin:22px auto 0;max-width:660px;font-family:var(--app-ui-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:clamp(1rem,1.6vw,1.4rem);line-height:1.6;color:var(--app-text-secondary);font-weight:400;text-align:center}.login-intro-mockup{width:100%}.auth-panel{display:flex;justify-content:center;align-items:center;padding:40px 24px;height:var(--app-viewport-h);overflow:hidden}.auth-card{width:min(384px,100%)}.auth-brand{width:100%;display:flex;align-items:center;justify-content:center;gap:12px}.auth-brand img{width:40px;height:40px}.auth-brand span{font-family:var(--app-ui-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:2rem;line-height:1;letter-spacing:-.025em;color:var(--ink-brand);font-weight:700}.auth-heading{margin-top:48px;text-align:center}h2{margin:0;font-family:var(--app-ui-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:2rem;line-height:1;color:var(--ink-strong);font-weight:600}.auth-heading p{margin:8px 0 0;color:var(--ink-muted);font-size:.875rem;line-height:1.43}.social-buttons{margin-top:40px;display:grid;gap:12px}.social-btn{position:relative;width:100%;height:50px;border-radius:10px;border:1px solid transparent;display:grid;place-items:center;cursor:pointer;font-size:1rem;line-height:1.5;font-weight:500;padding:1px 16px;box-shadow:0 1px 3px var(--app-border-soft),0 1px 2px var(--app-border-soft);transition:transform .12s ease,filter .12s ease}.social-btn:hover{transform:translateY(-1px);filter:brightness(.985)}.social-icon{position:absolute;left:20px;top:50%;transform:translateY(-50%);width:20px;height:20px;display:grid;place-items:center}.social-icon img{width:20px;height:20px;object-fit:contain}.social-label{display:inline-block}.social-btn.google{background:var(--app-bg-1-main);border-color:var(--line);color:var(--app-text-primary)}.social-btn.naver{background:var(--naver);border-color:var(--naver);color:var(--app-bg-1-main)}.social-btn.naver .social-icon img{width:18px;height:18px}.social-btn.kakao{background:var(--kakao);border-color:var(--kakao);color:var(--kakao-ink)}.divider{margin-top:40px;display:flex;align-items:center;gap:16px}.divider span{flex:1;height:1px;background:var(--line)}.divider p{margin:0;color:var(--ink-soft);font-size:.75rem;line-height:1.33;letter-spacing:.1em;font-weight:500}.email-auth{margin-top:32px}.email-auth label{display:block;margin:0 0 8px 4px;color:var(--ink-body);font-size:.75rem;line-height:1.33;letter-spacing:.05em;font-weight:600}.input-wrap{position:relative}.input-wrap img{position:absolute;left:12px;top:17px;width:16px;height:16px}.input-wrap svg{position:absolute;left:12px;top:16px;width:18px;height:18px;color:var(--app-text-muted);pointer-events:none}.input-wrap input{width:100%;height:50px;border:1px solid var(--line);border-radius:10px;background:var(--app-bg-1-main);padding:12px 16px 12px 40px;font-size:1rem;color:var(--app-text-primary);letter-spacing:-.02em}.input-wrap input::placeholder{color:var(--app-text-muted)}.email-btn{margin-top:16px;width:100%;height:48px;border:0;border-radius:10px;background:var(--ink-brand);color:var(--app-bg-1-main);display:flex;align-items:center;justify-content:center;gap:8px;font-size:1rem;line-height:1.5;font-weight:500;cursor:pointer;box-shadow:0 1px 3px var(--app-border-soft),0 1px 2px var(--app-border-soft)}.email-btn img{width:16px;height:16px}.auth-footer{margin-top:32px;text-align:center}.auth-footer p{margin:0;color:var(--ink-muted);font-size:.875rem;line-height:1.43}.auth-footer p a{color:var(--ink-brand);font-weight:600;text-decoration:none}.auth-footer div{margin-top:16px;display:inline-flex;gap:24px}.auth-footer div a{color:var(--ink-soft);text-decoration:none;font-size:.6875rem;line-height:1.5;letter-spacing:.03em;font-weight:500}.auth-footer a:hover{text-decoration:underline}.desktop-auth-bridge-page{min-height:var(--app-viewport-h);display:grid;place-items:center;padding:24px;background:var(--app-bg-2-sub)!important}.desktop-auth-bridge-card{width:min(560px,100%);border:0;border-radius:16px;padding:20px 20px 12px;background:transparent;display:grid;gap:10px;justify-items:center;text-align:center}.desktop-auth-bridge-card h1{margin:0;font-size:1.5rem;font-weight:700;color:var(--ink-strong)}.desktop-auth-bridge-card p{margin:0;color:var(--ink-muted);line-height:1.5}.desktop-auth-bridge-loading{width:120px;height:120px;object-fit:contain}.desktop-auth-bridge-loading-wrap{display:contents}.desktop-auth-bridge-error{color:var(--app-danger);font-weight:600}.desktop-auth-bridge-actions{margin-top:8px;display:flex;justify-content:center;width:100%}.desktop-auth-bridge-actions button{height:44px;padding:0 22px;border-radius:10px;border:1px solid var(--app-bg-4-extra);background:var(--app-bg-4-extra);color:var(--app-bg-1-main);font-weight:700;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.desktop-auth-bridge-actions button:disabled{opacity:.78;cursor:default}.desktop-splash-page{height:var(--app-viewport-h);width:100%;display:grid;place-items:center;background:var(--app-bg-2-sub)}.desktop-splash-loading{width:clamp(74px,9vw,110px);height:clamp(74px,9vw,110px);object-fit:contain}.dashboard-page{height:var(--app-viewport-h);width:100%;background:var(--app-bg-1-main);display:grid;grid-template-columns:272px 1fr;color:var(--app-text-primary);overflow:hidden}.dashboard-sidebar{background:var(--app-bg-2-sub);border-right:1px solid var(--app-border);display:flex;flex-direction:column;height:var(--app-viewport-h);overflow:hidden}.sidebar-settings-panel{flex:1;display:flex;flex-direction:column;padding:8px 12px 12px;overflow-y:auto;gap:12px}.sidebar-settings-nav{display:grid;gap:6px}.sidebar-settings-nav button{border:0;min-height:38px;border-radius:10px;padding:0 12px;background:transparent;color:var(--app-text-secondary);display:inline-flex;align-items:center;gap:10px;font-size:14px;font-weight:500;cursor:pointer;text-align:left}.sidebar-settings-nav button:hover{background:var(--app-hover);color:var(--app-text-primary)}.sidebar-settings-nav button.active{background:var(--app-hover);color:var(--app-text-primary);box-shadow:inset 0 0 0 1px var(--app-focus-ring)}.sidebar-brand{height:72px;display:flex;align-items:center;padding:20px}:root[data-runtime=desktop][data-desktop-os=macos] .dashboard-sidebar .sidebar-brand{height:82px;padding-top:30px}.sidebar-home-link{border:0;background:transparent;padding:0;display:inline-flex;align-items:center;gap:10px;cursor:pointer;color:inherit}.sidebar-home-link img{width:26px;height:26px;display:block}.sidebar-home-link strong{font-family:var(--app-ui-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:16px;line-height:1;letter-spacing:-.02em;color:var(--app-text-primary);font-weight:700}.sidebar-home-link-back{gap:12px}.sidebar-home-link-back svg{flex:0 0 auto;color:var(--app-text-primary)}.sidebar-close-btn{margin-left:auto;border:0;background:transparent;width:28px;height:28px;border-radius:8px;display:none;place-items:center;color:var(--app-text-muted)}.sidebar-brand img{width:32px;height:32px}.sidebar-brand strong{font-family:var(--app-ui-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:18px;line-height:1.5;letter-spacing:-.025em}.sidebar-block{padding:8px 12px 0}.sidebar-block:nth-of-type(2){flex:1;overflow-y:auto;padding-bottom:12px;-ms-overflow-style:none;scrollbar-width:none}.sidebar-block:nth-of-type(2)::-webkit-scrollbar{width:0;height:0;display:none}.sidebar-title{margin:0 0 6px;font-size:11px;line-height:16.5px;letter-spacing:.06em;font-weight:600;color:var(--app-text-secondary)}.sidebar-title.with-icon{display:inline-flex;align-items:center;gap:8px}.sidebar-title-btn .sidebar-title{margin:0}.sidebar-title-btn{width:100%;min-height:28px;border:0;padding:0 8px;border-radius:8px;background:transparent;display:flex;align-items:center;justify-content:space-between;color:var(--app-text-secondary);cursor:pointer}.novel-list,.recent-list{margin:0;padding:0;list-style:none}.novel-list li{height:31.5px;border-radius:8px;font-size:13px;color:var(--app-text-secondary)}.novel-list li.active{background:var(--app-hover);color:var(--app-text-primary);font-weight:600}.novel-list li span{width:8px;height:8px;border-radius:50%;flex:0 0 8px}.sidebar-item-btn{width:100%;height:100%;border:0;background:transparent;display:flex;align-items:center;gap:10px;padding:0 12px;text-align:left;color:inherit;cursor:pointer;border-radius:8px}.novel-list li p{margin:0;flex:1;font-size:13px;line-height:1.5}.novel-list li.novel-list-add p{margin:0;font-size:13px;line-height:1.5}.novel-list li em{width:4px;height:4px;background:var(--app-text-primary);border-radius:50%}.novel-list li.novel-list-add{padding:0 12px;font-size:13px;color:var(--app-text-muted)}.recent-list li{border-radius:8px}.recent-list li.active{background:var(--app-hover)}.recent-list p{margin:0;font-size:13px;line-height:1.5;color:var(--app-text-secondary)}.recent-list .recent-list-title-row{display:flex;align-items:center;width:100%}.recent-list small{color:var(--app-text-muted);font-size:11px;line-height:1.5}.sidebar-item-btn-recent{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;padding:6px 12px 6px 30px;position:relative}.recent-list-novel-dot{position:absolute;left:12px;top:50%;transform:translateY(-50%);width:8px;height:8px;border-radius:50%;flex:0 0 8px}.recent-list-meta{width:100%}.sidebar-footer{margin-top:auto;border-top:1px solid var(--app-border-soft);padding:13px 12px max(12px,env(safe-area-inset-bottom))}.sidebar-links{display:flex;gap:4px;padding-left:8px}.sidebar-links button{border:0;background:transparent;height:26px;border-radius:8px;padding:0 8px;font-size:10px;color:var(--app-text-secondary);cursor:pointer;display:inline-flex;align-items:center;gap:6px}.sidebar-links button svg{flex:0 0 14px}.sidebar-links button:hover{background:var(--app-hover)}.sidebar-links button.active{background:var(--app-hover);color:var(--app-text-primary)}.sidebar-user{margin-top:4px;width:100%;border:0;background:transparent;border-radius:10px;padding:4px 8px;display:flex;align-items:center;gap:8px;cursor:pointer;text-align:left}.sidebar-user:hover{background:var(--app-hover)}.sidebar-user img,.sidebar-user .sidebar-user-avatar{width:24px;height:24px;border-radius:999px;border:1px solid var(--app-border-soft)}.sidebar-user strong{display:block;font-size:12px;line-height:1.2;color:var(--app-text-primary)}.sidebar-user small{display:block;font-size:10px;line-height:1.2;color:var(--app-text-muted)}.dashboard-main{padding:24px 32px 140px;width:min(960px,calc(100vw - 272px));margin:0 auto;height:var(--app-viewport-h);overflow-y:auto;-ms-overflow-style:none;scrollbar-width:none;max-width:100%}.dashboard-main::-webkit-scrollbar{width:0;height:0;display:none}.dashboard-mobile-drawer{display:none}.topbar{height:41px;display:flex;justify-content:flex-end;align-items:center}.topbar-actions{display:flex;align-items:center;gap:12px}.dashboard-theme-btn{height:40px;padding:0 16px;border-radius:8px;border:1px solid var(--app-border);background:var(--app-bg-3-small);color:var(--app-text-primary);display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .12s ease,border-color .12s ease,color .12s ease}.dashboard-theme-btn:hover,.dashboard-theme-btn:focus-visible{background:var(--app-bg-4-extra)}.mobile-menu-btn{width:36px;height:36px;border:0;border-radius:10px;background:transparent;display:none;place-items:center;color:var(--app-text-primary)}.welcome-section{margin-top:32px}.welcome-section p{margin:0;font-size:14px;line-height:1.5;color:var(--app-text-secondary)}.welcome-section p:first-of-type{display:inline-flex;align-items:center;gap:8px}.welcome-section h1{margin:4px 0;font-family:var(--app-ui-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:44px;line-height:1.14;color:var(--app-text-primary);letter-spacing:-.03em}.attendance-card-panel{--attendance-panel-border: color-mix(in srgb, var(--app-border) 55%, rgba(255, 212, 143, .28));--attendance-panel-bg: radial-gradient(circle at top, rgba(255, 207, 128, .12), transparent 32%), linear-gradient(180deg, rgba(18, 17, 30, .98) 0%, rgba(8, 8, 16, .98) 100%);margin-top:18px;position:relative;overflow:hidden;border-radius:28px;border:1px solid var(--attendance-panel-border);background:var(--attendance-panel-bg);box-shadow:0 28px 64px #05071257;padding:25px 28px}:root:not([data-theme=dark]) .attendance-card-panel{box-shadow:none}.attendance-card-panel:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(circle at 1px 1px,rgba(255,246,214,.18) 1px,transparent 0);background-size:28px 28px;opacity:.12;pointer-events:none}.attendance-card-panel-header{position:relative;z-index:1}.attendance-card-panel-header.is-centered{display:flex;flex-direction:column;align-items:center;text-align:center}.attendance-card-panel-eyebrow{display:inline-flex;align-items:center;gap:22px;margin-bottom:16px}.attendance-card-panel-eyebrow span{width:98px;height:1px;background:linear-gradient(90deg,transparent 0%,rgba(170,123,15,.62) 40%,rgba(170,123,15,.62) 100%);position:relative}.attendance-card-panel-eyebrow span:last-child{background:linear-gradient(90deg,rgba(170,123,15,.62) 0%,rgba(170,123,15,.62) 60%,transparent 100%)}.attendance-card-panel-eyebrow span:after{content:"";position:absolute;top:50%;right:36px;width:12px;height:12px;border:1px solid rgba(170,123,15,.62);border-radius:50%;transform:translateY(-50%)}.attendance-card-panel-eyebrow span:last-child:after{right:auto;left:36px}.attendance-card-panel-eyebrow strong{color:#aa7b0fe0;font-size:12px;font-weight:500;letter-spacing:.36em;text-transform:uppercase}.attendance-card-panel-header h3{margin:0;color:#f3efe9;font-size:28px;line-height:1.04;font-weight:700;letter-spacing:-.03em}.attendance-card-panel-header p{margin:10px 0 0;max-width:520px;color:#e7e0e24d;font-size:14px;line-height:1.6}.attendance-card-stage{position:relative;z-index:1;margin-top:14px;display:flex;align-items:center;gap:28px;min-height:232px}.attendance-card-stage:not(.has-selection){justify-content:center}.attendance-card-stage.has-selection{margin-top:14px;justify-content:center;padding-left:calc(clamp(36px,6vw,112px) + 66px)}.attendance-card-stack{display:flex;align-items:center;gap:26px;flex-wrap:nowrap}.attendance-card-result-shell{width:min(360px,100%);min-height:292px;display:flex;align-items:center;justify-content:flex-start;opacity:0;pointer-events:none}.attendance-card-result-shell.is-visible{opacity:1;pointer-events:auto}.attendance-tarot-card-shell{position:relative;flex:0 0 auto;border:0;background:transparent;padding:0;cursor:pointer}.attendance-tarot-card-shell:disabled{cursor:default}.attendance-tarot-card-shell:focus-visible{outline:2px solid rgba(255,213,132,.92);outline-offset:6px;border-radius:24px}.attendance-tarot-card{position:relative;width:146px;height:232px}.attendance-tarot-face{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;border-radius:22px;box-shadow:0 24px 44px #0102086b;backface-visibility:hidden}.attendance-tarot-back{background:radial-gradient(circle at center,rgba(246,209,136,.08) 0%,transparent 22%),linear-gradient(180deg,#14131d,#090912)}.attendance-tarot-back-frame,.attendance-tarot-front-frame{position:absolute;border-radius:inherit;pointer-events:none}.attendance-tarot-back-frame.outer,.attendance-tarot-front-frame.outer{top:0;right:0;bottom:0;left:0;border:1px solid rgba(245,200,107,.36)}.attendance-tarot-back-frame.middle{top:8px;right:8px;bottom:8px;left:8px;border-radius:18px;border:1px solid rgba(245,200,107,.16)}.attendance-tarot-back-frame.inner,.attendance-tarot-front-frame.inner{top:8px;right:8px;bottom:8px;left:8px;border-radius:16px;border:1px solid rgba(245,200,107,.08)}.attendance-tarot-back-glyph{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;color:#f5c86b57}.attendance-tarot-back-glyph svg{width:56px;height:56px;fill:none;stroke:currentColor;stroke-width:.85}.attendance-tarot-back-star{position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;width:18px;height:18px;background:conic-gradient(from 0deg,transparent 0deg 25deg,rgba(245,200,107,.8) 25deg 40deg,transparent 40deg 90deg,rgba(245,200,107,.8) 90deg 105deg,transparent 105deg 180deg,rgba(245,200,107,.8) 180deg 195deg,transparent 195deg 270deg,rgba(245,200,107,.8) 270deg 285deg,transparent 285deg 360deg);mask:radial-gradient(circle,transparent 0 24%,#000 25% 100%)}.attendance-tarot-back-corners .corner{position:absolute;width:18px;height:18px}.attendance-tarot-back-corners .corner:before,.attendance-tarot-back-corners .corner:after{content:"";position:absolute;background:#f5c86b47}.attendance-tarot-back-corners .corner:before{width:100%;height:1px}.attendance-tarot-back-corners .corner:after{width:1px;height:100%}.attendance-tarot-back-corners .corner-1{top:10px;left:10px}.attendance-tarot-back-corners .corner-2{top:10px;right:10px;transform:scaleX(-1)}.attendance-tarot-back-corners .corner-3{bottom:10px;left:10px;transform:scaleY(-1)}.attendance-tarot-back-corners .corner-4{right:10px;bottom:10px;transform:scale(-1)}.attendance-tarot-front{transform:rotateY(180deg)}.attendance-tarot-numeral{position:absolute;top:16px;left:0;width:100%;text-align:center;font-size:10px;letter-spacing:.26em}.attendance-tarot-illustration{position:absolute;top:44px;right:18px;bottom:74px;left:18px}.attendance-tarot-illustration svg{width:100%;height:100%}.attendance-tarot-divider{position:absolute;left:22px;right:22px;bottom:64px;height:1px;transform-origin:left center}.attendance-tarot-arcana,.attendance-tarot-title{position:absolute;left:12px;right:12px;text-align:center;margin:0}.attendance-tarot-arcana{bottom:36px;font-size:10px;letter-spacing:.18em;text-transform:uppercase}.attendance-tarot-title{bottom:14px;font-size:14px;letter-spacing:.12em;font-weight:700}.attendance-tarot-glow{position:absolute;top:-20px;right:-20px;bottom:-20px;left:-20px;z-index:-1;border-radius:28px;pointer-events:none}.attendance-card-result{width:100%;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;text-align:left}.attendance-card-result-numeral,.attendance-card-result-arcana,.attendance-card-result-copy,.attendance-card-result-quote,.attendance-card-result-actions,.attendance-card-result h4{margin:0}.attendance-card-result-numeral{font-size:12px;letter-spacing:.28em;text-transform:uppercase}.attendance-card-result h4{margin-top:8px;font-size:34px;line-height:1.08;letter-spacing:.1em;font-weight:700}.attendance-card-result-arcana{margin-top:8px;font-size:11px;letter-spacing:.18em;text-transform:uppercase}.attendance-card-result-divider{width:44px;height:1px;margin-top:18px;transform-origin:left center}.attendance-card-result-quote{margin-top:18px;color:#fff5e1d1;font-size:17px;line-height:1.65;word-break:keep-all}.attendance-card-result-copy{margin-top:16px;color:#ffefd470;font-size:12px;letter-spacing:.06em}.attendance-card-result-actions{margin-top:22px;display:flex;align-items:center;justify-content:flex-start;gap:14px;flex-wrap:wrap}.attendance-card-result-badge{display:inline-flex;align-items:center;gap:8px;min-height:36px;border:1px solid currentColor;border-radius:999px;padding:0 16px;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.attendance-card-reset{border:0;background:transparent;color:#fff5e170;padding:0;cursor:pointer;font-size:12px;font-weight:600;letter-spacing:.08em}.attendance-card-reset:hover,.attendance-card-reset:focus-visible{color:#fff5e1d1}.attendance-card-reset:focus-visible{outline:none}@media (max-width: 1100px){.attendance-card-panel{padding:25px 22px}.attendance-card-panel-header h3{font-size:24px}.attendance-card-panel-header p{font-size:14px}.attendance-card-stage{margin-top:42px;flex-direction:column;align-items:stretch;min-height:0}.attendance-card-stage.has-selection{padding-left:0}.attendance-card-stack{justify-content:center;flex-wrap:wrap}.attendance-card-result{width:100%;max-width:none}.attendance-card-result-shell{width:100%;min-height:0}}@media (max-width: 720px){.attendance-card-panel{border-radius:22px;padding:25px 16px}.attendance-card-panel-header h3{font-size:20px}.attendance-card-panel-eyebrow{gap:14px;margin-bottom:12px}.attendance-card-panel-eyebrow span{width:42px}.attendance-card-panel-eyebrow span:after{right:14px;width:10px;height:10px}.attendance-card-panel-eyebrow span:last-child:after{left:14px}.attendance-card-panel-eyebrow strong{font-size:10px;letter-spacing:.28em}.attendance-card-panel-header p{margin-top:10px;font-size:12px}.attendance-card-stage{margin-top:28px;gap:18px}.attendance-card-stack{display:grid;width:100%;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;justify-items:center}.attendance-card-stage.has-selection .attendance-card-stack{display:flex;justify-content:flex-start}.attendance-tarot-card{width:132px;height:212px}.attendance-card-result h4{font-size:28px}.attendance-card-result-quote{font-size:15px}}.challenge-card{margin-top:16px;min-height:156px;border-radius:14px;border:1px solid var(--app-border);background:var(--app-bg-1-main);display:block;overflow:hidden}.challenge-card article{padding:24px}.challenge-card article p:first-child{margin:0;font-size:11px;line-height:16.5px;letter-spacing:.06em;font-weight:600;color:var(--app-danger)}.challenge-card article h3{margin:6px 0 8px;font-family:var(--app-ui-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:28px;line-height:1.15;color:var(--app-text-primary)}.challenge-card article p{margin:0;font-size:13px;line-height:1.5;color:var(--app-text-secondary)}.stats-grid{margin-top:16px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;position:relative}.stats-grid article{position:relative;overflow:hidden;background:var(--app-bg-1-main);border:1px solid var(--app-border);border-radius:12px;padding:14px 16px}.stats-grid p{margin:0;color:var(--app-text-secondary);font-size:12px}.stats-grid h3{margin:4px 0 0;font-size:33px;line-height:1;color:var(--app-text-primary)}.stats-grid small{display:block;margin-top:4px;color:var(--app-text-primary);font-size:11px;font-weight:600}.activity-card,.goals-card{margin-top:16px;background:var(--app-bg-1-main);border:1px solid var(--app-border);border-radius:14px;padding:20px;overflow:hidden}.activity-card{--activity-level-0: var(--app-bg-4-extra);--activity-level-1: var(--app-bg-3-small);--activity-level-2: var(--app-bg-2-sub);--activity-level-3: var(--app-text-primary);--activity-level-4: var(--app-text-primary);overflow:visible;position:relative}.activity-card header,.goals-card header{display:flex;justify-content:space-between;align-items:center}.activity-card h3,.goals-card h3{margin:0;font-size:15px;line-height:1.5}.activity-card header p,.goals-card header p{margin:0;font-size:12px;color:var(--app-text-secondary)}.goals-header-actions{display:inline-flex;align-items:center;gap:8px}.goals-add-btn{width:22px;height:22px;border:1px dashed var(--app-border);border-radius:999px;background:transparent;color:var(--app-text-secondary);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.goals-add-btn:hover{border-color:var(--app-focus-ring);color:var(--app-text-primary);background:var(--app-hover)}.goals-add-btn:focus-visible{outline:2px solid var(--app-focus-ring);outline-offset:1px;border-color:var(--app-focus-ring)}.activity-grid-wrap{position:relative;margin-top:12px;max-width:100%;overflow-x:auto;overflow-y:visible;-ms-overflow-style:none;scrollbar-width:none}.activity-grid-wrap::-webkit-scrollbar{width:0;height:0;display:none}.month-row{display:grid;grid-template-columns:repeat(53,minmax(12px,1fr));gap:3px;margin-bottom:6px;width:100%;min-width:792px}.month-row span{grid-row:1;font-size:9px;color:var(--app-text-muted);transform:translate(-1px)}.month-row.month-row-ko span{white-space:nowrap;word-break:keep-all}.activity-grid{display:grid;grid-template-columns:repeat(53,minmax(12px,1fr));grid-template-rows:repeat(7,1fr);grid-auto-flow:column;gap:3px;width:100%;min-width:792px}.activity-grid .activity-cell{width:100%;height:auto;aspect-ratio:1 / 1;border-radius:2px;display:block;border:0;padding:0;cursor:pointer}.activity-card footer i{width:12px;height:12px;border-radius:2px;display:block}.activity-grid .activity-cell.future{background:transparent;border:0;cursor:default;pointer-events:none}.activity-grid .activity-cell:focus-visible{outline:2px solid var(--app-text-primary);outline-offset:1px}.activity-card .level-0{background:var(--activity-level-0)}.activity-card .level-1{background:var(--activity-level-1)}.activity-card .level-2{background:var(--activity-level-2)}.activity-card .level-3{background:var(--activity-level-3)}.activity-card .level-4{background:var(--activity-level-4)}.activity-tooltip{position:absolute;transform:translate(-50%,-100%);pointer-events:none;background:var(--app-text-primary);color:var(--app-bg-1-main);border-radius:8px;padding:8px 10px;font-size:11px;line-height:1.3;z-index:2;white-space:nowrap;box-shadow:0 8px 20px var(--app-border-soft)}.activity-tooltip.below{transform:translate(-50%)}.activity-tooltip strong{display:block;font-size:11px;font-weight:600}.activity-tooltip span{display:block;margin-top:2px;opacity:.8}.activity-card footer{margin-top:10px;display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:11px;color:var(--app-text-secondary)}.activity-card footer div{display:flex;gap:6px}.activity-footer-summary{display:inline-flex;align-items:center;gap:10px;min-width:0}.activity-footer-summary span+span{position:relative;padding-left:10px}.activity-footer-summary span+span:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:1px;height:10px;background:var(--app-border)}.activity-footer-legend{display:inline-flex;align-items:center;gap:8px}@media (max-width: 960px){.activity-grid-wrap{overflow-x:scroll;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--editor-scroll-thumb) transparent;padding-bottom:10px}.activity-grid-wrap::-webkit-scrollbar{width:8px;height:8px;display:block}.activity-grid-wrap::-webkit-scrollbar-track{background:transparent}.activity-grid-wrap::-webkit-scrollbar-thumb{background:var(--editor-scroll-thumb);border-radius:999px}}.cloud-gated .month-row,.cloud-gated .activity-grid,.cloud-gated footer{filter:grayscale(.25);opacity:.35;pointer-events:none}.stats-grid.cloud-gated article{pointer-events:none}.cloud-lock.cloud-lock-card{top:0;right:0;bottom:0;left:0;border-radius:12px;z-index:1}.cloud-lock.cloud-lock-card:not(.cloud-lock-card-message){padding:0}.cloud-lock.cloud-lock-card:not(.cloud-lock-card-message) strong,.cloud-lock.cloud-lock-card:not(.cloud-lock-card-message) p{display:none}.cloud-lock{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;display:grid;place-content:center;gap:6px;text-align:center;padding:16px;background:var(--app-hover)}.cloud-lock strong{font-size:14px;color:var(--app-text-primary)}.cloud-lock p{margin:0;font-size:12px;color:var(--app-text-secondary)}.goal-progress{margin-top:12px;height:6px;background:var(--app-bg-3-small);border-radius:999px;overflow:hidden}.goal-progress span{display:block;height:100%;background:var(--app-text-primary);transition:width .14s ease}.goals-card ul{list-style:none;margin:16px 0 0;padding:0;display:grid;gap:8px}.goals-card li{min-height:37px;display:grid;grid-template-columns:18px minmax(0,1fr) 22px;column-gap:12px;align-items:start;border-radius:8px;transition:background-color .12s ease}.goals-card li.drag-over{background:var(--app-hover)}.goals-card .goal-check{width:18px;height:18px;border:1.5px solid var(--app-border);border-radius:999px;margin-top:2px;background:transparent;cursor:pointer;padding:0}.goals-card li.done .goal-check{border:0;background:var(--app-text-primary);position:relative}.goals-card li.done .goal-check:after{content:"";position:absolute;left:5px;top:3px;width:6px;height:10px;border-right:2px solid var(--app-bg-1-main);border-bottom:2px solid var(--app-bg-1-main);transform:rotate(40deg)}.goals-card .goal-content{min-width:0;border-radius:6px;cursor:text}.goals-card .goal-content:focus-visible{outline:0}.goals-card li p{margin:0;font-size:14px;line-height:21px;color:var(--app-text-primary)}.goals-card li.done p{color:var(--app-text-secondary);text-decoration:line-through}.goals-card li small{display:block;margin-top:2px;color:var(--app-text-secondary);font-size:11px}.goals-card li input{margin:0;width:100%;min-height:21px;padding:0;border:0;border-bottom:1px solid var(--app-border);background:transparent;color:var(--app-text-primary);font-size:14px;line-height:21px;font-family:inherit}.goals-card li input:focus{outline:none;border-bottom-color:var(--app-focus-ring)}.goals-card li .goal-remove-btn{margin-top:1px;width:22px;height:22px;border-radius:999px;border:1px solid var(--app-border);color:var(--app-text-secondary);background:transparent;opacity:0;pointer-events:none;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:opacity .1s ease,border-color .12s ease,color .12s ease,background-color .12s ease}.goals-card li:hover .goal-remove-btn,.goals-card li:focus-within .goal-remove-btn{opacity:1;pointer-events:auto}.goals-card li .goal-remove-btn:hover{border-color:var(--app-focus-ring);color:var(--app-text-primary);background:var(--app-hover)}.goals-card li .goal-remove-btn:focus-visible{opacity:1;pointer-events:auto;outline:2px solid var(--app-focus-ring);outline-offset:1px;border-color:var(--app-focus-ring)}.goals-card li:hover .goal-content p,.goals-card li:focus-within .goal-content p{text-decoration:underline;text-decoration-color:var(--app-border);text-underline-offset:3px}.goals-card li.done:hover .goal-content p,.goals-card li.done:focus-within .goal-content p{text-decoration:line-through}.settings-page{height:var(--app-viewport-h);width:100%;background:var(--app-bg-2-sub);display:grid;grid-template-columns:272px 1fr;color:var(--app-text-primary);overflow:hidden;position:relative}.settings-main{background:var(--app-bg-1-main);padding:24px 32px 92px;width:calc(100vw - 272px);margin:0;height:var(--app-viewport-h);overflow-y:auto;overflow-x:hidden;-ms-overflow-style:none;scrollbar-width:none}.settings-main::-webkit-scrollbar{width:0;height:0;display:none}.settings-mobile-topbar{display:none}.settings-shell{display:block}.settings-content{min-width:0;width:min(980px,100%);margin:0 auto}.settings-heading{display:none}.settings-heading h1{margin:0;font-family:var(--app-ui-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:49px;line-height:1.03;letter-spacing:-.03em;color:var(--app-text-primary);font-weight:600}.settings-heading p{margin:6px 0 0;color:var(--app-text-secondary);font-size:14px;line-height:1.45}.settings-group{margin-top:20px}.settings-content>:first-child{margin-top:0}.settings-group h3{margin:0 0 10px;font-size:14px;line-height:1.2;color:var(--app-text-primary);display:inline-flex;align-items:center;gap:8px;font-weight:600}.settings-card{border:1px solid var(--app-border);border-radius:14px;background:var(--app-bg-1-main);overflow:hidden}.setting-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:20px;padding:14px 18px;border-top:1px solid var(--app-border-soft)}.setting-row:first-child{border-top:0}.setting-copy h4{margin:0;font-size:15px;line-height:1.45;color:var(--app-text-primary);font-weight:500}.setting-copy p{margin:2px 0 0;font-size:12px;line-height:1.4;color:var(--app-text-secondary);font-weight:400}.setting-control{justify-self:end;display:inline-flex;align-items:center;gap:8px}.toggle-switch{position:relative;width:38px;height:22px;display:inline-block}.toggle-switch input{opacity:0;width:0;height:0;position:absolute}.toggle-switch span{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:999px;background:var(--app-bg-3-small);transition:background .16s ease}.toggle-switch span:after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:var(--app-bg-1-main);box-shadow:0 1px 2px var(--app-border-soft);transition:transform .16s ease}.toggle-switch input:checked+span{background:var(--app-bg-4-extra)}.toggle-switch input:checked+span:after{transform:translate(16px)}.shortcut-grid{border-top:1px solid var(--app-border-soft);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:12px}.shortcut-grid div{border:1px solid var(--app-border-soft);border-radius:10px;background:var(--app-bg-2-sub);min-height:48px;padding:8px 10px;display:flex;align-items:center;justify-content:space-between;gap:10px}.shortcut-grid p{margin:0;color:var(--app-text-secondary);font-size:12px}.shortcut-grid kbd{border:1px solid var(--app-border);border-radius:6px;min-width:32px;height:26px;padding:0 8px;font-size:11px;display:inline-grid;place-items:center;background:var(--app-bg-1-main)}.settings-actions{margin-top:16px;display:flex;justify-content:flex-end}.social-connect-btn{border:1px solid var(--app-border);border-radius:999px;height:34px;padding:0 12px;background:var(--app-bg-1-main);color:var(--app-text-primary);display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;cursor:pointer}.theme-grid{margin-top:18px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;max-width:540px}.theme-card{border:1px solid var(--app-border);border-radius:14px;min-height:132px;background:var(--app-bg-1-main);cursor:pointer;display:grid;place-items:center;gap:10px;position:relative}.theme-card span{width:58px;height:58px;border-radius:999px;display:grid;place-items:center;background:var(--app-bg-3-small);color:var(--app-text-secondary)}.theme-card strong{font-size:20px;color:var(--app-text-secondary);font-weight:500}.theme-card.active{border-color:var(--app-bg-4-extra);box-shadow:0 4px 12px var(--app-border-soft)}.theme-card.active span{background:var(--app-bg-4-extra);color:var(--app-bg-1-main)}.theme-card.active strong{color:var(--app-text-primary)}.theme-card i{position:absolute;right:-8px;top:-8px;width:24px;height:24px;border-radius:999px;background:var(--app-bg-4-extra);color:var(--app-bg-1-main);font-style:normal;display:grid;place-items:center;font-size:14px}.widget-settings{margin-top:16px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;max-width:700px}.widget-settings article>header{display:flex;align-items:center;gap:10px}.widget-settings article>header h4{margin:0;font-size:16px;font-weight:600}.widget-status-dot{display:block;width:20px;height:20px;border-radius:6px;background:var(--app-bg-4-extra)}.widget-color-picker{border:0;background:transparent;padding:0;margin:0;width:20px;height:20px;border-radius:6px;cursor:pointer;position:relative}.widget-color-picker input{position:absolute;opacity:0;width:0;height:0;pointer-events:none}.widget-color-picker:focus-visible{outline:2px solid var(--app-bg-4-extra);outline-offset:2px}.widget-settings article>header .toggle-switch{margin-left:auto}.widget-preview{margin-top:12px;border:1px solid var(--app-border);border-radius:14px;background:var(--app-bg-1-main);padding:14px}.widget-preview p{margin:0;color:var(--app-text-secondary);font-size:12px;letter-spacing:.08em;font-weight:700}.heatmap-preview div{margin-top:10px;display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.heatmap-preview i{width:100%;aspect-ratio:1 / 1;border-radius:4px;background:var(--app-bg-4-extra)}.heatmap-preview i.tone-1{background:var(--app-bg-3-small)}.heatmap-preview i.tone-2{background:var(--app-bg-2-sub)}.heatmap-preview i.tone-3{background:var(--app-text-primary)}.goal-preview .goal-head{display:flex;justify-content:space-between;align-items:center}.goal-preview .goal-head strong{font-size:13px;color:var(--app-text-primary)}.goal-preview .goal-line{margin-top:10px;height:6px;border-radius:999px;background:var(--app-bg-3-small);overflow:hidden}.goal-preview .goal-line i{display:block;width:25%;height:100%;background:var(--app-bg-4-extra)}.goal-preview ul{margin:12px 0 0;padding:0;list-style:none;display:grid;gap:8px}.goal-preview li{font-size:13px;color:var(--app-text-primary);display:flex;align-items:center;gap:8px}.goal-preview li:before{content:"";width:16px;height:16px;border-radius:5px;border:1px solid var(--app-border)}.goal-preview li.done{color:var(--app-text-muted);text-decoration:line-through}.goal-preview li.done:before{border:0;background:var(--app-bg-4-extra)}.account-card{margin-top:20px;border:1px solid var(--app-border);border-radius:14px;background:var(--app-bg-1-main);padding:12px}.account-profile{display:grid;grid-template-columns:72px minmax(0,1fr) auto;align-items:center;gap:12px}.account-profile-avatar{width:72px;height:72px;border-radius:18px;overflow:hidden;display:inline-flex;align-items:center;justify-content:center}.account-profile-avatar img,.account-profile-avatar svg{width:100%;height:100%;display:block;object-fit:cover}.account-profile h4{margin:0;font-size:24px;line-height:1;color:var(--app-text-primary);font-weight:600}.account-profile p{margin:4px 0 0;font-size:14px;color:var(--app-text-secondary)}.account-profile small{display:block;margin-top:5px;font-size:14px;color:var(--app-text-muted)}.account-since-row{display:flex;align-items:center;justify-content:flex-start;gap:0;white-space:nowrap}.account-since-row img{width:14px;height:14px;display:inline-block;flex:0 0 14px;align-self:center;vertical-align:middle}.account-since-row span{display:inline-flex;align-items:center;align-self:center;margin-left:4px;line-height:1.2}.account-card h5,.danger-zone h5{margin:0 0 10px;font-size:11px;letter-spacing:.08em;color:var(--app-text-muted)}.danger-zone{margin-top:20px}.linked-list{margin:0;padding:0;list-style:none}.linked-list li{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;padding:12px 0;border-top:1px solid var(--app-border-soft)}.linked-list li:first-child{border-top:0}.linked-list li>div{display:flex;align-items:center;gap:10px}.linked-icon{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:var(--app-bg-3-small)}.linked-icon img{width:16px;height:16px;display:block}.linked-icon.google{background:var(--app-bg-1-main)}.linked-icon.naver{background:var(--naver)}.linked-icon.kakao{background:var(--kakao)}.linked-list strong{display:block;font-size:15px;color:var(--app-text-primary);font-weight:600}.linked-list small{display:block;margin-top:2px;font-size:12px;color:var(--app-text-secondary)}.danger-zone{margin-top:16px}.danger-zone article{border:1px solid var(--app-danger);border-radius:14px;background:var(--app-danger-bg);padding:14px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px}.danger-zone h4{margin:0;color:var(--app-danger);font-size:18px;font-weight:600}.danger-zone p{margin:3px 0 0;font-size:12px;color:var(--app-text-secondary)}.danger-zone button{border:1px solid var(--app-danger);height:30px;border-radius:999px;background:var(--app-danger-bg);color:var(--app-danger);font-size:12px;font-weight:700;padding:0 18px;cursor:pointer}.settings-trash-empty{padding:18px;color:var(--app-text-secondary);font-size:13px}.settings-trash-list{margin:0;padding:0;list-style:none}.settings-trash-item{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;padding:14px 18px;border-top:1px solid var(--app-border-soft)}.settings-trash-item:first-child{border-top:0}.settings-trash-copy h4{margin:0;font-size:15px;line-height:1.45;color:var(--app-text-primary);font-weight:600}.settings-trash-copy p{margin:3px 0 0;font-size:12px;line-height:1.4;color:var(--app-text-secondary)}.settings-trash-actions{display:inline-flex;align-items:center;gap:8px}.settings-trash-delete-btn{border:1px solid var(--app-danger);height:32px;border-radius:10px;background:var(--app-danger-bg);color:var(--app-danger);font-size:12px;font-weight:600;padding:0 12px;cursor:pointer}.settings-fab{position:fixed;right:28px;bottom:18px;width:62px;height:62px;border:0;border-radius:999px;background:var(--app-bg-4-extra);color:var(--app-bg-1-main);display:grid;place-items:center;box-shadow:0 14px 28px var(--app-border-soft);cursor:pointer;z-index:25}.editor-page{--editor-bottom-h: 32px;--editor-left-w: 240px;--editor-right-w: 240px;--editor-path-font-size: 13px;--editor-panel-motion-duration: .26s;--editor-panel-motion-ease: cubic-bezier(.22, 1, .36, 1);--editor-content-bg: var(--app-bg-1-main);--editor-scroll-track: var(--app-border);height:var(--app-viewport-h);width:100%;background:var(--app-bg-1-main);display:grid;position:relative;grid-template-columns:var(--editor-left-w) 1fr var(--editor-right-w);overflow:hidden;transition:grid-template-columns var(--editor-panel-motion-duration) var(--editor-panel-motion-ease)}.editor-page :is(.editor-document,.timeline-make,.editor-right-panel-note-editor,.plot-map-canvas-scroll,.character-map-canvas-scroll,.editor-workspace-tree,.editor-sidebar-search-results-list,.editor-novel-picker-menu){scrollbar-width:thin;scrollbar-color:var(--editor-scroll-thumb) var(--editor-scroll-track)}.editor-page :is(.editor-document,.timeline-make,.editor-right-panel-note-editor,.plot-map-canvas-scroll,.character-map-canvas-scroll,.editor-workspace-tree,.editor-sidebar-search-results-list,.editor-novel-picker-menu)::-webkit-scrollbar{width:10px;height:10px}.editor-page :is(.editor-document,.timeline-make,.editor-right-panel-note-editor,.plot-map-canvas-scroll,.character-map-canvas-scroll,.editor-workspace-tree,.editor-sidebar-search-results-list,.editor-novel-picker-menu)::-webkit-scrollbar-track{background:var(--editor-scroll-track);border-radius:999px}.editor-page :is(.editor-document,.timeline-make,.editor-right-panel-note-editor,.plot-map-canvas-scroll,.character-map-canvas-scroll,.editor-workspace-tree,.editor-sidebar-search-results-list,.editor-novel-picker-menu)::-webkit-scrollbar-thumb{background:var(--editor-scroll-thumb);border:2px solid transparent;background-clip:content-box;border-radius:999px}.editor-page :is(.editor-document,.timeline-make,.editor-right-panel-note-editor,.plot-map-canvas-scroll,.character-map-canvas-scroll,.editor-workspace-tree,.editor-sidebar-search-results-list,.editor-novel-picker-menu)::-webkit-scrollbar-thumb:hover{background:var(--editor-scroll-thumb-hover)}.editor-page .editor-document,.editor-page .timeline-make,.editor-page .editor-right-panel-note-editor,.editor-page .plot-map-canvas-scroll,.editor-page .character-map-canvas-scroll,.editor-page .editor-workspace-tree,.editor-page .editor-sidebar-search-results-list,.editor-page .editor-novel-picker-menu{scrollbar-width:thin;scrollbar-color:var(--editor-scroll-thumb) var(--editor-scroll-track)}.editor-page .editor-document::-webkit-scrollbar,.editor-page .timeline-make::-webkit-scrollbar,.editor-page .editor-right-panel-note-editor::-webkit-scrollbar,.editor-page .plot-map-canvas-scroll::-webkit-scrollbar,.editor-page .character-map-canvas-scroll::-webkit-scrollbar,.editor-page .editor-workspace-tree::-webkit-scrollbar,.editor-page .editor-sidebar-search-results-list::-webkit-scrollbar,.editor-page .editor-novel-picker-menu::-webkit-scrollbar{width:10px;height:10px}.editor-page .editor-document::-webkit-scrollbar-track,.editor-page .timeline-make::-webkit-scrollbar-track,.editor-page .editor-right-panel-note-editor::-webkit-scrollbar-track,.editor-page .plot-map-canvas-scroll::-webkit-scrollbar-track,.editor-page .character-map-canvas-scroll::-webkit-scrollbar-track,.editor-page .editor-workspace-tree::-webkit-scrollbar-track,.editor-page .editor-sidebar-search-results-list::-webkit-scrollbar-track,.editor-page .editor-novel-picker-menu::-webkit-scrollbar-track{background:var(--editor-scroll-track);border-radius:999px}.editor-page .editor-document::-webkit-scrollbar-thumb,.editor-page .timeline-make::-webkit-scrollbar-thumb,.editor-page .editor-right-panel-note-editor::-webkit-scrollbar-thumb,.editor-page .plot-map-canvas-scroll::-webkit-scrollbar-thumb,.editor-page .character-map-canvas-scroll::-webkit-scrollbar-thumb,.editor-page .editor-workspace-tree::-webkit-scrollbar-thumb,.editor-page .editor-sidebar-search-results-list::-webkit-scrollbar-thumb,.editor-page .editor-novel-picker-menu::-webkit-scrollbar-thumb{background:var(--editor-scroll-thumb);border:2px solid transparent;background-clip:content-box;border-radius:999px}.editor-page .editor-document::-webkit-scrollbar-thumb:hover,.editor-page .timeline-make::-webkit-scrollbar-thumb:hover,.editor-page .editor-right-panel-note-editor::-webkit-scrollbar-thumb:hover,.editor-page .plot-map-canvas-scroll::-webkit-scrollbar-thumb:hover,.editor-page .character-map-canvas-scroll::-webkit-scrollbar-thumb:hover,.editor-page .editor-workspace-tree::-webkit-scrollbar-thumb:hover,.editor-page .editor-sidebar-search-results-list::-webkit-scrollbar-thumb:hover,.editor-page .editor-novel-picker-menu::-webkit-scrollbar-thumb:hover{background:var(--editor-scroll-thumb-hover)}.editor-page :is(.editor-document,.timeline-make,.editor-right-panel-note-editor,.plot-map-canvas-scroll,.character-map-canvas-scroll,.plot-episode-list,.plot-episode-unassigned .plot-episode-list,.character-board-list-grid,.character-board-selected-column,.character-board-other-list,.character-board-panel-body){scrollbar-color:var(--editor-scroll-thumb) transparent}.editor-page :is(.editor-document,.timeline-make,.editor-right-panel-note-editor,.plot-map-canvas-scroll,.character-map-canvas-scroll,.plot-episode-list,.plot-episode-unassigned .plot-episode-list,.character-board-list-grid,.character-board-selected-column,.character-board-other-list,.character-board-panel-body)::-webkit-scrollbar-track{background:transparent;box-shadow:none}.editor-page.plot-mode{grid-template-columns:var(--editor-left-w) minmax(0,1fr)}.editor-sidebar,.editor-timeline{background:var(--app-bg-2-sub);border-right:1px solid var(--app-border-soft);height:var(--app-viewport-h);display:flex;flex-direction:column;position:relative}.editor-timeline{border-right:0;border-left:1px solid var(--app-border-soft)}.editor-timeline>header,.timeline-characters-head,.timeline-heading-row,.editor-timeline-footer{background:var(--app-bg-2-sub)}.editor-sidebar-desktop.collapsed{opacity:0;transform:translate(-10px);visibility:hidden;pointer-events:none;overflow:hidden;transition:opacity var(--editor-panel-motion-duration) var(--editor-panel-motion-ease),transform var(--editor-panel-motion-duration) var(--editor-panel-motion-ease),visibility 0s linear var(--editor-panel-motion-duration)}.editor-sidebar-desktop{opacity:1;visibility:visible;transform:translate(0);transition:opacity var(--editor-panel-motion-duration) var(--editor-panel-motion-ease),transform var(--editor-panel-motion-duration) var(--editor-panel-motion-ease),visibility 0s linear;will-change:opacity,transform}.editor-sidebar-resizer{position:absolute;top:0;right:-3px;width:6px;height:100%;border:0;padding:0;background:transparent;cursor:col-resize;z-index:12}.editor-sidebar-resizer-right{left:-3px;right:auto}.editor-sidebar-resizer:after{content:"";position:absolute;top:0;left:2px;width:2px;height:100%;background:transparent;transition:background-color .14s ease}.editor-sidebar-resizer:hover:after,.editor-sidebar-resizer:focus-visible:after{background:var(--app-focus-ring)}.editor-workspace-divider-toggle{position:absolute;left:calc(var(--editor-left-w) - 12px);top:50%;transform:translateY(-50%);width:24px;height:54px;border:1px solid var(--app-border);border-radius:999px;background:var(--app-bg-1-main);color:var(--app-text-muted);display:inline-flex;align-items:center;justify-content:center;z-index:13;box-shadow:0 8px 16px var(--app-border-soft);transition:left var(--editor-panel-motion-duration) var(--editor-panel-motion-ease),border-radius var(--editor-panel-motion-duration) var(--editor-panel-motion-ease),color .16s ease,border-color .16s ease,background-color .16s ease}.editor-workspace-divider-toggle:hover,.editor-workspace-divider-toggle:focus-visible{color:var(--app-text-primary);border-color:var(--app-focus-ring)}.editor-workspace-divider-toggle.collapsed{left:0;border-radius:0 10px 10px 0;box-shadow:0 8px 16px var(--app-border)}.editor-timeline-divider-toggle{position:absolute;right:calc(var(--editor-right-w) - 12px);top:50%;transform:translateY(-50%);width:24px;height:54px;border:1px solid var(--app-border);border-radius:999px;background:var(--app-bg-1-main);color:var(--app-text-muted);display:inline-flex;align-items:center;justify-content:center;z-index:13;box-shadow:0 8px 16px var(--app-border-soft);transition:right var(--editor-panel-motion-duration) var(--editor-panel-motion-ease),border-radius var(--editor-panel-motion-duration) var(--editor-panel-motion-ease),color .16s ease,border-color .16s ease,background-color .16s ease}.editor-timeline-divider-toggle:hover,.editor-timeline-divider-toggle:focus-visible{color:var(--app-text-primary);border-color:var(--app-focus-ring)}.editor-timeline-divider-toggle.collapsed{right:0;border-radius:10px 0 0 10px;box-shadow:0 8px 16px var(--app-border)}.editor-timeline-top-toggle{position:absolute;top:27px;right:16px;transform:translateY(-50%);width:30px;height:30px;border:1px solid var(--app-border);border-radius:8px;background:var(--app-bg-1-main);color:var(--app-text-muted);display:inline-flex;align-items:center;justify-content:center;z-index:32;transition:color .16s ease,border-color .16s ease,background-color .16s ease}.editor-timeline-top-toggle:hover,.editor-timeline-top-toggle:focus-visible{color:var(--app-text-primary);border-color:var(--app-focus-ring)}.editor-sidebar-brand{height:40px;border-bottom:1px solid var(--app-border-soft);padding:0 12px;display:flex;align-items:center;box-sizing:border-box;flex-shrink:0}:root[data-runtime=desktop][data-desktop-os=macos] .editor-sidebar-desktop .editor-sidebar-brand{padding-left:calc(12px + var(--desktop-traffic-left))}.editor-project-row{height:40px;padding:0 12px;border-bottom:1px solid var(--app-border-soft);display:flex;align-items:center;box-sizing:border-box;flex-shrink:0;min-width:0}.editor-project-row p{margin:0;font-size:13px;color:var(--app-text-primary);flex:1}.novel-name-label{width:100%;max-width:100%;min-width:0;height:30px;border:0;border-radius:8px;background:transparent;color:var(--app-text-primary);font-size:13px;font-weight:600;padding:0 8px;display:inline-flex;align-items:center;justify-content:flex-start;text-align:left;cursor:pointer}.novel-name-label svg{color:var(--app-text-muted);flex:0 0 auto}.novel-name-label-text{flex:0 1 auto;min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.novel-name-label:hover{background:var(--app-hover)}.novel-name-label:hover svg{color:var(--app-text-secondary)}.editor-novel-picker{flex:1 1 auto;min-width:0;position:relative;max-width:none;display:flex;justify-content:flex-start}.editor-novel-controls{width:100%;min-width:0;display:flex;align-items:center;gap:4px}.editor-novel-overview-btn{width:30px;height:30px;border:0;border-radius:8px;background:transparent;color:var(--app-text-muted);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex:0 0 auto;margin-left:auto}.editor-novel-overview-btn:hover{background:var(--app-hover);color:var(--app-text-secondary)}.editor-novel-overview-btn.active{background:var(--app-bg-3-small);color:var(--app-text-primary)}.editor-novel-picker-menu{position:absolute;left:0;top:calc(100% + 6px);width:100%;max-height:220px;overflow-y:auto;border-radius:10px;border:1px solid var(--app-border);background:var(--app-surface-card);box-shadow:0 8px 28px var(--app-border);z-index:30;padding:6px}.editor-novel-picker-row{display:flex;align-items:center;gap:4px}.editor-novel-picker-item{width:auto;flex:1 1 auto;border:0;border-radius:8px;background:transparent;color:var(--app-text-secondary);height:30px;display:flex;align-items:center;gap:8px;padding:0 8px;cursor:pointer;text-align:left;font-size:13px}.editor-novel-picker-delete{width:26px;height:26px;border:0;border-radius:8px;background:transparent;color:var(--app-text-tertiary);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex:0 0 auto}.editor-novel-picker-item i{width:8px;height:8px;border-radius:50%;flex:0 0 8px}.editor-novel-picker-item span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editor-novel-picker-item:hover,.editor-novel-picker-item:focus-visible{background:var(--app-hover)}.editor-novel-picker-item.active{background:var(--app-border-soft);color:var(--app-text-primary);font-weight:600}.editor-novel-picker-delete:hover:not(:disabled){background:var(--app-danger-bg);color:var(--app-danger)}.editor-novel-picker-delete:disabled{opacity:.4;cursor:default}.editor-project-search{height:40px;padding:0 12px;border-bottom:1px solid var(--app-border-soft);display:flex;align-items:center;flex-shrink:0}.editor-project-search label{width:100%;height:100%;border:0;border-radius:0;display:inline-flex;align-items:center;gap:7px;padding:0 10px;color:var(--app-text-secondary);background:transparent}.editor-project-search input{flex:1;min-width:0;height:100%;border:0;background:transparent;color:var(--app-text-primary);font-size:13px;padding:0;outline:none}.editor-project-search-clear-btn{width:16px;height:16px;border:0;background:transparent;padding:0;color:var(--app-text-secondary);display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;cursor:pointer}.editor-project-search input::placeholder{color:var(--app-text-muted)}.editor-quick-links{border-bottom:1px solid var(--app-border-soft);padding:10px 12px;display:grid;gap:4px}.editor-quick-links button{height:30px;border:0;background:transparent;border-radius:8px;text-align:left;padding:0 10px;font-size:13px;color:var(--app-text-secondary);display:inline-flex;align-items:center;gap:8px}.editor-quick-links button:hover{background:var(--app-hover)}.editor-quick-links button.active{background:var(--app-text-primary);color:var(--app-bg-1-main);font-weight:600}.editor-workspace-tree{padding:10px 12px;overflow-x:hidden;overflow-y:auto;flex:1;min-height:0}.editor-sidebar-search-results{padding:10px 12px;overflow:hidden;flex:1;min-height:0;display:flex;flex-direction:column}.editor-sidebar-search-results .workspace-tree-head h4{font-size:13px;font-weight:700;letter-spacing:0}.editor-sidebar-search-results-list{min-height:0;overflow-y:auto;display:grid;gap:8px;padding-bottom:6px}.editor-sidebar-search-item{width:100%;border:1px solid var(--app-border);border-radius:10px;background:var(--app-hover);padding:10px;display:flex;align-items:flex-start;gap:9px;text-align:left;cursor:pointer;transition:background-color .14s ease,border-color .14s ease}.editor-sidebar-search-item:hover{border-color:var(--app-focus-ring);background:var(--app-bg-3-small)}.editor-sidebar-search-item-icon{width:22px;height:22px;border-radius:7px;background:var(--app-border-soft);color:var(--app-text-secondary);display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;margin-top:1px}.editor-sidebar-search-item-content{min-width:0;display:grid;gap:2px}.editor-sidebar-search-item-content strong{font-size:13px;font-weight:600;line-height:1.25;color:var(--app-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.editor-sidebar-search-item-content small{font-size:13px;line-height:1.35;color:var(--app-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.editor-sidebar-search-highlight{background:var(--app-bg-3-small);color:var(--app-text-primary);border-radius:4px;padding:0 2px;font:inherit}.editor-sidebar-search-empty{border:1px dashed var(--app-border);border-radius:10px;padding:12px;font-size:13px;color:var(--app-text-secondary)}.workspace-tree-scroll-x{width:100%;min-width:0;overflow-x:scroll;overflow-y:visible;scrollbar-width:none;-ms-overflow-style:none}.workspace-tree-scroll-x::-webkit-scrollbar{height:0;width:0;display:none}.editor-workspace-tree h4{margin:0 0 10px;font-size:13px;letter-spacing:0;color:var(--app-text-muted)}.workspace-tree-head{position:relative;display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.workspace-tree-head h4{margin:0}.workspace-create-btn{width:22px;height:22px;border:0;border-radius:7px;background:transparent;color:var(--app-text-muted);display:grid;place-items:center;cursor:pointer;transition:background-color .12s ease,color .12s ease}.workspace-create-btn:hover,.workspace-create-btn:focus-visible,.workspace-create-btn[aria-expanded=true]{background:var(--app-border-soft);color:var(--app-text-secondary)}.workspace-create-menu{position:absolute;right:0;top:calc(100% + 6px);min-width:126px;padding:6px;border-radius:10px;border:1px solid var(--app-border);background:var(--app-bg-1-main);box-shadow:0 10px 22px var(--app-border);z-index:8;display:grid;gap:2px}.workspace-create-menu button{width:100%;height:30px;border:0;border-radius:7px;background:transparent;color:var(--app-text-secondary);font-size:13px;font-weight:500;text-align:left;padding:0 10px;cursor:pointer;display:inline-flex;align-items:center;gap:7px}.workspace-create-menu button svg{flex:0 0 auto;color:var(--app-text-muted)}.workspace-create-menu button span{display:inline-block}.workspace-create-menu button:hover{background:var(--app-hover)}.workspace-context-menu{position:fixed;width:156px;padding:6px;border-radius:10px;border:1px solid var(--app-border);background:var(--app-bg-1-main);box-shadow:0 12px 28px var(--app-border-soft);z-index:90;display:grid;gap:2px}.workspace-context-menu button{height:32px;border:0;border-radius:7px;background:transparent;color:var(--app-text-primary);font-size:13px;font-weight:600;text-align:left;padding:0 10px;display:flex;align-items:center;gap:8px;cursor:pointer}.workspace-context-menu button svg{flex:0 0 auto}.workspace-context-menu button:hover{background:var(--app-hover)}.workspace-context-menu-divider{display:block;height:0;border-top:1px solid var(--app-border);margin:3px 4px}.workspace-context-menu button.danger{color:var(--app-danger)}.workspace-context-menu button.danger:hover{background:var(--app-danger-bg)}.editor-workspace-tree ul{margin:0;padding:0;list-style:none;display:grid;gap:2px;width:max-content;min-width:100%}.editor-workspace-tree li{min-height:30px;border-radius:8px;font-size:13px;line-height:1.4;color:var(--app-text-secondary);position:relative;overflow:visible;transition:box-shadow .14s ease,background-color .14s ease}.editor-workspace-tree li.workspace-root-divider{min-height:12px;padding:6px 0 4px;pointer-events:none}.editor-workspace-tree li.workspace-root-divider span{display:block;height:1px;margin:0 12px;background:var(--app-border)}.editor-workspace-tree li.dragging{opacity:.32}.editor-workspace-tree li.drag-over .workspace-node-btn,.editor-workspace-tree li.drag-over .workspace-separator-btn{background:var(--app-hover)}.editor-workspace-tree li .workspace-node-btn{transition:transform .14s ease,background-color .14s ease}.editor-workspace-tree li.drag-over-into .workspace-node-btn{background:var(--app-hover)}.editor-workspace-tree li.workspace-drop-placeholder{list-style:none;pointer-events:none;margin:2px 0}.editor-workspace-tree li.workspace-drop-placeholder>div{min-height:30px;border-radius:8px;border:1px dashed var(--app-focus-ring);background:color-mix(in srgb,var(--app-bg-3-small) 82%,transparent)}.editor-workspace-tree li.plot-dragging .workspace-node-btn{background:var(--app-bg-3-small);box-shadow:inset 0 0 0 1px var(--app-focus-ring)}.workspace-node-btn{width:max-content;min-width:100%;min-height:30px;border:0;border-radius:8px;background:transparent;padding:6px 10px;display:flex;align-items:center;gap:8px;text-align:left;color:inherit;font:inherit;cursor:pointer}.workspace-node-row{position:relative;display:flex;align-items:center;gap:4px;width:100%}.workspace-node-row .workspace-node-btn{width:auto;min-width:0;flex:1 1 auto;padding-right:34px}.workspace-node-create-btn{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:20px;height:20px;border:0;border-radius:6px;background:transparent;color:var(--app-text-muted);display:grid;place-items:center;flex:0 0 auto;cursor:pointer;transition:background-color .14s ease,color .14s ease,opacity .12s ease}@media (hover: hover) and (pointer: fine){.workspace-node-row .workspace-node-create-btn{opacity:0;pointer-events:none}.workspace-node-row:hover .workspace-node-create-btn,.workspace-node-row:focus-within .workspace-node-create-btn,.workspace-node-row.create-menu-open .workspace-node-create-btn{opacity:1;pointer-events:auto}}.workspace-node-create-btn:hover,.workspace-node-create-btn:focus-visible{background:var(--app-border-soft);color:var(--app-text-primary)}.workspace-node-create-menu{position:absolute;top:calc(100% + 4px);right:0;min-width:132px;padding:6px;border-radius:10px;border:1px solid var(--app-border);background:var(--app-bg-1-main);box-shadow:0 12px 28px var(--app-border-soft);z-index:95;display:grid;gap:2px}.workspace-node-create-menu.open-up{top:auto;bottom:calc(100% + 4px)}.workspace-node-create-menu button{height:30px;border:0;border-radius:7px;background:transparent;color:var(--app-text-primary);font-size:13px;font-weight:600;text-align:left;padding:0 8px;display:flex;align-items:center;gap:7px;cursor:pointer}.workspace-node-create-menu button:hover{background:var(--app-hover)}.workspace-node-btn>span:last-child{white-space:nowrap;flex:0 0 auto}.workspace-node-btn:hover{background:var(--app-hover)}.workspace-separator-btn{width:max-content;min-width:100%;min-height:30px;border:0;border-radius:8px;background:transparent;padding:6px 16px;display:flex;align-items:center;color:var(--app-text-muted);font:inherit;cursor:pointer}.workspace-separator-btn:hover{background:var(--app-hover)}.workspace-separator-rule{display:inline-block;white-space:nowrap;font-size:13px;line-height:1;letter-spacing:0;-webkit-user-select:none;user-select:none}.workspace-fixed-scrollbar{height:10px;margin:0 12px 6px;border-radius:999px;background:var(--app-border);position:relative;overflow:hidden;opacity:0;transition:opacity .16s ease;pointer-events:none;cursor:pointer}.workspace-fixed-scrollbar.visible{opacity:1;pointer-events:auto}.workspace-fixed-scrollbar-thumb{position:absolute;top:1px;left:4px;height:8px;border-radius:999px;background:var(--app-border);min-width:28px;cursor:grab}.workspace-fixed-scrollbar-thumb:active{cursor:grabbing}.editor-workspace-tree li .node-expander{width:12px;height:12px;display:grid;place-items:center;color:var(--app-text-muted);flex:0 0 12px}.editor-workspace-tree li .node-expander.placeholder{opacity:0}.editor-workspace-tree li .node-icon{width:14px;height:14px;display:grid;place-items:center;color:var(--app-text-muted)}.editor-workspace-tree li.active{background:transparent;color:inherit;font-weight:600}.editor-workspace-tree li.active .workspace-node-btn{background:var(--app-text-primary);font-weight:600;color:var(--app-bg-1-main)}.editor-sidebar-user{border-top:1px solid var(--app-border-soft);height:var(--editor-bottom-h);min-height:var(--editor-bottom-h);padding:0 10px 0 20px;display:flex;align-items:center;gap:8px;box-sizing:border-box;flex-shrink:0}.editor-sidebar-user img,.editor-sidebar-user .editor-sidebar-user-avatar{width:24px;height:24px;border-radius:999px;object-fit:cover;border:1px solid var(--app-border-soft)}.editor-sidebar-user div{display:grid;gap:1px}.editor-sidebar-user strong{display:block;font-size:13px;line-height:1.2;color:var(--app-text-primary)}.editor-sidebar-user small{display:block;font-size:13px;line-height:1.2;color:var(--app-text-muted)}.editor-main{background:var(--app-bg-1-main);height:var(--app-viewport-h);display:flex;flex-direction:column;position:relative;overflow:hidden;--editor-extra-top: 94px}.editor-mobile-topbar{display:none}.editor-breadcrumb{height:40px;border-bottom:1px solid var(--app-border-soft);padding:0 18px;display:flex;align-items:center;justify-content:space-between;font-size:var(--editor-path-font-size);color:var(--app-text-muted);box-sizing:border-box;flex-shrink:0;transition:padding-left var(--editor-panel-motion-duration) var(--editor-panel-motion-ease),padding-right var(--editor-panel-motion-duration) var(--editor-panel-motion-ease)}@media (prefers-reduced-motion: reduce){.editor-page,.editor-sidebar-desktop,.editor-sidebar-desktop.collapsed,.editor-workspace-divider-toggle,.editor-timeline-divider-toggle,.editor-timeline-top-toggle,.editor-breadcrumb{transition:none!important}}:root[data-runtime=desktop][data-desktop-os=macos] .editor-page.editor-desktop-left-collapsed .editor-breadcrumb{padding-left:calc(18px + var(--desktop-traffic-left))}.editor-breadcrumb-path{display:inline-flex;align-items:center;gap:10px}.editor-breadcrumb strong{font-weight:500;color:var(--app-text-secondary)}.editor-theme-topbar-btn{height:28px;padding:0 9px}.editor-breadcrumb-actions{display:inline-flex;align-items:center;gap:8px}.editor-counter-menu-wrap{position:relative}.editor-counter-btn{height:28px;border:1px solid var(--app-border);border-radius:8px;background:var(--app-bg-2-sub);color:var(--app-text-secondary);display:inline-flex;align-items:center;gap:6px;padding:0 9px;font-size:12px;line-height:1;font-weight:600}.editor-counter-btn.active{border-color:var(--app-border-soft);color:var(--app-text-primary)}.editor-counter-menu{position:absolute;top:calc(100% + 6px);right:0;min-width:280px;border:1px solid var(--app-border);border-radius:10px;background:var(--app-bg-2-sub);box-shadow:0 10px 24px var(--app-border-soft);padding:8px 10px;z-index:40;-webkit-user-select:none;user-select:none}.editor-counter-menu table{width:100%;border-collapse:collapse}.editor-counter-menu td{padding:6px 2px;font-size:12px;line-height:1.3;white-space:nowrap}.editor-counter-menu td:first-child{color:var(--app-text-secondary);text-align:left}.editor-counter-menu td:last-child{color:var(--app-text-primary);font-weight:700;text-align:right}.editor-breadcrumb-actions .editor-theme-topbar-btn.active{border-color:var(--app-text-primary);color:var(--app-text-primary);background:var(--app-bg-3-small)}.novel-overview-screen{height:100%;overflow:auto;padding:0 0 140px;display:flex;flex-direction:column;gap:0;background:var(--app-bg-1-main)}.novel-overview-topbar{position:sticky;top:0;z-index:4;height:40px;background:var(--app-bg-1-main);padding:0 24px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-shrink:0}.novel-overview-topbar.novel-overview-topbar-actions-only{justify-content:flex-end}.novel-overview-topbar-actions{display:inline-flex;align-items:center;gap:8px}.novel-overview-path{display:inline-flex;align-items:center;gap:6px}.novel-overview-path span{font-family:var(--app-ui-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:16px;line-height:24px;color:var(--app-text-primary)}.novel-overview-path svg{color:var(--app-text-secondary)}.novel-overview-path strong{color:var(--app-text-secondary);font-size:14px;line-height:20px;font-weight:400}.novel-overview-section{width:min(100% - 48px,896px);margin:40px auto 0;padding:0;box-sizing:border-box}.novel-overview-section-divider{margin-top:40px;padding-top:40px;border-top:1px solid var(--app-border-soft)}.novel-overview-database-section{border-top-color:var(--app-border)}.novel-overview-section-head{margin-bottom:20px}.novel-overview-section-head h2{margin:0;display:inline-flex;align-items:center;gap:12px;font-family:var(--app-ui-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:20px;line-height:30px;font-weight:500;color:var(--app-text-primary)}.novel-overview-section-head-row{display:flex;align-items:center;justify-content:space-between;gap:16px}.novel-overview-section-head h2 i{height:20px;min-width:24px;border-radius:999px;padding:0 8px;display:inline-flex;align-items:center;justify-content:center;font-style:normal;font-family:var(--app-ui-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:14px;line-height:16px;font-weight:400;color:var(--app-text-secondary);background:var(--app-bg-3-small)}.novel-overview-info-panel{border:1px solid var(--app-border);border-radius:14px;background:var(--app-bg-3-small);padding:33px 33px 20px;position:relative;display:flex;flex-direction:column;gap:24px}.novel-overview-info-block{display:flex;flex-direction:column;gap:8px}.novel-overview-info-block h4{margin:0;color:var(--app-text-secondary);font-family:var(--app-ui-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:12px;line-height:16px;font-weight:500;letter-spacing:.05em}.novel-overview-title-value{margin:0;color:var(--app-text-primary);font-family:var(--app-ui-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:44px;line-height:52px;font-weight:700;border-bottom:1px solid transparent;transition:border-color .12s ease}.novel-overview-title-row{display:inline-flex;align-items:center;gap:10px}.novel-overview-title-row.is-editing{display:flex;width:min(100%,1650px)}.novel-overview-title-row.is-editing .novel-overview-title-input{flex:1 1 auto;min-width:0;width:100%}.novel-overview-title-color-dot{width:14px;height:14px;border-radius:999px;border:1px solid var(--app-border);padding:0;cursor:pointer;flex:0 0 auto}.novel-overview-info-block p{margin:0;color:var(--app-text-secondary);font-family:var(--app-ui-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:14px;line-height:20px;max-width:100%}.novel-overview-title-value-btn,.novel-overview-description-value-btn{border:0;background:transparent;padding:0;margin:0;text-align:left;cursor:text}.novel-overview-description-value-btn{border-bottom:1px solid transparent;transition:border-color .12s ease}.novel-overview-title-value-btn:hover .novel-overview-title-value,.novel-overview-title-value-btn:focus-visible .novel-overview-title-value,.novel-overview-description-value-btn:hover,.novel-overview-description-value-btn:focus-visible{border-bottom-color:var(--app-border)}.novel-overview-description-value-btn{color:var(--app-text-secondary);font-family:var(--app-ui-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:14px;line-height:20px;max-width:100%}.novel-overview-title-input,.novel-overview-description-input{border:0;border-bottom:1px solid var(--app-text-primary);background:transparent;padding:0;margin:0;outline:none}.novel-overview-title-input{color:var(--app-text-primary);font-family:var(--app-ui-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:44px;line-height:52px;font-weight:700}.novel-overview-description-input{color:var(--app-text-secondary);font-family:var(--app-ui-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:14px;line-height:20px;width:min(100%,860px);height:20px}.novel-overview-description-input::placeholder{color:var(--app-text-muted)}.novel-overview-tag-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.novel-overview-tag-chip{border-radius:999px;padding:6px 12px;display:inline-flex;align-items:center;gap:4px;font-family:var(--app-ui-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:12px;line-height:16px;font-weight:400;color:var(--app-text-secondary);background:var(--app-bg-4-extra)}.novel-overview-tag-chip-remove{width:12px;height:12px;border:0;padding:0;background:transparent;color:currentColor;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;opacity:.9}.novel-overview-tag-chip-remove:hover,.novel-overview-tag-chip-remove:focus-visible{color:var(--app-danger);opacity:1}.novel-overview-tag-add{height:22px;border:1px solid var(--app-border-soft);border-radius:999px;padding:0 10px;background:transparent;color:var(--app-text-secondary);font-family:var(--app-ui-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:12px;line-height:16px;font-weight:500;cursor:pointer}.novel-overview-tag-add:hover{background:var(--app-bg-2-sub)}.novel-overview-tag-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:120;display:grid;place-items:center;background:var(--app-hover);padding:28px}.novel-overview-tag-modal{width:min(520px,calc(100vw - 120px));border-radius:16px;border:1px solid var(--app-border);background:var(--app-bg-3-small);box-shadow:0 18px 42px var(--app-border-soft);overflow:hidden}.novel-overview-tag-modal-header{height:54px;padding:0 16px;border-bottom:1px solid var(--app-border-soft);display:flex;align-items:center}.novel-overview-tag-modal-header h4{margin:0;font-size:18px;font-weight:700;color:var(--app-text-primary)}.novel-overview-tag-modal-header button{margin-left:auto;width:30px;height:30px;border-radius:8px;border:1px solid var(--app-border);background:var(--app-bg-3-small);color:var(--app-text-secondary);display:grid;place-items:center;cursor:pointer}.novel-overview-tag-modal-body{padding:16px;display:grid;gap:14px}.novel-overview-tag-modal-input-wrap{display:grid;gap:7px}.novel-overview-tag-modal-input-wrap>span{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--app-text-muted)}.novel-overview-tag-modal-input-wrap>div{display:grid;grid-template-columns:1fr auto;gap:8px}.novel-overview-tag-modal-input-wrap input{width:100%;height:36px;border:1px solid var(--app-border);border-radius:10px;background:var(--app-bg-3-small);color:var(--app-text-primary);padding:0 12px;font-size:13px;outline:none}.novel-overview-tag-modal-add-btn{width:36px;height:36px;border-radius:10px;border:1px solid var(--app-border);background:var(--app-bg-2-sub);color:var(--app-text-muted);display:grid;place-items:center;transition:background-color .13s ease,border-color .13s ease,color .13s ease;cursor:pointer}.novel-overview-tag-modal-add-btn:disabled{opacity:.58;cursor:not-allowed}.novel-overview-tag-modal-add-btn:not(:disabled){border-color:var(--app-text-primary);background:var(--app-text-primary);color:var(--app-bg-1-main)}.novel-overview-tag-modal-suggestion-wrap{display:grid;gap:8px}.novel-overview-tag-modal-suggestion-wrap p{margin:0;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--app-text-muted)}.novel-overview-tag-modal-suggestions{display:flex;flex-wrap:wrap;gap:8px}.novel-overview-tag-modal-suggestions button{height:31px;border-radius:999px;border:1px solid var(--app-border);background:var(--app-bg-2-sub);color:var(--app-text-secondary);padding:0 11px;font-size:12px;font-weight:600;display:inline-flex;align-items:center;cursor:pointer}.novel-overview-tag-modal-suggestions.disabled button{opacity:.44;pointer-events:none}.novel-overview-primary-btn{height:36px;min-width:0;border:0;border-radius:10px;background:var(--app-bg-2-sub);color:var(--app-bg-1-main);font-family:var(--app-ui-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:14px;line-height:20px;font-weight:500;padding:0 10px;display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;white-space:nowrap}.novel-overview-primary-btn:hover{background:var(--app-bg-3-small)}.novel-overview-create-btn{width:auto;padding-right:16px}.novel-overview-theme-btn{height:34px;min-width:34px;width:auto;padding:0 10px;border-radius:10px;justify-content:space-between;gap:8px}.novel-overview-theme-btn span{display:inline-flex}.novel-overview-trash-btn{min-width:56px;padding:0 10px;justify-content:space-between;gap:8px;color:var(--app-text-secondary)}.novel-overview-trash-btn i{min-width:18px;height:18px;border-radius:999px;padding:0 5px;display:inline-flex;align-items:center;justify-content:center;background:var(--app-bg-3-small);color:var(--app-text-primary);font-size:10px;font-style:normal;font-weight:700}.novel-overview-trash-btn.has-items{border-color:var(--app-focus-ring);color:var(--app-text-primary)}.novel-overview-delete{position:absolute;top:16px;right:16px;width:30px;height:30px;border-radius:8px;border:0;background:transparent;color:var(--app-text-muted);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.novel-overview-delete:hover:not(:disabled),.novel-overview-delete:focus-visible:not(:disabled){background:var(--app-danger-bg);color:var(--app-danger)}.novel-overview-delete:disabled{opacity:.45;cursor:default}.novel-overview-empty{border:1px solid var(--app-border);border-radius:14px;padding:24px;color:var(--app-text-secondary);font-size:14px;background:var(--app-bg-1-main)}.novel-overview-empty p{margin:0}.novel-overview-volume-list{display:flex;flex-direction:column;gap:16px}.novel-overview-volume-card{border:1px solid var(--app-border);border-radius:14px;background:var(--app-bg-3-small);padding:25px 25px 0;display:flex;flex-direction:column;gap:12px;overflow:hidden}.novel-overview-volume-card.is-collapsed{padding-bottom:20px}.novel-overview-volume-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:33px}.novel-overview-volume-title-main{min-width:0;flex:1;display:inline-flex;align-items:center;gap:8px}.novel-overview-volume-name-line{min-width:0;flex:1;display:inline-flex;align-items:center;border-bottom:1px solid transparent;transition:border-color .12s ease}.novel-overview-volume-name-line.is-underlined-soft{border-bottom-color:var(--app-border)}.novel-overview-volume-name-line.is-underlined-strong{border-bottom-color:var(--app-text-primary)}.novel-overview-volume-expand-btn{border:0;background:transparent;padding:0;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;color:var(--app-text-primary);cursor:pointer}.novel-overview-volume-name-btn{border:0;background:transparent;padding:0;display:inline-flex;align-items:center;color:var(--app-text-primary);cursor:text}.novel-overview-volume-name-input{border:0;background:transparent;padding:0;margin:0;color:var(--app-text-primary);font-family:var(--app-ui-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:18px;line-height:28px;font-weight:400;min-width:120px;outline:none}.novel-overview-volume-name-btn strong{font-family:var(--app-ui-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:18px;line-height:28px;font-weight:400}.novel-overview-volume-actions{display:inline-flex;align-items:center;gap:4px}.novel-overview-volume-actions button{border:0;background:transparent;color:var(--app-text-secondary);font-family:var(--app-ui-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:12px;line-height:16px;font-weight:500;height:30px;border-radius:10px;padding:0 8px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.novel-overview-volume-actions button:hover{background:var(--app-hover);color:var(--app-text-primary)}.novel-overview-volume-description{margin:0;color:var(--app-text-secondary);font-family:var(--app-ui-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:14px;line-height:20px;max-width:678px}.novel-overview-volume-description-btn{border:0;background:transparent;padding:0;margin:0;color:var(--app-text-secondary);font-family:var(--app-ui-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:14px;line-height:20px;max-width:678px;text-align:left;cursor:text;border-bottom:1px solid transparent;transition:border-color .12s ease,color .12s ease}.novel-overview-volume-description-btn:hover,.novel-overview-volume-description-btn:focus-visible{border-bottom-color:var(--app-border)}.novel-overview-volume-description-input{border:0;border-bottom:1px solid var(--app-text-primary);background:transparent;padding:0;margin:0;color:var(--app-text-primary);font-family:var(--app-ui-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:14px;line-height:20px;max-width:678px;width:min(678px,100%);height:20px;outline:none}.novel-overview-volume-bottom-row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:22px}.novel-overview-volume-bottom-row .novel-overview-tag-row{flex:1;min-width:0}.novel-overview-volume-meta{display:inline-flex;align-items:center;justify-content:flex-end;white-space:nowrap}.novel-overview-volume-meta span{color:var(--app-text-secondary);font-family:var(--app-ui-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:12px;line-height:16px}.novel-overview-tree{margin:8px -25px 0;padding:16px 25px 24px;border-top:1px solid var(--app-border);background:var(--app-bg-2-sub);display:flex;flex-direction:column;gap:14px}.novel-overview-episode-row{min-height:28px;border-radius:4px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 6px}.novel-overview-episode-main{min-width:0;flex:1;display:inline-flex;align-items:center;gap:8px}.novel-overview-episode-icon{color:var(--app-text-muted);display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}.novel-overview-episode-icon.is-draggable{cursor:grab}.novel-overview-episode-name{border:0;background:transparent;color:var(--app-text-primary);font-family:var(--app-ui-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:14px;line-height:20px;font-weight:500;padding:0;flex:1;min-width:0;text-align:left;cursor:text;border-bottom:1px solid transparent;transition:border-color .12s ease,color .12s ease}.novel-overview-episode-row:hover .novel-overview-episode-name,.novel-overview-episode-row:focus-within .novel-overview-episode-name{border-bottom-color:var(--app-border)}.novel-overview-episode-name:hover{color:var(--app-text-primary)}.novel-overview-episode-input{flex:1;min-width:0;border:0;border-bottom:1px solid var(--app-text-primary);background:transparent;color:var(--app-text-primary);font-family:var(--app-ui-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:14px;line-height:20px;font-weight:500;padding:0;outline:none}.novel-overview-episode-actions{display:inline-flex;align-items:center;gap:10px;opacity:0;pointer-events:none}.novel-overview-episode-row:hover .novel-overview-episode-actions,.novel-overview-episode-row:focus-within .novel-overview-episode-actions{opacity:1;pointer-events:auto}.novel-overview-episode-new-chapter,.novel-overview-episode-delete{border:0;background:transparent;color:var(--app-text-muted);padding:0 8px;border-radius:10px;font-family:var(--app-ui-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:12px;line-height:16px;font-weight:500;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;height:30px}.novel-overview-episode-new-chapter:hover,.novel-overview-episode-new-chapter:focus-visible{background:var(--app-hover);color:var(--app-text-primary)}.novel-overview-episode-delete,.novel-overview-chapter-delete,.novel-overview-volume-delete{color:var(--app-text-muted)}.novel-overview-episode-delete:hover,.novel-overview-episode-delete:focus-visible,.novel-overview-chapter-delete:hover,.novel-overview-chapter-delete:focus-visible,.novel-overview-volume-delete:hover,.novel-overview-volume-delete:focus-visible{color:var(--app-danger)}.novel-overview-episode-new-chapter:focus-visible,.novel-overview-episode-delete:focus-visible,.novel-overview-chapter-delete:focus-visible,.novel-overview-volume-delete:focus-visible{outline:none}.novel-overview-episode-new-chapter:hover{color:var(--app-text-secondary)}.novel-overview-episode-delete{width:auto;flex:0 0 auto}.novel-overview-tree-episode ul{margin:4px 0 0 12px;padding:0 0 0 10px;list-style:none;border-left:1px solid var(--app-border-soft);display:flex;flex-direction:column;gap:4px}.novel-overview-tree-empty-row{min-height:28px;display:flex;align-items:center;padding:0 6px 0 15px}.novel-overview-tree-episode ul .novel-overview-tree-empty{margin:0}.novel-overview-chapter-row{min-height:28px;border-radius:4px;display:flex;align-items:center;gap:6px;padding:0 6px}.novel-overview-chapter-row:hover,.novel-overview-chapter-row:focus-within{background:var(--app-hover)}.novel-overview-chapter-handle,.novel-overview-chapter-icon{color:var(--app-text-muted);display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}.novel-overview-chapter-handle{cursor:grab;opacity:0;pointer-events:none;transition:opacity .12s ease}.novel-overview-chapter-row:hover .novel-overview-chapter-handle,.novel-overview-chapter-row:focus-within .novel-overview-chapter-handle{opacity:1;pointer-events:auto}.novel-overview-chapter-name{border:0;background:transparent;color:var(--app-text-secondary);font-family:var(--app-ui-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:14px;line-height:20px;padding:0;flex:1;min-width:0;cursor:text;text-align:left}.novel-overview-chapter-name:hover{color:var(--app-text-primary)}.novel-overview-chapter-input{flex:1;min-width:0;border:0;border-bottom:1px solid var(--app-text-primary);background:transparent;color:var(--app-text-primary);font-family:var(--app-ui-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:14px;line-height:20px;padding:0;outline:none}.novel-overview-chapter-delete{border:0;background:transparent;color:var(--app-text-muted);width:16px;height:16px;padding:0;opacity:0;pointer-events:none;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex:0 0 auto}.novel-overview-chapter-row:hover .novel-overview-chapter-delete,.novel-overview-chapter-row:focus-within .novel-overview-chapter-delete{opacity:1;pointer-events:auto}.novel-overview-chapter-delete:hover{color:var(--app-text-secondary)}.novel-overview-tree-empty{margin:4px 0 0 22px;color:var(--app-text-secondary);font-family:var(--app-ui-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:14px;line-height:20px}@media (max-width: 1080px){.novel-overview-topbar{height:40px;padding:0 14px}.novel-overview-path{font-size:13px;gap:8px}.novel-overview-section{margin-top:18px;width:calc(100% - 28px);padding:0}.novel-overview-section-divider{margin-top:22px;padding-top:22px}.novel-overview-info-panel{padding:18px;gap:18px}.novel-overview-tag-chip,.novel-overview-tag-add{height:22px;font-size:12px;padding:0 10px}.novel-overview-primary-btn{height:42px;min-width:0;font-size:18px;border-radius:11px;width:auto}.novel-overview-primary-btn svg{width:14px;height:14px}.novel-overview-section-head-row,.novel-overview-volume-bottom-row{flex-wrap:wrap}}.editor-toolbar{height:40px;border-bottom:1px solid var(--app-border-soft);background:var(--app-bg-1-main);padding:0 14px;display:flex;align-items:center;gap:4px;overflow:visible;position:relative;z-index:30;-ms-overflow-style:none;scrollbar-width:none;box-sizing:border-box;flex-shrink:0}:root[data-runtime=desktop][data-desktop-os=macos] .editor-page.editor-desktop-left-collapsed .editor-toolbar{padding-left:calc(14px + var(--desktop-traffic-left))}.editor-toolbar::-webkit-scrollbar{width:0;height:0;display:none}.editor-toolbar>span{width:1px;height:16px;background:var(--app-border);margin:0 4px}.editor-toolbar button{width:26px;height:26px;border:0;border-radius:7px;background:transparent;color:var(--app-text-secondary);display:grid;place-items:center;white-space:nowrap}.editor-tab-strip,.editor-pane-tab-strip{height:40px;border-bottom:1px solid var(--app-border-soft);background:var(--app-surface-panel);display:flex;align-items:flex-end;gap:6px;padding:0 10px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-ms-overflow-style:none;flex-shrink:0}.editor-tab-strip::-webkit-scrollbar,.editor-pane-tab-strip::-webkit-scrollbar{width:0;height:0;display:none}.editor-tab{border:1px solid transparent;background:transparent;color:var(--app-text-muted);border-radius:8px 8px 0 0;height:32px;display:inline-flex;align-items:center;gap:2px;padding:0 4px;font-size:12px;line-height:1;white-space:nowrap;flex-shrink:0;position:relative;margin-bottom:-1px;cursor:pointer;transition:background .16s ease,color .16s ease,border-color .16s ease}.editor-tab.active{border-top-color:var(--app-border);border-left-color:var(--app-border);border-right-color:var(--app-border);background:var(--app-surface-card);color:var(--app-text-primary)}.editor-tab:hover{background:var(--app-hover);color:var(--app-text-secondary)}.editor-tab-open{border:0;background:transparent;color:inherit;height:100%;display:inline-flex;align-items:center;gap:6px;padding:0 8px;border-radius:7px;cursor:pointer;min-width:0;flex:1 1 auto}.editor-tab-open span{font-size:10px;max-width:190px;overflow:hidden;text-overflow:ellipsis}.editor-tab-close{border:0;background:transparent;color:var(--app-text-muted);width:20px;height:20px;border-radius:6px;display:grid;place-items:center;cursor:pointer;margin-right:2px;opacity:0;transition:opacity .16s ease,background .16s ease,color .16s ease}.editor-tab:hover .editor-tab-close,.editor-tab.active .editor-tab-close,.editor-tab-close:focus-visible{opacity:1}.editor-tab-close:hover,.editor-tab-close:focus-visible{background:var(--app-hover);color:var(--app-text-secondary)}.editor-pane-host{position:relative;flex:1 1 auto;min-height:0;display:grid}.editor-pane-host.dynamic-grid{display:block;background:transparent;padding:0}.editor-pane-host.dynamic-grid .editor-pane.dynamic-pane{position:absolute;border:0;background:var(--editor-content-bg);box-shadow:none}.editor-splitter-handle{position:absolute;z-index:8;border:0;background:transparent;padding:0}.editor-splitter-handle.vertical{width:10px;transform:translate(-50%);cursor:col-resize}.editor-splitter-handle.horizontal{height:10px;transform:translateY(-50%);cursor:row-resize}.editor-splitter-handle:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0}.editor-splitter-handle.vertical:before{left:calc(50% - .5px);width:1px;height:50%;top:50%;transform:translateY(-50%);background:var(--app-border-soft)}.editor-splitter-handle.horizontal:before{width:50%;left:50%;top:calc(50% - .5px);height:1px;transform:translate(-50%);background:var(--app-border-soft)}.editor-splitter-handle:hover:before,.editor-splitter-handle.active:before{background:color-mix(in srgb,var(--app-text-primary) 72%,transparent)}.editor-pane-host.single{grid-template-columns:minmax(0,1fr)}.editor-pane-host.split-right{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.editor-pane-host.split-bottom{grid-template-rows:minmax(0,1fr) minmax(0,1fr)}.editor-pane-host.layout-top-row,.editor-pane-host.layout-bottom-row,.editor-pane-host.layout-left-col,.editor-pane-host.layout-right-col,.editor-pane-host.layout-left-triple,.editor-pane-host.layout-right-triple,.editor-pane-host.layout-top-triple,.editor-pane-host.layout-bottom-triple{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:minmax(0,1fr) minmax(0,1fr)}.editor-pane{min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden}.editor-pane.active{background:transparent}.editor-pane+.editor-pane{border-left:1px solid var(--app-border-soft)}.editor-pane-host.split-bottom .editor-pane+.editor-pane{border-left:0;border-top:1px solid var(--app-border-soft)}.editor-pane-host.layout-top-row .editor-pane+.editor-pane,.editor-pane-host.layout-bottom-row .editor-pane+.editor-pane,.editor-pane-host.layout-left-col .editor-pane+.editor-pane,.editor-pane-host.layout-right-col .editor-pane+.editor-pane,.editor-pane-host.layout-left-triple .editor-pane+.editor-pane,.editor-pane-host.layout-right-triple .editor-pane+.editor-pane,.editor-pane-host.layout-top-triple .editor-pane+.editor-pane,.editor-pane-host.layout-bottom-triple .editor-pane+.editor-pane{border:0}.editor-pane-host.layout-top-row .pane-primary,.editor-pane-host.layout-left-col .pane-primary{grid-column:1;grid-row:1}.editor-pane-host.layout-top-row .pane-secondary,.editor-pane-host.layout-right-col .pane-primary{grid-column:2;grid-row:1;border-left:1px solid var(--app-border-soft)}.editor-pane-host.layout-top-row .pane-tertiary{grid-column:1 / span 2;grid-row:2;border-top:1px solid var(--app-border-soft)}.editor-pane-host.layout-bottom-row .pane-tertiary{grid-column:1 / span 2;grid-row:1}.editor-pane-host.layout-bottom-row .pane-primary{grid-column:1;grid-row:2;border-top:1px solid var(--app-border-soft)}.editor-pane-host.layout-bottom-row .pane-secondary{grid-column:2;grid-row:2;border-left:1px solid var(--app-border-soft);border-top:1px solid var(--app-border-soft)}.editor-pane-host.layout-left-col .pane-secondary{grid-column:1;grid-row:2;border-top:1px solid var(--app-border-soft)}.editor-pane-host.layout-left-col .pane-tertiary{grid-column:2;grid-row:1 / span 2;border-left:1px solid var(--app-border-soft)}.editor-pane-host.layout-right-col .pane-secondary{grid-column:2;grid-row:2;border-left:1px solid var(--app-border-soft);border-top:1px solid var(--app-border-soft)}.editor-pane-host.layout-right-col .pane-tertiary{grid-column:1;grid-row:1 / span 2}.editor-pane-host.layout-left-triple{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr);grid-template-rows:minmax(0,1fr)}.editor-pane-host.layout-left-triple .pane-primary{grid-column:1;grid-row:1}.editor-pane-host.layout-left-triple .pane-secondary{grid-column:2;grid-row:1;border-left:1px solid var(--app-border-soft)}.editor-pane-host.layout-left-triple .pane-tertiary{grid-column:3;grid-row:1;border-left:1px solid var(--app-border-soft)}.editor-pane-host.layout-right-triple{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr);grid-template-rows:minmax(0,1fr)}.editor-pane-host.layout-right-triple .pane-tertiary{grid-column:1;grid-row:1}.editor-pane-host.layout-right-triple .pane-primary{grid-column:2;grid-row:1;border-left:1px solid var(--app-border-soft)}.editor-pane-host.layout-right-triple .pane-secondary{grid-column:3;grid-row:1;border-left:1px solid var(--app-border-soft)}.editor-pane-host.layout-top-triple{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr)}.editor-pane-host.layout-top-triple .pane-primary{grid-column:1;grid-row:1}.editor-pane-host.layout-top-triple .pane-secondary{grid-column:1;grid-row:2;border-top:1px solid var(--app-border-soft)}.editor-pane-host.layout-top-triple .pane-tertiary{grid-column:1;grid-row:3;border-top:1px solid var(--app-border-soft)}.editor-pane-host.layout-bottom-triple{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr)}.editor-pane-host.layout-bottom-triple .pane-tertiary{grid-column:1;grid-row:1}.editor-pane-host.layout-bottom-triple .pane-primary{grid-column:1;grid-row:2;border-top:1px solid var(--app-border-soft)}.editor-pane-host.layout-bottom-triple .pane-secondary{grid-column:1;grid-row:3;border-top:1px solid var(--app-border-soft)}.editor-drop-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:6;pointer-events:none}.editor-drop-overlay.dynamic{inset:auto;border:2px solid color-mix(in srgb,var(--app-text-primary) 26%,transparent);background:color-mix(in srgb,var(--app-text-primary) 10%,transparent);border-radius:12px}.editor-drop-overlay.dynamic:before{content:none}.editor-drop-overlay.dynamic .editor-drop-plus{left:50%!important;top:50%!important;transform:translate(-50%,-50%)!important}.editor-drop-overlay:before{content:"";position:absolute;border:2px solid color-mix(in srgb,var(--app-text-primary) 26%,transparent);background:color-mix(in srgb,var(--app-text-primary) 10%,transparent);border-radius:12px}.editor-drop-overlay.zone-open:before{top:0;right:0;bottom:0;left:0}.editor-drop-overlay.zone-split-right:before{top:0;right:0;bottom:0;left:50%}.editor-drop-overlay.zone-split-bottom:before{top:50%;right:0;bottom:0;left:0}.editor-pane-host.split-right .editor-drop-overlay.zone-open.pane-primary:before{top:0;right:50%;bottom:0;left:0}.editor-pane-host.split-right .editor-drop-overlay.zone-open.pane-secondary:before{top:0;right:0;bottom:0;left:50%}.editor-pane-host.split-bottom .editor-drop-overlay.zone-open.pane-primary:before{top:0;right:0;bottom:50%;left:0}.editor-pane-host.split-bottom .editor-drop-overlay.zone-open.pane-secondary:before{top:50%;right:0;bottom:0;left:0}.editor-pane-host.split-bottom .editor-drop-overlay.zone-split-right.pane-primary:before{top:0;right:0;bottom:50%;left:50%}.editor-pane-host.split-bottom .editor-drop-overlay.zone-split-right.pane-secondary:before{top:50%;right:0;bottom:0;left:50%}.editor-pane-host.split-right .editor-drop-overlay.zone-split-bottom.pane-primary:before{top:50%;right:50%;bottom:0;left:0}.editor-pane-host.split-right .editor-drop-overlay.zone-split-bottom.pane-secondary:before{top:50%;right:0;bottom:0;left:50%}.editor-pane-host.layout-top-row .editor-drop-overlay.zone-open.pane-primary:before,.editor-pane-host.layout-left-col .editor-drop-overlay.zone-open.pane-primary:before{top:0;right:50%;bottom:50%;left:0}.editor-pane-host.layout-top-row .editor-drop-overlay.zone-open.pane-secondary:before,.editor-pane-host.layout-right-col .editor-drop-overlay.zone-open.pane-primary:before{top:0;right:0;bottom:50%;left:50%}.editor-pane-host.layout-top-row .editor-drop-overlay.zone-open.pane-tertiary:before,.editor-pane-host.layout-bottom-row .editor-drop-overlay.zone-open.pane-tertiary:before{top:50%;right:0;bottom:0;left:0}.editor-pane-host.layout-bottom-row .editor-drop-overlay.zone-open.pane-primary:before{top:50%;right:50%;bottom:0;left:0}.editor-pane-host.layout-bottom-row .editor-drop-overlay.zone-open.pane-secondary:before{top:50%;right:0;bottom:0;left:50%}.editor-pane-host.layout-left-col .editor-drop-overlay.zone-open.pane-secondary:before{top:50%;right:50%;bottom:0;left:0}.editor-pane-host.layout-left-col .editor-drop-overlay.zone-open.pane-tertiary:before{top:0;right:0;bottom:0;left:50%}.editor-pane-host.layout-right-col .editor-drop-overlay.zone-open.pane-secondary:before{top:50%;right:0;bottom:0;left:50%}.editor-pane-host.layout-right-col .editor-drop-overlay.zone-open.pane-tertiary:before{top:0;right:50%;bottom:0;left:0}.editor-pane-host.layout-left-triple .editor-drop-overlay.zone-open.pane-primary:before{top:0;right:66.666%;bottom:0;left:0}.editor-pane-host.layout-left-triple .editor-drop-overlay.zone-open.pane-secondary:before{top:0;right:33.333%;bottom:0;left:33.333%}.editor-pane-host.layout-left-triple .editor-drop-overlay.zone-open.pane-tertiary:before{top:0;right:0;bottom:0;left:66.666%}.editor-pane-host.layout-right-triple .editor-drop-overlay.zone-open.pane-tertiary:before{top:0;right:66.666%;bottom:0;left:0}.editor-pane-host.layout-right-triple .editor-drop-overlay.zone-open.pane-primary:before{top:0;right:33.333%;bottom:0;left:33.333%}.editor-pane-host.layout-right-triple .editor-drop-overlay.zone-open.pane-secondary:before{top:0;right:0;bottom:0;left:66.666%}.editor-pane-host.layout-top-triple .editor-drop-overlay.zone-open.pane-primary:before{top:0;right:0;bottom:66.666%;left:0}.editor-pane-host.layout-top-triple .editor-drop-overlay.zone-open.pane-secondary:before{top:33.333%;right:0;bottom:33.333%;left:0}.editor-pane-host.layout-top-triple .editor-drop-overlay.zone-open.pane-tertiary:before{top:66.666%;right:0;bottom:0;left:0}.editor-pane-host.layout-bottom-triple .editor-drop-overlay.zone-open.pane-tertiary:before{top:0;right:0;bottom:66.666%;left:0}.editor-pane-host.layout-bottom-triple .editor-drop-overlay.zone-open.pane-primary:before{top:33.333%;right:0;bottom:33.333%;left:0}.editor-pane-host.layout-bottom-triple .editor-drop-overlay.zone-open.pane-secondary:before{top:66.666%;right:0;bottom:0;left:0}.editor-drop-plus{position:absolute;width:26px;height:26px;border-radius:999px;display:grid;place-items:center;background:var(--app-text-primary);color:var(--app-bg-1-main);box-shadow:0 8px 18px var(--app-border-soft)}.editor-drop-overlay.zone-open .editor-drop-plus{left:50%;top:50%;transform:translate(-50%,-50%)}.editor-drop-overlay.zone-split-right .editor-drop-plus,.editor-drop-overlay.zone-open.pane-secondary .editor-drop-plus{left:75%;top:50%;transform:translate(-50%,-50%)}.editor-drop-overlay.zone-split-bottom .editor-drop-plus{left:50%;top:75%;transform:translate(-50%,-50%)}.editor-pane-host.split-right .editor-drop-overlay.zone-open.pane-primary .editor-drop-plus{left:25%;top:50%}.editor-pane-host.split-bottom .editor-drop-overlay.zone-open.pane-primary .editor-drop-plus{left:50%;top:25%}.editor-pane-host.split-bottom .editor-drop-overlay.zone-open.pane-secondary .editor-drop-plus{left:50%;top:75%}.editor-pane-host.split-bottom .editor-drop-overlay.zone-split-right.pane-primary .editor-drop-plus{left:75%;top:25%}.editor-pane-host.split-bottom .editor-drop-overlay.zone-split-right.pane-secondary .editor-drop-plus,.editor-pane-host.split-right .editor-drop-overlay.zone-split-bottom.pane-secondary .editor-drop-plus{left:75%;top:75%}.editor-pane-host.split-right .editor-drop-overlay.zone-split-bottom.pane-primary .editor-drop-plus{left:25%;top:75%}.editor-pane-host.layout-top-row .editor-drop-overlay.zone-open.pane-primary .editor-drop-plus,.editor-pane-host.layout-left-col .editor-drop-overlay.zone-open.pane-primary .editor-drop-plus{left:25%;top:25%}.editor-pane-host.layout-top-row .editor-drop-overlay.zone-open.pane-secondary .editor-drop-plus,.editor-pane-host.layout-right-col .editor-drop-overlay.zone-open.pane-primary .editor-drop-plus{left:75%;top:25%}.editor-drop-overlay.zone-open.pane-tertiary .editor-drop-plus{left:50%;top:75%;transform:translate(-50%,-50%)}.editor-pane-host.layout-left-triple .editor-drop-overlay.zone-open.pane-primary .editor-drop-plus,.editor-pane-host.layout-right-triple .editor-drop-overlay.zone-open.pane-tertiary .editor-drop-plus{left:16.666%;top:50%}.editor-pane-host.layout-left-triple .editor-drop-overlay.zone-open.pane-secondary .editor-drop-plus,.editor-pane-host.layout-right-triple .editor-drop-overlay.zone-open.pane-primary .editor-drop-plus{left:50%;top:50%}.editor-pane-host.layout-left-triple .editor-drop-overlay.zone-open.pane-tertiary .editor-drop-plus,.editor-pane-host.layout-right-triple .editor-drop-overlay.zone-open.pane-secondary .editor-drop-plus{left:83.333%;top:50%}.editor-pane-host.layout-top-triple .editor-drop-overlay.zone-open.pane-primary .editor-drop-plus,.editor-pane-host.layout-bottom-triple .editor-drop-overlay.zone-open.pane-tertiary .editor-drop-plus{left:50%;top:16.666%}.editor-pane-host.layout-top-triple .editor-drop-overlay.zone-open.pane-secondary .editor-drop-plus,.editor-pane-host.layout-bottom-triple .editor-drop-overlay.zone-open.pane-primary .editor-drop-plus{left:50%;top:50%}.editor-pane-host.layout-top-triple .editor-drop-overlay.zone-open.pane-tertiary .editor-drop-plus,.editor-pane-host.layout-bottom-triple .editor-drop-overlay.zone-open.pane-secondary .editor-drop-plus{left:50%;top:83.333%}.editor-document-preview .editor-body{pointer-events:none}.editor-tab-context-menu{position:fixed;z-index:40;min-width:152px;border:1px solid var(--app-border);border-radius:10px;background:var(--app-bg-1-main);box-shadow:0 12px 24px var(--app-border);padding:6px;display:grid;gap:4px}.editor-tab-context-menu button{border:0;background:transparent;border-radius:8px;height:30px;display:inline-flex;align-items:center;gap:6px;padding:0 8px;color:var(--app-text-secondary);font-size:12px;cursor:pointer}.editor-tab-context-menu button:hover,.editor-tab-context-menu button:focus-visible{background:var(--app-hover)}.editor-tab-context-menu-divider{display:block;height:0;border-top:1px solid var(--app-border);margin:3px 4px}.editor-sidebar-search-context-menu{position:fixed;z-index:42;min-width:164px;border:1px solid var(--app-border);border-radius:10px;background:var(--app-bg-1-main);box-shadow:0 12px 24px var(--app-border);padding:6px;display:grid;gap:4px}.editor-sidebar-search-context-menu button{border:0;background:transparent;border-radius:8px;min-height:30px;display:inline-flex;align-items:center;gap:6px;padding:0 8px;color:var(--app-text-secondary);font-size:12px;cursor:pointer}.editor-sidebar-search-context-menu button:hover,.editor-sidebar-search-context-menu button:focus-visible{background:var(--app-hover)}.editor-toolbar button.active{background:var(--app-bg-4-extra);color:var(--app-text-on-bg-4)}.editor-toolbar-color-btn,.editor-text-color-wrap,.editor-export-menu-wrap{position:relative}.editor-export-menu{position:absolute;top:calc(100% + 8px);right:0;min-width:88px;border:1px solid var(--app-border);border-radius:10px;background:var(--app-bg-2-sub);box-shadow:0 10px 22px var(--app-border-soft);padding:6px;display:grid;gap:4px;z-index:26}.editor-export-menu button{width:100%;height:30px;border:0;border-radius:8px;background:transparent;color:var(--app-text-primary);display:flex;align-items:center;justify-content:flex-start;padding:0 10px;font-size:12px;font-weight:600;text-transform:lowercase}.editor-export-menu button:hover,.editor-export-menu button:focus-visible{background:var(--app-bg-3-small)}.editor-export-menu button:disabled{opacity:.5;cursor:not-allowed}.editor-share-menu-wrap{position:relative}.editor-share-menu{position:absolute;top:calc(100% + 8px);right:0;width:min(400px,calc(100vw - 24px));border:1px solid var(--app-border);border-radius:12px;background:var(--app-bg-2-sub);box-shadow:0 14px 28px var(--app-border-soft);padding:12px;display:grid;gap:12px;z-index:28}.editor-share-menu-field{display:grid;gap:6px}.editor-share-menu-field span{display:block;color:var(--app-text-secondary);font-size:11px;font-weight:700;white-space:nowrap}.editor-share-menu-field input{width:100%;height:36px;border:1px solid var(--app-border);border-radius:10px;background:var(--app-bg-1-main);color:var(--app-text-primary);padding:0 12px;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.editor-share-menu-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.editor-share-menu-feedback{margin:0;color:var(--app-text-secondary);font-size:11px;line-height:1.45}.editor-share-menu-feedback.error{color:#f87171}.editor-share-menu-submit{height:34px;border:0;border-radius:10px;background:var(--app-text-primary);color:var(--app-bg-1-main);padding:0 14px;font-size:12px;font-weight:700;transition:opacity .16s ease,transform .16s ease}.editor-share-menu-submit:disabled{opacity:.45;cursor:not-allowed}.editor-share-toggle{display:inline-flex;align-items:center;justify-content:center;min-width:34px;cursor:pointer}.editor-share-toggle:has(input:disabled){cursor:not-allowed;opacity:.72}.editor-share-toggle input{position:absolute;opacity:0;pointer-events:none}.editor-share-toggle-track{width:34px;height:20px;display:inline-flex;align-items:center;border-radius:999px;background:var(--app-bg-4-extra);padding:2px;transition:background-color .18s ease}.editor-share-toggle-thumb{display:block;width:16px;height:16px;border-radius:999px;background:#fff;box-shadow:0 2px 6px #0000002e;transition:transform .18s ease}.editor-share-toggle.enabled .editor-share-toggle-track{background:#3b82f6}.editor-share-toggle.enabled .editor-share-toggle-thumb{transform:translate(14px)}.editor-spell-suggestion-menu{position:fixed;z-index:120;min-width:220px;max-width:280px;border:1px solid var(--app-border);border-radius:10px;background:var(--app-bg-2-sub);box-shadow:0 12px 24px var(--app-border-soft);padding:8px;display:grid;gap:8px}.editor-spell-suggestion-menu header{padding:0 2px}.editor-spell-suggestion-menu header p{margin:0;color:var(--app-text-secondary);font-size:12px;font-weight:700;line-height:1.2;word-break:break-word}.editor-spell-suggestion-items{display:grid;gap:4px}.editor-spell-suggestion-items button{width:100%;min-height:30px;border:0;border-radius:8px;background:transparent;color:var(--app-text-primary);display:flex;align-items:center;justify-content:flex-start;padding:6px 10px;font-size:12px;font-weight:600;cursor:pointer;word-break:break-word}.editor-spell-suggestion-items button:hover,.editor-spell-suggestion-items button:focus-visible{background:var(--app-bg-3-small)}.editor-spell-suggestion-items span{color:var(--app-text-muted);font-size:12px;line-height:1.35;padding:4px 10px 6px}.editor-spell-review-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:82;--spell-scrollbar-size: 12px;--spell-surface-page: #1d1e23;--spell-surface-panel: #23252b;--spell-surface-card: #2a2c33;--spell-surface-elevated: #31343c;--spell-text-primary: #e8ebf1;--spell-text-secondary: #c2c7d2;--spell-text-muted: #9ca4b3;--spell-accent-recommend: #60a5fa;--spell-accent-suggest: #a78bfa;--spell-accent-recommend-bg: rgba(96, 165, 250, .12);--spell-accent-suggest-bg: rgba(167, 139, 250, .12);--spell-border: rgba(255, 255, 255, .08);background:var(--spell-surface-page);color:var(--spell-text-primary);animation:editor-spell-review-fade-in .22s cubic-bezier(.22,1,.36,1)}.editor-spell-review-layer.light{--spell-surface-page: #efeee9;--spell-surface-panel: #efeee9;--spell-surface-card: #f7f5f0;--spell-surface-elevated: #eceae4;--spell-text-primary: #253044;--spell-text-secondary: #6f7788;--spell-text-muted: #8a90a0;--spell-accent-recommend: #2563eb;--spell-accent-suggest: #8b5cf6;--spell-accent-recommend-bg: rgba(37, 99, 235, .1);--spell-accent-suggest-bg: rgba(139, 92, 246, .1);--spell-border: rgba(0, 0, 0, .08)}.editor-spell-review-shell{height:100%;min-height:0}.editor-spell-review-workspace{display:grid;grid-template-columns:minmax(0,1fr) 438px;height:100%;min-height:0}.editor-spell-review-header,.editor-spell-review-stats-bar,.editor-spell-review-docs-head,.editor-spell-review-sidebar-head{background:var(--spell-surface-panel)}.editor-spell-review-header{min-height:72px;padding:0 28px;display:flex;align-items:center;gap:18px}.editor-spell-review-header-title{min-width:0;display:flex;align-items:center;gap:14px}.editor-spell-review-header-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;color:color-mix(in srgb,var(--spell-accent-recommend) 45%,var(--spell-accent-suggest))}.editor-spell-review-header-title strong{display:block;font-size:17px;font-weight:700;line-height:1.18;color:var(--spell-text-primary)}.editor-spell-review-header-actions{margin-left:auto;display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.editor-spell-review-toggle-btn,.editor-spell-review-icon-btn,.editor-spell-review-zoom-control{height:30px;border-radius:10px;border:1px solid var(--spell-border);background:var(--spell-surface-elevated);color:var(--spell-text-secondary);transition:background-color .18s ease,color .18s ease,border-color .18s ease,opacity .18s ease,transform .18s ease}.editor-spell-review-toggle-btn{padding:0 12px;display:flex;align-items:center;gap:6px;font-size:12px;font-weight:600}.editor-spell-review-icon-btn{width:30px;display:flex;align-items:center;justify-content:center}.editor-spell-review-icon-btn.close{margin-left:8px}.editor-spell-review-zoom-control{display:flex;align-items:center;overflow:hidden}.editor-spell-review-zoom-control button{width:28px;height:30px;border:0;background:transparent;color:inherit;display:flex;align-items:center;justify-content:center}.editor-spell-review-zoom-control span{min-width:52px;padding:0 8px;text-align:center;font-size:12px;font-weight:600}.editor-spell-review-toggle-btn:hover,.editor-spell-review-toggle-btn:focus-visible,.editor-spell-review-icon-btn:hover,.editor-spell-review-icon-btn:focus-visible,.editor-spell-review-zoom-control:hover,.editor-spell-review-zoom-control:focus-within{background:color-mix(in srgb,var(--spell-surface-elevated) 82%,var(--spell-text-primary));color:var(--spell-text-primary);outline:none;transform:translateY(-1px)}.editor-spell-review-zoom-control button:disabled{opacity:.45;cursor:default}.editor-spell-review-bulk-btn{height:30px;border-radius:10px;border:0;padding:0 12px;display:flex;align-items:center;gap:6px;font-size:12px;font-weight:700;transition:opacity .18s ease,filter .18s ease,transform .18s ease;box-shadow:0 8px 22px color-mix(in srgb,var(--spell-surface-elevated) 48%,transparent)}.editor-spell-review-bulk-btn.recommend{background:var(--spell-accent-recommend-bg);color:var(--spell-accent-recommend)}.editor-spell-review-bulk-btn.suggest{background:var(--spell-accent-suggest-bg);color:var(--spell-accent-suggest)}.editor-spell-review-bulk-btn.all{background:linear-gradient(135deg,var(--spell-accent-recommend),var(--spell-accent-suggest));color:#fff}.editor-spell-review-bulk-btn:hover,.editor-spell-review-bulk-btn:focus-visible{filter:brightness(1.05);transform:translateY(-1px)}.editor-spell-review-bulk-btn:disabled{opacity:.4;cursor:default;transform:none}.editor-spell-review-stats-bar{min-height:52px;padding:0 28px;display:grid;align-items:center;grid-template-columns:430px 1px 124px minmax(0,1fr);gap:22px}.editor-spell-review-stats-group{display:flex;align-items:center;gap:14px;min-width:0}.editor-spell-review-stats-group.compact{gap:10px}.editor-spell-review-stat{display:inline-flex;align-items:baseline;gap:6px}.editor-spell-review-stat strong{min-width:3ch;display:inline-block;text-align:right;font-size:14px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--spell-text-primary)}.editor-spell-review-stat span{color:var(--spell-text-muted);font-size:12px}.editor-spell-review-stat.recommend strong{color:var(--spell-accent-recommend)}.editor-spell-review-stat.suggest strong{color:var(--spell-accent-suggest)}.editor-spell-review-stat.success strong{color:#22c55e}.editor-spell-review-stats-separator{width:1px;height:16px;background:transparent}.editor-spell-review-progress{margin-left:0;min-width:260px;display:flex;align-items:center;gap:10px}.editor-spell-review-progress-track{flex:1 1 auto;height:8px;border-radius:999px;overflow:hidden;background:var(--spell-surface-elevated)}.editor-spell-review-progress-fill{height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--spell-accent-recommend),var(--spell-accent-suggest));transition:width .26s cubic-bezier(.22,1,.36,1)}.editor-spell-review-progress span{color:var(--spell-text-muted);font-size:12px;font-weight:700}.editor-spell-review-main{min-width:0;min-height:0;display:flex;flex-direction:column}.editor-spell-review-docs-wrap{flex:1 1 auto;min-height:0}.editor-spell-review-docs{display:flex;flex-direction:column;height:100%;min-height:0;background:var(--spell-surface-card);overflow:hidden}.editor-spell-review-docs-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:56px;padding-right:var(--spell-scrollbar-size)}.editor-spell-review-docs-head>div{padding:0 28px;color:var(--spell-text-secondary);font-size:14px;font-weight:700;display:flex;align-items:center;justify-content:space-between;gap:10px}.editor-spell-review-docs-head .is-corrected{gap:12px}.editor-spell-review-docs-legend{display:flex;align-items:center;gap:8px}.editor-spell-review-docs-legend span{display:flex;align-items:center;gap:4px;padding:3px 9px;border-radius:999px;font-size:11px;font-weight:700}.editor-spell-review-docs-legend span em{font-style:normal}.editor-spell-review-docs-legend .recommend{background:var(--spell-accent-recommend-bg);color:var(--spell-accent-recommend)}.editor-spell-review-docs-legend .suggest{background:var(--spell-accent-suggest-bg);color:var(--spell-accent-suggest)}.editor-spell-review-docs-body{flex:1 1 auto;min-height:0;overflow:auto;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--spell-text-muted) 58%,transparent) transparent;display:grid;align-content:start;gap:12px;padding:24px 24px 32px}.editor-spell-review-docs-body::-webkit-scrollbar,.editor-spell-review-sidebar-body::-webkit-scrollbar{width:var(--spell-scrollbar-size)}.editor-spell-review-docs-body::-webkit-scrollbar-track,.editor-spell-review-sidebar-body::-webkit-scrollbar-track{background:transparent}.editor-spell-review-docs-body::-webkit-scrollbar-thumb,.editor-spell-review-sidebar-body::-webkit-scrollbar-thumb{border-radius:999px;border:3px solid transparent;background-clip:padding-box;background:color-mix(in srgb,var(--spell-text-muted) 58%,transparent)}.editor-spell-review-docs-body::-webkit-scrollbar-thumb:hover,.editor-spell-review-sidebar-body::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--spell-text-secondary) 72%,transparent)}.editor-spell-review-docs-body.is-target-loading{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}.editor-spell-review-loading-source{display:grid;gap:12px;min-width:0}.editor-spell-review-target-loading-panel{position:sticky;top:24px;min-width:0;min-height:320px;display:flex;align-items:flex-start;justify-content:center;padding:28px 24px 24px}.editor-spell-review-target-loading-indicator{min-height:260px;width:min(100%,320px);border-radius:20px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;color:var(--spell-text-muted);background:color-mix(in srgb,var(--spell-surface-card) 58%,transparent);text-align:center}.editor-spell-review-target-loading-indicator svg{color:var(--spell-accent-recommend);animation:editor-spell-review-spin .88s linear infinite}.editor-spell-review-target-loading-indicator span{font-size:13px;font-weight:600}.editor-spell-review-doc-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-width:0;align-items:stretch}.editor-spell-review-line-card,.editor-spell-review-target-card{position:relative;display:flex;align-items:flex-start;gap:12px;min-width:0;padding:18px 20px;border-radius:20px;background:color-mix(in srgb,var(--spell-surface-card) 82%,var(--spell-surface-page));transition:background-color .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease}.editor-spell-review-line-card{overflow:hidden}.editor-spell-review-line-card:before{content:"";position:absolute;left:0;top:12px;bottom:12px;width:14px;border-left:2px solid transparent;border-top:2px solid transparent;border-bottom:2px solid transparent;border-radius:18px 0 0 18px;opacity:0;transition:opacity .18s ease,border-color .18s ease}.editor-spell-review-line-card.has-corrections:before{opacity:1}.editor-spell-review-line-card.has-pending:before{border-left-color:#ef4444;border-top-color:#ef4444;border-bottom-color:#ef4444}.editor-spell-review-line-card.has-corrections:not(.has-pending):before{border-left-color:#22c55e;border-top-color:#22c55e;border-bottom-color:#22c55e}.editor-spell-review-line-card.active{background:var(--spell-surface-elevated);box-shadow:0 0 0 1px color-mix(in srgb,var(--spell-border) 64%,transparent)}.editor-spell-review-target-card{border-radius:20px;padding-left:24px}.editor-spell-review-target-card.active{background:color-mix(in srgb,var(--spell-surface-card) 76%,var(--spell-surface-elevated))}.editor-spell-review-line-number{flex:0 0 28px;margin-top:1px;color:var(--spell-text-muted);font-size:12px;font-weight:600;line-height:1.7;text-align:right}.editor-spell-review-line-body,.spell-review-target-line{flex:1 1 auto;min-width:0}.editor-spell-review-line-body p,.spell-review-target-line{margin:0;color:var(--spell-text-primary);font-size:var(--spell-review-text-size, 14px);white-space:pre-wrap;word-break:break-word;line-height:1.82}.editor-spell-review-line-apply{position:absolute;top:16px;right:16px;height:30px;border:1px solid color-mix(in srgb,var(--spell-text-primary) 14%,var(--spell-border));border-radius:10px;background:color-mix(in srgb,var(--spell-surface-elevated) 78%,white 22%);color:#f5f7fb;padding:0 10px;font-size:12px;font-weight:600;opacity:0;box-shadow:0 8px 18px #00000024;transition:opacity .16s ease,background-color .16s ease,transform .16s ease,box-shadow .16s ease}.editor-spell-review-line-card:hover .editor-spell-review-line-apply,.editor-spell-review-line-card:focus-within .editor-spell-review-line-apply{opacity:1;transform:translateY(-1px);background:color-mix(in srgb,var(--spell-surface-elevated) 68%,white 32%);box-shadow:0 10px 22px #0000002e}.spell-review-segment{border:0;padding:1px 2px;border-radius:6px;background:transparent;color:inherit;font:inherit;transition:background-color .16s ease,color .16s ease,border-color .16s ease}.spell-review-segment.clickable,.spell-review-segment.spell-review-source{cursor:pointer}.spell-review-segment.spell-review-source.pending{color:#ef4444;background:#ef44441f}.spell-review-segment.spell-review-source.applied{color:#22c55e;background:#22c55e1f}.spell-review-segment.spell-review-source.active.pending{background:#ef444447;box-shadow:inset 0 0 0 1px #ff7d7d47}.spell-review-segment.spell-review-source.active.applied{background:#22c55e47;box-shadow:inset 0 0 0 1px #86efac3d}.spell-review-segment.spell-review-target.pending.recommend{border-bottom:2px solid var(--spell-accent-recommend)}.spell-review-segment.spell-review-target.pending.suggest{border-bottom:2px solid var(--spell-accent-suggest)}.spell-review-segment.spell-review-target.recommend.active,.spell-review-segment.spell-review-target.applied.recommend{background:color-mix(in srgb,var(--spell-accent-recommend) 26%,var(--spell-surface-card));color:var(--spell-accent-recommend);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--spell-accent-recommend) 38%,transparent)}.spell-review-segment.spell-review-target.suggest.active,.spell-review-segment.spell-review-target.applied.suggest{background:color-mix(in srgb,var(--spell-accent-suggest) 28%,var(--spell-surface-card));color:var(--spell-accent-suggest);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--spell-accent-suggest) 40%,transparent)}.editor-spell-review-sidebar{min-width:0;min-height:0;display:flex;flex-direction:column;background:var(--spell-surface-panel)}.editor-spell-review-sidebar-head{min-height:72px;padding:0 20px;display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--spell-text-secondary);font-size:15px;font-weight:700}.editor-spell-review-sidebar-head span:last-child{padding:5px 10px;border-radius:999px;background:var(--spell-surface-elevated);color:var(--spell-text-muted);font-size:12px}.editor-spell-review-sidebar-body{flex:1 1 auto;min-height:0;overflow:auto;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--spell-text-muted) 58%,transparent) transparent;padding:16px;background:var(--spell-surface-panel)}.editor-spell-review-sidebar-section,.editor-spell-review-exception-panel{display:grid;gap:12px}.editor-spell-review-exception-panel{margin-bottom:16px;padding:14px;border-radius:18px;background:var(--spell-surface-card)}.editor-spell-review-exception-head{display:flex;align-items:center;gap:6px;color:var(--spell-text-secondary);font-size:12px;font-weight:600}.editor-spell-review-exception-list{display:flex;flex-wrap:wrap;gap:8px}.editor-spell-review-exception-chip{height:30px;border:0;border-radius:10px;background:var(--spell-surface-elevated);color:var(--spell-text-secondary);padding:0 12px;display:flex;align-items:center;gap:6px;font-size:12px}.editor-spell-review-sidebar-label{color:var(--spell-text-muted);font-size:13px;font-weight:600}.editor-spell-review-sidebar-label.with-icon{display:inline-flex;align-items:center;gap:7px}.editor-spell-review-sidebar-label.with-icon em{font-style:normal}.editor-spell-review-card-list{display:grid;gap:12px}.editor-spell-review-card{border:1px solid var(--spell-border);border-radius:18px;background:var(--spell-surface-card);padding:16px;cursor:pointer;transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease,transform .18s ease}.editor-spell-review-card.active.recommend{border-color:var(--spell-accent-recommend);box-shadow:0 0 0 1px color-mix(in srgb,var(--spell-accent-recommend) 18%,transparent);background:color-mix(in srgb,var(--spell-surface-card) 90%,var(--spell-accent-recommend))}.editor-spell-review-card.active.suggest{border-color:var(--spell-accent-suggest);box-shadow:0 0 0 1px color-mix(in srgb,var(--spell-accent-suggest) 18%,transparent);background:color-mix(in srgb,var(--spell-surface-card) 90%,var(--spell-accent-suggest))}.editor-spell-review-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px}.editor-spell-review-card-type{display:flex;align-items:center;gap:5px;padding:5px 10px;border-radius:999px;font-size:12px;font-weight:700;line-height:1}.editor-spell-review-card-type.recommend{background:#60a5fa1f;color:#60a5fa}.editor-spell-review-card-type.suggest{background:#a78bfa1f;color:#a78bfa}.editor-spell-review-card-line{color:var(--spell-text-muted);font-size:12px;line-height:1.2}.editor-spell-review-card-diff{display:flex;align-items:center;gap:8px;color:var(--spell-text-muted);font-size:15px;line-height:1.5;flex-wrap:wrap}.editor-spell-review-card-diff .original{padding:5px 8px;border-radius:8px;background:var(--spell-surface-elevated);color:var(--spell-text-muted);text-decoration:line-through}.editor-spell-review-card-diff .arrow{color:var(--spell-text-secondary)}.editor-spell-review-card-diff .suggestion{padding:5px 8px;border-radius:8px;color:inherit}.editor-spell-review-card-reason{margin:8px 0 0;color:var(--spell-text-secondary);font-size:12px;line-height:1.5;white-space:pre-wrap;word-break:break-word}.editor-spell-review-card.recommend .editor-spell-review-card-diff .suggestion{background:var(--spell-accent-recommend-bg);color:var(--spell-accent-recommend)}.editor-spell-review-card.suggest .editor-spell-review-card-diff .suggestion{background:var(--spell-accent-suggest-bg);color:var(--spell-accent-suggest)}.editor-spell-review-card-actions{margin-top:12px;padding-top:10px;border-top:1px solid var(--spell-border);display:flex;align-items:center;gap:10px;flex-wrap:wrap}.editor-spell-review-card-actions .solid,.editor-spell-review-card-actions .ghost{border:0;display:flex;align-items:center;gap:6px;font-size:13px;font-weight:600;transition:filter .16s ease,background-color .16s ease,color .16s ease,opacity .16s ease}.editor-spell-review-card-actions .solid{min-width:100px;height:30px;justify-content:center;padding:0 12px;border-radius:10px;color:#fff}.editor-spell-review-card-actions .solid.recommend{background:var(--spell-accent-recommend)}.editor-spell-review-card-actions .solid.suggest{background:var(--spell-accent-suggest)}.editor-spell-review-card-actions .ghost{height:30px;padding:0;background:transparent;color:var(--spell-text-secondary)}.editor-spell-review-card-actions button:hover,.editor-spell-review-line-apply:hover{filter:brightness(1.06)}.editor-spell-review-applied-list{display:grid;gap:10px}.editor-spell-review-applied-list.skipped{gap:14px}.editor-spell-review-sidebar-section.skipped{margin-top:20px}.editor-spell-review-applied-row{display:flex;align-items:center;gap:8px;padding:12px 14px;border-radius:14px;border:1px solid var(--spell-border);background:var(--spell-surface-card);color:var(--spell-text-secondary);font-size:13px;opacity:.72}.editor-spell-review-applied-row-copy{display:flex;align-items:center;gap:8px;min-width:0}.editor-spell-review-applied-row .original{text-decoration:line-through;color:var(--spell-text-muted)}.editor-spell-review-applied-row em{font-style:normal;color:var(--spell-text-muted)}.editor-spell-review-applied-row .suggestion{color:var(--spell-text-primary)}.editor-spell-review-applied-row.skipped{justify-content:space-between;gap:16px;padding:16px 18px;border-radius:18px;color:var(--spell-text-muted);opacity:.82}.editor-spell-review-applied-row.skipped .suggestion{color:var(--spell-text-secondary)}.editor-spell-review-applied-row.skipped.interactive{transition:border-color .18s ease,background-color .18s ease,box-shadow .18s ease;outline:none}.editor-spell-review-applied-row.skipped.interactive:hover,.editor-spell-review-applied-row.skipped.interactive:focus-within,.editor-spell-review-applied-row.skipped.interactive:focus-visible{border-color:color-mix(in srgb,var(--spell-text-muted) 24%,var(--spell-border));background:color-mix(in srgb,var(--spell-surface-card) 86%,var(--spell-surface-elevated))}.editor-spell-review-restore-btn{flex:0 0 auto;height:30px;padding:0 12px;border-radius:10px;border:1px solid var(--spell-border);background:color-mix(in srgb,var(--spell-surface-elevated) 92%,transparent);color:var(--spell-text-secondary);display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;opacity:0;pointer-events:none;transform:translateY(2px);transition:opacity .16s ease,transform .16s ease,background-color .16s ease,border-color .16s ease,color .16s ease}.editor-spell-review-applied-row.skipped.interactive:hover .editor-spell-review-restore-btn,.editor-spell-review-applied-row.skipped.interactive:focus-within .editor-spell-review-restore-btn,.editor-spell-review-applied-row.skipped.interactive:focus-visible .editor-spell-review-restore-btn{opacity:1;pointer-events:auto;transform:translateY(0)}.editor-spell-review-restore-btn:hover,.editor-spell-review-restore-btn:focus-visible{background:color-mix(in srgb,var(--spell-surface-elevated) 78%,var(--spell-text-primary));color:var(--spell-text-primary);outline:none}.editor-spell-review-empty{min-height:220px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.editor-spell-review-empty-icon{width:48px;height:48px;margin-bottom:12px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:#22c55e29;color:#22c55e}.editor-spell-review-empty p{margin:0;color:var(--spell-text-primary);font-size:16px;font-weight:600}.editor-spell-review-empty small{margin-top:4px;color:var(--spell-text-muted);font-size:12px;line-height:1.5}.editor-spell-review-sidebar-loading{min-height:220px;display:flex;align-items:center;justify-content:center;color:var(--spell-accent-recommend)}.editor-spell-review-sidebar-loading svg{animation:editor-spell-review-spin .88s linear infinite}.editor-spell-review-stage-message{margin:24px;padding:18px 20px;border:1px dashed color-mix(in srgb,var(--spell-border) 80%,transparent);border-radius:18px;background:var(--spell-surface-card);color:var(--spell-text-secondary);font-size:13px;line-height:1.6}.editor-spell-review-stage-message.failed{border-color:#ef444447;color:#fca5a5}.editor-page.spell-review-open .editor-timeline-top-toggle{opacity:0;pointer-events:none}@keyframes editor-spell-review-fade-in{0%{opacity:0}to{opacity:1}}@keyframes editor-spell-review-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (max-width: 1180px){.editor-spell-review-workspace{grid-template-columns:minmax(0,1fr)}.editor-spell-review-sidebar{display:none}}@media (max-width: 900px){.editor-spell-review-header,.editor-spell-review-stats-bar{padding-left:16px;padding-right:16px}.editor-spell-review-header{min-height:auto;padding-top:14px;padding-bottom:14px;align-items:flex-start;flex-direction:column}.editor-spell-review-header-actions{margin-left:0;width:100%;justify-content:flex-start}.editor-spell-review-stats-bar{display:flex;min-height:auto;padding-top:10px;padding-bottom:10px;flex-wrap:wrap}.editor-spell-review-progress{width:100%;min-width:0}.editor-spell-review-docs-wrap{min-height:0}.editor-spell-review-docs-head .is-corrected{flex-wrap:wrap}.editor-spell-review-doc-row,.editor-spell-review-docs-head,.editor-spell-review-docs-body.is-target-loading{grid-template-columns:minmax(0,1fr)}.editor-spell-review-docs-head>div+div,.editor-spell-review-target-card,.editor-spell-review-target-loading-panel{border-left:0}.editor-spell-review-target-card,.editor-spell-review-target-loading-panel{border-top:1px solid color-mix(in srgb,var(--spell-border) 72%,transparent);border-radius:0 0 20px 20px;padding-left:20px}}.shared-document-page{min-height:100vh;background:#faf9f7;color:#253044;padding:0 0 28px}.shared-document-shell{width:min(1420px,calc(100% - 32px));margin:0 auto}.shared-document-header{min-height:64px;display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:0;padding:0 16px;color:#6b6b7b;font-size:12px;font-weight:600;background:#fff;border-bottom:1px solid #e0ddd8}.shared-document-brand{display:inline-flex;align-items:center;gap:12px}.shared-document-brand img{width:34px;height:34px}.shared-document-brand-copy{display:flex;align-items:center}.shared-document-brand-copy strong{font-size:14px;color:#0a1f44}.shared-document-header-actions{display:inline-flex;align-items:center;gap:12px}.shared-document-review-auth{min-height:40px;border:1px solid #e0ddd8;border-radius:999px;background:#fff;padding:6px 12px 6px 8px;display:inline-flex;align-items:center;gap:10px;color:#6b6b7b;font-size:12px}.shared-document-panel-toggle{width:40px;height:40px;border:1px solid #e0ddd8;border-radius:12px;background:#fff;color:#6b6b7b;display:grid;place-items:center;transition:background .18s ease,border-color .18s ease,transform .18s ease}.shared-document-panel-toggle:hover,.shared-document-panel-toggle:focus-visible{background:#efeee9;border-color:#d4d0c9;transform:translateY(-1px)}.shared-document-empty{margin-top:24px;border:1px solid #e0ddd8;border-radius:28px;background:#fff;box-shadow:0 18px 48px #0a0e270f;padding:72px 28px;text-align:center}.shared-review-layout-shell{display:grid;grid-template-columns:minmax(0,1fr) 388px;gap:0;align-items:start;font-family:var(--app-ui-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);transition:grid-template-columns .22s cubic-bezier(.22,1,.36,1)}.shared-document-shell.review-panel-collapsed .shared-review-layout-shell{grid-template-columns:minmax(0,1fr) 0}.shared-review-reader-shell{min-width:0;overflow:hidden}.shared-review-reader-head{max-width:720px;margin:0 auto;padding:48px 32px 0}.shared-review-reader-head h1{margin:8px 0 14px;font-family:inherit;font-size:35.2px;font-weight:500;line-height:1.2;letter-spacing:-.04em;color:#0a0e27}.shared-document-meta{display:flex;align-items:center;gap:12px;color:#9b9ba8;font-size:11.5px;text-transform:uppercase;letter-spacing:.1em}.shared-document-submeta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;color:#9b9ba8;font-size:13px;line-height:1.6}.shared-document-submeta-separator{color:#c0beb7}.shared-review-reader-stats{display:inline-flex;align-items:center;gap:10px;color:#9b9ba8;font-size:12px}.shared-review-reader-body{position:relative;max-height:calc(100vh - 238px);overflow:auto;padding:32px 32px 92px;scrollbar-width:thin;scrollbar-color:rgba(155,155,168,.4) transparent}.shared-document-body{position:relative;width:min(720px,100%);margin:0 auto;padding:0;border-radius:0;background:transparent;box-shadow:none;color:#253044;white-space:pre-wrap;word-break:break-word;font-family:inherit;font-size:16.8px;line-height:1.85;letter-spacing:0}.shared-review-paragraph{display:block}.shared-review-paragraph-text{display:inline}.shared-review-paragraph-separator{white-space:pre-wrap}.shared-document-empty h1{margin:0 0 10px;font-size:28px;color:#0a0e27}.shared-document-empty p{margin:0;color:#6b6b7b;font-size:14px;line-height:1.7}.shared-review-mark{position:relative;border-radius:2px;border-bottom:2px solid transparent;cursor:pointer;transition:background .18s ease,border-color .18s ease,box-shadow .18s ease,color .18s ease}.shared-review-mark:hover,.shared-review-mark:focus-visible{background:#0a1f4414;outline:none}.shared-review-mark.active{box-shadow:none;color:#0a1f44}.shared-review-sidebar{min-width:0;height:calc(100vh - 112px);border-left:1px solid #e0ddd8;border-radius:0;background:#fafaf7;box-shadow:none;overflow:hidden;transition:width .22s cubic-bezier(.22,1,.36,1),transform .22s cubic-bezier(.22,1,.36,1)}.shared-review-sidebar.closed{width:0;border-left:0}.shared-review-sidebar.closed .shared-review-sidebar-head,.shared-review-sidebar.closed .shared-review-sidebar-list{display:none}.shared-review-sidebar-head{padding:16px 20px;border-bottom:1px solid #e0ddd8}.shared-review-sidebar-head strong{display:block;font-size:13px;color:#0a0e27}.shared-review-sidebar-head span{display:block;margin-top:6px;color:#9b9ba8;font-size:11px;line-height:1.55}.shared-review-sidebar-list{height:calc(100% - 85px);overflow:auto;padding:14px;display:grid;align-content:start;grid-auto-rows:max-content;gap:12px}.shared-review-sidebar-item{border:0;padding:0;background:transparent;text-align:left}.shared-review-card{border-left:3px solid transparent;border-radius:0;background:transparent;padding:16px 18px;color:#4a4a5a;transition:border-color .18s ease,background .18s ease,transform .18s ease,box-shadow .18s ease}.shared-review-card.inline{border:1px solid #e0ddd8;border-left-width:1px;border-radius:8px;background:#fff;box-shadow:0 2px 12px #0a0e270f}.shared-review-card.active,.shared-review-sidebar-item:hover .shared-review-card,.shared-review-sidebar-item:focus-visible .shared-review-card{border-left-color:#0a1f44;background:#0a1f440d;box-shadow:none;transform:none}.shared-review-card.inline.active{border-color:#d6d2ca;border-left-color:#0a1f44;background:#fff;box-shadow:0 2px 12px #0a0e270f}.shared-review-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.shared-review-card-meta{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-shrink:0}.shared-review-card-delete{height:24px;border:0;border-radius:999px;background:#0a1f440f;color:#6b6b7b;padding:0 10px;font-size:11px;font-weight:600}.shared-review-card-delete:hover,.shared-review-card-delete:focus-visible{background:#0a1f441f;color:#0a1f44}.shared-review-card-user{display:inline-flex;align-items:center;gap:10px;min-width:0;flex:1 1 auto}.shared-review-card-user>div:last-child{min-width:0}.shared-review-card-user strong{display:block;font-size:13px;font-weight:500;color:#0a0e27;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shared-review-card-user span{display:block;margin-top:2px;color:#9b9ba8;font-size:11px}.shared-review-card-avatar{width:22px;height:22px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;overflow:hidden;color:#fff;font-size:11px;font-weight:500;flex-shrink:0}.shared-review-card-chip{flex-shrink:0;height:20px;border-radius:10px;padding:0 8px;display:inline-flex;align-items:center;font-size:10px;font-weight:600}.shared-review-card-time{white-space:nowrap}.shared-review-card-quote{margin:12px 0 10px;padding:8px 10px;border-left:2px solid transparent;border-radius:3px;color:#6b6b7b;font-family:inherit;font-style:italic;font-size:12.8px;line-height:1.55;font-weight:400}.shared-review-card-body{margin:0;color:#4a4a5a;font-size:13.6px;line-height:1.65}.shared-review-reply-toolbar{margin-top:12px;display:flex;justify-content:flex-end}.shared-review-reply-toggle{height:26px;border:0;border-radius:999px;background:#0a1f440f;color:#0a1f44;padding:0 10px;font-size:11px;font-weight:600}.shared-review-reply-list{margin-top:12px;display:grid;gap:10px}.shared-review-reply-item{border-top:1px solid #ece8e2;padding-top:10px}.shared-review-reply-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.shared-review-reply-user{display:inline-flex;align-items:center;gap:8px;min-width:0}.shared-review-reply-avatar{width:18px;height:18px;border-radius:999px;flex-shrink:0;overflow:hidden}.shared-review-reply-user strong{font-size:12px;color:#0a0e27;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shared-review-reply-meta{display:inline-flex;align-items:center;gap:8px;flex-shrink:0;color:#9b9ba8;font-size:10px}.shared-review-reply-delete{height:22px;border:0;border-radius:999px;background:#0a1f440f;color:#6b6b7b;padding:0 8px;font-size:10px;font-weight:600}.shared-review-reply-item p{margin:8px 0 0;color:#4a4a5a;font-size:12.4px;line-height:1.6}.shared-review-reply-composer{margin-top:12px;border-top:1px solid #ece8e2;padding-top:12px}.shared-review-reply-composer textarea{width:100%;min-height:78px;border:1px solid #e0ddd8;border-radius:8px;background:#faf9f7;color:#253044;padding:12px 14px;font-size:12.5px;line-height:1.6;resize:vertical}.shared-review-reply-composer-actions{margin-top:10px;display:flex;justify-content:flex-end;gap:8px}.shared-review-reply-composer-actions .ghost,.shared-review-reply-composer-actions .solid{height:30px;border:0;border-radius:999px;padding:0 12px;font-size:11px;font-weight:600}.shared-review-reply-composer-actions .ghost{background:#0a1f440f;color:#6b6b7b}.shared-review-reply-composer-actions .solid{background:#0a1f44;color:#fff}.shared-review-reply-composer-actions .solid:disabled{opacity:.55}.shared-review-selection-menu,.shared-review-composer{position:fixed;transform:translate(-50%);z-index:40}.shared-review-selection-menu button{height:38px;border:0;border-radius:8px;background:#0a1f44;color:#fff;padding:0 14px;display:inline-flex;align-items:center;gap:8px;box-shadow:0 4px 20px #0a0e2733;transition:transform .16s ease,background .16s ease}.shared-review-selection-menu button:hover,.shared-review-selection-menu button:focus-visible{background:#0a275f;transform:translateY(-1px)}.shared-review-composer{width:min(360px,calc(100vw - 32px));border:1px solid #e0ddd8;border-radius:10px;background:#fff;box-shadow:0 8px 32px #0a0e271a;padding:16px}.shared-review-composer header strong{display:block;color:#0a0e27;font-size:13px}.shared-review-composer header span{display:block;margin-top:6px;color:#6b6b7b;font-size:12px;line-height:1.55}.shared-review-composer textarea{width:100%;min-height:108px;margin-top:14px;border:1px solid #e0ddd8;border-radius:6px;background:#faf9f7;color:#253044;padding:14px 16px;font-size:13px;line-height:1.6;resize:vertical}.shared-review-composer footer{margin-top:14px;display:flex;justify-content:flex-end;gap:8px}.shared-review-composer footer .ghost,.shared-review-composer footer .solid{height:36px;border-radius:12px;padding:0 14px;font-size:12px;font-weight:700;transition:transform .16s ease,opacity .16s ease,background .16s ease}.shared-review-composer footer .ghost{border:0;background:transparent;color:#6b6b7b}.shared-review-composer footer .solid{border:0;background:#0a1f44;color:#fff}.shared-review-composer footer .solid:disabled{opacity:.45;cursor:not-allowed}.shared-review-empty-panel{border:0;border-radius:0;padding:28px 20px;color:#9b9ba8;text-align:center}.shared-review-empty-panel strong{display:block;color:#0a0e27;font-size:14px}.shared-review-empty-panel p{margin:8px 0 0;font-size:12px;line-height:1.65}.shared-review-sidebar-collapsed-copy{height:100%;padding:0;display:grid;place-items:center}.shared-review-sidebar-collapsed-copy button{width:100%;height:100%;border:0;background:transparent;color:#9b9ba8;display:grid;place-items:center}.shared-review-inline-stack{display:grid;gap:12px;width:min(520px,100%);margin:18px 0 8px}.shared-review-inline-item{border:0;padding:0;background:transparent;text-align:left;width:100%}.shared-review-login-row{display:flex;justify-content:flex-end;margin-bottom:28px}.shared-review-login-btn{height:36px;border:0;border-radius:8px;background:#0a1f44;color:#fff;padding:0 16px;font-family:Inter,sans-serif;font-size:13px;font-weight:500;transition:opacity .16s ease,transform .16s ease}.shared-review-login-btn:hover,.shared-review-login-btn:focus-visible{opacity:.92;transform:translateY(-1px)}@media (max-width: 1080px){.shared-document-page{padding-bottom:24px}.shared-review-layout-shell,.shared-document-shell.review-panel-collapsed .shared-review-layout-shell{grid-template-columns:minmax(0,1fr)}.shared-review-sidebar,.shared-review-sidebar.closed{width:100%;height:auto}.shared-review-reader-body{max-height:none}.shared-document-body{padding:0;font-size:16px}.shared-review-reader-head{padding:32px 20px 0}}.spell-review-edit-menu{position:fixed;z-index:92;border:1px solid var(--app-border);border-radius:10px;background:var(--app-bg-2-sub);box-shadow:0 10px 24px var(--app-border-soft);padding:6px}.spell-review-edit-menu button{height:30px;border:0;border-radius:8px;padding:0 10px;background:var(--app-bg-3-small);color:var(--app-text-primary);font-size:12px;font-weight:600}.spell-review-edit-modal-layer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:91}.spell-review-edit-modal-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;border:0;background:transparent}.spell-review-edit-modal{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:min(440px,calc(100vw - 28px));border:1px solid var(--app-border);border-radius:12px;background:var(--app-bg-2-sub);box-shadow:0 20px 36px var(--app-border-soft);padding:12px;display:grid;gap:10px}.spell-review-edit-modal header strong{font-size:13px;color:var(--app-text-primary)}.spell-review-edit-modal textarea{width:100%;min-height:120px;border:1px solid var(--app-border);border-radius:8px;background:var(--app-bg-1-main);color:var(--app-text-primary);padding:9px 10px;font-size:13px;line-height:1.5;resize:vertical}.spell-review-edit-modal footer{display:flex;justify-content:flex-end;gap:8px}.spell-review-edit-modal footer .ghost,.spell-review-edit-modal footer .solid{height:30px;border-radius:8px;padding:0 10px;font-size:12px;font-weight:600}.spell-review-edit-modal footer .ghost{border:1px solid var(--app-border);background:var(--app-bg-3-small);color:var(--app-text-primary)}.spell-review-edit-modal footer .solid{border:1px solid var(--app-border);background:color-mix(in srgb,#22c55e 20%,var(--app-bg-3-small));color:var(--app-text-primary)}.editor-toolbar-color-btn i{position:absolute;right:2px;bottom:2px;width:7px;height:7px;border-radius:999px;border:1px solid var(--app-border);pointer-events:none}.editor-text-color-menu{position:absolute;top:calc(100% + 8px);left:0;min-width:136px;border:1px solid var(--app-border);border-radius:10px;background:var(--app-bg-3-small);box-shadow:0 10px 22px var(--app-border-soft);padding:6px;display:grid;gap:6px;z-index:26}.editor-text-color-menu-row{display:grid;grid-template-columns:repeat(3,36px);justify-content:center;gap:6px}.editor-text-color-menu-picker-row{display:flex;justify-content:center}.editor-text-color-menu-divider{width:100%;border-top:1px solid var(--app-border)}.editor-text-color-swatch{width:36px;height:36px;border-radius:10px;border:1px solid var(--app-border);background:var(--app-bg-1-main);color:var(--app-text-secondary);display:inline-flex;align-items:center;justify-content:center;padding:0;cursor:pointer}.editor-text-color-swatch i{width:18px;height:18px;border-radius:999px;border:1px solid var(--app-focus-ring)}.editor-text-color-swatch.clear{background:var(--app-hover)}.editor-text-color-swatch.picker{width:40px}.editor-text-color-swatch:hover,.editor-text-color-swatch:focus-visible{background:var(--app-border);border-color:var(--app-focus-ring)}.editor-text-color-swatch:disabled{opacity:.45;cursor:default}.editor-text-color-swatch:disabled:hover,.editor-text-color-swatch:disabled:focus-visible{background:var(--app-bg-1-main);border-color:var(--app-border)}.editor-toolbar-color-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;border:0;clip:rect(0 0 0 0);overflow:hidden;white-space:nowrap}.editor-toolbar-text-btn{width:auto;min-width:52px;padding:0 10px;font-size:12px;font-weight:500}.editor-select-wrap{border:0;border-radius:0;height:28px;padding:0;display:inline-flex;align-items:center;gap:6px;color:var(--app-text-secondary)}.editor-select-wrap select{border:0;background:transparent;color:var(--app-text-secondary);font-size:12px;outline:none}.editor-select-wrap.font-family-control{width:150px;justify-content:space-between;gap:4px}.editor-select-wrap.font-family-control select{width:122px}.editor-select-wrap.compact select{width:52px}.editor-select-wrap.compact.font-size-control{padding:0;gap:0;overflow:hidden}.editor-select-wrap.compact.font-size-control select{width:44px;text-align:center;text-align-last:center;font-variant-numeric:tabular-nums;appearance:none;-webkit-appearance:none;-moz-appearance:none;padding:0}.editor-font-size-stepper{align-self:stretch;width:16px;display:grid;grid-template-rows:1fr 1fr}.editor-font-size-stepper button{width:16px;height:13px;border:0;border-radius:0;background:transparent;color:var(--app-text-secondary);padding:0}.editor-font-size-stepper button+button{border-top:0}.editor-font-size-stepper button:hover,.editor-font-size-stepper button:focus-visible{background:var(--app-border-soft)}.revision-modal{width:min(980px,calc(100vw - 120px))}.revision-modal-body{grid-template-columns:240px minmax(0,1fr);gap:12px;min-height:420px}.revision-modal-list{border-right:1px solid var(--app-border);padding-right:12px;display:grid;grid-template-rows:auto minmax(0,1fr);gap:10px}.revision-modal-list .empty,.revision-modal-diff .empty{margin:0;font-size:12px;color:var(--app-text-secondary)}.revision-modal-list ul{list-style:none;margin:0;padding:0;display:grid;gap:6px;overflow:auto;max-height:360px}.revision-modal-list li button{width:100%;border:1px solid var(--app-border);background:var(--app-bg-1-main);border-radius:10px;padding:8px 10px;display:grid;gap:4px;text-align:left}.revision-modal-list li button strong{font-size:12px;color:var(--app-text-primary)}.revision-modal-list li button small{font-size:11px;color:var(--app-text-secondary);text-transform:uppercase}.revision-modal-list li button.active{border-color:var(--app-focus-ring);background:var(--app-bg-3-small)}.revision-modal-diff{display:grid;grid-template-rows:auto minmax(0,1fr);gap:10px}.revision-modal-meta h4{margin:0;font-size:15px;color:var(--app-text-primary)}.revision-modal-meta p{margin:4px 0 0;font-size:12px;color:var(--app-text-secondary)}.revision-diff-grid{border:1px solid var(--app-border);border-radius:12px;overflow:hidden;min-height:320px;display:grid;grid-template-rows:auto minmax(0,1fr)}.revision-diff-grid>header{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);background:var(--app-bg-3-small);border-bottom:1px solid var(--app-border)}.revision-diff-grid>header span{padding:8px 10px;font-size:11px;font-weight:700;color:var(--app-text-secondary);text-transform:uppercase;letter-spacing:.04em}.revision-diff-body{overflow:auto;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:12px}.revision-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.revision-row pre{margin:0;padding:6px 10px;white-space:pre-wrap;word-break:break-word;min-height:26px}.revision-row pre+pre{border-left:1px solid var(--app-border-soft)}.revision-row.add pre:last-child{background:var(--app-hover)}.revision-row.remove pre:first-child{background:var(--app-danger-bg)}.download-page{min-height:100vh;display:grid;place-items:center;background:var(--app-surface-bg)}.download-page h1{margin:0;font-family:var(--app-ui-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:clamp(34px,6vw,72px);color:var(--app-text-primary)}.plot-board{flex:1 1 auto;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden}.plot-board-body{min-height:0;display:flex;flex-direction:column}.plot-board-head{border-bottom:1px solid var(--app-border);background:var(--app-bg-1-main);height:40px;padding:0 16px;display:flex;justify-content:space-between;align-items:center;gap:12px;box-sizing:border-box}.plot-board-head-left{display:flex;align-items:center;gap:12px}.plot-board-summary-row{height:44px;min-height:44px;padding:0 24px;display:flex;align-items:center;justify-content:flex-start;box-sizing:border-box;gap:8px}.plot-board-summary-count{display:inline-flex;align-items:center;gap:8px}.plot-board-summary-count strong{font-size:12px;line-height:1;letter-spacing:.04em;text-transform:uppercase;font-weight:700;color:var(--app-text-secondary)}.plot-board-summary-count span{height:22px;min-width:24px;border-radius:999px;padding:0 8px;font-size:12px;line-height:1;font-weight:700;color:var(--app-text-primary);background:var(--app-bg-3-small);display:inline-flex;align-items:center;justify-content:center}.plot-board-summary-separator{width:4px;height:4px;border-radius:999px;background:var(--app-text-muted);display:inline-block}.plot-board-crumb{margin:0;display:inline-flex;align-items:center;gap:8px;font-size:12px;color:var(--app-text-secondary)}.plot-board-crumb strong{color:var(--app-text-primary);font-weight:700}.plot-board-crumb em{font-style:normal;opacity:.6}.plot-board-volume-select{position:relative;display:inline-flex;align-items:center}.plot-board-volume-select select{-webkit-appearance:none;-moz-appearance:none;appearance:none;height:26px;border:0;border-radius:8px;background:var(--app-bg-2-sub);color:var(--app-text-primary);font-size:12px;font-weight:600;padding:0 30px 0 10px;outline:none}.plot-board-volume-select svg{position:absolute;right:8px;color:var(--app-text-secondary);pointer-events:none}.plot-board-tabs{border:0;border-radius:11px;height:30px;box-sizing:border-box;padding:1px;display:inline-flex;gap:2px}.plot-board-tabs button{height:100%;border:0;border-radius:8px;background:transparent;color:var(--app-text-secondary);padding:0 11px;display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600}.plot-board-tabs button.active{background:var(--app-bg-3-small);color:var(--app-text-primary)}.plot-board-actions{display:inline-flex;align-items:center;gap:8px}.plot-theme-btn,.plot-new-chapter-btn,.plot-map-fit-btn,.plot-map-toggle-btn,.plot-map-zoom button{height:30px;border:0;border-radius:9px;background:var(--app-bg-2-sub);color:var(--app-text-secondary);font-size:12px;font-weight:600;padding:0 10px;display:inline-flex;align-items:center;gap:6px}.plot-new-chapter-btn{background:var(--app-bg-2-sub);color:var(--app-text-primary)}.plot-map-zoom{height:30px;border:0;border-radius:9px;background:var(--app-bg-2-sub);display:inline-flex;align-items:center;overflow:hidden}.plot-map-zoom button{border:0;border-radius:0;background:transparent;min-width:30px;justify-content:center;padding:0 8px;color:inherit}.plot-map-zoom span{min-width:50px;text-align:center;font-size:12px;font-weight:700;color:inherit}.plot-map-fit-btn{width:30px;padding:0;justify-content:center}.plot-map-text-btn,.plot-map-create-btn{width:auto;padding:0 10px;justify-content:center}.plot-map-create-action-icons{display:inline-flex;align-items:center;gap:2px}.plot-trash-btn{min-width:56px;width:auto;padding:0 10px;justify-content:space-between;gap:8px}.plot-trash-btn i{min-width:18px;height:18px;border-radius:999px;padding:0 5px;display:inline-flex;align-items:center;justify-content:center;background:var(--app-bg-3-small);color:var(--app-text-primary);font-size:10px;font-style:normal;font-weight:700}.plot-trash-btn.has-items{color:var(--app-text-primary)}.plot-map-toggle-btn{width:30px;padding:0;justify-content:center}.plot-map-toggle-btn.active{color:var(--app-text-primary);background:var(--app-bg-3-small)}.plot-trash-modal{width:min(560px,calc(100vw - 120px));max-height:calc(100vh - 120px);display:grid;grid-template-rows:52px minmax(0,1fr)}.plot-trash-modal .editor-modal-body{padding-bottom:20px;min-height:0;overflow:auto}.plot-trash-empty{font-size:13px;color:var(--app-text-muted)}.plot-trash-list{display:grid;gap:10px}.plot-trash-list article{border:1px solid var(--app-border);border-radius:12px;background:var(--app-bg-3-small);padding:11px 12px;display:flex;align-items:center;justify-content:space-between;gap:12px}.plot-trash-list article>div{display:grid;gap:4px}.plot-trash-list article strong{font-size:13px;color:var(--app-text-primary)}.plot-trash-list article small{font-size:11px;color:var(--app-text-muted)}.plot-trash-list article>span{display:inline-flex;align-items:center;gap:8px}.plot-trash-list article>span button{height:30px;border-radius:9px;border:1px solid var(--app-border);background:var(--app-bg-1-main);color:var(--app-text-secondary);display:inline-flex;align-items:center;gap:5px;padding:0 10px;cursor:pointer}.plot-trash-list article>span button em{font-style:normal;font-size:12px;font-weight:600}.plot-trash-list article>span button:hover,.plot-trash-list article>span button:focus-visible{background:var(--app-bg-3-small);border-color:var(--app-focus-ring)}.plot-trash-list article>span button.danger{border-color:color-mix(in srgb,var(--app-danger) 42%,transparent);color:var(--app-danger);background:var(--app-danger-bg)}.plot-theme-btn:hover,.plot-theme-btn:focus-visible,.plot-map-fit-btn:hover,.plot-map-fit-btn:focus-visible,.plot-map-toggle-btn:hover,.plot-map-toggle-btn:focus-visible{background:var(--app-bg-3-small)}.plot-map-zoom button[aria-label="Zoom in"]:hover,.plot-map-zoom button[aria-label="Zoom in"]:focus-visible{background:var(--app-bg-3-small)}.plot-board-scroll{--plot-board-top-gap: 14px;--plot-episode-scrollbar-h: 12px;flex:1 1 auto;min-height:0;display:flex;gap:14px;overflow:hidden;background:var(--app-bg-1-main);padding:6px 18px 10px;align-items:flex-start}.plot-board-scroll::-webkit-scrollbar{height:0}.plot-board-episode-area{min-width:0;flex:1 1 auto;align-self:stretch;min-height:0;display:flex;flex-direction:column}.plot-board-episode-scroll{min-width:0;flex:1 1 auto;min-height:0;display:flex;align-items:stretch;gap:14px;overflow-x:auto;overflow-y:hidden;padding-bottom:var(--plot-board-top-gap);margin-bottom:8px;scrollbar-width:none;-ms-overflow-style:none}.plot-board-episode-scroll::-webkit-scrollbar{height:0}.plot-board-episode-scrollbar{position:relative;height:var(--plot-episode-scrollbar-h);border-radius:999px;overflow:hidden;background:var(--app-border-soft);margin:0 0 2px;flex:0 0 var(--plot-episode-scrollbar-h);cursor:pointer}.plot-board-episode-scrollbar-thumb{position:absolute;top:0;height:100%;min-width:36px;border-radius:999px;background:color-mix(in srgb,var(--app-text-muted) 88%,transparent);cursor:grab}.plot-board-episode-scrollbar-thumb:active{cursor:grabbing;background:color-mix(in srgb,var(--app-text-secondary) 92%,transparent)}.plot-episode-column{width:300px;flex:0 0 300px;border-radius:14px;border:1px solid var(--app-border-soft);background:var(--app-bg-2-sub);padding:15px 10px 12px;display:grid;grid-template-rows:auto auto 1fr auto;gap:8px;height:100%;min-height:0;margin-bottom:0;transition:opacity .12s ease,transform .12s ease,background-color .12s ease}.plot-episode-column.dragging-episode{opacity:.45;transform:scale(.985)}.plot-episode-column.drag-over{background:var(--app-bg-3-small);border-color:var(--app-focus-ring)}.plot-episode-column header{display:grid;grid-template-columns:auto 1fr auto;align-items:start;gap:8px}.plot-episode-column h4{margin:0;font-size:13.5px;font-weight:700;text-transform:none;letter-spacing:0;color:var(--app-text-primary)}.plot-episode-column small{margin:0;font-size:11px;color:var(--app-text-muted);font-weight:500;padding-left:0}.plot-episode-unassigned{background:var(--app-bg-2-sub);border-color:var(--app-border-soft);position:relative;align-self:flex-start;height:auto;min-height:0;max-height:calc(100dvh - 170px);grid-template-rows:auto auto auto auto;transition:width .26s cubic-bezier(.22,1,.36,1),min-width .26s cubic-bezier(.22,1,.36,1),flex-basis .26s cubic-bezier(.22,1,.36,1),padding .22s ease,border-radius .22s ease,background-color .16s ease;will-change:width,min-width,flex-basis}.plot-episode-unassigned:not(.collapsed){width:300px;min-width:300px;flex:0 0 300px}.plot-episode-unassigned.drag-over{background:var(--app-bg-2-sub)}.plot-episode-unassigned header{display:block}.plot-episode-unassigned h4{text-transform:none;letter-spacing:0;color:var(--app-text-primary);font-size:13px;font-weight:700}.plot-unassigned-description{margin:0;font-size:12px;line-height:1.55;color:var(--app-text-muted);font-family:var(--app-ui-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}.plot-episode-divider{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--app-border-soft);padding-top:7px}.plot-episode-unassigned small{padding-left:0}.plot-unassigned-inline-add{width:28px;height:28px;border:0;border-radius:999px;background:transparent;color:var(--app-text-muted);display:grid;place-items:center;flex:0 0 28px;margin-right:-3px;transition:background-color .12s ease,color .12s ease}.plot-unassigned-inline-add:hover,.plot-unassigned-inline-add:focus-visible{background:var(--app-border-soft)}.plot-episode-unassigned.is-empty .plot-add-chapter-btn{margin-top:0}.plot-episode-unassigned.is-empty .plot-episode-list{display:none}.plot-episode-unassigned.collapsed{width:48px;min-width:48px;flex:0 0 48px;padding:0;overflow:visible;border-radius:20px}.plot-episode-unassigned>:not(.plot-unassigned-edge-toggle):not(.plot-unassigned-collapsed-content){transition:opacity .18s ease,transform .22s cubic-bezier(.22,1,.36,1);transform:translate(0)}.plot-episode-unassigned.collapsed>:not(.plot-unassigned-edge-toggle):not(.plot-unassigned-collapsed-content){opacity:0;transform:translate(-10px);pointer-events:none}.plot-episode-unassigned:not(.collapsed)>.plot-unassigned-collapsed-content{opacity:0;transform:translate(10px);pointer-events:none}.plot-episode-unassigned.collapsed>.plot-unassigned-collapsed-content{opacity:1;transform:translate(0);pointer-events:auto}.plot-unassigned-collapsed-content{width:100%;display:grid;align-content:center;justify-items:center;gap:12px;padding:24px 0;transition:opacity .18s ease,transform .22s cubic-bezier(.22,1,.36,1)}.plot-unassigned-collapsed-content p{margin:0;writing-mode:vertical-rl;text-orientation:mixed;font-size:11px;letter-spacing:.06em;font-weight:600;color:var(--app-text-secondary)}.plot-unassigned-collapsed-content span{width:18px;height:18px;border-radius:999px;background:var(--app-bg-3-small);color:var(--app-text-secondary);font-size:10px;font-weight:700;display:grid;place-items:center}.plot-unassigned-edge-toggle{position:absolute;right:-12px;top:72px;transform:none;width:24px;height:24px;border:1px solid var(--app-border);border-radius:999px;background:var(--app-bg-3-small);color:var(--app-text-muted);display:grid;place-items:center;z-index:2;box-shadow:0 1px 2px var(--app-border-soft);transition:background-color .12s ease,color .12s ease}.plot-unassigned-edge-toggle svg{display:block}.plot-episode-unassigned:not(.collapsed) .plot-unassigned-edge-toggle{top:72px;transform:none}.plot-unassigned-edge-toggle:hover,.plot-unassigned-edge-toggle:focus-visible{background:var(--app-border-soft)}.plot-episode-head-text p{margin:2px 0 0;font-size:12px;color:var(--app-text-secondary);line-height:1.55;font-family:var(--app-ui-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}.plot-episode-tag-row{margin-top:8px;display:flex;flex-wrap:wrap;gap:6px}.plot-episode-tag{height:22px;border-radius:999px;border:1px solid color-mix(in srgb,var(--app-text-secondary) 24%,transparent);background:color-mix(in srgb,var(--app-text-secondary) 8%,transparent);color:var(--app-text-secondary);display:inline-flex;align-items:center;padding:0 9px;font-size:11px;font-weight:600;line-height:1}.plot-episode-header{position:relative;display:flex;align-items:flex-start;justify-content:flex-start;gap:8px;padding-right:25px;cursor:grab}.plot-episode-header:active{cursor:grabbing}.plot-episode-header .plot-episode-head-text{flex:1 1 auto;min-width:0}.plot-episode-toggle,.plot-episode-edit{width:28px;height:28px;border:0;border-radius:999px;background:transparent;color:var(--app-text-muted);display:grid;place-items:center;position:absolute;top:-2px;right:-3px;transition:background-color .12s ease,color .12s ease}.plot-episode-toggle:hover,.plot-episode-toggle:focus-visible{background:var(--app-border-soft)}.plot-episode-list{display:grid;grid-auto-rows:max-content;align-content:start;gap:8px;min-height:0;height:100%;overflow-y:auto;padding-right:2px}.plot-episode-list.is-empty{min-height:96px}.plot-episode-unassigned .plot-episode-list{min-height:0;max-height:min(460px,calc(100dvh - 340px));overflow-y:auto;padding-right:2px}.plot-episode-list,.plot-episode-unassigned .plot-episode-list,.character-board-list-grid,.character-board-selected-column,.character-board-other-list{scrollbar-width:thin;scrollbar-color:var(--editor-scroll-thumb) transparent}.plot-episode-list::-webkit-scrollbar,.plot-episode-unassigned .plot-episode-list::-webkit-scrollbar,.character-board-list-grid::-webkit-scrollbar,.character-board-selected-column::-webkit-scrollbar,.character-board-other-list::-webkit-scrollbar{width:10px;height:10px}.plot-episode-list::-webkit-scrollbar-track,.plot-episode-unassigned .plot-episode-list::-webkit-scrollbar-track,.character-board-list-grid::-webkit-scrollbar-track,.character-board-selected-column::-webkit-scrollbar-track,.character-board-other-list::-webkit-scrollbar-track{background:transparent}.plot-episode-list::-webkit-scrollbar-thumb,.plot-episode-unassigned .plot-episode-list::-webkit-scrollbar-thumb,.character-board-list-grid::-webkit-scrollbar-thumb,.character-board-selected-column::-webkit-scrollbar-thumb,.character-board-other-list::-webkit-scrollbar-thumb{background:var(--editor-scroll-thumb);border-radius:999px;border:2px solid transparent;background-clip:padding-box}.plot-episode-list::-webkit-scrollbar-thumb:hover,.plot-episode-unassigned .plot-episode-list::-webkit-scrollbar-thumb:hover,.character-board-list-grid::-webkit-scrollbar-thumb:hover,.character-board-selected-column::-webkit-scrollbar-thumb:hover,.character-board-other-list::-webkit-scrollbar-thumb:hover{background:var(--editor-scroll-thumb-hover);background-clip:padding-box}.plot-chapter-card{border:1px solid var(--app-border-soft);border-radius:10px;background:var(--app-bg-3-small);padding:11px 12px 10px;width:100%;min-width:0;display:grid;gap:7px;text-align:left;cursor:pointer;box-shadow:0 1px 3px var(--app-hover);transition:transform .14s ease,box-shadow .14s ease,border-color .14s ease;overflow:hidden;flex-shrink:0}.plot-chapter-card.dragging-source{opacity:0}.plot-drag-floating-card{position:fixed;z-index:120;pointer-events:none;max-width:260px;border:1px solid var(--app-border);border-radius:10px;padding:8px 10px;background:color-mix(in srgb,var(--app-bg-1-main) 84%,transparent);color:var(--app-text-primary);box-shadow:0 8px 24px var(--app-border);display:inline-flex;align-items:center;gap:7px;opacity:.82;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.plot-drag-floating-card span{font-size:12px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.plot-chapter-drop-placeholder{border:1px dashed var(--app-focus-ring);border-radius:10px;background:var(--app-bg-3-small);min-height:94px;display:grid;align-items:stretch;pointer-events:none}.plot-chapter-drop-placeholder>div{border-radius:inherit;background:var(--app-border)}.plot-chapter-event-label{display:inline-flex;align-items:center;width:fit-content;height:21px;border-radius:8px;padding:0 8px;color:var(--app-bg-1-main);font-size:11px;font-weight:600}.plot-chapter-card h5{margin:0;font-size:13px;font-weight:600;color:var(--app-text-primary)}.plot-chapter-card p{margin:0;font-size:12px;color:var(--app-text-secondary);line-height:1.55;font-family:var(--app-ui-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);min-height:34px}.plot-chapter-character-row{border-top:1px solid var(--app-border-soft);padding-top:8px;min-width:0;max-width:100%;overflow:visible}.plot-chapter-card .plot-chapter-character-text{margin:0;min-height:0;display:flex;flex-wrap:wrap;row-gap:5px;column-gap:10px;min-width:0;max-width:100%;white-space:normal;overflow:visible;text-overflow:clip;line-height:1.45}.plot-chapter-character-row span{color:var(--app-text-secondary);font-size:11px;font-weight:400;display:inline-flex;align-items:center;min-width:0;max-width:100%;white-space:normal;line-height:1.45;margin-right:0}.plot-chapter-character-row span i{width:7px;height:7px;border-radius:999px;display:inline-block;margin-right:5px;transform:translateY(-.5px)}.plot-chapter-character-text.dot-only{display:inline-flex;align-items:center;gap:9px;text-overflow:clip;white-space:nowrap;min-height:10px}.plot-chapter-character-text.dot-only span{display:inline-flex;align-items:center;font-size:0;line-height:1;margin-right:0}.plot-chapter-character-text.dot-only span i{margin-right:0;transform:none;flex-shrink:0}.plot-chapter-character-empty{color:var(--app-text-muted)}.plot-add-chapter-btn{height:32px;border:1px dashed var(--app-border);border-radius:10px;background:color-mix(in srgb,var(--app-bg-1-main) 70%,transparent);color:var(--app-text-secondary);font-size:12px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:6px}.plot-add-episode-card{width:300px;flex:0 0 300px;min-height:100%;border:1px dashed var(--app-focus-ring);border-radius:14px;background:var(--app-bg-2-sub);color:var(--app-text-secondary);display:grid;place-content:center;justify-items:center;gap:8px;font-size:13px;font-weight:700;text-align:center;transition:border-color .14s ease,color .14s ease,background-color .14s ease}.plot-add-episode-card:hover,.plot-add-episode-card:focus-visible{border-color:var(--app-focus-ring);color:var(--app-text-primary)}.plot-board-footer{height:var(--editor-bottom-h);min-height:var(--editor-bottom-h);border-top:1px solid var(--app-border-soft);background:var(--app-bg-1-main);padding:0 20px;display:flex;align-items:center;justify-content:space-between;color:var(--app-text-muted);font-size:11px;line-height:1;box-sizing:border-box;flex-shrink:0}.plot-board-footer div{display:inline-flex;align-items:center;gap:16px}.character-board-footer>div:first-child span{font-size:12px;font-weight:700;letter-spacing:.04em}.plot-board.character-board.character-board-v2{grid-template-rows:auto minmax(0,1fr)}.character-board .plot-board-head{background:var(--app-bg-1-main);border-bottom:1px solid var(--app-border)}.character-board-view-toggle{height:32px;border:1px solid var(--app-border);border-radius:10px;background:var(--app-bg-2-sub);display:inline-flex;align-items:center;padding:2px;gap:1px}.character-board-view-toggle button{width:28px;height:26px;border:0;border-radius:8px;background:transparent;color:var(--app-text-muted);display:grid;place-items:center;transition:background-color .14s ease,color .14s ease}.character-board-view-toggle button.active{background:var(--app-bg-1-main);color:var(--app-bg-4-extra);box-shadow:0 1px 2px var(--app-border-soft)}.character-board-body{min-height:0;display:flex;overflow:hidden;background:var(--app-bg-1-main)}.character-board-list{flex:1 1 auto;min-width:0;display:grid;grid-template-rows:auto minmax(0,1fr);padding:20px 22px;gap:14px}.character-board-list-head{display:inline-flex;align-items:center;gap:8px;text-transform:uppercase}.character-board-list-head.selected,.character-board-list-head.other{margin:2px 0}.character-board-list-head strong{font-size:27px;line-height:1;letter-spacing:.04em;color:var(--app-text-muted);font-weight:700}.character-board-list-head span{min-width:24px;height:22px;border-radius:999px;padding:0 8px;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:var(--app-text-secondary);background:var(--app-bg-3-small)}.character-board-list-grid{min-height:0;overflow:auto;display:grid;gap:16px;align-content:start;padding:2px;scrollbar-gutter:stable}.character-board-list-grid.grid,.character-board-list-grid.list{grid-template-columns:repeat(auto-fill,minmax(360px,1fr))}.character-board-card{border:1px solid var(--app-border);border-radius:16px;background:var(--app-bg-3-small);text-align:left;padding:18px 22px 16px;color:var(--app-text-secondary);position:relative;cursor:pointer;transition:border-color .17s ease,box-shadow .17s ease,transform .17s ease}.character-board-empty-card{min-height:252px;width:100%;border:1px dashed var(--app-focus-ring);border-radius:16px;background:color-mix(in srgb,var(--app-bg-1-main) 72%,transparent);color:var(--app-text-secondary);font-size:16px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;transition:border-color .17s ease,color .17s ease,background-color .17s ease}.character-board-empty-card:hover,.character-board-empty-card:focus-visible{border-color:var(--app-focus-ring);color:var(--app-text-primary)}.character-board-empty-card:focus-visible{outline:0;box-shadow:0 0 0 2px var(--app-focus-ring)}.character-board-card:focus-visible{outline:0;border-color:var(--app-text-primary);box-shadow:0 0 0 2px var(--app-focus-ring),0 10px 28px var(--app-border)}.character-board-card:hover{border-color:var(--app-border);box-shadow:0 8px 24px var(--app-border-soft);transform:translateY(-1px)}.character-board-card.active{border-color:var(--app-text-primary);box-shadow:0 0 0 2px var(--app-focus-ring),0 10px 28px var(--app-border);animation:character-board-card-activate .19s ease-out}.character-board-card.selected{min-height:264px}.character-board-card-accent{position:absolute;left:0;top:0;right:0;height:4px;border-radius:16px 16px 0 0}.character-board-card-head{display:flex;align-items:center;gap:12px}.character-board-card-meta{min-width:0}.character-board-card-actions{margin-left:auto;display:inline-flex;align-items:center;gap:8px;opacity:0;pointer-events:none;transform:translateY(-2px);transition:opacity .14s ease,transform .14s ease}.character-board-card-actions button{width:34px;height:34px;border-radius:11px;border:1px solid var(--app-border);background:var(--app-bg-3-small);color:var(--app-text-secondary);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.character-board-card:hover .character-board-card-actions,.character-board-card:focus-within .character-board-card-actions{opacity:1;pointer-events:auto;transform:translateY(0)}.character-board-card-actions button:hover,.character-board-card-actions button:focus-visible{background:var(--app-bg-3-small);border-color:var(--app-border);color:var(--app-text-primary)}.character-board-avatar{width:46px;height:46px;border-radius:999px;background:var(--app-bg-3-small);color:var(--app-text-primary);display:grid;place-items:center;font-size:18px;font-weight:700;flex-shrink:0;border:1px solid var(--app-border)}.character-board-avatar.large{width:54px;height:54px;font-size:21px}.character-board-card-head h4{margin:0;font-size:38px;line-height:1;color:var(--app-text-primary);font-weight:700}.character-board-card-head p{margin:2px 0 0;font-size:24px;letter-spacing:.03em;color:var(--app-text-muted);font-weight:600;text-transform:uppercase}.character-board-card-description{margin:12px 0 0;font-size:35px;line-height:1.35;color:var(--app-text-secondary);letter-spacing:-.01em}.character-board-tags{margin-top:12px;display:flex;flex-wrap:wrap;gap:8px}.character-board-tags span{height:28px;border-radius:999px;border:1px solid var(--app-border);background:var(--app-bg-2-sub);color:var(--app-text-secondary);font-size:21px;font-weight:600;display:inline-flex;align-items:center;padding:0 12px;white-space:nowrap}.character-board-tags span.add{border-style:dashed;color:var(--app-text-secondary)}.character-board-appears{margin-top:14px;border-top:1px solid var(--app-border-soft);padding-top:12px;display:flex;align-items:center;gap:8px}.character-board-appears strong{font-size:24px;color:var(--app-text-muted);font-weight:700}.character-board-appears>div{display:flex;flex-wrap:wrap;gap:7px}.character-board-appears>div span{height:28px;padding:0 11px;border-radius:999px;border:1px solid var(--app-border);background:var(--app-bg-2-sub);color:var(--app-text-secondary);font-size:20px;font-weight:600;display:inline-flex;align-items:center}.character-board-selected-column{flex:0 0 400px;border-right:1px solid var(--app-border);padding:20px 24px;display:grid;grid-template-rows:auto auto auto minmax(0,1fr);gap:14px;min-height:0;overflow:auto}.character-board-other-list{min-height:0;overflow:auto;display:grid;gap:10px;align-content:start}.character-board-other-item{height:74px;border:0;border-radius:12px;background:transparent;display:flex;align-items:center;justify-content:space-between;padding:0 8px 0 0;color:inherit;transition:background-color .14s ease}.character-board-other-item:hover{background:var(--app-hover)}.character-board-other-main{display:flex;align-items:center;gap:12px;min-width:0}.character-board-other-main h5{margin:0;font-size:35px;line-height:1;color:var(--app-text-primary)}.character-board-other-main p{margin:4px 0 0;font-size:21px;line-height:1;color:var(--app-text-muted);text-transform:uppercase;font-weight:600}.character-board-other-dot{width:10px;height:10px;border-radius:999px;flex-shrink:0}.character-board-panel{flex:1 1 auto;min-width:0;background:var(--app-bg-1-main);display:grid;grid-template-rows:auto minmax(0,1fr) auto;animation:character-board-panel-open .2s ease-out}.character-board-panel header{height:66px;border-bottom:1px solid var(--app-border);padding:0 18px;display:flex;align-items:center;gap:10px}.character-board-panel-dot{width:9px;height:9px;border-radius:999px;background:var(--app-text-primary)}.character-board-panel header h3{margin:0;font-size:40px;color:var(--app-text-primary);line-height:1}.character-board-panel header>button{margin-left:auto}.character-board-panel header button{width:34px;height:34px;border:1px solid var(--app-border);border-radius:10px;background:var(--app-bg-3-small);color:var(--app-text-secondary);display:grid;place-items:center;transition:background-color .14s ease,border-color .14s ease}.character-board-panel header button:hover{background:var(--app-bg-2-sub)}.character-board-panel-body{min-height:0;overflow:auto;padding:16px 20px 24px;display:grid;gap:16px;align-content:start;scrollbar-width:thin;scrollbar-color:var(--editor-scroll-thumb) transparent}.character-board-panel-body::-webkit-scrollbar{width:10px;height:10px}.character-board-panel-body::-webkit-scrollbar-track{background:transparent}.character-board-panel-body::-webkit-scrollbar-thumb{background:var(--editor-scroll-thumb);border-radius:999px;border:2px solid transparent;background-clip:padding-box}.character-board-panel-body::-webkit-scrollbar-thumb:hover{background:var(--editor-scroll-thumb-hover);background-clip:padding-box}.character-board-panel-body label>span,.character-board-panel-body h4{display:block;margin:0 0 8px;font-size:23px;font-weight:700;color:var(--app-text-muted);text-transform:uppercase;letter-spacing:.03em}.character-board-panel-body label input[type=text]{width:100%;height:48px;border:1px solid var(--app-border);border-radius:14px;background:var(--app-bg-3-small);color:var(--app-text-primary);padding:0 14px;outline:none;font-size:33px;font-weight:600}.character-board-panel-body textarea{width:100%;min-height:120px;border:1px solid var(--app-border);border-radius:14px;background:var(--app-bg-3-small);color:var(--app-text-secondary);padding:12px 14px;font-size:28px;line-height:1.4;resize:vertical}.character-board-panel-identity{border-bottom:1px solid var(--app-border);padding-bottom:14px;margin-bottom:4px;display:flex;align-items:center;gap:12px}.character-board-panel-identity h4{margin:0;font-size:36px;color:var(--app-text-primary);line-height:1}.character-board-panel-identity p{margin:4px 0 0;font-size:25px;color:var(--app-text-muted)}.character-board-panel-inline{display:grid;grid-template-columns:1fr 1fr;gap:12px}.character-board-theme-palette{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.character-board-theme-palette button{width:28px;height:28px;border-radius:999px;border:2px solid var(--app-border);box-shadow:0 0 0 1px var(--app-border);transition:transform .12s ease,box-shadow .12s ease}.character-board-theme-palette button.active{transform:scale(1.08);box-shadow:0 0 0 2px var(--app-text-primary)}.character-board-theme-palette input[type=color]{width:32px;height:32px;border-radius:999px;border:2px solid var(--app-border);box-shadow:0 0 0 1px var(--app-border);padding:0;background:transparent;overflow:hidden}.character-board-chapter-chips{display:flex;flex-wrap:wrap;gap:8px}.character-board-chapter-chips button,.character-board-chapter-chips span.add{height:34px;border:1px solid var(--app-border);border-radius:999px;background:var(--app-bg-2-sub);display:inline-flex;align-items:center;padding:0 12px;color:var(--app-text-secondary);font-size:22px;font-weight:600}.character-board-chapter-chips span.add{border-style:dashed;color:var(--app-text-muted)}.character-board-chapter-chips button.checked{border-color:var(--app-text-primary);background:var(--app-bg-3-small);color:var(--app-text-primary)}.character-board-panel footer{height:var(--editor-bottom-h);border-top:1px solid var(--app-border);display:flex;align-items:center;justify-content:flex-end;padding:0 20px}.character-board-panel footer .danger{height:36px;border:1px solid color-mix(in srgb,var(--app-danger) 52%,transparent);border-radius:12px;background:var(--app-danger-bg);color:var(--app-danger);padding:0 14px;font-size:23px;font-weight:700}@keyframes character-board-card-activate{0%{transform:scale(.98);box-shadow:0 0 0 0 transparent}to{transform:scale(1)}}@keyframes character-board-panel-open{0%{opacity:0;transform:translate(10px)}to{opacity:1;transform:translate(0)}}.plot-map-placeholder{margin:16px;border:1px dashed var(--app-border);border-radius:14px;background:var(--app-bg-3-small);color:var(--app-text-secondary);display:grid;place-content:center;text-align:center;gap:6px}.plot-map-placeholder h3,.plot-map-placeholder p{margin:0}.plot-map-area{flex:1;min-height:0;background:var(--app-bg-1-main);border-top:0;overflow:hidden;position:relative}.plot-map-canvas-actions{position:absolute;top:12px;right:12px;z-index:40;display:inline-flex;align-items:center;gap:8px;flex-wrap:nowrap}.plot-map-canvas-scroll{width:100%;height:100%;overflow:auto;padding:0;cursor:grab;background:var(--app-bg-1-main);overscroll-behavior:contain}.plot-map-canvas-scroll.panning{cursor:grabbing}.plot-map-canvas-scale{transform-origin:left top;position:relative;min-width:100%;min-height:100%}.plot-map-canvas{position:relative;width:100%;height:100%;min-width:100%;min-height:100%;background:radial-gradient(circle,color-mix(in srgb,var(--app-text-muted) 24%,transparent) 1.2px,transparent 1.25px) 0 0 / 24px 24px,var(--app-bg-1-main);border:0;border-radius:0}.plot-map-canvas.dots-hidden{background:var(--app-bg-1-main)}.plot-map-chapter-node{position:absolute;width:220px;min-height:104px;border-radius:10px;border:1px solid var(--app-border-soft);background:var(--app-bg-3-small);box-shadow:0 1px 3px var(--app-hover);padding:10px 11px 9px;display:grid;gap:6px;text-align:left;cursor:pointer;z-index:2;transition:border-color .14s ease,box-shadow .14s ease,transform .14s ease;-webkit-user-select:none;user-select:none}.plot-map-chapter-node:hover{border-color:var(--app-focus-ring);box-shadow:0 4px 10px var(--app-border);transform:translateY(-1px)}.plot-map-event-label{justify-self:start;max-width:100%}.plot-map-chapter-node h5{margin:0;font-size:12.5px;font-weight:700;color:var(--app-text-primary)}.plot-map-chapter-node p{margin:0;font-size:11px;line-height:1.45;color:var(--app-text-secondary);font-family:var(--app-ui-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.plot-map-character-row{border-top:1px solid var(--app-border-soft);padding-top:7px;min-height:16px;max-width:100%;overflow:visible}.plot-map-character-text{margin:0;display:flex;flex-wrap:wrap;row-gap:5px;column-gap:10px;max-width:100%;overflow:visible;white-space:normal;text-overflow:clip;line-height:1.45;font-size:11px;color:var(--app-text-secondary)}.plot-map-character-text span{display:inline-flex;align-items:center;gap:5px;min-width:0;max-width:100%;margin-right:0;padding-right:8px}.plot-map-character-text span:last-child{padding-right:0}.plot-map-character-text i{width:8px;height:8px;border-radius:999px;display:inline-block;flex-shrink:0}.plot-map-character-text.dot-only span{gap:0}.plot-map-character-text.dot-only span:after{content:""}.plot-map-character-text.dot-only span{display:inline-flex;align-items:center;color:transparent;font-size:0;line-height:1;margin-right:8px}.plot-map-character-row>span{font-size:10.5px;color:var(--app-text-muted);font-weight:500}.plot-map-connector{position:absolute;top:44px;width:20px;height:20px;border-radius:999px;border:1px solid var(--app-focus-ring);background:var(--app-bg-3-small);padding:0;display:block;cursor:crosshair;opacity:0;pointer-events:none;transform:scale(1);transition:opacity .14s ease,transform .14s ease,background .14s ease,border-color .14s ease}.plot-map-connector.left{left:-11px}.plot-map-connector.right{right:-11px}.plot-map-connector.top{top:-11px;left:calc(50% - 10px)}.plot-map-connector.bottom{top:auto;bottom:-11px;left:calc(50% - 10px)}.plot-map-connector:hover{background:var(--app-text-primary);border-color:var(--app-text-primary)}.plot-map-chapter-node:hover .plot-map-connector,.plot-map-chapter-node:focus-within .plot-map-connector{opacity:1;pointer-events:auto;transform:scale(1)}.plot-map-edges{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1}.plot-map-edge-hitbox{stroke:transparent;stroke-width:14;fill:none;pointer-events:stroke;cursor:pointer}.plot-map-edge-path{stroke:color-mix(in srgb,var(--app-text-muted) 60%,transparent);stroke-width:1.5;fill:none;pointer-events:none}.plot-map-edge-path.sequence{stroke-dasharray:3 3}.plot-map-edge-path.draft{stroke:var(--app-focus-ring);stroke-dasharray:4 4;pointer-events:none}.plot-map-edge-path.selected{stroke:var(--app-text-primary);stroke-width:2.2}.plot-map-arrowhead{fill:color-mix(in srgb,var(--app-text-muted) 82%,transparent)}.plot-map-arrowhead.selected{fill:var(--app-text-primary)}.map-text-note-shell{position:absolute;z-index:3}.plot-map-text-note,.character-map-text-note{position:relative;width:240px;min-height:44px;min-width:120px;border-radius:10px;border:1px solid var(--app-border);background:var(--app-note-bg);box-shadow:0 2px 8px var(--app-border);padding:16px;display:block;resize:both;overflow:hidden}.plot-map-text-note.active,.character-map-text-note.active{border-color:var(--app-focus-ring);box-shadow:0 0 0 2px var(--app-focus-ring),0 2px 12px var(--app-border)}.plot-map-text-note-delete{align-self:flex-end;width:26px;height:26px;border-radius:999px;border:0;background:transparent;color:var(--app-text-secondary);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;pointer-events:none;transition:border-color .14s ease,color .14s ease,background .14s ease,opacity .12s ease}.plot-map-text-note-delete:hover,.plot-map-text-note-delete:focus-visible{color:var(--app-danger);background:transparent}.map-text-note-controls{position:absolute;top:-28px;right:0;display:inline-flex;align-items:center;justify-content:flex-end;gap:4px;min-height:18px;z-index:1}.map-text-note-controls span{min-width:22px;text-align:center;font-size:10.5px;font-weight:700;color:var(--app-text-secondary)}.map-text-note-font-btn{width:20px;height:20px;border-radius:0;border:0!important;background:transparent!important;background-color:transparent!important;background-image:none!important;color:var(--app-text-secondary);display:inline-flex;align-items:center;justify-content:center;padding:0;font-size:11px;font-weight:700;cursor:pointer;box-shadow:none!important;outline:none;-moz-appearance:none;appearance:none;-webkit-appearance:none;transition:none;transform:none!important;filter:none!important}.map-text-note-font-btn:hover,.map-text-note-font-btn:focus-visible,.map-text-note-font-btn:active{color:var(--app-text-secondary);background:transparent!important;background-color:transparent!important;background-image:none!important;box-shadow:none!important;outline:none;border:0!important;transform:none!important;filter:none!important}.map-text-note-controls .plot-map-text-note-delete{align-self:auto}.map-text-note-controls-spacer{display:inline-block;min-width:1px}.map-text-note-shell:hover .plot-map-text-note-delete,.map-text-note-shell:focus-within .plot-map-text-note-delete,.map-text-note-shell.is-editing .plot-map-text-note-delete{opacity:1;pointer-events:auto}.plot-map-text-note textarea,.character-map-text-note textarea{display:block;width:100%;height:100%;min-height:20px;resize:none;border:0;background:transparent;padding:0;color:var(--app-text-primary);font-size:12px;line-height:1.45;font-family:var(--app-ui-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);outline:none;overflow:hidden}.map-text-note-drag-zone{position:absolute;top:0;left:0;right:0;height:12px;width:100%;cursor:grab;border-radius:10px 10px 0 0;z-index:1}.plot-map-text-note:active .map-text-note-drag-zone,.character-map-text-note:active .map-text-note-drag-zone{cursor:grabbing}.plot-map-text-note textarea::placeholder,.character-map-text-note textarea::placeholder{color:var(--app-text-secondary)}.plot-map-text-note::-webkit-resizer,.character-map-text-note::-webkit-resizer{width:16px;height:16px;background:linear-gradient(135deg,transparent 0 54%,color-mix(in srgb,var(--app-text-secondary) 85%,transparent) 54% 60%,transparent 60% 68%,color-mix(in srgb,var(--app-text-secondary) 85%,transparent) 68% 74%,transparent 74% 100%)}.plot-modal{width:min(540px,calc(100vw - 120px));border-radius:14px;display:flex;flex-direction:column;max-height:calc(100vh - 120px)}.plot-modal .editor-modal-header{height:56px;padding:0 16px 0 20px}.plot-modal .editor-modal-header h3{font-size:18px;line-height:1;font-weight:700;color:var(--app-text-primary)}.plot-modal .editor-modal-header button{width:28px;height:28px;border-radius:8px;color:var(--app-text-muted)}.plot-modal .editor-modal-header button:hover,.plot-modal .editor-modal-header button:focus-visible{background:var(--app-hover);color:var(--app-text-primary)}.plot-modal .editor-modal-body{padding:18px 20px 14px;gap:14px;overflow-y:auto;min-height:0}.plot-modal-body label{display:grid;gap:10px;font-size:16px;color:var(--app-text-secondary);font-weight:700}.plot-modal-body label small,.plot-modal-chip-section h4 small{font-size:12px;font-weight:500;color:var(--app-text-muted)}.plot-modal-chip-section{display:grid;gap:10px}.plot-modal-chip-section h4{margin:0;font-size:16px;color:var(--app-text-secondary);font-weight:700}.plot-modal-chip-grid{display:flex;flex-wrap:wrap;gap:8px}.plot-modal-chip{height:34px;border:1px solid var(--app-border);border-radius:999px;background:var(--app-surface-card);color:var(--app-text-primary);display:inline-flex;align-items:center;gap:6px;padding:0 12px;font-size:12px;font-weight:500;cursor:pointer;position:relative}.plot-modal-chip i{width:8px;height:8px;border-radius:999px;display:inline-block}.plot-modal-chip svg{color:var(--app-bg-1-main)}.plot-modal-chip.active{color:var(--app-bg-1-main)}.plot-modal-chip-remove{width:16px;height:16px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;color:color-mix(in srgb,var(--app-text-muted) 78%,transparent);transition:background-color .12s ease,color .12s ease}.plot-modal-chip:hover .plot-modal-chip-remove{color:var(--app-text-primary)}.plot-modal-chip.active .plot-modal-chip-remove{color:var(--app-border)}.plot-modal-chip-remove:hover{background:var(--app-border)}.plot-modal-custom-character-btn,.plot-modal-custom-event-label-btn{width:fit-content;height:34px;border:1px dashed var(--app-border);border-radius:999px;background:transparent;color:var(--app-text-muted);display:inline-flex;align-items:center;gap:6px;padding:0 14px;font-size:12px;font-weight:600}.plot-event-label-modal-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;display:grid;place-items:center;background:var(--app-overlay-backdrop)}.plot-event-label-modal{width:min(460px,calc(100vw - 120px));border-radius:14px}.plot-event-label-draft-colors{position:relative;display:grid;grid-template-columns:repeat(11,minmax(0,1fr));gap:8px}.plot-event-label-draft-colors>button{width:24px;height:24px;border-radius:999px;border:2px solid transparent;justify-self:center}.plot-event-label-draft-colors>button.active{border-color:var(--app-bg-1-main);box-shadow:0 0 0 1px var(--app-border)}.plot-event-label-draft-pipette{border:1px dashed var(--app-border)!important;background:transparent;color:var(--app-text-muted);display:inline-flex;align-items:center;justify-content:center}.plot-event-label-draft-colors input[type=color]{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.plot-event-label-draft-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.plot-event-label-draft-actions input{width:100%;height:34px;border:1px solid var(--app-border);border-radius:10px;background:var(--app-surface-card);color:var(--app-text-primary);padding:0 10px;font-size:12px}.plot-event-label-draft-actions button{height:34px;border-radius:10px;font-size:12px;font-weight:700;padding:0 12px}.plot-modal .editor-modal-actions{height:auto;padding:12px 20px 16px}.plot-modal-actions{display:flex;align-items:center;justify-content:space-between}.plot-modal-actions-right{display:inline-flex;align-items:center;gap:12px}.plot-modal .editor-modal-actions button{height:36px;border-radius:12px;font-size:13px;font-weight:700;padding:0 16px}.plot-modal .editor-modal-actions .danger{border:1px solid color-mix(in srgb,var(--app-danger) 46%,transparent);background:var(--app-danger-bg);color:var(--app-danger)}.revision-modal{width:min(1080px,calc(100vw - 120px));display:grid;grid-template-rows:52px minmax(0,1fr) auto;max-height:calc(100vh - 120px)}.revision-modal .editor-modal-header h3{color:var(--app-text-primary)}.revision-modal .editor-modal-header button{color:var(--app-text-muted)}.revision-modal .editor-modal-header button:hover,.revision-modal .editor-modal-header button:focus-visible{background:var(--app-hover);color:var(--app-text-primary)}.revision-modal .editor-modal-body{padding:14px 18px 12px;min-height:0}.revision-modal-body{display:grid;grid-template-columns:300px minmax(0,1fr);gap:16px;min-height:420px}.revision-modal-list{border-right:1px solid var(--app-border);padding-right:14px;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);gap:10px}.revision-modal-list .solid.full{height:34px;border-radius:10px}.revision-modal-list .empty,.revision-modal-diff .empty{margin:0;font-size:13px;color:var(--app-text-muted)}.revision-modal-list ul{margin:0;padding:0;list-style:none;overflow:auto;min-height:0;display:grid;gap:8px;scrollbar-width:thin}.revision-modal-list li button{width:100%;min-height:52px;border:1px solid var(--app-border);border-radius:10px;background:var(--app-surface-card);color:var(--app-text-secondary);text-align:left;padding:10px 11px;display:grid;gap:3px}.revision-modal-list li button:hover,.revision-modal-list li button:focus-visible{background:var(--app-hover)}.revision-modal-list li button.active{border-color:var(--app-focus-ring);background:color-mix(in srgb,var(--app-focus-ring) 64%,transparent)}.revision-modal-list li button strong{font-size:12px;font-weight:700;color:var(--app-text-primary)}.revision-modal-list li button small{font-size:11px;color:var(--app-text-muted);text-transform:capitalize}.revision-modal-diff{min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);gap:10px}.revision-modal-meta h4{margin:0;font-size:16px;line-height:1.35;color:var(--app-text-primary)}.revision-modal-meta p{margin:4px 0 0;font-size:12px;color:var(--app-text-muted)}.revision-diff-grid{border:1px solid var(--app-border);border-radius:12px;background:var(--app-surface-card);min-height:0;display:grid;grid-template-rows:34px minmax(0,1fr);overflow:hidden}.revision-diff-grid>header{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--app-border);background:color-mix(in srgb,var(--app-surface-card) 86%,var(--app-surface-panel) 14%)}.revision-diff-grid>header span{display:flex;align-items:center;padding:0 10px;font-size:11px;font-weight:700;color:var(--app-text-muted)}.revision-diff-grid>header span+span{border-left:1px solid var(--app-border)}.revision-diff-body{overflow:auto;min-height:0;scrollbar-width:thin}.revision-row{display:grid;grid-template-columns:1fr 1fr}.revision-row+.revision-row{border-top:1px solid color-mix(in srgb,var(--app-border) 82%,transparent)}.revision-row pre{margin:0;padding:7px 10px;font-family:var(--app-ui-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:12px;line-height:1.5;color:var(--app-text-secondary);white-space:pre-wrap;word-break:break-word}.revision-row pre+pre{border-left:1px solid var(--app-border)}.revision-row.add pre{background:color-mix(in srgb,var(--app-success) 24%,transparent)}.revision-row.remove pre{background:color-mix(in srgb,var(--app-danger) 24%,transparent)}.revision-row.equal pre{background:transparent}.plot-chapter-character-panel{position:absolute;right:max(20px,env(safe-area-inset-right));top:60px;width:min(420px,calc(100vw - 40px));height:calc(100vh - 120px);border:1px solid var(--app-border);border-radius:16px;box-shadow:0 18px 40px color-mix(in srgb,var(--app-text-on-bg-1) 38%,transparent);background:var(--app-surface-elevated);z-index:2}.plot-chapter-character-panel.character-board-panel{grid-template-rows:46px minmax(0,1fr);animation:none}.plot-chapter-character-panel.character-board-panel header{border-bottom:1px solid var(--app-border);height:46px;padding:0 20px 0 24px}.plot-chapter-character-panel.character-board-panel header h3{font-size:16px;line-height:1}.plot-chapter-character-panel.character-board-panel header button{margin-left:auto;border:0;background:transparent}.plot-chapter-character-panel.character-board-panel .character-board-panel-body{padding:16px 20px 24px;gap:14px}.plot-chapter-character-panel .character-board-panel-identity{display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--app-border-soft);padding-bottom:12px;margin-bottom:0}.plot-chapter-character-panel .character-board-panel-identity>div{display:grid;align-content:center;gap:4px;min-width:0}.plot-chapter-character-panel .character-board-panel-identity h4{margin:0;font-size:16px;line-height:1.2;color:var(--app-text-primary);font-weight:700}.plot-chapter-character-panel .character-board-panel-identity p{margin:0;font-size:12px;line-height:1.2;font-weight:600;color:var(--app-text-muted)}.plot-chapter-character-panel .character-board-panel-body label>span,.plot-chapter-character-panel .character-board-panel-body h4{margin:0 0 8px;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--app-text-muted)}.plot-chapter-character-panel .character-board-panel-body input[type=text],.plot-chapter-character-panel .character-board-panel-body textarea{width:100%;border:1px solid var(--app-border);border-radius:12px;background:var(--app-bg-3-small);color:var(--app-text-primary);font-family:inherit}.plot-chapter-character-panel .character-board-panel-body input[type=text]{height:40px;padding:0 12px;font-size:14px;font-weight:600}.plot-chapter-character-panel .character-board-panel-body textarea{min-height:110px;padding:11px 12px;font-size:14px;line-height:1.45}.plot-chapter-character-panel .character-board-panel-inline{display:grid;grid-template-columns:1fr 1fr;gap:12px}.plot-chapter-character-panel .character-board-theme-palette{display:flex;flex-wrap:wrap;gap:8px}.plot-chapter-character-panel .character-board-theme-palette button,.plot-chapter-character-panel .character-board-theme-palette input[type=color]{width:28px;height:28px;border-radius:999px}.plot-chapter-character-panel .character-board-theme-custom-wrap{position:relative;display:inline-flex;width:28px;height:28px}.plot-chapter-character-panel .character-board-theme-custom{border:1px dashed var(--app-focus-ring);background:var(--app-bg-3-small);color:var(--app-text-secondary);display:inline-flex;align-items:center;justify-content:center}.plot-chapter-character-panel .character-board-theme-custom-wrap input[type=color]{position:absolute;top:0;right:0;bottom:0;left:0;width:28px;height:28px;opacity:0;pointer-events:none}.plot-chapter-character-panel .character-board-theme-palette button.active{box-shadow:0 0 0 2px var(--app-text-primary)}.plot-chapter-character-panel .character-board-tags.editor,.plot-chapter-character-panel .character-board-chapter-chips{display:flex;flex-wrap:wrap;gap:8px}.plot-chapter-character-panel .character-board-tags.editor button.removable,.plot-chapter-character-panel .character-board-chapter-chips button.removable,.plot-chapter-character-panel .character-board-tags.editor .add,.plot-chapter-character-panel .character-board-chapter-chips .add{height:32px;border-radius:999px;padding:0 12px;font-size:12px;font-weight:600;display:inline-flex;align-items:center;gap:6px;border:1px solid var(--app-border);background:var(--app-bg-3-small);color:var(--app-text-secondary)}.plot-chapter-character-panel .character-board-tags.editor button.removable,.plot-chapter-character-panel .character-board-chapter-chips button.removable{padding-right:8px}.plot-chapter-character-panel .character-board-tags.editor .add,.plot-chapter-character-panel .character-board-chapter-chips .add{border-style:dashed;color:var(--app-text-muted)}.plot-chapter-character-panel .character-board-chapter-chips button.checked{border-color:var(--app-text-primary);background:var(--app-bg-3-small);color:var(--app-text-primary)}.plot-chapter-character-panel .character-board-chapter-add{position:relative}.plot-chapter-character-panel .character-board-chapter-add-menu{position:absolute;top:calc(100% + 6px);left:0;z-index:6;min-width:200px;max-height:180px;overflow:auto;border:1px solid var(--app-border);border-radius:10px;background:var(--app-bg-1-main);box-shadow:0 12px 22px color-mix(in srgb,var(--app-text-on-bg-1) 15%,transparent);padding:6px;display:grid;gap:4px}.plot-chapter-character-panel .character-board-chapter-add-menu button{border:0;border-radius:8px;background:transparent;color:var(--app-text-primary);text-align:left;font-size:12px;padding:8px 10px}.plot-chapter-character-panel .character-board-chapter-add-menu button:hover,.plot-chapter-character-panel .character-board-chapter-add-menu button:focus-visible{background:var(--app-border-soft)}.plot-chapter-character-panel .character-board-chapter-add-menu .empty{padding:8px 10px;font-size:12px;color:var(--app-text-secondary)}.plot-chapter-character-panel .danger-inline{width:fit-content;height:34px;border-radius:12px;padding:0 14px;border:1px solid color-mix(in srgb,var(--app-danger) 44%,transparent);background:var(--app-danger-bg);color:var(--app-danger);font-size:13px;font-weight:700}.editor-document{flex:1 1 auto;min-height:0;padding:24px 32px 30px;overflow-y:auto;scrollbar-gutter:stable;color:var(--app-text-primary);scroll-padding-top:24px;overflow-anchor:none;position:relative}.editor-document.focus-mode-scroll-buffer{padding-top:calc(24px + var(--editor-focus-buffer-h, min(40vh, 320px)));padding-bottom:calc(30px + var(--editor-focus-buffer-h, min(40vh, 320px)));scroll-padding-top:calc(24px + var(--editor-focus-buffer-h, min(40vh, 320px)))}.editor-title-input{width:min(var(--editor-doc-width, 680px),100%);border:0;background:transparent;padding:0;margin:32px auto 0;display:block;text-align:center;font-family:var(--editor-font-family, "Lora"),serif;font-size:36px;font-weight:500;color:var(--app-text-primary);outline:none;position:relative;z-index:1}.editor-title-preview{margin:32px auto 0;width:min(var(--editor-doc-width, 680px),100%);text-align:center;font-family:var(--editor-font-family, "Lora"),serif;font-size:36px;line-height:1.25;font-weight:500;color:var(--app-text-primary)}.editor-body{margin:48px auto 0;width:min(var(--editor-doc-width, 680px),100%);outline:none;font-family:var(--editor-font-family, "Lora"),serif;font-size:var(--editor-font-size, 12px);line-height:var(--editor-line-height, 1.55);letter-spacing:.005em;position:relative;z-index:1}.editor-body:empty:before{content:attr(data-placeholder);color:var(--app-text-secondary);pointer-events:none}.editor-document.is-note-document .editor-body{margin-top:32px}.editor-empty-state{min-height:calc(100% - 24px);display:grid;place-items:center;width:100%;padding:32px;color:var(--app-text-muted)}.editor-empty-state strong{font-size:18px;font-weight:600;color:var(--app-text-muted)}.editor-body :is(p,div){margin:0;width:100%;text-indent:var(--editor-paragraph-indent, 0px)}.editor-body :is(p,div)+:is(p,div){margin-top:var(--editor-paragraph-gap, 28px)}.editor-body p{margin:0}.editor-body::selection,.editor-body *::selection{background:var(--app-focus-ring);color:inherit;text-shadow:none;box-shadow:0 1px 0 var(--app-focus-ring),0 -1px 0 var(--app-focus-ring)}::highlight(velaby-spell-error){text-decoration-line:underline;text-decoration-style:wavy;text-decoration-color:color-mix(in srgb,var(--app-danger) 90%,transparent);text-decoration-thickness:1.5px;text-underline-offset:2px;text-decoration-skip-ink:none}.editor-sync-conflict-banner{margin:12px 14px 0;border:1px solid color-mix(in srgb,var(--app-danger) 48%,transparent);background:var(--app-danger-bg);color:var(--app-danger);border-radius:10px;padding:10px 12px;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px}.editor-sync-conflict-banner p{margin:0}.editor-sync-conflict-banner div{display:flex;gap:8px}.editor-sync-conflict-banner button{border:1px solid color-mix(in srgb,var(--app-danger) 40%,transparent);background:var(--app-bg-1-main);color:var(--app-danger);border-radius:8px;height:28px;padding:0 10px;font-size:11px;font-weight:600;cursor:pointer}.editor-sync-conflict-banner button:hover{background:var(--app-danger-bg)}.editor-status{height:var(--editor-bottom-h);min-height:var(--editor-bottom-h);border-top:1px solid var(--app-border-soft);padding:0 14px;display:flex;align-items:center;gap:14px;color:var(--app-text-secondary);font-size:11px;line-height:1;box-sizing:border-box;flex-shrink:0}.editor-status span:not(:first-child):before{content:"";display:inline-block;width:1px;height:10px;background:var(--app-border);margin-right:14px}.editor-search-panel{position:absolute;left:16px;width:220px;border:1px solid var(--app-border);background:var(--app-bg-1-main);border-radius:12px;box-shadow:0 16px 28px var(--app-border);padding:10px;display:grid;gap:8px;z-index:5}.editor-search-panel header{display:flex;justify-content:space-between;align-items:center}.editor-search-panel header p{margin:0;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--app-text-muted);font-weight:600}.editor-search-panel header small{font-size:10px;color:var(--app-text-muted)}.editor-search-panel label{height:28px;border:1px solid var(--app-border);border-radius:8px;padding:0 8px;display:flex;align-items:center;gap:6px;color:var(--app-text-secondary)}.editor-search-panel input{border:0;background:transparent;width:100%;outline:none;font-size:12px;color:var(--app-text-secondary)}.editor-search-panel ul{margin:0;padding:0;list-style:none;display:grid;gap:4px;max-height:120px;overflow-y:auto}.editor-search-panel li{font-size:11px;color:var(--app-text-secondary);border:1px solid var(--app-border-soft);border-radius:7px;padding:6px 8px;background:var(--app-bg-3-small)}.editor-memo-widget,.editor-pomodoro-widget,.editor-dice-widget{position:absolute;right:24px;z-index:5}.editor-memo-widget{width:250px;border-radius:10px;border:1px solid color-mix(in srgb,var(--app-warning) 55%,transparent);box-shadow:0 14px 24px var(--app-border);padding:10px 12px}.editor-memo-widget header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.editor-memo-widget header span{font-size:11px;letter-spacing:.03em;text-transform:uppercase;color:var(--app-text-secondary);font-weight:700}.editor-memo-widget header button{width:18px;height:18px;border:0;border-radius:5px;background:transparent;color:var(--app-focus-ring);display:grid;place-items:center}.editor-memo-widget p{margin:0 0 8px;font-size:12px;line-height:1.45;color:var(--app-text-primary)}.editor-memo-widget small{font-size:10px;color:var(--app-text-secondary)}.editor-pomodoro-widget{width:124px;border-radius:12px;border:1px solid var(--app-border);background:var(--app-bg-1-main);box-shadow:0 14px 24px var(--app-border);padding:8px 10px;display:grid;justify-items:center;gap:6px}.editor-pomodoro-widget header span{font-size:9px;letter-spacing:.12em;color:var(--app-text-muted);text-transform:uppercase}.editor-pomodoro-widget p{margin:0;font-size:36px;line-height:1;font-family:var(--app-ui-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);color:var(--app-text-primary)}.editor-pomodoro-widget div{display:flex;gap:6px}.editor-pomodoro-widget button{width:24px;height:24px;border:1px solid var(--app-border);border-radius:999px;background:var(--app-bg-1-main);color:var(--app-text-secondary);display:grid;place-items:center}.editor-pomodoro-widget small{font-size:9px;color:var(--app-text-muted)}.editor-dice-widget{width:132px;border-radius:12px;border:1px solid color-mix(in srgb,var(--app-warning) 90%,transparent);background:var(--app-bg-3-small);box-shadow:0 14px 24px var(--app-border);padding:8px 10px;display:grid;justify-items:center;gap:6px}.editor-dice-widget header span{font-size:9px;letter-spacing:.11em;color:var(--app-text-secondary);text-transform:uppercase;font-weight:700}.editor-dice-widget p{margin:0;font-size:26px;line-height:1;color:var(--app-text-primary);font-weight:700;font-variant-numeric:tabular-nums}.editor-dice-widget.rolling p{animation:editor-dice-bounce .11s ease-in-out infinite alternate}.editor-dice-widget.rolling>button{opacity:.7;cursor:not-allowed}.editor-dice-widget>button:disabled{opacity:.7;cursor:not-allowed}@keyframes editor-dice-bounce{0%{transform:translateY(0) scale(1)}to{transform:translateY(-4px) scale(1.02)}}.editor-dice-widget>button{height:24px;border:0;border-radius:999px;background:var(--app-bg-4-extra);color:var(--app-bg-1-main);display:inline-flex;align-items:center;gap:4px;font-size:10px;padding:0 8px}.editor-dice-widget small{font-size:9px;color:var(--app-text-secondary)}.editor-dice-widget>div{display:flex;gap:6px}.editor-dice-widget>div button{height:22px;border-radius:999px;border:1px solid color-mix(in srgb,var(--app-warning) 70%,transparent);background:var(--app-bg-3-small);color:var(--app-text-secondary);font-size:10px;padding:0 10px}.editor-dice-widget>div button.active{border-color:var(--app-bg-4-extra);background:var(--app-bg-4-extra);color:var(--app-text-secondary)}.editor-timeline header{height:40px;border-bottom:1px solid var(--app-border-soft);padding:0 12px;display:flex;align-items:center;justify-content:space-between;box-sizing:border-box;flex-shrink:0}.editor-timeline h3{margin:0;font-size:var(--editor-path-font-size);font-weight:400;color:var(--app-text-muted);display:flex;align-items:center;gap:8px;flex:1 1 auto;min-width:0;line-height:1.34}.editor-timeline-mode-label{display:inline-flex;align-items:center;gap:8px;flex:0 0 auto;min-width:0}.editor-timeline-mode-label>svg{flex:0 0 auto;margin-top:0}.editor-timeline-title-text{flex:1 1 auto;min-width:0;line-height:1.34;white-space:normal;word-break:keep-all;overflow-wrap:anywhere;max-height:2.68em;display:-webkit-box;line-clamp:2;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;text-overflow:ellipsis}.editor-timeline-title-text em{margin:0 6px}.editor-timeline h3 em{font-style:normal;color:var(--app-text-muted)}.editor-timeline h3 strong{font-weight:500;color:var(--app-text-secondary)}.editor-timeline-target-name{display:inline-flex;align-items:center;gap:6px;max-width:100%;line-height:1.34;vertical-align:middle}.editor-timeline-target-name svg{flex:0 0 auto;margin-top:-1px}.editor-timeline-target-name span{display:inline-block;min-width:0;line-height:1.34;overflow-wrap:anywhere}.editor-right-panel-note-wrap{flex:1 1 auto;min-height:0;padding:10px 0 10px 10px;display:flex}.editor-right-panel-note-editor{width:100%;min-height:100%;border:0;border-radius:0;background:transparent;color:var(--app-text-primary);font-size:18px;line-height:1.5;padding:2px 2px 12px;overflow-y:auto;scrollbar-gutter:stable;outline:none;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;cursor:text}.editor-right-panel-note-editor:empty:before{content:attr(data-placeholder);color:var(--app-text-secondary);pointer-events:none}.editor-right-panel-note-editor a{color:var(--app-focus-ring);text-decoration:underline;text-underline-offset:2px;cursor:pointer}.editor-bottom-note-panel{border-top:1px solid var(--app-border-soft);background:var(--app-surface-panel);display:flex;flex-direction:column;min-height:140px;max-height:none;position:relative}.editor-bottom-note-resizer{position:absolute;top:-6px;left:0;right:0;height:12px;min-height:12px;border:0;padding:0;margin:0;background:transparent;cursor:row-resize;z-index:4}.editor-bottom-note-resizer:after{content:"";position:absolute;left:0;right:0;top:6px;height:1px;background:var(--app-border)}.editor-bottom-note-resizer:hover:after,.editor-bottom-note-resizer:focus-visible:after{background:var(--app-focus-ring)}.editor-bottom-note-header{height:40px;border-bottom:1px solid var(--app-border-soft);padding:0 12px;background:var(--app-surface-panel);display:flex;align-items:center;justify-content:space-between;box-sizing:border-box;flex-shrink:0}.editor-bottom-note-header h3{margin:0;font-size:var(--editor-path-font-size);font-weight:400;color:var(--app-text-muted);display:flex;align-items:center;gap:8px;min-width:0}.editor-bottom-note-close{width:24px;height:24px;border:0;border-radius:8px;background:transparent;color:var(--app-text-muted);display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}.editor-bottom-note-close:hover,.editor-bottom-note-close:focus-visible{background:var(--app-hover);color:var(--app-text-secondary)}.editor-bottom-note-wrap{flex:1 1 auto;min-height:0;padding:10px 0 10px 10px;display:flex;background:var(--app-surface-panel)}.editor-bottom-note-wrap .editor-right-panel-note-editor{min-height:0;background:transparent}.timeline-heading-row{margin:12px 12px 8px;display:flex;align-items:center;justify-content:space-between}.timeline-heading-row h4{margin:0;font-size:11px;letter-spacing:.08em;color:var(--app-text-muted);font-weight:600}.timeline-characters-head{height:40px;padding:0 12px;border-bottom:1px solid var(--app-border-soft);display:flex;align-items:center;justify-content:space-between;box-sizing:border-box;flex-shrink:0}.timeline-characters-head h4{margin:0;font-size:11px;letter-spacing:.08em;color:var(--app-text-muted);font-weight:600}.timeline-character-create{position:relative}.timeline-character-create-toggle{width:20px;height:20px;border:0;border-radius:7px;background:transparent;color:var(--app-text-secondary);display:grid;place-items:center;cursor:pointer;transition:background-color .16s ease,color .16s ease}.timeline-character-create-toggle:hover{background:var(--app-hover);color:var(--app-text-primary)}.timeline-character-create-toggle:disabled{opacity:.45;cursor:default}.timeline-character-create-toggle:disabled:hover{background:transparent;color:var(--app-text-secondary)}.timeline-character-create-menu{position:absolute;top:calc(100% + 8px);right:0;min-width:180px;max-width:240px;border:1px solid var(--app-border);border-radius:10px;background:var(--app-bg-1-main);box-shadow:0 12px 28px var(--app-border);padding:6px;z-index:70}.timeline-character-create-menu button{width:100%;border:0;background:transparent;border-radius:8px;min-height:30px;padding:6px 8px;display:flex;align-items:center;gap:8px;color:var(--app-text-secondary);font-size:12px;font-weight:500;cursor:pointer}.timeline-character-create-menu button:hover{background:var(--app-hover)}.timeline-character-create-menu button i{width:8px;height:8px;border-radius:50%;flex-shrink:0}.timeline-character-create-menu button.new-character{margin-top:4px;border-top:1px solid var(--app-border-soft);border-radius:0 0 8px 8px;padding-top:9px;color:var(--app-text-primary)}.timeline-note-toggle{width:24px;height:24px;border:0;border-radius:7px;background:transparent;color:var(--app-text-muted);display:grid;place-items:center;cursor:pointer}.timeline-note-toggle.active{color:var(--app-text-secondary);background:var(--app-bg-3-small)}.timeline-characters,.timeline-events{margin:0 12px;padding:0;list-style:none}.timeline-characters{padding-top:8px}.timeline-make{margin:0 12px;flex:1;min-height:0;overflow-y:auto;display:flex;gap:10px;padding-top:8px;padding-bottom:8px;position:relative}.timeline-make-svg{flex-shrink:0;cursor:default}.timeline-make-dot{cursor:pointer}.timeline-make-notes{flex:1;min-width:80px}.timeline-add-hover{cursor:pointer}.timeline-add-guide{fill:var(--app-bg-4-extra);opacity:.28;pointer-events:none}.timeline-add-circle{fill:var(--app-bg-4-extra);cursor:pointer}.timeline-add-plus{stroke:var(--app-bg-1-main);stroke-width:1.5;pointer-events:none}.timeline-make-note{width:100%;border:0;border-radius:12px;background:var(--app-bg-3-small);text-align:left;padding:8px 12px;display:flex;flex-direction:column;justify-content:center;cursor:pointer}.timeline-make-note+.timeline-make-note{margin-top:0}.timeline-make-note-row{display:flex;align-items:center}.timeline-make-note span{font-size:9px;letter-spacing:.04em;text-transform:uppercase;color:var(--app-text-muted)}.timeline-make-note p{margin:0;font-size:14px;line-height:1.32;color:var(--app-text-secondary)}.timeline-make-note div{margin-top:6px;display:flex;gap:4px;flex-wrap:nowrap}.timeline-make-note i{width:10px;height:10px;border-radius:50%;flex:0 0 10px}.timeline-make-note.selected{background:var(--app-bg-3-small)}.timeline-event-modal-layer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:grid;place-items:center}.timeline-event-modal-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;border:0;background:var(--app-border-soft)}.timeline-event-modal{position:relative;width:min(448px,calc(100vw - 20px));border:1px solid var(--app-border-soft);border-radius:10px;background:var(--app-bg-1-main);box-shadow:0 25px 50px -12px var(--app-border-soft);overflow:hidden}.timeline-event-modal header{height:57px;border-bottom:1px solid var(--app-border-soft);padding:0 20px;display:flex;align-items:center;justify-content:space-between}.timeline-event-modal header h3{margin:0;font-family:var(--app-ui-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:15px;line-height:1.5;color:color-mix(in srgb,var(--app-text-on-bg-1) 90%,transparent);font-weight:500}.timeline-event-modal header button{width:24px;height:24px;border:0;border-radius:8px;background:transparent;color:var(--app-text-muted);display:grid;place-items:center;cursor:pointer}.timeline-event-modal-body{padding:16px 20px;display:grid;gap:16px}.timeline-event-modal-body label>span,.timeline-event-modal-body section h4{display:block;margin:0 0 6px;font-size:12px;line-height:1.5;font-weight:500;color:color-mix(in srgb,var(--app-text-muted) 70%,transparent)}.timeline-event-modal-body input,.timeline-event-modal-body textarea{width:100%;border:1px solid var(--app-border-soft);border-radius:8px;background:var(--app-bg-3-small);color:color-mix(in srgb,var(--app-text-on-bg-1) 80%,transparent);font-size:13px;padding:8px 12px}.timeline-event-modal-body textarea{min-height:76px;resize:vertical}.timeline-event-character-list{display:grid;gap:8px}.timeline-event-character-list button{height:41.5px;border:1px solid var(--app-border-soft);border-radius:8px;background:var(--app-bg-3-small);padding:0 13px;display:flex;align-items:center;justify-content:space-between;cursor:pointer}.timeline-event-character-list button span{display:inline-flex;align-items:center;gap:10px}.timeline-event-character-list button span i{width:12px;height:12px;border-radius:999px}.timeline-event-character-list button span strong{font-size:13px;font-weight:500;color:color-mix(in srgb,var(--app-text-on-bg-1) 80%,transparent)}.timeline-event-character-list button b{width:16px;height:16px;border:2px solid var(--app-border-soft);border-radius:4px;display:grid;place-items:center;font-size:10px;color:var(--app-bg-1-main)}.timeline-event-character-list button.active b{border-color:var(--app-bg-4-extra);background:var(--app-bg-4-extra)}.timeline-event-modal footer{height:68px;border-top:1px solid var(--app-border-soft);background:color-mix(in srgb,var(--app-bg-1-main) 20%,transparent);padding:0 20px;display:flex;align-items:center;justify-content:flex-end;gap:8px}.timeline-event-modal footer button{height:35.5px;border:0;border-radius:8px;padding:0 16px;font-size:13px;line-height:1.5;font-weight:500;cursor:pointer}.timeline-event-modal footer button.ghost{background:transparent;color:color-mix(in srgb,var(--app-text-on-bg-1) 70%,transparent)}.timeline-event-modal footer button.danger{margin-right:auto;background:color-mix(in srgb,var(--app-danger) 24%,transparent);color:var(--app-danger)}.timeline-event-modal footer button.solid{background:var(--app-bg-4-extra);color:var(--app-bg-1-main)}.timeline-event-modal footer button.solid:disabled{opacity:.4;cursor:not-allowed}.timeline-characters li{padding:3px 0 3px 14px;font-size:12px;line-height:1.2;color:var(--app-text-secondary);display:flex;align-items:center;justify-content:space-between;cursor:grab;transition:box-shadow .14s ease,background-color .14s ease}.timeline-character-label{display:inline-flex;align-items:center;gap:12px}.timeline-character-label i{width:8px;height:8px;border-radius:50%;flex-shrink:0}.timeline-characters li.dragging{opacity:.32;cursor:grabbing}.timeline-characters li button{width:20px;height:20px;border:0;border-radius:8px;background:transparent;color:var(--app-text-secondary);display:grid;place-items:center;opacity:0;pointer-events:none;transition:opacity .16s ease,background-color .16s ease,color .16s ease}.timeline-characters li:hover button{opacity:1;pointer-events:auto}.timeline-characters li button:hover{background:var(--app-bg-3-small);color:var(--app-text-secondary)}.timeline-events{position:relative;flex:1;min-height:0;overflow-y:auto;padding-bottom:8px}.timeline-network{position:absolute;left:0;top:0;width:88px;height:100%;pointer-events:none;z-index:0}.timeline-network .lane-base{stroke-width:2;opacity:0}.timeline-network .lane-base.c1{stroke:var(--app-focus-ring)}.timeline-network .lane-base.c2{stroke:var(--app-bg-4-extra)}.timeline-network .lane-base.c3{stroke:var(--app-danger)}.timeline-network .lane-base.c4{stroke:var(--app-focus-ring)}.timeline-events li{display:grid;grid-template-columns:88px minmax(80px,1fr);gap:10px;margin-bottom:0;min-height:76px;position:relative;z-index:1}.timeline-events li.no-notes{grid-template-columns:88px}.timeline-branch{position:relative;min-height:76px}.timeline-path{opacity:.62}.timeline-dot{position:absolute;border:4px solid var(--app-bg-3-small);box-sizing:border-box;border-radius:50%;padding:0;width:14px;height:14px;cursor:pointer;transform:translate(-50%,-50%);z-index:2;transition:box-shadow .14s ease,background-color .14s ease}.timeline-dot:focus-visible{outline:2px solid var(--app-bg-4-extra);outline-offset:1px}.timeline-dot.selected:after{content:"";position:absolute;top:3px;right:3px;bottom:3px;left:3px;border-radius:50%;background:var(--app-bg-1-main)}.timeline-events article{border-radius:12px;background:var(--app-bg-3-small);border:0;padding:8px 12px;min-height:66px;display:flex;flex-direction:column;justify-content:center}.timeline-events li.selected article{background:var(--app-bg-3-small)}.timeline-events article small{display:block;font-size:9px;color:var(--app-text-muted);letter-spacing:.04em;text-transform:uppercase}.timeline-events article p{margin:2px 0 0;font-size:14px;line-height:1.32;color:var(--app-text-secondary)}.timeline-events article div{margin-top:5px;display:flex;gap:4px}.timeline-events article div span{width:10px;height:10px;border-radius:50%}.timeline-events article div span.c1{background:var(--app-focus-ring)}.timeline-events article div span.c2{background:var(--app-bg-4-extra)}.timeline-events article div span.c3{background:var(--app-danger)}.timeline-events article div span.c4{background:var(--app-focus-ring)}.timeline-dot-tooltip{position:absolute;width:206px;pointer-events:none;background:var(--app-bg-4-extra);color:var(--app-bg-1-main);border-radius:8px;padding:9px 11px;z-index:4;box-shadow:0 10px 22px var(--app-focus-ring)}.timeline-dot-tooltip.below{transform:translateY(0)}.timeline-dot-tooltip:before{content:"";position:absolute;top:50%;width:8px;height:8px;margin-top:-4px;background:var(--app-bg-4-extra);transform:rotate(45deg)}.timeline-dot-tooltip.right:before{left:-4px}.timeline-dot-tooltip.left:before{right:-4px}.timeline-dot-tooltip.below:before{top:-4px;left:14px;margin-top:0}.timeline-dot-tooltip small{display:block;font-size:10px;opacity:.8}.timeline-dot-tooltip p{margin:2px 0 0;font-size:12px;line-height:1.35}.editor-timeline-footer{height:var(--editor-bottom-h);min-height:var(--editor-bottom-h);border-top:1px solid var(--app-border-soft);padding:0 12px;display:flex;align-items:center;justify-content:space-between;font-size:11px;color:var(--app-text-muted);line-height:1;box-sizing:border-box;flex-shrink:0}.editor-overlay{display:none}@media (max-width: 1160px){.intro-panel{padding:42px 30px}.login-intro-content{gap:28px}.auth-brand span{font-size:1.75rem}.auth-footer p{font-size:.875rem}}@media (max-width: 960px){.login-page{grid-template-columns:1fr;height:auto;min-height:100vh;overflow:auto;background:var(--bg-main)}.auth-panel{order:1;min-height:100vh;height:auto;padding-top:56px;padding-bottom:24px;overflow:visible}.intro-panel{display:none}.dashboard-page{grid-template-columns:1fr;height:auto;min-height:100vh;overflow-x:hidden;overflow-y:auto}.dashboard-sidebar-desktop{display:none}.dashboard-mobile-drawer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:block;pointer-events:none}.dashboard-mobile-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;border:0;background:var(--app-border-soft);cursor:pointer;opacity:0;transition:opacity .22s ease}.dashboard-sidebar-mobile{position:absolute;left:0;top:0;width:272px;height:100dvh;max-height:100dvh;z-index:31;box-shadow:0 10px 15px -3px var(--app-border-soft),0 4px 6px -4px var(--app-border-soft);transform:translate(-100%);transition:transform .24s ease}.dashboard-mobile-drawer.open{pointer-events:auto}.dashboard-mobile-drawer.open .dashboard-mobile-backdrop{opacity:1}.dashboard-mobile-drawer.open .dashboard-sidebar-mobile{transform:translate(0)}.sidebar-close-btn{display:grid}.dashboard-sidebar-mobile .sidebar-block{padding-top:8px}.dashboard-sidebar-mobile .sidebar-block:nth-of-type(1){padding-bottom:0}.dashboard-sidebar-mobile .sidebar-block:nth-of-type(2){padding-top:14px}.dashboard-sidebar-mobile .sidebar-title-btn{min-height:28px}.dashboard-main{width:100%;max-width:360px;padding:16px;height:auto;overflow-x:hidden;overflow-y:visible}.topbar{justify-content:space-between}.mobile-menu-btn{display:grid}.primary-btn{width:86px;height:41px;padding:0 14px;justify-content:center}.primary-btn-text-desktop{display:none}.primary-btn-text-mobile{display:inline}.welcome-section h1{font-size:20px;line-height:1.2}.challenge-card{height:237px;grid-template-columns:1fr}.challenge-card article{padding:20px}.challenge-card article h3{font-size:20px;line-height:1.2}.challenge-card img{display:none}.stats-grid{grid-template-columns:1fr}.settings-page{grid-template-columns:1fr;height:auto;min-height:100vh;overflow-x:hidden;overflow-y:auto}.settings-main{width:100%;max-width:360px;padding:8px 16px 92px;height:auto;overflow:visible}.settings-mobile-topbar{display:flex;height:42px;align-items:center}.settings-menu-btn{display:grid;border:1px solid var(--app-border);background:var(--app-bg-1-main);box-shadow:0 4px 8px var(--app-border-soft)}.settings-shell{display:block}.settings-nav-panel h2{font-size:42px}.settings-tab-list{margin-top:10px;display:flex;flex-wrap:nowrap;gap:8px;overflow-x:auto;overflow-y:hidden;-ms-overflow-style:none;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding:0 12px 2px 0}.settings-tab-list::-webkit-scrollbar{width:0;height:0;display:none}.settings-tab-list button{flex:0 0 auto;white-space:nowrap}.settings-content{margin-top:18px}.settings-heading h1{font-size:42px}.settings-heading p{font-size:14px;line-height:1.35}.setting-row{display:block;padding:14px 16px}.setting-copy h4{font-size:16px;line-height:1.15}.setting-copy p{margin-top:4px;font-size:13px;line-height:1.35}.setting-control{margin-top:12px;width:100%;justify-content:flex-end}.setting-control select,.setting-control input,.secondary-action-btn,.primary-action-btn{width:100%;max-width:100%;height:38px;font-size:14px}.setting-control .toggle-switch{width:56px;height:32px}.setting-control .toggle-switch span:after{width:28px;height:28px}.setting-control .toggle-switch input:checked+span:after{transform:translate(24px)}.setting-control.with-suffix{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center}.setting-control.with-suffix span{font-size:14px}.shortcut-grid{grid-template-columns:1fr}.theme-grid{grid-template-columns:1fr;max-width:none}.theme-card{min-height:156px}.theme-card strong{font-size:20px}.widget-settings{grid-template-columns:1fr;max-width:none}.widget-settings article>header h4{font-size:16px}.account-profile{grid-template-columns:64px minmax(0,1fr)}.account-profile>span{width:64px;height:64px;font-size:30px}.account-profile h4{font-size:24px}.account-profile .secondary-action-btn{grid-column:1 / -1;margin-top:6px}.linked-list li{display:block}.linked-list li .secondary-action-btn,.linked-list li .primary-action-btn{margin-top:12px}.danger-zone article{display:block}.danger-zone button{width:100%;margin-top:12px;height:36px;font-size:14px}.save-btn{width:100%;height:46px;font-size:14px}.settings-fab{right:16px;bottom:16px;width:56px;height:56px}.editor-page{grid-template-columns:1fr;height:auto;min-height:100vh}.editor-page.plot-mode{grid-template-columns:1fr}.editor-sidebar-desktop,.editor-timeline-desktop,.editor-sidebar-resizer,.editor-workspace-divider-toggle,.editor-timeline-divider-toggle,.editor-timeline-top-toggle{display:none}.editor-main{height:auto;min-height:100vh;--editor-extra-top: 142px}.plot-board-head{height:auto;min-height:48px;padding:14px 12px 12px;flex-direction:column;align-items:flex-start;gap:10px}.plot-board-head-left{width:100%;flex-direction:column;align-items:flex-start;gap:8px}.plot-board-actions{width:100%;flex-wrap:wrap}.plot-map-canvas-actions{width:auto;flex-wrap:nowrap;max-width:calc(100% - 24px)}.character-board-body{flex-direction:column}.character-board-selected-column,.character-board-list{flex:1 1 auto;border-right:0;border-bottom:1px solid var(--app-border-soft);padding:12px}.character-board-list-grid.grid,.character-board-list-grid.list{grid-template-columns:1fr}.character-board-panel-body{padding:12px}.character-board-panel-inline{grid-template-columns:1fr}.character-board-panel{min-height:280px}.plot-board-scroll{--plot-board-top-gap: 12px;padding:12px}.plot-board-episode-scroll{gap:10px}.plot-episode-column,.plot-add-episode-card{width:260px;flex-basis:260px}.editor-mobile-topbar{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;height:48px;border-bottom:1px solid var(--app-border-soft);padding:0 8px;background:var(--app-bg-1-main)}.editor-mobile-topbar p{margin:0;text-align:center;font-family:var(--app-ui-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:17px;color:var(--app-text-primary)}.editor-mobile-btn{display:grid;place-items:center;border:0;background:transparent}.editor-breadcrumb,.editor-toolbar,.editor-tab-strip,.editor-pane-tab-strip{padding-left:12px;padding-right:12px}.editor-main{--editor-extra-top: 156px}.editor-breadcrumb{height:auto;min-height:48px;padding-top:8px;padding-bottom:8px;align-items:flex-start;gap:10px}.editor-breadcrumb-path{flex:1 1 auto;min-width:0;display:flex;flex-wrap:wrap;align-items:center;row-gap:4px;column-gap:8px;line-height:1.25}.editor-breadcrumb-path span,.editor-breadcrumb-path strong{white-space:normal}.editor-theme-topbar-btn{flex:0 0 auto}.editor-breadcrumb-actions{width:100%;justify-content:flex-end}.editor-toolbar{height:auto;min-height:46px;padding-top:6px;padding-bottom:6px;overflow:visible;flex-wrap:wrap;row-gap:6px}.editor-pane-host.split-right,.editor-pane-host.split-bottom,.editor-pane-host.layout-top-row,.editor-pane-host.layout-bottom-row,.editor-pane-host.layout-left-col,.editor-pane-host.layout-right-col,.editor-pane-host.layout-left-triple,.editor-pane-host.layout-right-triple,.editor-pane-host.layout-top-triple,.editor-pane-host.layout-bottom-triple{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr)}.editor-pane-host .editor-pane+.editor-pane{display:none}.editor-split-btn,.editor-split-divider{display:none}.editor-toolbar-text-btn{min-width:48px;padding:0 8px;font-size:11px}.editor-input-row label,.inline-range,.inline-color{height:30px;font-size:11px}.editor-document{padding:20px 20px 24px;scroll-padding-top:20px}.editor-modal-layer{padding:60px}.editor-modal,.plot-modal{width:min(560px,calc(100vw - 120px));border-radius:14px}.plot-chapter-character-panel{top:auto;right:auto;width:min(560px,calc(100vw - 120px));height:min(520px,calc(100vh - 120px));position:relative;justify-self:center;align-self:center;margin-top:14px}.revision-modal{width:min(960px,calc(100vw - 120px))}.revision-modal-body{grid-template-columns:1fr;min-height:0}.revision-modal-list{border-right:0;border-bottom:1px solid var(--app-border-soft);padding-right:0;padding-bottom:10px}.revision-modal-list ul{max-height:140px}.revision-diff-grid{min-height:220px}.plot-modal .editor-modal-header{height:58px;padding:0 16px 0 18px}.plot-modal .editor-modal-header h3{font-size:18px}.plot-modal .editor-modal-body{padding:16px 18px 12px;gap:12px}.plot-modal-body input,.plot-modal-body select{height:42px;border-radius:12px;font-size:14px}.plot-modal-body textarea{min-height:112px;border-radius:12px;font-size:14px}.plot-modal .editor-modal-actions{height:auto;padding:12px 18px 16px}.plot-modal .editor-modal-actions button{height:40px;border-radius:10px;font-size:13px;padding:0 14px}.editor-modal-grid{grid-template-columns:1fr}.editor-search-panel,.editor-memo-widget,.editor-pomodoro-widget,.editor-dice-widget{display:none}.editor-title-preview,.editor-title-input{font-size:36px}.editor-body{font-size:16px}.editor-document.is-note-document .editor-body{margin-top:20px}.editor-body :is(p,div)+:is(p,div){margin-top:20px}.editor-status{justify-content:space-between;gap:8px}.editor-status span:not(:first-child):before{margin-right:8px}.editor-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:block;pointer-events:none}.editor-overlay-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;border:0;background:var(--app-border-soft);opacity:0;transition:opacity .22s ease}.editor-overlay .editor-sidebar-mobile{position:absolute;top:0;left:0;width:240px;max-width:calc(100vw - 40px);height:100dvh;transform:translate(-100%);transition:transform .24s ease;box-shadow:0 16px 36px var(--app-border-soft)}.editor-overlay .editor-timeline-mobile{position:absolute;top:0;right:0;width:240px;max-width:calc(100vw - 40px);height:100dvh;transform:translate(100%);transition:transform .24s ease;box-shadow:0 16px 36px var(--app-border-soft)}.editor-overlay.open{pointer-events:auto}.editor-overlay.open .editor-overlay-backdrop{opacity:1}.editor-overlay.left.open .editor-sidebar-mobile,.editor-overlay.right.open .editor-timeline-mobile{transform:translate(0)}}@media (max-width: 420px){.dashboard-main{padding:12px}.welcome-section{margin-top:20px}.welcome-section h1{font-size:20px;line-height:1.2}.welcome-section p{font-size:13px;line-height:1.5}.challenge-card article h3{font-size:20px;line-height:1.2}.challenge-card article p{font-size:12px;line-height:1.45}.challenge-card article button{height:32px;padding:0 12px;font-size:12px}.stats-grid article{padding:12px}.stats-grid h3{font-size:24px}.activity-card,.goals-card{padding:14px}}.plot-board.character-board.character-board-v2 .character-board-body{background:var(--app-bg-1-main);display:grid;grid-template-columns:1fr;transition:grid-template-columns .42s cubic-bezier(.22,1,.36,1);min-height:0;overflow:hidden;width:100%;min-width:0}.plot-board.character-board.character-board-v2 .character-board-body.board{grid-template-rows:auto minmax(0,1fr);background:var(--app-bg-1-main);--character-selected-column-w: calc((100% - 32px) / 3)}.plot-board.character-board.character-board-v2 .character-board-summary-row{grid-column:1 / -1;grid-row:1;min-height:40px;height:auto;padding:12px 22px 0;gap:8px;background:var(--app-bg-1-main)}.plot-board.character-board.character-board-v2 .character-board-summary-count{gap:8px}.plot-board.character-board.character-board-v2 .character-board-body.board>.character-board-list,.plot-board.character-board.character-board-v2 .character-board-body.board>.character-board-selected-column{grid-row:2}.plot-board.character-board.character-board-v2 .character-board-body.selection-open{grid-template-columns:1fr}.plot-board.character-board.character-board-v2 .character-board-body.map.selection-open{grid-template-columns:minmax(0,1fr)}.plot-board.character-board.character-board-v2 .character-board-body.board,.plot-board.character-board.character-board-v2 .character-board-body.map{position:relative}.plot-board.character-board.character-board-v2 .character-board-body.selection-open.panel-opening,.plot-board.character-board.character-board-v2 .character-board-body.selection-open.selection-closing{grid-template-columns:1fr}.plot-board.character-board.character-board-v2 .character-board-list,.plot-board.character-board.character-board-v2 .character-board-selected-column,.plot-board.character-board.character-board-v2 .character-board-panel{min-height:0;min-width:0;width:100%}.plot-board.character-board.character-board-v2 .character-board-list{background:var(--app-bg-1-main);padding:12px 22px 20px;display:grid;grid-template-rows:auto minmax(0,1fr);gap:14px}.plot-board.character-board.character-board-v2 .character-board-list-head strong{font-size:12px;letter-spacing:.04em;line-height:1;text-transform:uppercase;color:var(--app-text-muted)}.plot-board.character-board.character-board-v2 .character-board-list-head span{height:22px;min-width:24px;border-radius:999px;padding:0 8px;font-size:12px;font-weight:700;background:var(--app-bg-3-small);color:var(--app-text-secondary)}.plot-board.character-board.character-board-v2 .character-board-list-grid{overflow:auto;display:grid;align-content:start;gap:16px;padding-right:2px;min-width:0;width:100%}.plot-board.character-board.character-board-v2 .character-board-list-grid.grid{grid-template-columns:repeat(3,minmax(0,1fr))}.plot-board.character-board.character-board-v2 .character-board-list-grid.list{grid-template-columns:1fr}.plot-board.character-board.character-board-v2 .character-board-card{border:1px solid var(--app-border-soft);border-radius:16px;background:var(--app-bg-2-sub);padding:18px 20px 14px;box-sizing:border-box;position:relative;overflow:hidden;text-align:left;transition:box-shadow .18s ease,border-color .18s ease,transform .18s ease;width:100%;min-width:0}.plot-board.character-board.character-board-v2 .character-board-card.is-draggable{cursor:grab}.plot-board.character-board.character-board-v2 .character-board-card.is-draggable:active{cursor:grabbing}.plot-board.character-board.character-board-v2 .character-board-card.is-dragging{opacity:.58;transform:scale(.985)}.plot-board.character-board.character-board-v2 .character-board-card.drag-over{border-color:var(--app-focus-ring);box-shadow:0 0 0 2px color-mix(in srgb,var(--app-focus-ring) 72%,transparent)}.plot-board.character-board.character-board-v2 .character-board-list-grid.grid .character-board-card,.plot-board.character-board.character-board-v2 .character-board-list-grid.grid .character-board-empty-card{min-height:252px}.plot-board.character-board.character-board-v2 .character-board-list-grid.list .character-board-card{display:flex;flex-direction:column;align-items:stretch;gap:10px;min-height:186px;padding:18px 20px}.plot-board.character-board.character-board-v2 .character-board-card:hover{border-color:var(--app-border);box-shadow:0 8px 24px var(--app-border-soft);transform:translateY(-1px)}.plot-board.character-board.character-board-v2 .character-board-card.active{border-color:color-mix(in srgb,var(--app-text-primary) 38%,transparent);box-shadow:0 14px 32px var(--app-border)}.plot-board.character-board.character-board-v2 .character-board-card.selected{min-height:252px}.plot-board.character-board.character-board-v2 .character-board-card-accent{position:absolute;left:-1px;right:-1px;top:-1px;height:4px;border-radius:16px 16px 0 0}.plot-board.character-board.character-board-v2 .character-board-card-head{display:flex;align-items:center;gap:12px}.plot-board.character-board.character-board-v2 .character-board-card-head>.character-board-card-meta{min-width:0}.plot-board.character-board.character-board-v2 .character-board-avatar{width:48px;height:48px;--avatar-radius: 24px;--avatar-dot-size: 12px;border-radius:999px;overflow:visible;border:0;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;position:relative;background:var(--app-bg-3-small)}.plot-board.character-board.character-board-v2 .character-board-avatar.large{width:52px;height:52px;--avatar-radius: 26px}.plot-board.character-board.character-board-v2 .character-board-avatar img,.plot-board.character-board.character-board-v2 .character-board-avatar .character-board-avatar-svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;display:block;border-radius:inherit}.plot-board.character-board.character-board-v2 .character-board-avatar-color-dot{position:absolute;left:calc(50% + (var(--avatar-radius) * .81915204) - (var(--avatar-dot-size) / 2));top:calc(50% + (var(--avatar-radius) * .57357644) - (var(--avatar-dot-size) / 2));width:var(--avatar-dot-size);height:var(--avatar-dot-size);border-radius:999px;border:2px solid var(--app-bg-3-small)}.plot-board.character-board.character-board-v2 .character-board-avatar.fallback{background:var(--app-bg-3-small);color:var(--app-text-secondary)}.plot-board.character-board.character-board-v2 .character-board-avatar-fallback{position:relative;z-index:1;width:76%;height:76%}.plot-board.character-board.character-board-v2 .character-board-card-head h4{margin:0;font-size:14px;line-height:1.15;color:var(--app-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.plot-board.character-board.character-board-v2 .character-board-card-head p{margin:4px 0 0;font-size:10px;line-height:1;color:var(--app-text-muted);letter-spacing:.04em;text-transform:uppercase}.plot-board.character-board.character-board-v2 .character-board-name-row{display:inline-flex;align-items:center;gap:7px;max-width:100%}.plot-board.character-board.character-board-v2 .character-board-name-row i{width:8px;height:8px;border-radius:999px;flex:0 0 8px}.plot-board.character-board.character-board-v2 .character-board-name-row span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.plot-board.character-board.character-board-v2 .character-board-card-description{margin:12px 0 0;color:var(--app-text-primary);font-size:14px;line-height:1.45;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.plot-board.character-board.character-board-v2 .character-board-list-grid.list .character-board-card .character-board-card-description{display:-webkit-box;-webkit-line-clamp:2;margin-top:0;line-height:1.45;min-height:40px;max-height:40px}.plot-board.character-board.character-board-v2 .character-board-tags,.plot-board.character-board.character-board-v2 .character-board-appears>div{display:flex;flex-wrap:wrap;gap:7px}.plot-board.character-board.character-board-v2 .character-board-tags{margin-top:12px}.plot-board.character-board.character-board-v2 .character-board-list-grid.list .character-board-card .character-board-tags{display:flex;margin-top:0;min-height:26px}.plot-board.character-board.character-board-v2 .character-board-tags span,.plot-board.character-board.character-board-v2 .character-board-appears>div span{height:26px;border-radius:999px;border:1px solid var(--app-border-soft);background:var(--app-bg-4-extra);color:var(--app-text-secondary);padding:0 10px;font-size:12px;font-weight:600;display:inline-flex;align-items:center;white-space:nowrap;max-width:140px;overflow:hidden;text-overflow:ellipsis;flex-shrink:0}.plot-board.character-board.character-board-v2 .character-board-appears{margin-top:12px;padding-top:11px;border-top:1px solid var(--app-border-soft);display:grid;align-content:start;gap:8px}.plot-board.character-board.character-board-v2 .character-board-list-grid.list .character-board-card .character-board-appears{display:grid;margin-top:0;padding-top:10px;gap:7px}.plot-board.character-board.character-board-v2 .character-board-list-grid.list .character-board-card .character-board-appears>div{flex-wrap:nowrap;overflow:hidden;min-width:0}.plot-board.character-board.character-board-v2 .character-board-appears strong{font-size:12px;color:var(--app-text-secondary);font-weight:700;line-height:1.1}.plot-board.character-board.character-board-v2 .character-board-selected-column{background:var(--app-bg-1-main);border-right:0;padding:18px 22px;display:grid;grid-template-rows:auto auto auto minmax(0,1fr);gap:12px;overflow:hidden;width:var(--character-selected-column-w);justify-self:start}.plot-board.character-board.character-board-v2 .character-board-other-list{display:grid;gap:8px;align-content:start;overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.plot-board.character-board.character-board-v2 .character-board-other-list::-webkit-scrollbar{width:0;height:0}.plot-board.character-board.character-board-v2 .character-board-other-item{border:0;background:var(--app-bg-4-extra);border-radius:12px;min-height:64px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;padding:6px 8px;text-align:left;column-gap:10px}.plot-board.character-board.character-board-v2 .character-board-other-item:hover{background:var(--app-bg-3-small)}.plot-board.character-board.character-board-v2 .character-board-other-main{display:grid;grid-template-columns:48px minmax(0,1fr);align-items:center;gap:10px;min-width:0;width:100%}.plot-board.character-board.character-board-v2 .character-board-other-main>div{min-width:0;display:grid;align-content:center;gap:3px}.plot-board.character-board.character-board-v2 .character-board-other-text{min-width:0;display:grid;row-gap:3px;text-align:left;justify-items:start}.plot-board.character-board.character-board-v2 .character-board-other-name-line{display:grid;grid-template-columns:minmax(0,1fr);align-items:center;column-gap:0}.plot-board.character-board.character-board-v2 .character-board-other-name-line h5{margin:0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.plot-board.character-board.character-board-v2 .character-board-other-main .character-board-name-row{margin:0;align-items:center;line-height:1.1}.plot-board.character-board.character-board-v2 .character-board-other-main h5{margin:0;font-size:16px;color:var(--app-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.plot-board.character-board.character-board-v2 .character-board-other-main p{margin:0;font-size:11px;line-height:1.15;color:var(--app-text-muted);letter-spacing:.04em;text-transform:uppercase;padding-left:0}.plot-board.character-board.character-board-v2 .character-board-other-dot{width:10px;height:10px;border-radius:999px;align-self:center;justify-self:end;flex:0 0 10px}.plot-board.character-board.character-board-v2 .character-board-panel{position:absolute;top:16px;right:16px;width:min(420px,calc(100% - 32px));height:calc(100% - 32px);border:1px solid var(--app-border);border-radius:16px;box-shadow:0 18px 40px color-mix(in srgb,var(--app-text-on-bg-1) 38%,transparent);background:var(--app-bg-2-sub);display:grid;grid-template-rows:46px minmax(0,1fr);transition:transform .24s ease,opacity .2s ease;animation:none;will-change:transform,opacity;z-index:20}.plot-board.character-board.character-board-v2 .character-board-body.board .character-board-panel{width:min(820px,calc(100% - var(--character-selected-column-w) - 20px))}.plot-board.character-board.character-board-v2 .character-board-body.map .character-board-panel{width:min(420px,calc(100% - 32px))}.plot-board.character-board.character-board-v2 .character-map-edit-panel{position:absolute}.plot-board.character-board.character-board-v2 .character-board-panel header{border-bottom:1px solid var(--app-border);height:46px;padding:0 20px 0 24px;display:flex;align-items:center;gap:10px}.plot-board.character-board.character-board-v2 .character-board-panel header h3{margin:0;font-size:16px;line-height:1;color:var(--app-text-on-bg-2)}.plot-board.character-board.character-board-v2 .character-board-panel-dot{width:10px;height:10px;border-radius:999px;flex:0 0 10px}.plot-board.character-board.character-board-v2 .character-board-panel header button{margin-left:auto;border:0;background:transparent;color:var(--app-text-secondary);width:28px;height:28px;border-radius:8px;display:grid;place-items:center;transition:background-color .14s ease,color .14s ease}.plot-board.character-board.character-board-v2 .character-board-panel header button:hover,.plot-board.character-board.character-board-v2 .character-board-panel header button:focus-visible{background:var(--app-bg-4-extra);color:var(--app-text-primary)}.plot-board.character-board.character-board-v2 .character-board-panel-body{overflow:auto;padding:16px 20px 28px;display:grid;gap:14px;align-content:start}.plot-board.character-board.character-board-v2 .character-board-panel-identity{display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--app-border);padding-bottom:12px}.plot-board.character-board.character-board-v2 .character-board-panel-identity>div{display:grid;align-content:center;gap:4px;min-width:0}.plot-board.character-board.character-board-v2 .character-board-panel-identity h4{margin:0;font-size:16px;line-height:1.2;color:var(--app-text-on-bg-2);font-weight:700}.plot-board.character-board.character-board-v2 .character-board-panel-identity p{margin:0;font-size:12px;line-height:1.2;font-weight:600;color:var(--app-text-secondary)}.plot-board.character-board.character-board-v2 .character-board-panel-body label>span,.plot-board.character-board.character-board-v2 .character-board-panel-body h4{margin-bottom:8px;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--app-text-secondary)}.plot-board.character-board.character-board-v2 .character-board-panel-body input[type=text],.plot-board.character-board.character-board-v2 .character-board-panel-body textarea{width:100%;border:1px solid var(--app-border);border-radius:12px;background:var(--app-bg-3-small);color:var(--app-text-on-bg-3)}.plot-board.character-board.character-board-v2 .character-board-panel-body input[type=text]{height:40px;padding:0 12px;font-size:14px}.plot-board.character-board.character-board-v2 .character-board-panel-body textarea{min-height:110px;padding:11px 12px;font-size:14px;line-height:1.45}.plot-board.character-board.character-board-v2 .character-board-panel-inline{display:grid;grid-template-columns:1fr 1fr;gap:12px}.plot-board.character-board.character-board-v2 .character-board-theme-palette{display:flex;flex-wrap:wrap;gap:8px}.plot-board.character-board.character-board-v2 .character-board-theme-palette button,.plot-board.character-board.character-board-v2 .character-board-theme-palette input[type=color]{width:28px;height:28px;border-radius:999px}.plot-board.character-board.character-board-v2 .character-board-theme-custom-wrap{position:relative;display:inline-flex;width:28px;height:28px}.plot-board.character-board.character-board-v2 .character-board-theme-custom{border:1px dashed var(--app-focus-ring);background:var(--app-bg-3-small);color:var(--app-text-secondary);display:inline-flex;align-items:center;justify-content:center;transition:border-color .14s ease,background-color .14s ease,color .14s ease}.plot-board.character-board.character-board-v2 .character-board-theme-custom:hover,.plot-board.character-board.character-board-v2 .character-board-theme-custom:focus-visible{border-color:var(--app-focus-ring);background:var(--app-bg-3-small);color:var(--app-text-primary)}.plot-board.character-board.character-board-v2 .character-board-theme-custom-wrap input[type=color]{position:absolute;top:0;right:0;bottom:0;left:0;width:28px;height:28px;opacity:0;pointer-events:none}.plot-board.character-board.character-board-v2 .character-board-theme-palette button.active{box-shadow:0 0 0 2px var(--app-text-primary)}.plot-board.character-board.character-board-v2 .character-board-chapter-chips{display:flex;flex-wrap:wrap;gap:8px}.plot-board.character-board.character-board-v2 .character-board-chapter-add{position:relative}.plot-board.character-board.character-board-v2 .character-board-tags.editor{display:flex;flex-wrap:wrap;gap:8px}.plot-board.character-board.character-board-v2 .character-board-chapter-chips button,.plot-board.character-board.character-board-v2 .character-board-tags.editor button.removable,.plot-board.character-board.character-board-v2 .character-board-chapter-chips .add,.plot-board.character-board.character-board-v2 .character-board-tags.editor .add{height:32px;border-radius:999px;border:1px solid var(--app-border);background:var(--app-bg-2-sub);color:var(--app-text-secondary);padding:0 12px;font-size:12px;font-weight:600;display:inline-flex;align-items:center}.plot-board.character-board.character-board-v2 .character-board-tags.editor button.removable,.plot-board.character-board.character-board-v2 .character-board-chapter-chips button.removable{position:relative;padding-right:28px}.plot-board.character-board.character-board-v2 .character-board-tags.editor button.removable>span,.plot-board.character-board.character-board-v2 .character-board-chapter-chips button.removable>span{border:0;background:transparent;padding:0;height:auto;border-radius:0;min-width:0;max-width:none;overflow:visible;text-overflow:clip;display:inline}.plot-board.character-board.character-board-v2 .character-board-tags.editor button.removable svg,.plot-board.character-board.character-board-v2 .character-board-chapter-chips button.removable svg{position:absolute;right:9px;top:50%;transform:translateY(-50%);color:var(--app-text-muted);opacity:.72;transition:opacity .14s ease,color .14s ease}.plot-board.character-board.character-board-v2 .character-board-tags.editor button.removable:hover svg,.plot-board.character-board.character-board-v2 .character-board-chapter-chips button.removable:hover svg{opacity:1;color:var(--app-danger)}.plot-board.character-board.character-board-v2 .character-board-chapter-chips .add,.plot-board.character-board.character-board-v2 .character-board-tags.editor .add{border:1px dashed var(--app-focus-ring);color:var(--app-text-secondary);cursor:pointer;transition:color .14s ease,border-color .14s ease,background-color .14s ease}.plot-board.character-board.character-board-v2 .character-board-chapter-chips .add:hover,.plot-board.character-board.character-board-v2 .character-board-chapter-chips .add:focus-visible,.plot-board.character-board.character-board-v2 .character-board-tags.editor .add:hover,.plot-board.character-board.character-board-v2 .character-board-tags.editor .add:focus-visible{color:var(--app-text-primary);border-color:var(--app-focus-ring);background:var(--app-bg-3-small)}.plot-board.character-board.character-board-v2 .character-board-chapter-chips button.checked{background:var(--app-bg-3-small);border-color:var(--app-focus-ring);color:var(--app-focus-ring)}.plot-board.character-board.character-board-v2 .character-board-chapter-chips button.removable.checked{background:var(--app-bg-2-sub);border-color:var(--app-border);color:var(--app-text-secondary)}.plot-board.character-board.character-board-v2 .character-board-chapter-add-menu{position:absolute;top:calc(100% + 8px);left:0;min-width:220px;max-width:320px;max-height:224px;overflow:auto;border:1px solid var(--app-border);border-radius:12px;background:var(--app-bg-3-small);box-shadow:0 12px 30px var(--app-border);padding:6px;z-index:32}.plot-board.character-board.character-board-v2 .character-board-chapter-add-menu button{width:100%;border:0;background:transparent;border-radius:8px;min-height:32px;padding:6px 10px;display:flex;align-items:center;text-align:left;color:var(--app-text-secondary);font-size:12px;font-weight:600;cursor:pointer}.plot-board.character-board.character-board-v2 .character-board-chapter-add-menu button:hover,.plot-board.character-board.character-board-v2 .character-board-chapter-add-menu button:focus-visible{background:var(--app-bg-2-sub)}.plot-board.character-board.character-board-v2 .character-board-chapter-add-menu .empty{min-height:32px;display:flex;align-items:center;padding:6px 10px;font-size:12px;font-weight:600;color:var(--app-text-muted)}.plot-board.character-board.character-board-v2 .character-board-panel .danger-inline{justify-self:start;margin-top:48px;margin-bottom:8px;height:34px;border:1px solid color-mix(in srgb,var(--app-danger) 52%,transparent);border-radius:12px;background:var(--app-danger-bg);color:var(--app-danger);padding:0 14px;font-weight:700;font-size:13px;transition:background-color .14s ease,border-color .14s ease,color .14s ease}.plot-board.character-board.character-board-v2 .character-board-panel .danger-inline:hover,.plot-board.character-board.character-board-v2 .character-board-panel .danger-inline:focus-visible{background:var(--app-danger-bg);border-color:color-mix(in srgb,var(--app-danger) 72%,transparent);color:var(--app-danger)}.plot-board.character-board.character-board-v2 .character-board-tags.editor .add{cursor:pointer}.plot-board.character-board.character-board-v2 .character-tag-modal-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:42;display:grid;place-items:center;background:var(--app-overlay-backdrop-soft);padding:28px}.plot-board.character-board.character-board-v2 .character-tag-modal{width:min(520px,calc(100vw - 120px));border-radius:16px;border:1px solid var(--app-border);background:var(--app-bg-3-small);box-shadow:0 18px 42px var(--app-focus-ring);overflow:hidden}.plot-board.character-board.character-board-v2 .character-tag-modal-header{height:54px;padding:0 16px;border-bottom:1px solid var(--app-border-soft);display:flex;align-items:center}.plot-board.character-board.character-board-v2 .character-tag-modal-header h4{margin:0;font-size:18px;font-weight:700;color:var(--app-text-primary)}.plot-board.character-board.character-board-v2 .character-tag-modal-header button{margin-left:auto;width:30px;height:30px;border-radius:8px;border:1px solid var(--app-border);background:var(--app-bg-3-small);color:var(--app-text-secondary);display:grid;place-items:center}.plot-board.character-board.character-board-v2 .character-tag-modal-body{padding:16px;display:grid;gap:14px}.plot-board.character-board.character-board-v2 .character-tag-modal-input-wrap{display:grid;gap:7px}.plot-board.character-board.character-board-v2 .character-tag-modal-input-wrap>span{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--app-text-muted)}.plot-board.character-board.character-board-v2 .character-tag-modal-input-wrap>div{display:grid;grid-template-columns:1fr auto;gap:8px}.plot-board.character-board.character-board-v2 .character-tag-modal-input-wrap input{width:100%;height:36px;border:1px solid var(--app-border);border-radius:10px;background:var(--app-bg-3-small);color:var(--app-text-primary);padding:0 12px;font-size:13px;outline:none}.plot-board.character-board.character-board-v2 .character-tag-modal-add-btn{width:36px;height:36px;border-radius:10px;border:1px solid var(--app-border);background:var(--app-bg-2-sub);color:var(--app-text-muted);display:grid;place-items:center;transition:background-color .13s ease,border-color .13s ease,color .13s ease}.plot-board.character-board.character-board-v2 .character-tag-modal-add-btn:disabled{opacity:.58;cursor:not-allowed}.plot-board.character-board.character-board-v2 .character-tag-modal-add-btn:not(:disabled){border-color:var(--app-text-primary);background:var(--app-text-primary);color:var(--app-bg-1-main)}.plot-board.character-board.character-board-v2 .character-tag-modal-suggestion-wrap{display:grid;gap:8px}.plot-board.character-board.character-board-v2 .character-tag-modal-suggestion-wrap p{margin:0;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--app-text-muted)}.plot-board.character-board.character-board-v2 .character-tag-modal-suggestions{display:flex;flex-wrap:wrap;gap:8px}.plot-board.character-board.character-board-v2 .character-tag-modal-suggestions button{height:31px;border-radius:999px;border:1px solid var(--app-border);background:var(--app-bg-2-sub);color:var(--app-text-secondary);padding:0 11px;font-size:12px;font-weight:600;display:inline-flex;align-items:center}.plot-board.character-board.character-board-v2 .character-tag-modal-suggestions.disabled button{opacity:.44;pointer-events:none}.plot-board.character-board.character-board-v2 .character-import-modal{width:min(520px,calc(100vw - 28px))}.plot-board.character-board.character-board-v2 .character-import-modal-body .character-tag-modal-input-wrap select{width:100%;height:36px;border:1px solid var(--app-border);border-radius:10px;background:var(--app-bg-3-small);color:var(--app-text-primary);padding:0 12px;font-size:13px;outline:none}.plot-board.character-board.character-board-v2 .character-import-list{display:grid;gap:8px;max-height:280px;overflow:auto;padding-right:2px}.plot-board.character-board.character-board-v2 .character-import-item{width:100%;height:34px;border:1px solid var(--app-border);border-radius:10px;background:var(--app-bg-2-sub);padding:0 10px;display:inline-flex;align-items:center;gap:8px;color:var(--app-text-primary);font-size:13px;font-weight:600;cursor:pointer;transition:background-color .12s ease,border-color .12s ease,color .12s ease}.plot-board.character-board.character-board-v2 .character-import-item:hover,.plot-board.character-board.character-board-v2 .character-import-item:focus-visible{border-color:var(--app-focus-ring);background:var(--app-bg-3-small);color:var(--app-bg-4-extra);outline:none}.plot-board.character-board.character-board-v2 .character-import-item.selected{border-color:var(--app-focus-ring);background:var(--app-bg-3-small);color:var(--app-bg-4-extra)}.plot-board.character-board.character-board-v2 .character-import-item i{width:8px;height:8px;border-radius:999px;flex:0 0 auto}.plot-board.character-board.character-board-v2 .character-import-empty{font-size:13px;color:var(--app-text-muted)}.plot-board.character-board.character-board-v2 .character-import-actions{border-top:1px solid var(--app-border-soft);padding:12px 16px 14px;display:flex;align-items:center;justify-content:flex-end;gap:8px}.plot-board.character-board.character-board-v2 .character-import-actions .character-link-modal-cancel,.plot-board.character-board.character-board-v2 .character-import-actions .plot-new-chapter-btn{height:34px;border-radius:10px;font-size:13px;font-weight:700;padding:0 14px}.plot-board.character-board.character-board-v2 .character-import-actions .character-link-modal-cancel{border:1px solid var(--app-border);background:var(--app-bg-3-small);color:var(--app-text-secondary)}.plot-board.character-board.character-board-v2 .character-import-actions .character-link-modal-cancel:hover,.plot-board.character-board.character-board-v2 .character-import-actions .character-link-modal-cancel:focus-visible{background:var(--app-bg-3-small)}.plot-board.character-board.character-board-v2 .character-import-actions .plot-new-chapter-btn:disabled{opacity:.5;cursor:not-allowed}.plot-board.character-board.character-board-v2 .character-trash-btn{min-width:56px;width:auto;padding:0 10px;justify-content:space-between;gap:8px}.plot-board.character-board.character-board-v2 .character-trash-btn i{min-width:18px;height:18px;border-radius:999px;padding:0 5px;display:inline-flex;align-items:center;justify-content:center;background:var(--app-bg-3-small);color:var(--app-text-primary);font-size:10px;font-style:normal;font-weight:700}.plot-board.character-board.character-board-v2 .character-trash-btn.has-items{border-color:var(--app-focus-ring);color:var(--app-text-primary)}.plot-board.character-board.character-board-v2 .character-trash-modal{width:min(560px,calc(100% - 120px));max-height:calc(100% - 120px);display:grid;grid-template-rows:54px minmax(0,1fr)}.plot-board.character-board.character-board-v2 .character-trash-modal .character-tag-modal-body{min-height:0;overflow:auto}.plot-board.character-board.character-board-v2 .character-trash-empty{font-size:13px;color:var(--app-text-muted)}.plot-board.character-board.character-board-v2 .character-trash-list{display:grid;gap:10px}.plot-board.character-board.character-board-v2 .character-trash-list article{border:1px solid var(--app-border);border-radius:12px;background:var(--app-bg-3-small);padding:11px 12px;display:flex;align-items:center;justify-content:space-between;gap:12px}.plot-board.character-board.character-board-v2 .character-trash-list article>div{display:grid;gap:4px}.plot-board.character-board.character-board-v2 .character-trash-list article strong{font-size:13px;color:var(--app-text-primary)}.plot-board.character-board.character-board-v2 .character-trash-list article small{font-size:11px;color:var(--app-text-muted)}.plot-board.character-board.character-board-v2 .character-trash-list article>span{display:inline-flex;align-items:center;gap:8px}.plot-board.character-board.character-board-v2 .character-trash-list article>span button{height:30px;border-radius:9px;border:1px solid var(--app-border);background:var(--app-bg-1-main);color:var(--app-text-secondary);display:inline-flex;align-items:center;gap:5px;padding:0 10px;cursor:pointer}.plot-board.character-board.character-board-v2 .character-trash-list article>span button em{font-style:normal;font-size:12px;font-weight:600}.plot-board.character-board.character-board-v2 .character-trash-list article>span button:hover,.plot-board.character-board.character-board-v2 .character-trash-list article>span button:focus-visible{background:var(--app-bg-3-small);border-color:var(--app-focus-ring)}.plot-board.character-board.character-board-v2 .character-trash-list article>span button.danger{border-color:color-mix(in srgb,var(--app-danger) 42%,transparent);color:var(--app-danger);background:var(--app-danger-bg)}.plot-board.character-board.character-board-v2 .character-board-panel.enter{transform:translate(20px);opacity:0}.plot-board.character-board.character-board-v2 .character-board-panel.idle{transform:translate(0);opacity:1}.plot-board.character-board.character-board-v2 .character-board-panel.exit{transform:translate(20px);opacity:0;pointer-events:none}.plot-board.character-board.character-board-v2 .character-board-selected-column{transition:none}.plot-board.character-board.character-board-v2 .character-board-selected-column.enter,.plot-board.character-board.character-board-v2 .character-board-selected-column.idle,.plot-board.character-board.character-board-v2 .character-board-selected-column.exit{transform:none}.character-map-link-btn{display:inline-flex;align-items:center;gap:6px;padding:0 10px;width:auto}.character-map-canvas-scroll{flex:1 1 auto;min-width:0;min-height:0;overflow:auto;background:var(--app-bg-1-main);border-top:0;cursor:grab;overscroll-behavior:contain}.character-map-canvas-scroll.panning{cursor:grabbing}.character-map-canvas-scale{position:relative;transform-origin:top left}.character-map-canvas{position:relative;width:100%;height:100%;background:radial-gradient(circle,color-mix(in srgb,var(--app-text-muted) 26%,transparent) 1.2px,transparent 1.25px) 0 0 / 24px 24px,var(--app-bg-1-main)}.character-map-canvas.dots-hidden{background:var(--app-bg-1-main)}.character-map-edges{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:1}.character-map-edge-hitbox{stroke:transparent;stroke-width:32;fill:none;pointer-events:stroke;cursor:pointer}.character-map-edge-path{stroke:color-mix(in srgb,var(--app-text-muted) 62%,transparent);stroke-width:1.7;fill:none;pointer-events:none}.character-map-edge-path.dashed{stroke-dasharray:5 5}.character-map-edge-path.selected{stroke:var(--app-text-primary);stroke-width:2.2}.character-map-link-handle{fill:var(--app-bg-3-small);stroke:color-mix(in srgb,var(--app-text-muted) 80%,transparent);stroke-width:1.5;pointer-events:all;cursor:grab;opacity:.92;transition:fill .12s ease,stroke .12s ease}.character-map-link-handle.selected,.character-map-link-handle:hover{fill:var(--app-bg-3-small);stroke:var(--app-text-primary)}.character-map-link-label-wrap{overflow:visible;pointer-events:all}.character-map-node{position:absolute;width:238px;min-height:122px;border:1px solid var(--app-border);border-top-width:3px;border-radius:14px;background:var(--app-bg-3-small);padding:12px 14px;box-shadow:0 1px 4px var(--app-hover);cursor:grab;z-index:2;display:flex;flex-direction:column;align-items:center;text-align:center}.character-map-node-head{display:grid;justify-items:center;gap:8px;margin-bottom:8px}.character-map-node-head .character-board-avatar{width:52px;height:52px}.character-map-node.active{box-shadow:0 0 0 2px var(--app-focus-ring),0 12px 24px var(--app-border)}.character-map-node h5{margin:0;font-size:18px;font-weight:700;color:var(--app-text-primary);line-height:1.2;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-align:center;width:100%;white-space:nowrap;overflow:hidden}.character-map-node h5 i{width:10px;height:10px;border-radius:999px;flex-shrink:0}.character-map-node h5 span{min-width:0;max-width:calc(100% - 18px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.character-map-node p{margin:0;font-size:14px;line-height:1.45;color:var(--app-text-secondary);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;width:100%;text-align:center}.character-map-node-tags{margin-top:10px;display:flex;flex-wrap:wrap;gap:6px;justify-content:center;width:100%}.character-map-node-tags span{height:22px;border-radius:999px;border:1px solid var(--app-border-soft);background:var(--app-bg-3-small);color:var(--app-text-secondary);padding:0 9px;font-size:11px;font-weight:600;display:inline-flex;align-items:center;white-space:nowrap;max-width:110px;overflow:hidden;text-overflow:ellipsis}.character-link-modal.relationship-modal{width:min(680px,calc(100vw - 72px));border-radius:26px}.character-link-modal.relationship-modal .relationship-modal-header{height:78px;padding:0 28px;border-bottom:1px solid var(--app-border-soft)}.character-link-modal.relationship-modal .relationship-modal-header h4{display:inline-flex;align-items:center;gap:14px;font-size:17px;line-height:1;letter-spacing:-.02em}.character-link-modal.relationship-modal .relationship-modal-header .edit-title{font-size:15px;text-transform:uppercase;letter-spacing:.02em;color:var(--app-text-muted)}.relationship-header-icon{width:42px;height:42px;border-radius:14px;background:var(--app-bg-3-small);color:var(--app-bg-4-extra);display:grid;place-items:center;flex-shrink:0}.character-link-modal.relationship-modal .relationship-modal-body{padding:26px 40px 24px;gap:22px}.character-link-modal.relationship-modal .relationship-modal-body>label{display:grid;gap:10px}.character-link-modal.relationship-modal .relationship-modal-body>label>span{font-size:14px;line-height:1;font-weight:700;color:var(--app-text-muted)}.character-link-modal.relationship-modal .character-link-modal-pair{display:grid;grid-template-columns:minmax(0,1fr) 44px minmax(0,1fr);align-items:end;gap:16px}.character-link-modal.relationship-modal .character-link-modal-pair label{display:grid;gap:10px;margin:0}.character-link-modal.relationship-modal .character-link-modal-pair label>span{font-size:14px;line-height:1;font-weight:700;color:var(--app-text-muted)}.relationship-pair-arrow{height:50px;display:grid;place-items:center;color:var(--app-text-muted)}.character-link-modal.relationship-modal .relationship-style-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.character-link-modal.relationship-modal .relationship-style-options button{height:60px;border-radius:20px;border:1px solid var(--app-border);background:var(--app-bg-3-small);display:inline-flex;align-items:center;justify-content:center;gap:14px;color:var(--app-text-secondary);font-size:16px;line-height:1;font-weight:700}.character-link-modal.relationship-modal .relationship-style-options button i{width:56px;border-top:4px solid currentColor;display:inline-block;opacity:.94}.character-link-modal.relationship-modal .relationship-style-options button i.dashed{border-top-style:dashed}.character-link-modal.relationship-modal .relationship-style-options button.active{border-color:var(--app-bg-4-extra);color:var(--app-bg-4-extra);box-shadow:inset 0 0 0 1px var(--app-bg-4-extra)}.relationship-edit-summary{height:74px;border-bottom:1px solid var(--app-border-soft);padding:0 40px;display:flex;align-items:center;gap:14px}.relationship-edit-summary span{min-width:0;display:inline-flex;align-items:center;gap:12px}.relationship-edit-summary i{width:12px;height:12px;border-radius:999px;flex-shrink:0}.relationship-edit-summary strong{font-size:15px;line-height:1;color:var(--app-text-secondary);font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.relationship-edit-summary em{font-style:normal;font-size:20px;line-height:1;color:var(--app-text-muted);flex-shrink:0}.character-link-modal.relationship-modal .character-link-modal-actions{border-top:1px solid var(--app-border-soft);padding:20px 40px 24px;display:flex;align-items:center;justify-content:flex-end;gap:14px}.character-link-modal.relationship-modal .character-link-modal-cancel,.character-link-modal.relationship-modal .character-link-modal-actions .plot-new-chapter-btn,.character-link-modal.relationship-modal .character-link-modal-actions .danger{height:52px;padding:0 30px;border-radius:20px;font-size:16px;line-height:1;font-weight:700}.character-link-modal.relationship-modal .character-link-modal-cancel{border:1px solid var(--app-border);background:var(--app-bg-3-small);color:var(--app-text-secondary)}.character-link-modal.relationship-modal .character-link-modal-cancel:hover,.character-link-modal.relationship-modal .character-link-modal-cancel:focus-visible{background:var(--app-bg-3-small);border-color:var(--app-focus-ring);color:var(--app-text-primary)}.character-link-modal.relationship-modal .character-link-modal-actions .plot-new-chapter-btn{min-width:188px}.character-link-modal.relationship-modal .character-link-modal-actions .danger{margin-right:auto;border:0;background:transparent;color:var(--app-danger);padding-left:0;display:inline-flex;align-items:center;gap:8px}.character-link-modal.relationship-modal .character-link-modal-actions .danger:hover,.character-link-modal.relationship-modal .character-link-modal-actions .danger:focus-visible{color:var(--app-danger)}.character-map-link-label{width:100%;height:100%;border-radius:999px;border:1px solid var(--app-border);background:color-mix(in srgb,var(--app-bg-1-main) 98%,transparent);color:var(--app-text-primary);font-size:12px;font-weight:700;line-height:1.2;text-align:center;display:inline-flex;align-items:center;justify-content:center;padding:0 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:grab;-webkit-user-select:none;user-select:none}.character-map-link-label.selected{border-color:var(--app-focus-ring);color:var(--app-text-primary)}.dashboard-page,.settings-page,.editor-page,.plot-board-head,.plot-board-scroll,.plot-board-footer,.dashboard-sidebar,.dashboard-main,.settings-main{background:var(--app-surface-page);color:var(--app-text-primary)}.editor-main{background:var(--app-bg-1-main);color:var(--app-text-primary)}.editor-sidebar,.editor-timeline{background:var(--app-bg-2-sub);color:var(--app-text-primary)}.dashboard-main{background:transparent}.editor-page.editor-elevated-layout .editor-sidebar,.editor-page.editor-elevated-layout .editor-main,.editor-page.editor-elevated-layout .editor-timeline{border:0!important}.editor-page.editor-elevated-layout,.dashboard-page,.settings-page{background:var(--app-bg-2-sub)!important}.dashboard-main{width:auto!important;max-width:none!important;margin:0!important;height:var(--app-viewport-h)!important;padding:24px 32px 140px!important;border:0!important;border-radius:20px;background:var(--app-bg-1-main)!important;box-shadow:none!important;overflow:auto}.settings-main{width:calc(100vw - 272px)!important;max-width:none!important;margin:0!important;height:var(--app-viewport-h)!important;padding:24px 32px 92px!important;border:0!important;border-radius:20px 0 0 20px;background:var(--app-bg-1-main)!important;box-shadow:none!important;overflow:auto}.settings-main>*{max-width:980px;margin-left:auto;margin-right:auto}.dashboard-sidebar{border-right-color:transparent!important}.settings-page .dashboard-sidebar{background:var(--app-bg-2-sub)!important;border-right-color:transparent!important}.dashboard-main>*{max-width:960px;margin-left:auto;margin-right:auto}.editor-page.editor-elevated-layout .editor-main{margin:0;height:var(--app-viewport-h);border:0;border-radius:20px;background:var(--app-bg-1-main);box-shadow:none;overflow:hidden;transition:margin var(--editor-panel-motion-duration, .26s) var(--editor-panel-motion-ease, cubic-bezier(.22, 1, .36, 1)),border-radius var(--editor-panel-motion-duration, .26s) var(--editor-panel-motion-ease, cubic-bezier(.22, 1, .36, 1)),border-color .16s ease}.editor-page.editor-elevated-layout.editor-desktop-left-collapsed .editor-main{margin-left:0;border-top-left-radius:0;border-bottom-left-radius:0;border-left-color:transparent}.editor-page.editor-elevated-layout.editor-desktop-right-collapsed .editor-main{margin-right:0;border-top-right-radius:0;border-bottom-right-radius:0;border-right-color:transparent}.editor-page.editor-elevated-layout.editor-desktop-fullbleed .editor-main{margin:0;border-radius:0;border-color:transparent}.editor-page.editor-elevated-layout .editor-sidebar-brand,.editor-page.editor-elevated-layout .editor-project-search,.editor-page.editor-elevated-layout .editor-project-row,.editor-page.editor-elevated-layout .editor-quick-links,.editor-page.editor-elevated-layout .workspace-tree-head,.editor-page.editor-elevated-layout .editor-sidebar-user,.editor-page.editor-elevated-layout .editor-breadcrumb,.editor-page.editor-elevated-layout .editor-status,.editor-page.editor-elevated-layout .editor-tab-strip,.editor-page.editor-elevated-layout .editor-pane-tab-strip,.editor-page.editor-elevated-layout .editor-timeline header,.editor-page.editor-elevated-layout .timeline-characters-head,.editor-page.editor-elevated-layout .editor-timeline-footer{border-color:transparent!important}.editor-page.editor-elevated-layout .editor-pane+.editor-pane,.editor-page.editor-elevated-layout .editor-pane-host.layout-top-row .pane-secondary,.editor-page.editor-elevated-layout .editor-pane-host.layout-top-row .pane-tertiary,.editor-page.editor-elevated-layout .editor-pane-host.layout-bottom-row .pane-primary,.editor-page.editor-elevated-layout .editor-pane-host.layout-bottom-row .pane-secondary,.editor-page.editor-elevated-layout .editor-pane-host.layout-left-col .pane-secondary,.editor-page.editor-elevated-layout .editor-pane-host.layout-left-col .pane-tertiary,.editor-page.editor-elevated-layout .editor-pane-host.layout-right-col .pane-secondary,.editor-page.editor-elevated-layout .editor-pane-host.layout-left-triple .pane-secondary,.editor-page.editor-elevated-layout .editor-pane-host.layout-left-triple .pane-tertiary,.editor-page.editor-elevated-layout .editor-pane-host.layout-right-triple .pane-primary,.editor-page.editor-elevated-layout .editor-pane-host.layout-right-triple .pane-secondary,.editor-page.editor-elevated-layout .editor-pane-host.layout-top-triple .pane-secondary,.editor-page.editor-elevated-layout .editor-pane-host.layout-top-triple .pane-tertiary,.editor-page.editor-elevated-layout .editor-pane-host.layout-bottom-triple .pane-primary,.editor-page.editor-elevated-layout .editor-pane-host.layout-bottom-triple .pane-secondary{border:0!important}.editor-page.editor-elevated-layout .editor-pane-host.dynamic-grid{margin:0;border-radius:0;overflow:hidden;background:transparent;box-shadow:none}.editor-page.editor-elevated-layout .editor-pane-host.dynamic-grid .editor-pane.dynamic-pane{border-radius:0}.editor-page.editor-elevated-layout .editor-workspace-divider-toggle,.editor-page.editor-elevated-layout .editor-timeline-divider-toggle,.editor-page.editor-elevated-layout .editor-timeline-top-toggle{width:30px;height:30px;border-radius:8px;border:0!important;background:transparent!important;box-shadow:none;outline:none}.editor-page.editor-elevated-layout .editor-workspace-divider-toggle:hover,.editor-page.editor-elevated-layout .editor-workspace-divider-toggle:focus-visible,.editor-page.editor-elevated-layout .editor-timeline-divider-toggle:hover,.editor-page.editor-elevated-layout .editor-timeline-divider-toggle:focus-visible,.editor-page.editor-elevated-layout .editor-timeline-top-toggle:hover,.editor-page.editor-elevated-layout .editor-timeline-top-toggle:focus-visible{border:0!important;background:var(--app-bg-3-small)!important;box-shadow:none!important;outline:none!important}.editor-page.editor-elevated-layout .editor-workspace-divider-toggle{left:120px!important;top:27px;transform:translate(-50%,-50%);color:var(--app-text-secondary)!important}.editor-page.editor-elevated-layout .editor-timeline-divider-toggle{right:calc(var(--editor-right-w) - 15px)}.editor-page.editor-elevated-layout .editor-timeline-top-toggle{right:16px;top:27px;transform:translateY(-50%);color:var(--app-text-secondary)!important}.editor-page.editor-elevated-layout .editor-workspace-divider-toggle.collapsed{left:120px!important;border-radius:8px;color:var(--app-text-secondary)!important}.editor-page.editor-elevated-layout .editor-workspace-divider-toggle.collapsed:hover,.editor-page.editor-elevated-layout .editor-workspace-divider-toggle.collapsed:focus-visible{color:var(--app-text-secondary)!important}.editor-page.editor-elevated-layout .editor-workspace-quick-create{position:absolute;left:154px;top:27px;transform:translate(-50%,-50%);width:30px;height:30px;border:0;border-radius:8px;background:transparent;color:var(--app-text-secondary);display:inline-flex;align-items:center;justify-content:center;z-index:32;cursor:pointer}.editor-page.editor-elevated-layout .editor-workspace-quick-create:hover,.editor-page.editor-elevated-layout .editor-workspace-quick-create:focus-visible{background:var(--app-bg-3-small);color:var(--app-text-primary);outline:none}.editor-page.editor-elevated-layout.editor-left-collapsed .editor-breadcrumb,.editor-page.editor-elevated-layout.editor-left-collapsed .plot-board-head,.editor-page.editor-elevated-layout.editor-left-collapsed .novel-overview-topbar{padding-left:190px!important}.editor-page.editor-elevated-layout.editor-right-collapsed .editor-breadcrumb,.editor-page.editor-elevated-layout.editor-desktop-right-collapsed .editor-breadcrumb{padding-right:56px!important}.editor-page.editor-elevated-layout .plot-board-head,.editor-page.editor-elevated-layout .novel-overview-topbar{transition:padding-left var(--editor-panel-motion-duration, .26s) var(--editor-panel-motion-ease, cubic-bezier(.22, 1, .36, 1))}.editor-page.editor-elevated-layout .editor-web-collapsed-brand{position:absolute;left:20px;top:27px;transform:translateY(-50%);height:32px;border:0;background:transparent;color:var(--app-text-primary);display:inline-flex;align-items:center;gap:8px;padding:0;z-index:32;cursor:pointer}.editor-page.editor-elevated-layout .editor-web-collapsed-brand img{width:18px;height:18px;display:block}.editor-page.editor-elevated-layout .editor-web-collapsed-brand strong{font-size:16px;line-height:1;font-weight:700}.editor-page.editor-elevated-layout .editor-sidebar-desktop .editor-sidebar-brand{height:54px!important;min-height:54px!important}.editor-page.editor-elevated-layout .editor-toolbar-floating-shell{position:absolute;z-index:31;display:inline-flex;align-items:center;gap:8px;pointer-events:auto}.editor-page.editor-elevated-layout .editor-toolbar-floating-shell.pinned{position:relative;z-index:30;align-self:flex-start;margin:8px 0 0}:root[data-runtime=desktop][data-desktop-os=macos] .editor-page.editor-desktop-left-collapsed .editor-toolbar-floating-shell.pinned .editor-toolbar{padding-left:0}.editor-page.editor-elevated-layout .editor-toolbar-drag-handle{width:22px;height:34px;border:1px solid var(--app-border);border-radius:10px;background:var(--app-bg-1-main);color:var(--app-text-secondary);display:inline-flex;align-items:center;justify-content:center;box-shadow:none;cursor:grab}.editor-page.editor-elevated-layout .editor-toolbar-drag-handle:active{cursor:grabbing}.editor-page.editor-elevated-layout .editor-toolbar{width:max-content;height:34px;border:1px solid var(--app-border);border-radius:12px;background:var(--app-bg-1-main);box-shadow:none;padding:0 10px}.editor-page.editor-elevated-layout .editor-toolbar-floating-shell.pinned .editor-toolbar{border:0;border-radius:0;background:var(--app-bg-1-main)!important}.editor-page.editor-elevated-layout .editor-toolbar-floating-shell.pinned,.editor-page.editor-elevated-layout .editor-main .editor-tab-strip,.editor-page.editor-elevated-layout .editor-main .editor-pane-tab-strip,.editor-page.editor-elevated-layout .editor-main .editor-tab.active{background:var(--app-bg-1-main)!important}.editor-page.editor-elevated-layout .editor-breadcrumb,.plot-board-head,.novel-overview-topbar{height:54px!important;min-height:54px!important;background:var(--app-bg-1-main)}.editor-sidebar-brand,.editor-timeline>header{height:54px!important;min-height:54px!important}.editor-page.editor-elevated-layout .editor-timeline.editor-timeline-desktop>header{margin-top:54px}.editor-page.editor-elevated-layout .editor-pane-host.dynamic-grid,.editor-page.editor-elevated-layout .editor-main{box-shadow:none}@media (max-width: 1500px){.plot-board.character-board.character-board-v2 .character-board-list-grid.grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 960px){.plot-board.character-board.character-board-v2 .character-board-body,.plot-board.character-board.character-board-v2 .character-board-body.selection-open{grid-template-columns:1fr}.plot-board.character-board.character-board-v2 .character-board-selected-column{border-right:0;border-bottom:1px solid var(--app-border-soft)}.plot-board.character-board.character-board-v2 .character-board-list-grid.grid{grid-template-columns:1fr}}.promo-page{min-height:100vh;background:linear-gradient(180deg,var(--app-bg-1-main) 0%,var(--app-bg-2-sub) 45%,var(--app-bg-3-small) 100%);color:var(--app-text-primary)}.promo-nav{position:fixed;top:0;left:0;right:0;z-index:40;transition:background-color .15s ease,box-shadow .15s ease}.promo-nav.scrolled{background:color-mix(in srgb,var(--app-bg-1-main) 84%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 8px 26px var(--app-border-soft)}.promo-nav-inner{max-width:1160px;height:64px;margin:0 auto;padding:0 24px;display:flex;align-items:center;justify-content:space-between}.promo-brand{border:0;background:transparent;padding:0;display:inline-flex;align-items:center;gap:10px;cursor:pointer}.promo-brand img{width:30px;height:30px}.promo-brand strong{font-family:var(--app-ui-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:22px;font-weight:700;color:var(--app-text-primary)}.promo-nav nav{display:inline-flex;align-items:center;gap:14px}.promo-nav nav a{color:var(--app-text-secondary);text-decoration:none;font-size:14px;font-weight:500}.promo-page .solid,.promo-page .ghost{height:38px;border-radius:10px;padding:0 16px;font-size:14px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer}.promo-page .solid{border:1px solid var(--app-text-primary);background:var(--app-text-primary);color:var(--app-bg-1-main)}.promo-page .ghost{border:1px solid var(--app-border);background:transparent;color:var(--app-text-primary)}.promo-hero{padding:128px 24px 84px}.promo-hero-inner{max-width:1160px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}.promo-hero-copy h1{margin:0 0 18px;font-family:var(--app-ui-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:clamp(38px,5.6vw,62px);line-height:1.1}.promo-hero-copy p{margin:0;max-width:560px;color:var(--app-text-secondary);font-size:18px;line-height:1.7}.promo-hero-cta{margin-top:30px;display:flex;flex-wrap:wrap;gap:12px}.promo-editor-card{border:1px solid var(--app-border-soft);border-radius:16px;background:var(--app-bg-1-main);padding:26px;box-shadow:0 12px 32px var(--app-border-soft)}.promo-editor-card h3{margin:0 0 12px;font-family:var(--app-ui-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:30px}.promo-editor-card p{margin:0 0 12px;color:var(--app-text-secondary);line-height:1.8}.promo-features{max-width:1160px;margin:0 auto;padding:30px 24px 84px;display:grid;gap:60px}.promo-feature{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center}.promo-feature.reverse>:first-child{order:2}.promo-feature.reverse>:last-child{order:1}.promo-feature span{font-size:12px;font-weight:700;letter-spacing:.12em;color:var(--app-text-muted);text-transform:uppercase}.promo-feature h2{margin:10px 0 12px;font-family:var(--app-ui-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:clamp(28px,3.4vw,40px);line-height:1.2}.promo-feature p{margin:0;color:var(--app-text-secondary);font-size:17px;line-height:1.7}.promo-feature-card{min-height:200px;border:1px solid var(--app-border-soft);border-radius:14px;background:color-mix(in srgb,var(--app-bg-1-main) 85%,transparent);display:grid;place-content:center;justify-items:center;gap:10px}.promo-feature-card img{width:34px;height:34px}.promo-feature-card strong{font-size:22px;font-family:var(--app-ui-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}.promo-bottom-cta{max-width:1160px;margin:0 auto;padding:18px 24px 92px;text-align:center}.promo-bottom-cta h2{margin:0 0 8px;font-family:var(--app-ui-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:clamp(30px,3.8vw,48px)}.promo-bottom-cta p{margin:0;color:var(--app-text-secondary);font-size:18px}.promo-bottom-cta div{margin-top:24px;display:inline-flex;gap:12px}.promo-footer{border-top:1px solid var(--app-border-soft);height:74px;display:inline-flex;width:100%;align-items:center;justify-content:center;gap:10px;color:var(--app-text-secondary)}.promo-footer img{width:24px;height:24px}@media (max-width: 900px){.promo-nav nav a{display:none}.promo-hero-inner,.promo-feature{grid-template-columns:1fr}.promo-feature.reverse>:first-child,.promo-feature.reverse>:last-child{order:initial}}:root{--desktop-titlebar-drag-h: 0px;--desktop-traffic-left: 0px}:root[data-runtime=desktop]{--desktop-titlebar-drag-h: 12px}:root[data-runtime=desktop][data-desktop-os=macos]{--desktop-traffic-left: 74px}:root[data-runtime=desktop] .desktop-titlebar-header{padding-top:var(--desktop-titlebar-drag-h)}:root[data-runtime=desktop] .desktop-titlebar-drag-region{position:absolute;top:0;left:0;right:0;height:var(--desktop-titlebar-drag-h);z-index:1}:root[data-runtime=desktop] .desktop-titlebar-nav{position:relative;z-index:2;padding-left:calc(1.5rem + var(--desktop-traffic-left))}@media (min-width: 1024px){:root[data-runtime=desktop] .desktop-titlebar-nav{padding-left:calc(2rem + var(--desktop-traffic-left))}}:root[data-runtime=desktop] .desktop-no-drag{pointer-events:auto}:root[data-runtime=desktop] .desktop-global-drag-strip{position:fixed;top:0;left:0;right:0;height:max(16px,var(--desktop-titlebar-drag-h));z-index:60}:root[data-runtime=desktop] :is(.topbar,.sidebar-brand,.editor-sidebar-brand,.editor-breadcrumb,.editor-toolbar,.plot-board-head,.novel-overview-topbar){-webkit-app-region:drag;app-region:drag}:root[data-runtime=desktop] :is(.topbar,.sidebar-brand,.editor-sidebar-brand,.editor-breadcrumb,.editor-toolbar,.plot-board-head,.novel-overview-topbar) :is(button,a,input,textarea,select,summary,label,[role=button],[role=tab],[contenteditable=true],.desktop-no-drag){-webkit-app-region:no-drag;app-region:no-drag}
