:root{--ink-950:#171a19;--ink-700:#4c5350;--ink-500:#737d78;--ink-300:#cbd0cd;--ink-150:#e6e9e7;--paper-0:#fdfefd;--paper-50:#fafbfa;--paper-100:#f3f5f4;--accent-700:#086b58;--accent-600:#0b8069;--accent-100:#e4f1ed;--font-ui:ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--font-code:"SFMono-Regular", Consolas, "Liberation Mono", monospace;--text-xs:12px;--text-sm:13px;--text-md:15px;--text-xl:24px;--text-display:clamp(34px, 3vw, 48px);--radius-sm:6px;--radius-md:8px;--duration-fast:.14s;--duration-base:.22s;--ease-out:cubic-bezier(.2, .8, .2, 1);--surface-app:var(--paper-100);--surface-panel:var(--paper-50);--surface-editor:var(--paper-0);--surface-selected:var(--accent-100);--text-primary:var(--ink-950);--text-secondary:var(--ink-700);--text-muted:var(--ink-500);--line-subtle:var(--ink-150);--action-primary:var(--accent-700);--action-hover:var(--accent-600);--focus-ring:color-mix(in srgb, var(--accent-600) 32%, transparent)}@media (prefers-color-scheme:dark){:root{--ink-950:#ecefed;--ink-700:#bdc5c1;--ink-500:#919b96;--ink-300:#59615d;--ink-150:#303633;--paper-0:#171a19;--paper-50:#1b1f1d;--paper-100:#222724;--accent-700:#64c7ad;--accent-600:#78d5bc;--accent-100:#213c34}}*{box-sizing:border-box}html,body{min-width:320px;height:100%;margin:0;overflow:hidden}body{font-family:var(--font-ui);color:var(--text-primary);background:var(--surface-app);font-size:var(--text-md)}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer;white-space:nowrap;background:0 0;border:0}button:disabled{cursor:wait;opacity:.65}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,[contenteditable]:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}button:active{transform:translateY(1px)}.sr-only{clip:rect(0,0,0,0);width:1px;height:1px;position:absolute;overflow:hidden}[hidden]{display:none!important}.app-shell{background:var(--surface-editor);grid-template-columns:68px 280px minmax(460px,1fr);height:100dvh;display:grid}.app-shell:has(.context-panel:not([hidden])){grid-template-columns:68px 280px minmax(460px,1fr) 336px}.app-shell.is-library-hidden{grid-template-columns:68px minmax(460px,1fr)}.app-shell.is-library-hidden:has(.context-panel:not([hidden])){grid-template-columns:68px minmax(460px,1fr) 336px}.rail{background:var(--surface-panel);border-right:1px solid var(--line-subtle);z-index:4;flex-direction:column;align-items:center;padding:18px 10px 14px;display:flex}.brand{width:42px;height:42px;padding:4px}.brand img{width:100%;height:100%;display:block}.rail-actions{gap:10px;margin-top:30px;display:grid}.rail-button{border-radius:var(--radius-md);width:42px;height:42px;color:var(--text-muted)}.rail-button:hover{background:var(--paper-100);color:var(--text-primary)}.rail-button.is-active{color:var(--paper-0);background:var(--action-primary)}.new-article-button{color:var(--paper-0);background:var(--action-primary);font-size:25px;line-height:1}.new-article-button:hover{color:var(--paper-0);background:var(--action-hover)}.avatar{width:34px;height:34px;color:var(--paper-0);background:var(--ink-700);border-radius:50%;margin-top:auto}.rail-account-form{margin-top:auto}.rail-account{border-radius:50%;padding:0;display:block}.rail-account .avatar{place-items:center;margin:0;display:grid}.library{background:var(--surface-panel);border-right:1px solid var(--line-subtle);min-width:0;padding:24px 14px;overflow-y:auto}.library-header{justify-content:space-between;align-items:center;height:40px;padding:0 10px;display:flex}.library-header h1{letter-spacing:-.02em;margin:0;font-size:17px}.icon-button{border-radius:var(--radius-sm);min-width:34px;height:34px;color:var(--text-secondary);font-size:var(--text-sm);padding:0 8px}.icon-button:hover{background:var(--paper-100)}.search-wrap{padding:10px 8px 2px;display:block}.search-wrap input{border-radius:var(--radius-sm);background:var(--paper-100);border:0;width:100%;height:36px;padding:0 11px}.article-group{margin-top:25px}.group-title{justify-content:space-between;padding:8px 10px;font-weight:650;display:flex}.group-title small{color:var(--text-muted);font-weight:500}.article-list{gap:2px;display:grid}.article-item{border-radius:var(--radius-sm);text-align:left;min-width:0;height:44px;color:var(--text-secondary);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:0 10px;display:grid}.article-item span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.article-item time{font-size:var(--text-xs);color:var(--text-muted)}.article-item:hover{background:var(--paper-100);color:var(--text-primary)}.article-item.is-selected{color:var(--text-primary);background:var(--surface-selected)}.workspace{background:var(--surface-editor);grid-template-rows:64px 48px minmax(0,1fr) 42px;min-width:0;min-height:0;display:grid}.topbar{border-bottom:1px solid var(--line-subtle);justify-content:space-between;align-items:center;gap:24px;padding:0 28px;display:flex}.document-meta{align-items:center;gap:14px;min-width:0;display:flex}.document-meta strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.save-status{font-size:var(--text-sm);color:var(--text-muted);flex:none;align-items:center;gap:6px;display:inline-flex}.save-status i{background:var(--action-primary);border-radius:50%;width:7px;height:7px}.save-status.is-saving i{animation:1s infinite pulse}.document-actions{align-items:center;gap:5px;display:flex}.quiet-button{border-radius:var(--radius-sm);height:36px;color:var(--text-secondary);padding:0 11px}.quiet-button:hover,.quiet-button.is-active{color:var(--text-primary);background:var(--paper-100)}.ai-trigger{color:var(--action-primary)}.publish-button{border-radius:var(--radius-sm);height:36px;color:var(--paper-0);background:var(--action-primary);margin-left:8px;padding:0 17px;font-weight:650}.publish-button:hover{background:var(--action-hover)}.modebar{border-bottom:1px solid var(--line-subtle);align-items:end;gap:28px;padding:0 30px;display:flex}.mode{height:100%;color:var(--text-muted);padding:0 1px;position:relative}.mode:hover{color:var(--text-primary)}.mode.is-active{color:var(--text-primary);font-weight:650}.mode.is-active:after{content:"";background:var(--action-primary);height:2px;position:absolute;bottom:-1px;left:0;right:0}.editor-area{min-width:0;min-height:0;overflow:hidden}.mode-pane{background:var(--surface-editor);width:100%;height:100%;padding:0;overflow:auto}.editor-content,.preview-content,.markdown-content{min-height:100%;margin:0 auto}.editor-content{padding:64px max(40px,50% - 380px) 88px;position:relative}.title-input{width:100%;font-size:var(--text-display);letter-spacing:-.045em;background:0 0;border:0;padding:0;font-weight:730}.format-toolbar{opacity:0;transition:opacity var(--duration-fast), transform var(--duration-fast);gap:3px;display:grid;position:absolute;top:122px;left:max(8px,50% - 425px);transform:translate(4px)}.editor-content:focus-within .format-toolbar{opacity:1;transform:translate(0)}.format-toolbar button{border-radius:var(--radius-sm);min-width:36px;height:30px;color:var(--text-muted);font-size:var(--text-xs);padding:0 6px}.format-toolbar button:hover{color:var(--text-primary);background:var(--paper-100)}.body-input{letter-spacing:.015em;caret-color:var(--action-primary);margin-top:38px;font-size:18px;line-height:2}.body-input p{margin:0 0 25px}.preview-content{padding:64px max(40px,50% - 310px) 88px}.preview-kicker{color:var(--action-primary);font-size:var(--text-xs);letter-spacing:.12em}.preview-content h1{font-size:var(--text-display);letter-spacing:-.04em;margin:20px 0 45px}.preview-content p,.preview-content blockquote{margin:0 0 24px;font-size:18px;line-height:2}.preview-content blockquote{border-left:2px solid var(--action-primary);color:var(--text-secondary);margin-top:45px;padding-left:20px}.app-shell[data-preview-theme=gray] .preview-pane{background:color-mix(in srgb, var(--surface-editor) 78%, var(--ink-300))}.app-shell[data-preview-theme=green] .preview-pane{background:color-mix(in srgb, var(--surface-editor) 88%, var(--accent-100))}.markdown-content{grid-template-rows:auto minmax(0,1fr);gap:12px;padding:24px;display:grid}.markdown-content label{color:var(--text-muted);font-size:var(--text-xs)}.markdown-content textarea{resize:none;border-radius:var(--radius-md);width:100%;min-height:100%;color:var(--text-secondary);background:var(--paper-100);font:14px/1.9 var(--font-code);border:0;padding:24px}.statusbar{border-top:1px solid var(--line-subtle);color:var(--text-muted);font-size:var(--text-xs);align-items:center;gap:25px;padding:0 30px;display:flex}.shortcut-hint{margin-left:auto}.context-panel{border-left:1px solid var(--line-subtle);background:var(--surface-panel);z-index:5;grid-template-rows:64px minmax(0,1fr);width:336px;min-height:0;display:grid}.context-panel header{justify-content:space-between;align-items:center;padding:0 22px;display:flex}.context-panel h2{margin:0;font-size:20px}.panel-content{padding:0 22px 30px;overflow-y:auto}.panel-section{border-top:1px solid var(--line-subtle);padding:22px 0}.panel-section:first-child{border-top:0}.section-heading{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.section-heading h3{margin:0;font-size:14px}.section-heading button{color:var(--text-muted);font-size:var(--text-xs)}.choice-list{gap:8px;display:grid}.choice{border-radius:var(--radius-md);background:var(--paper-0);text-align:left;white-space:normal;grid-template-columns:18px 1fr;align-items:start;gap:9px;width:100%;padding:12px;line-height:1.45;display:grid}.choice:hover{background:var(--paper-100)}.choice i{border:1px solid var(--ink-300);border-radius:50%;width:16px;height:16px;margin-top:2px}.choice.is-selected{color:var(--action-primary);background:var(--surface-selected)}.choice.is-selected i{border:5px solid var(--action-primary)}.generated-text,.panel-note{border-radius:var(--radius-md);color:var(--text-secondary);background:var(--paper-100);padding:14px;line-height:1.75}.panel-note{font-size:var(--text-sm)}.panel-button{border-radius:var(--radius-sm);width:100%;height:40px;color:var(--paper-0);background:var(--action-primary);margin-top:12px;font-weight:650}.panel-button.secondary{color:var(--action-primary);background:var(--accent-100)}.theme-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.theme-swatch{border-radius:var(--radius-md);background:var(--paper-0);text-align:left;padding:9px}.theme-swatch.is-selected{outline:2px solid var(--action-primary);outline-offset:-2px}.theme-preview{border-radius:var(--radius-sm);background:var(--paper-0);height:86px;padding:12px}.theme-preview.gray{background:#e9ecea}.theme-preview.green{background:#e4efe8}.theme-preview:before,.theme-preview:after{content:"";opacity:.7;background:currentColor;width:62%;height:5px;margin-bottom:8px;display:block}.theme-preview:after{opacity:.24;width:88%;height:3px;box-shadow:0 7px,0 14px}.theme-swatch span{font-size:var(--text-sm);margin-top:8px;display:block}.version{border-bottom:1px solid var(--line-subtle);grid-template-columns:1fr auto;gap:4px 12px;padding:13px 0;display:grid}.version strong{font-size:var(--text-sm)}.version span,.version time{font-size:var(--text-xs);color:var(--text-muted)}.field-label{color:var(--text-secondary);font-size:var(--text-sm);margin-bottom:8px;font-weight:650;display:block}.translate-select{border-radius:var(--radius-sm);background:var(--paper-100);border:0;width:100%;height:40px;padding:0 12px}.toast{z-index:20;border-radius:var(--radius-sm);color:var(--paper-0);background:var(--ink-950);opacity:0;pointer-events:none;transition:opacity var(--duration-base) var(--ease-out), transform var(--duration-base) var(--ease-out);padding:10px 14px;position:fixed;bottom:54px;left:50%;transform:translate(-50%,8px)}.toast.is-visible{opacity:1;transform:translate(-50%)}@keyframes pulse{50%{opacity:.25}}.auth-page{background:var(--surface-app);min-height:100%;overflow:auto}.auth-page:before{content:"";pointer-events:none;background:radial-gradient(circle at 50% 18%, var(--surface-selected), transparent 42%);opacity:.72;position:fixed;inset:0}.auth-shell{place-items:center;min-height:100dvh;padding:40px 20px;display:grid;position:relative}.auth-card{border:1px solid var(--line-subtle);border-radius:calc(var(--radius-md) * 2);background:color-mix(in srgb, var(--surface-editor) 94%, transparent);width:min(100%,430px);box-shadow:0 24px 70px color-mix(in srgb, var(--ink-950) 9%, transparent);padding:36px}.auth-brand{color:var(--text-primary);letter-spacing:-.02em;align-items:center;gap:10px;font-weight:750;text-decoration:none;display:inline-flex}.auth-brand img{width:34px;height:34px;display:block}.auth-header{margin:34px 0 28px}.auth-header h1{letter-spacing:-.045em;margin:6px 0 10px;font-size:30px;line-height:1.2}.auth-header p{color:var(--text-muted);margin:0;line-height:1.65}.auth-header .auth-kicker{color:var(--action-primary);font-size:var(--text-xs);letter-spacing:.12em;font-weight:700}.auth-form{gap:18px;display:grid}.auth-field{gap:8px;display:grid}.auth-field label,.auth-label-row{color:var(--text-secondary);font-size:var(--text-sm);font-weight:650}.auth-label-row{justify-content:space-between;align-items:center;display:flex}.auth-label-row a,.auth-links a{color:var(--action-primary);text-decoration:none}.auth-label-row a:hover,.auth-links a:hover{text-underline-offset:3px;text-decoration:underline}.auth-field input{border:1px solid var(--line-subtle);border-radius:var(--radius-md);background:var(--surface-editor);width:100%;height:46px;transition:border-color var(--duration-fast), box-shadow var(--duration-fast);padding:0 13px}.auth-field input:hover{border-color:var(--ink-300)}.auth-field input:focus{border-color:var(--action-primary);box-shadow:0 0 0 3px var(--focus-ring);outline:0}.auth-field small{color:var(--text-muted);font-size:var(--text-xs)}.auth-check{width:fit-content;color:var(--text-secondary);font-size:var(--text-sm);cursor:pointer;align-items:center;gap:8px;display:flex}.auth-check input{width:16px;height:16px;accent-color:var(--action-primary)}.auth-submit{border-radius:var(--radius-md);height:46px;color:var(--paper-0);background:var(--action-primary);cursor:pointer;transition:background var(--duration-fast), transform var(--duration-fast);border:0;font-weight:700}.auth-submit:hover{background:var(--action-hover)}.auth-submit:active{transform:translateY(1px)}.auth-links{border-top:1px solid var(--line-subtle);color:var(--text-muted);font-size:var(--text-sm);flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:24px;padding-top:22px;display:flex}.auth-links form{margin:0}.auth-danger{color:#b42318;font-size:var(--text-sm);padding:0}.auth-note,.auth-errors{border-radius:var(--radius-md);font-size:var(--text-sm);margin:0;padding:12px 14px;line-height:1.55}.auth-note{color:var(--action-primary);background:var(--surface-selected)}.auth-errors{color:#912018;background:#fff0ee}.auth-errors ul{margin:7px 0 0;padding-left:18px}.flash{z-index:30;border:1px solid color-mix(in srgb, var(--action-primary) 24%, transparent);border-radius:var(--radius-md);max-width:min(92vw,560px);color:var(--action-primary);background:var(--surface-editor);box-shadow:0 10px 30px color-mix(in srgb, var(--ink-950) 10%, transparent);padding:11px 15px;position:fixed;top:18px;left:50%;transform:translate(-50%)}.flash-error{color:#912018;border-color:#f3b7b1}@media (width<=1100px){:is(.app-shell,.app-shell:has(.context-panel:not([hidden]))){grid-template-columns:60px 240px minmax(420px,1fr)}:is(.app-shell.is-library-hidden,.app-shell.is-library-hidden:has(.context-panel:not([hidden]))){grid-template-columns:60px minmax(420px,1fr)}.context-panel{box-shadow:-18px 0 40px color-mix(in srgb, var(--ink-950) 8%, transparent);position:fixed;top:0;bottom:0;right:0}.quiet-button:not(.ai-trigger){display:none}}@media (width<=760px){:is(.app-shell,.app-shell:has(.context-panel:not([hidden]))){grid-template-columns:54px minmax(0,1fr)}.library{display:none}.topbar{padding:0 16px}.document-meta strong{display:none}.editor-content,.preview-content{padding:44px 20px 72px}.markdown-content{padding:16px}.title-input{font-size:34px}.format-toolbar{display:none}.context-panel{width:min(92vw,336px)}.shortcut-hint{display:none}.auth-shell{padding:20px 14px}.auth-card{padding:28px 22px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
