:root{font-family:Noto Sans TC,PingFang TC,Microsoft JhengHei,system-ui,sans-serif;color:#2e2b33;background:#f5f3f0;font-synthesis:none;text-rendering:optimizeLegibility;--paper: #fffdfa;--canvas: #f5f3f0;--ink: #2e2b33;--muted: #77717d;--faint: #9b95a0;--accent: #725faf;--accent-dark: #5d4a96;--accent-soft: #eeeaf5;--border: #e2dde4;--line: #ebe6eb;--danger: #a24d52;--success: #507864}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input,textarea,select{font:inherit}button{color:inherit}button,select{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}input,textarea,select{color:var(--ink)}textarea{resize:vertical}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid #9b89ca;outline-offset:3px}::selection{background:#ddd3f0;color:#29242f}.plain-wordmark{color:var(--ink);font-size:21px;font-weight:600;letter-spacing:-.02em}.eyebrow{margin:0 0 7px;color:var(--accent);font-size:11px;line-height:1.4;font-weight:700;letter-spacing:.12em}.muted{color:var(--muted);line-height:1.8}.center{text-align:center}.small-label{color:var(--accent);font-size:12px;font-weight:600}.button{border:1px solid transparent;border-radius:6px;min-height:40px;padding:0 17px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:13px;font-weight:600;background:transparent;transition:background .16s ease,border-color .16s ease,color .16s ease}.button.primary{background:var(--accent);color:#fff}.button.primary:hover:not(:disabled){background:var(--accent-dark)}.button.secondary{border-color:var(--border);background:var(--paper)}.button.secondary:hover:not(:disabled),.button.quiet:hover:not(:disabled){background:#f0ecf3;border-color:#d5ccdc}.button.quiet{border-color:var(--border);color:#5f5965;background:transparent;font-weight:500}.button.compact{min-height:33px;padding:0 11px;font-size:12px;gap:5px}.button.full{width:100%;min-height:46px}.icon-button,.tool,.send-button{border:0;background:transparent;display:inline-grid;place-items:center;border-radius:5px}.icon-button{width:36px;height:36px;color:var(--muted)}.icon-button:hover{background:var(--accent-soft);color:var(--accent)}.text-button{border:0;background:transparent;padding:6px 4px;display:inline-flex;align-items:center;gap:5px;color:var(--muted);font-size:12px}.text-button:hover{color:var(--accent)}.auth-shell{min-height:100vh;display:grid;grid-template-columns:minmax(340px,1fr) minmax(440px,.92fr);background:var(--paper)}.auth-intro{position:relative;overflow:hidden;padding:clamp(36px,6vw,90px);background:#f5f3f0;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.auth-intro>:not(.line-field-canvas){position:relative;z-index:1}.line-field-canvas{position:absolute;z-index:0;left:50%;top:48%;width:min(88%,620px);height:min(75%,620px);transform:translate(-50%,-50%);opacity:.2;pointer-events:none}.auth-intro>.eyebrow{margin-bottom:13px}.auth-intro h1{max-width:500px;margin:0 0 18px;font-family:Songti SC,"Noto Serif TC",SimSun,serif;font-size:clamp(32px,3.2vw,48px);line-height:1.25;font-weight:500;letter-spacing:-.04em}.auth-intro>p:not(.eyebrow){max-width:470px;margin:0;color:#625c68;font-size:14px;line-height:1.9}.auth-note{margin-top:30px;padding-top:17px;border-top:1px solid #d9d2df;width:100%;max-width:470px;display:flex;align-items:center;gap:10px;color:var(--muted);font-size:12px}.auth-panel{padding:48px clamp(38px,7vw,110px);display:flex;flex-direction:column;justify-content:center}.auth-panel>*{width:100%;max-width:420px;margin-left:auto;margin-right:auto}.auth-form-heading{display:flex;align-items:center;gap:9px;color:var(--accent);font-size:13px;font-weight:600;margin-bottom:32px}.auth-panel h2{margin:0 0 10px;font-size:27px;font-weight:600;letter-spacing:-.02em}.auth-panel>.muted{margin-top:0;font-size:14px}.auth-form{display:flex;flex-direction:column;gap:13px;margin-top:30px}.auth-form label{color:#56505c;font-size:12px;font-weight:600;margin-top:5px}.auth-form input{width:100%;height:48px;padding:0 14px;border:1px solid #dcd6df;border-radius:5px;background:#fff;font-size:14px}.auth-form input.code-input{height:62px;text-align:center;font-size:28px;font-variant-numeric:tabular-nums;letter-spacing:.3em;padding-left:calc(14px + .3em)}.auth-form .button{margin-top:8px}.auth-form .muted{margin:0 0 8px;font-size:13px}.auth-footnote{color:var(--faint);font-size:11px;line-height:1.7;margin-top:24px}.form-error{color:var(--danger);font-size:12px;line-height:1.6;margin:0}.qr-wrap{align-self:center;padding:8px;border:1px solid var(--border);background:#fff}.qr-wrap img{display:block;width:190px;height:190px}.manual-secret{display:block;padding:9px 12px;background:#f4f1f5;color:#5c5364;text-align:center;word-break:break-all;-webkit-user-select:all;user-select:all}.loading-screen,.fatal-screen{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:30px;text-align:center}.loading-screen p,.fatal-screen p{color:var(--muted)}.fatal-screen h1{margin:0;font-size:26px}.app-shell{min-height:100vh}.app-header{height:64px;padding:0 24px;border-bottom:1px solid var(--border);background:#fffdfaf5;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:20}.brand{display:flex;align-items:center;gap:11px}.brand>div:last-child{display:flex;flex-direction:column;gap:1px}.brand strong{font-size:15px;font-weight:700}.brand span{color:var(--faint);font-size:10px;letter-spacing:.05em}.header-status{display:flex;align-items:center;gap:16px}.model-status{color:var(--muted);font-size:11px}.model-status:before{content:"";display:inline-block;width:6px;height:6px;margin-right:7px;border-radius:50%;background:var(--success);vertical-align:1px}.model-status.warning:before{background:#b58549}.workspace-grid{display:grid;grid-template-columns:178px minmax(510px,1fr) minmax(350px,410px);height:calc(100vh - 64px);max-width:1800px;margin:0 auto}.side-nav{padding:30px 16px;border-right:1px solid var(--border);display:flex;flex-direction:column}.nav-label{margin:0 12px 15px;color:var(--faint);font-size:10px;letter-spacing:.12em}.nav-item{width:100%;min-height:43px;padding:0 12px;display:flex;align-items:center;gap:11px;border:0;border-radius:5px;background:transparent;color:#69626e;font-size:13px;text-align:left}.nav-item:hover{background:#efebf1}.nav-item.active{color:var(--accent-dark);background:var(--accent-soft);font-weight:600}.nav-divider{height:1px;background:var(--line);margin:19px 12px}.nav-note{margin:auto 10px 0;padding-top:20px;border-top:1px solid var(--line);color:var(--faint)}.nav-note p{font-size:11px;line-height:1.8;margin:10px 0 0}.document-column{min-width:0;overflow-y:auto;padding:28px clamp(22px,3vw,48px) 50px}.document-topline{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:18px}.document-topline>div:first-child{flex:0 0 auto}.save-state{color:var(--faint);font-size:10px}.save-state.error{color:var(--danger)}.document-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.export-group{display:flex;gap:0}.export-group .button:first-child{border-radius:6px 0 0 6px}.export-group .button:last-child{border-radius:0 6px 6px 0;border-left:0;padding-left:8px;padding-right:8px}.paper{max-width:850px;margin:0 auto;background:var(--paper);border:1px solid #e7e1e5;box-shadow:0 8px 30px #30273409}.document-meta{padding:30px 40px 0;display:flex;align-items:center;gap:20px}.title-input{flex:1;min-width:0;border:0;background:transparent;font-size:25px;font-weight:600;letter-spacing:-.02em}.title-input:focus{outline:none}.grade-select{display:flex;align-items:center;gap:8px;color:var(--faint);font-size:11px;white-space:nowrap}.grade-select select{border:1px solid var(--border);border-radius:4px;background:transparent;padding:5px 8px;font-size:12px}.prompt-details{margin:17px 40px 0;border-bottom:1px solid var(--line);color:var(--muted);font-size:12px}.prompt-details summary{width:fit-content;cursor:pointer;padding:0 0 12px}.prompt-details textarea{width:100%;border:0;background:#f7f4f7;padding:12px;margin-bottom:14px;line-height:1.7;font-size:12px}.editor-shell{padding:0 40px}.editor-toolbar{height:49px;display:flex;align-items:center;gap:3px;border-bottom:1px solid var(--line)}.tool{width:30px;height:30px;color:var(--muted)}.tool:hover,.tool.active{background:var(--accent-soft);color:var(--accent)}.toolbar-separator{width:1px;height:16px;background:var(--border);margin:0 7px}.editor-hint{margin-left:auto;color:var(--faint);font-size:10px}.prose-editor{min-height:540px;padding:33px 0 50px;outline:none;font-size:16px;line-height:2.15;letter-spacing:.025em}.prose-editor p{margin:0 0 1.25em;text-indent:2em}.prose-editor h1,.prose-editor h2,.prose-editor h3{line-height:1.5;margin:1.2em 0 .7em}.prose-editor blockquote{border-left:2px solid #b7a9d2;padding-left:18px;margin-left:0;color:var(--muted)}.prose-editor ul,.prose-editor ol{padding-left:1.5em}.prose-editor ::selection{background:#ded3ef}.editor-loading{min-height:500px;display:grid;place-items:center;color:var(--faint);font-size:12px}.paper-footer{border-top:1px solid var(--line);padding:14px 40px;display:flex;justify-content:space-between;color:var(--faint);font-size:10px}.ai-column{min-width:0;border-left:1px solid var(--border);background:#faf8f7;overflow:hidden}.ai-panel{height:100%;display:flex;flex-direction:column}.panel-heading{padding:29px 25px 20px}.panel-heading h2{margin:0;font-size:18px;line-height:1.5;font-weight:600;letter-spacing:-.02em}.review-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.review-heading h2{font-size:16px}.stage-tabs{display:grid;grid-template-columns:repeat(4,1fr);margin:0 25px 14px;border-bottom:1px solid var(--border)}.stage-tab{border:0;border-bottom:2px solid transparent;background:transparent;padding:10px 2px 12px;color:var(--faint);font-size:11px}.stage-tab span{display:block;margin-bottom:3px;font-size:9px}.stage-tab.active{border-color:var(--accent);color:var(--accent-dark);font-weight:600}.conversation{flex:1;min-height:0;overflow-y:auto;padding:10px 25px 20px}.conversation-empty{margin:12px 0;padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.conversation-empty p{margin:9px 0 0;color:var(--muted);font-size:13px;line-height:1.9}.message{margin:20px 0}.message-meta{display:flex;align-items:center;gap:8px;margin-bottom:7px;color:#5d5663;font-size:11px;font-weight:600}.message-meta span{color:var(--faint);font-size:9px;font-weight:400}.message p{white-space:pre-wrap;margin:0;font-size:13px;line-height:1.9}.message.user{margin-left:24px;padding:12px 14px;background:#eeeaf2;border-radius:6px 6px 1px}.message.user .message-meta{color:var(--accent)}.message.assistant{padding-right:4px}.typing-cursor{display:inline-block;width:5px;height:15px;margin-left:3px;background:var(--accent);vertical-align:-2px;animation:blink 1s infinite}@keyframes blink{50%{opacity:.15}}.chat-composer{margin:0 22px;border:1px solid #dcd5df;border-radius:7px;background:var(--paper)}.chat-composer:focus-within{border-color:#aa99ca;box-shadow:0 0 0 2px #725faf12}.chat-composer textarea{width:100%;min-height:72px;max-height:170px;border:0;outline:0;background:transparent;padding:13px 14px 5px;font-size:12px;line-height:1.7;resize:none}.composer-bottom{display:flex;align-items:center;justify-content:space-between;padding:4px 8px 8px 13px}.composer-bottom>span{color:var(--faint);font-size:9px}.send-button{width:30px;height:30px;background:var(--accent);color:#fff}.next-stage{margin:12px 25px 20px;padding:9px 0 0;display:flex;justify-content:center;align-items:center;gap:3px;border:0;background:transparent;color:var(--accent);font-size:11px}.review-progress{margin:0 25px 15px;padding:13px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--muted);font-size:11px;line-height:1.7}.line-loader{display:block;height:2px;width:45%;background:var(--accent);margin-bottom:10px;animation:loading-line 1.5s ease-in-out infinite alternate}@keyframes loading-line{to{width:90%}}.review-empty{margin:0 25px;padding-top:15px;border-top:1px solid var(--line);color:var(--muted);font-size:13px;line-height:1.9}.review-empty ol{padding-left:20px;margin-top:22px;color:#625b68}.score-overview{margin:0 25px 18px;padding:16px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.score-overview>div{display:flex;flex-direction:column;gap:3px}.score-overview span{color:#5f5667;font-size:12px;font-weight:600}.score-overview small{color:var(--faint);font-size:9px}.score-overview strong{color:var(--accent-dark);font-size:30px;font-weight:500;font-variant-numeric:tabular-nums}.score-overview strong span{color:var(--faint);font-size:12px;font-weight:400}.review-tabs{display:grid;grid-template-columns:repeat(4,1fr);padding:0 20px;border-bottom:1px solid var(--border)}.review-tabs button{border:0;border-bottom:2px solid transparent;background:transparent;padding:9px 2px 11px;color:var(--faint);font-size:10px}.review-tabs button span{display:block;margin-bottom:3px;font-size:8px}.review-tabs button.active{color:var(--accent-dark);border-color:var(--accent);font-weight:600}.review-scroll{flex:1;min-height:0;overflow-y:auto;padding:0 25px 35px}.layer-description{color:var(--faint);font-size:10px;line-height:1.7;margin:16px 0}.suggestion{padding:20px 0;border-bottom:1px solid var(--line)}.suggestion.status-accepted{opacity:.72}.suggestion.status-rejected{opacity:.55}.suggestion.status-stale{background:#f5f1ed;margin:0 -10px;padding-left:10px;padding-right:10px}.suggestion-meta{display:flex;justify-content:space-between;gap:10px;margin-bottom:13px}.suggestion-meta span:first-child{color:#927239;font-size:10px;font-weight:600}.suggestion-meta span:last-child{color:var(--faint);font-size:9px}.sentence{display:grid;grid-template-columns:32px 1fr;gap:8px;margin:7px 0}.sentence small{color:var(--faint);font-size:9px;padding-top:4px}.sentence p{margin:0;font-size:12px;line-height:1.8}.sentence.before p{color:#8b6264;text-decoration:line-through;text-decoration-color:#caaeb0}.sentence.after{padding:8px 10px;background:#edf3ef}.sentence.after p{color:#426451}.explanation{margin:12px 0 0;color:var(--muted);font-size:11px;line-height:1.85}.confirmation-note{color:#8c6b3b;font-size:10px;line-height:1.7}.suggestion-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:9px;margin-top:12px}.suggestion-actions .text-button:first-child{margin-right:auto}.empty-state{padding:28px 0;color:var(--faint);font-size:12px;line-height:1.8;text-align:center}.report-summary{color:#56505c;font-size:13px;line-height:1.9;margin:22px 0}.score-rows{padding:17px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.score-row{display:grid;grid-template-columns:94px 1fr 48px;align-items:center;gap:10px;margin:10px 0}.score-row>span{color:var(--muted);font-size:10px}.score-row>div{height:3px;background:#e8e2e9}.score-row i{display:block;height:100%;background:#9d8abd}.score-row strong{font-size:11px;text-align:right;font-weight:500}.score-row small{color:var(--faint);font-size:8px;font-weight:400}.report-section{margin-top:24px}.report-section h3{margin:0 0 9px;font-size:12px;font-weight:600}.report-section ul,.report-section ol{margin:0;padding-left:19px;color:var(--muted);font-size:11px;line-height:1.9}.report-section li{margin-bottom:6px}.report-section p{color:var(--faint);font-size:11px}.drawer-backdrop{position:fixed;inset:0;z-index:50;background:#251f2840;display:flex;justify-content:flex-end}.versions-drawer{width:min(970px,94vw);height:100%;background:var(--paper);display:flex;flex-direction:column;box-shadow:-15px 0 50px #241e2814}.drawer-heading{height:82px;flex:0 0 auto;padding:0 26px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.drawer-heading h2{display:flex;align-items:center;gap:9px;margin:0;font-size:19px}.versions-body{flex:1;min-height:0;display:grid;grid-template-columns:275px 1fr}.version-list{overflow-y:auto;padding:15px;border-right:1px solid var(--border);background:#f8f5f6}.version-item{width:100%;display:block;padding:14px;border:0;border-bottom:1px solid var(--line);background:transparent;text-align:left}.version-item.active{background:var(--accent-soft)}.version-item strong{display:block;font-size:12px}.version-item>span{display:block;color:var(--faint);font-size:9px;margin:5px 0}.version-item p{margin:0;color:var(--muted);font-size:10px;line-height:1.6}.version-preview{min-width:0;overflow-y:auto;padding:26px 30px}.preview-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;padding-bottom:18px;border-bottom:1px solid var(--line)}.preview-heading>div{display:flex;flex-direction:column;gap:5px}.preview-heading strong{font-size:16px}.preview-heading span{color:var(--faint);font-size:10px}.diff-view{margin:24px 0;white-space:pre-wrap;font-size:14px;line-height:2}.diff-added{background:#e4f0e8;color:#315c42}.diff-removed{background:#f3e4e4;color:#895253;text-decoration:line-through}.diff-legend{color:var(--faint);font-size:10px}.removed-key,.added-key{display:inline-block;width:10px;height:10px;margin:0 5px 0 12px}.removed-key{background:#f3e4e4}.added-key{background:#e4f0e8}.toast{position:fixed;z-index:80;bottom:24px;left:50%;transform:translate(-50%);max-width:min(520px,calc(100vw - 30px));padding:11px 18px;border-radius:5px;background:#302b34;color:#fff;box-shadow:0 8px 25px #1e19212e;font-size:12px;line-height:1.6}@media(max-width:1250px){.workspace-grid{grid-template-columns:70px minmax(470px,1fr) minmax(330px,370px)}.side-nav{padding:28px 10px;align-items:center}.nav-label,.nav-item span,.nav-note{display:none}.nav-item{justify-content:center;padding:0}.nav-divider{width:30px;margin:15px 0}.document-column{padding-left:24px;padding-right:24px}.document-topline{align-items:flex-start}.document-actions{max-width:300px}}@media(max-width:980px){.workspace-grid{height:auto;min-height:calc(100vh - 64px);grid-template-columns:64px minmax(0,1fr)}.side-nav{grid-row:1;grid-column:1}.document-column{grid-row:1;grid-column:2;overflow:visible}.ai-column{grid-row:2;grid-column:1 / -1;border-left:0;border-top:1px solid var(--border);min-height:650px}.ai-panel{min-height:650px}.conversation,.review-scroll{max-height:540px}.document-topline{flex-direction:column}.document-actions{max-width:none;justify-content:flex-start}}@media(max-width:700px){.app-header{height:58px;padding:0 15px}.model-status{display:none}.workspace-grid{display:block;min-height:calc(100vh - 58px)}.side-nav{height:55px;padding:0 12px;border-right:0;border-bottom:1px solid var(--border);flex-direction:row;justify-content:flex-start;gap:5px}.nav-item{width:40px;min-height:40px}.nav-divider{width:1px;height:24px;margin:8px 4px}.document-column{padding:20px 12px 30px}.document-topline{margin:0 5px 15px}.document-actions{gap:5px}.document-actions .button{padding:0 8px}.paper{border-left:0;border-right:0}.document-meta{padding:23px 21px 0}.title-input{font-size:21px}.prompt-details{margin-left:21px;margin-right:21px}.editor-shell{padding:0 21px}.editor-hint{display:none}.prose-editor{min-height:450px;font-size:15px}.paper-footer{padding:12px 21px}.ai-column{min-height:620px}.panel-heading{padding-left:20px;padding-right:20px}.stage-tabs{margin-left:20px;margin-right:20px}.conversation,.review-scroll{padding-left:20px;padding-right:20px}.chat-composer{margin-left:18px;margin-right:18px}.versions-drawer{width:100vw}.versions-body{display:block;overflow-y:auto}.version-list{max-height:260px;border-right:0;border-bottom:1px solid var(--border)}.version-preview{overflow:visible;padding:22px}.preview-heading{align-items:flex-start}.auth-shell{display:block;background:var(--paper)}.auth-intro{padding:35px 28px}.line-field-canvas{width:120%;height:340px;top:38%;opacity:.14}.auth-intro h1{font-size:31px;margin-bottom:12px}.auth-intro>p:not(.eyebrow){font-size:13px;line-height:1.8}.auth-note{margin-top:23px;padding-top:13px}.auth-panel{padding:35px 28px 45px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
