:root { --paper:#f6f4ee; --ink:#1d2625; --muted:#68716d; --line:#d9ddd5; --card:#fffefa; --coral:#e76d52; --violet:#8064bd; --blue:#4d86af; --gold:#c68c3b; --green:#5f9b76; --teal:#3d9b96; --orange:#d77a3e; --shadow:0 18px 45px rgba(32,45,38,.08); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:Inter, "PingFang SC", "Microsoft YaHei", sans-serif; line-height:1.55; }
button, textarea { font:inherit; }
button { cursor:pointer; }
.topbar { max-width:1220px; margin:auto; height:76px; padding:0 28px; display:flex; align-items:center; justify-content:space-between; }
.topbar-actions { display:flex; align-items:center; gap:18px; }.credential-button { display:inline-flex; align-items:center; gap:8px; min-height:38px; padding:0 12px; border:1px solid #ccd2ca; border-radius:8px; background:transparent; color:#515d57; font-size:12px; }.credential-button:hover { border-color:var(--coral); color:var(--coral); }.key-indicator { width:8px; height:8px; border-radius:50%; background:#a0a7a0; }.credential-button.is-unlocked .key-indicator { background:#4c986a; }.credential-button.is-locked .key-indicator { background:#ca8738; }
.brand { display:flex; gap:11px; align-items:center; color:var(--ink); text-decoration:none; letter-spacing:.02em; }
.brand-mark { width:31px; height:31px; display:grid; place-items:center; border:1px solid var(--ink); border-radius:9px 9px 9px 2px; font:700 16px Georgia,serif; transform:rotate(-6deg); }
.brand strong,.brand small { display:block; line-height:1.2; }.brand strong { font-size:14px; }.brand small { color:var(--muted); font-size:11px; margin-top:3px; }
.topbar-meta { color:var(--muted); font-size:12px; display:flex; align-items:center; gap:7px; }.status-dot { width:7px; height:7px; border-radius:50%; background:#79a97e; box-shadow:0 0 0 4px rgba(121,169,126,.13); }
.shell { max-width:1220px; margin:auto; padding:43px 28px 35px; }.hero { max-width:690px; margin:0 auto 45px; text-align:center; }.eyebrow,.step-label { color:var(--coral); font-size:10px; font-weight:800; letter-spacing:.16em; }.eyebrow span { color:#a7aba5; margin:0 7px; }
h1 { margin:15px 0 17px; font:500 clamp(38px,6vw,67px)/1.12 Georgia,"Songti SC",serif; letter-spacing:-.035em; }.hero h1 em { color:var(--coral); font-style:normal; }.hero-copy { max-width:555px; margin:auto; color:var(--muted); font-size:14px; }.hero-pills { margin-top:20px; display:flex; justify-content:center; gap:8px; flex-wrap:wrap; }.hero-pills span { border:1px solid #d8d8cc; border-radius:99px; color:#747970; padding:5px 11px; font-size:11px; }
.workspace { display:grid; grid-template-columns:minmax(0,1.65fr) minmax(250px,.85fr); gap:18px; align-items:stretch; }.panel { background:var(--card); border:1px solid var(--line); border-radius:16px; box-shadow:var(--shadow); }.input-panel { padding:29px 31px 23px; }.panel-heading,.results-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:15px; }.panel h2,.results-heading h2 { margin:7px 0 19px; font:500 24px/1.25 Georgia,"Songti SC",serif; }.text-button { border:0; background:none; color:#8b928b; font-size:12px; padding:3px 0; }.text-button:hover { color:var(--coral); }
textarea { width:100%; min-height:172px; resize:vertical; border:1px solid #d8ddd5; border-radius:11px; background:#fbfbf7; color:var(--ink); padding:15px 16px; outline:none; font-size:14px; line-height:1.8; transition:border .2s,box-shadow .2s; }.input-panel textarea:focus { border-color:var(--coral); box-shadow:0 0 0 3px rgba(231,109,82,.12); }.input-panel textarea::placeholder { color:#aeb5ad; }
.input-foot { display:flex; justify-content:space-between; color:#a0a7a0; font-size:11px; margin-top:8px; }.action-row { display:flex; gap:10px; margin-top:20px; }.primary-button,.secondary-button,.outline-button { min-height:42px; border-radius:8px; border:1px solid transparent; padding:0 17px; font-size:13px; transition:transform .18s,background .18s,box-shadow .18s; }.primary-button { color:#fff; background:var(--ink); box-shadow:0 5px 12px rgba(29,38,37,.15); }.primary-button:hover:not(:disabled) { transform:translateY(-1px); background:#31403d; }.secondary-button,.outline-button { color:#515d57; background:transparent; border-color:#ccd2ca; }.secondary-button:hover:not(:disabled),.outline-button:hover { border-color:var(--coral); color:var(--coral); }.button-icon { font-size:16px; margin-right:7px; }.play-icon { font-size:9px; margin-right:8px; }.privacy-note { margin:15px 0 0; color:#9ca39b; font-size:11px; }.privacy-note span { color:#79a97e; font-size:8px; margin-right:5px; }
.model-controls { display:flex; flex-wrap:wrap; align-items:center; gap:9px; margin-top:13px; color:#7c867e; font-size:11px; }.model-badge { color:#657168; padding:4px 8px; border:1px solid #d7ddd4; border-radius:6px; background:#f5f6f0; white-space:nowrap; }.model-badge strong { color:#48574d; font-weight:700; }.reasoning-control { display:inline-flex; align-items:center; gap:6px; color:#68736b; }.reasoning-control select { min-height:31px; padding:3px 24px 3px 8px; border:1px solid #ccd4ca; border-radius:6px; background:#fffefa; color:#455249; font-size:11px; }.reasoning-control select:disabled { opacity:.64; cursor:wait; }.reasoning-hint { color:#9a8274; }
.how-panel { padding:29px 26px; background:#ebeae1; border-color:#e0dfd4; box-shadow:none; }.how-panel h2 { margin:11px 0 22px; font:500 25px/1.3 Georgia,"Songti SC",serif; }.mini-steps { padding:0; margin:0; list-style:none; }.mini-steps li { display:flex; align-items:flex-start; gap:11px; padding:12px 0; border-top:1px solid #d5d6cc; }.mini-steps li:last-child { border-bottom:1px solid #d5d6cc; }.mini-steps li>span { width:23px;height:23px;border-radius:50%; display:grid; place-items:center; background:#d9d9cf; color:#68706a; font-size:10px; }.mini-steps b,.mini-steps small { display:block; }.mini-steps b { font-size:12px; font-weight:700; }.mini-steps small { color:#7b827b; font-size:11px; margin-top:2px; }
.results-section { margin-top:69px; }.results-heading { align-items:end; margin-bottom:20px; }.results-heading h2 { margin-bottom:0; }.result-actions { display:flex; gap:8px; }.outline-button { min-height:34px; padding:0 11px; font-size:11px; }.progress-wrap { margin-bottom:24px; }.progress-track { height:4px; border-radius:10px; background:#e1e3db; overflow:hidden; }.progress-track span { display:block; height:100%; width:0; background:var(--coral); transition:width .4s; }.progress-label { margin-top:7px; display:flex; justify-content:space-between; color:#9aa29a; font-size:11px; }.error-box { margin:18px 0; padding:12px 15px; border:1px solid #e8b8a9; border-radius:9px; color:#9b4935; background:#fff4f0; font-size:13px; }
.mode-indicator { display:inline-flex; align-items:center; min-height:30px; padding:0 10px; border:1px solid #d98b20; border-radius:4px; color:#875008; background:#fff4d9; font-size:12px; font-weight:700; white-space:nowrap; }
.empty-state { padding:66px 15px 79px; text-align:center; color:var(--muted); border:1px dashed #d3d7cf; border-radius:14px; }.empty-state h3 { margin:21px 0 5px; font:500 21px Georgia,"Songti SC",serif; color:#46504a; }.empty-state p { margin:0; font-size:13px; }.empty-orbit { width:62px;height:62px; margin:auto; position:relative; display:grid;place-items:center; border:1px solid #c8cec4; border-radius:50%; color:var(--coral); font:500 23px Georgia,serif; }.empty-orbit:before,.empty-orbit:after { content:""; position:absolute; border:1px solid #d8dcd4; border-radius:50%; }.empty-orbit:before { width:84px;height:28px; transform:rotate(-25deg); }.empty-orbit:after { width:28px;height:84px; transform:rotate(34deg); }.empty-orbit i,.empty-orbit b { position:absolute;width:5px;height:5px;border-radius:50%;background:var(--coral); }.empty-orbit i { top:2px;right:8px; }.empty-orbit b { bottom:4px;left:6px;background:#6da183; }
.stage-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:15px; }.stage-card { background:var(--card); border:1px solid var(--line); border-radius:14px; padding:21px 21px 19px; position:relative; overflow:hidden; animation:rise .45s both; animation-delay:var(--delay); }.stage-card:before { content:""; position:absolute; top:0;left:0;right:0;height:3px;background:var(--accent); }.accent-coral { --accent:var(--coral); }.accent-violet { --accent:var(--violet); }.accent-blue { --accent:var(--blue); }.accent-gold { --accent:var(--gold); }.accent-green { --accent:var(--green); }.accent-teal { --accent:var(--teal); }.accent-orange { --accent:var(--orange); }.accent-ink { --accent:var(--ink); }.stage-top { display:flex; align-items:center; gap:8px; }.stage-number { color:var(--accent); font-size:11px; font-weight:800; letter-spacing:.08em; }.stage-icon { color:var(--accent); font-size:22px; line-height:1; }.stage-state { margin-left:auto; color:#839086; font-size:10px; border:1px solid #dce1d9; padding:3px 7px; border-radius:99px; }.stage-card h3 { margin:15px 0 4px; font:600 19px/1.3 Georgia,"Songti SC",serif; }.stage-short { margin:0 0 13px; color:#89918b; font-size:11px; }.stage-summary { font-size:13px; line-height:1.75; color:#35423d; padding-bottom:14px; border-bottom:1px solid #e4e7e0; }.stage-section { margin-top:13px; }.stage-section>span { display:block; color:var(--accent); font-size:10px; font-weight:800; letter-spacing:.08em; }.stage-section ul { margin:6px 0 0; padding-left:16px; color:#66716a; font-size:12px; line-height:1.65; }.stage-section li+li { margin-top:3px; }.stage-section.questions ul { color:#91614e; }.next-step { margin-top:15px; padding:10px 11px; border-radius:8px; background:#f1f2eb; font-size:11px; }.next-step span { color:#9aa29a; margin-right:7px; }.next-step b { font-weight:600; color:#59645e; }
.footer { max-width:1220px; margin:25px auto 0; padding:20px 28px 31px; display:flex; gap:9px; color:#9ca29c; font-size:11px; }.toast { position:fixed; z-index:5; left:50%; bottom:25px; transform:translateX(-50%); padding:10px 15px; border-radius:8px; background:#26322f; color:#fff; font-size:12px; box-shadow:0 10px 25px rgba(0,0,0,.2); }.spinner { display:inline-block; width:13px;height:13px; border:2px solid rgba(255,255,255,.35); border-top-color:#fff; border-radius:50%; vertical-align:-2px; margin-right:8px; animation:spin .7s linear infinite; }button:disabled { cursor:wait; opacity:.64; }.sr-only { position:absolute; width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0; }
@keyframes rise { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:none; } } @keyframes spin { to { transform:rotate(360deg); } }
.stage-guide { grid-column:1/-1; display:flex; justify-content:space-between; gap:12px; align-items:center; padding:13px 15px; border:1px solid #d9ddd5; border-radius:11px; background:#fbfbf7; color:#59655e; font-size:12px; }.stage-guide span { color:#929b92; font-size:11px; }
.stage-card { display:flex; flex-direction:column; }.stage-card.done { border-color:#b7d2bf; }.stage-card.active { box-shadow:0 16px 35px rgba(32,45,38,.12); }.stage-mode { margin-left:auto; color:#7d8a80; border:1px solid #dce1d9; padding:3px 7px; border-radius:99px; font-size:10px; white-space:nowrap; }.stage-state + .stage-mode { margin-left:0; }.stage-summary-block { flex:1; }.section-label { display:block; margin-top:8px; color:#9a7d68; font-size:10px; font-weight:800; letter-spacing:.08em; }.stage-summary { margin-top:5px; }.stage-workbench { margin-top:17px; padding-top:15px; border-top:1px solid #e4e7e0; }.stage-workbench label { display:block; color:#69746b; font-size:11px; font-weight:700; margin-bottom:7px; }.stage-workbench textarea { min-height:95px; font-size:13px; line-height:1.7; }.assist-row { display:flex; flex-wrap:wrap; gap:7px; margin-top:10px; }.assist-button { min-height:32px; border-radius:7px; border:1px solid #ccd2ca; padding:0 10px; color:#56635b; background:transparent; font-size:11px; }.assist-button:hover:not(:disabled) { border-color:var(--coral); color:var(--coral); }.assist-button.primary-assist { background:var(--ink); color:#fff; border-color:var(--ink); }.assist-button.confirm-assist { color:#2f7850; border-color:#a9cdb4; background:#f1faf3; }.assist-button.subtle { border-color:transparent; color:#8b958c; padding-left:4px; padding-right:4px; }.assist-status { display:block; margin-top:8px; color:#9ca39b; font-size:10px; }
@media (max-width:760px) { .topbar { height:64px; padding:0 18px; }.shell { padding:31px 16px 22px; }.hero { margin-bottom:31px; }.hero-copy { font-size:13px; }.workspace { grid-template-columns:1fr; gap:12px; }.input-panel { padding:23px 18px 19px; }.how-panel { padding:22px 18px; }.how-panel h2 { font-size:21px; margin-bottom:14px; }.mini-steps { display:grid; grid-template-columns:1fr 1fr; gap:0 13px; }.mini-steps li { padding:10px 0; }.mini-steps li:nth-child(odd) { border-bottom:1px solid #d5d6cc; }.results-section { margin-top:47px; }.results-heading { display:block; }.result-actions { margin-top:14px; flex-wrap:wrap; }.stage-grid { grid-template-columns:1fr; gap:12px; }.stage-card { padding:19px 17px 17px; }.stage-guide { align-items:flex-start; flex-direction:column; }.stage-mode { font-size:9px; }.assist-row { gap:5px; }.assist-button { padding:0 8px; }.footer { padding:16px 16px 25px; }.empty-state { padding:55px 14px 63px; } }
@media (max-width:420px) { h1 { font-size:38px; }.input-foot span:last-child { display:none; }.action-row { flex-direction:column; }.primary-button,.secondary-button { width:100%; }.hero-pills span { font-size:10px; }.mini-steps b { font-size:11px; }.mini-steps small { font-size:10px; } }

button:focus-visible, textarea:focus-visible { outline:3px solid rgba(231,109,82,.42); outline-offset:3px; }
.plan-overview { grid-column:1/-1; padding:17px 18px; border:1px solid #d9ddd5; border-radius:12px; background:#fffefa; }.overview-heading { display:flex; align-items:baseline; justify-content:space-between; gap:12px; margin-bottom:10px; }.overview-heading .section-label { margin:0; }.overview-heading strong { color:#536158; font-size:12px; font-weight:600; }.overview-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }.overview-block { min-width:0; padding:11px 12px; border-radius:9px; background:#f4f4ed; }.overview-block>span { display:block; color:#7d897e; font-size:10px; font-weight:800; letter-spacing:.08em; }.overview-block p,.overview-block ul { margin:6px 0 0; color:#4f5d54; font-size:12px; line-height:1.65; }.overview-block ul { padding-left:15px; }.overview-risks { background:#fff4f0; }.overview-risks>span { color:#9b634e; }.overview-recommendations { background:#f1faf3; }.overview-recommendations>span { color:#397653; }
.print-view { display:none; }
@media print {
  @page { margin:14mm; }
  body { background:#fff; }
  body > * { visibility:hidden; }
  #printView, #printView * { visibility:visible; }
  #printView { display:block !important; position:absolute; inset:0; width:100%; padding:0; background:#fff; }
  .print-report { display:block; color:#1d2625; font-family:"Microsoft YaHei",sans-serif; }
  .print-report-head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; border-bottom:2px solid #1d2625; padding-bottom:12px; }
  .print-report-head h1 { margin:2px 0 4px; font:600 24px/1.25 Georgia,"Songti SC",serif; }
  .print-report-head p { margin:0; color:#68716d; font-size:11px; }.print-kicker { color:#e76d52 !important; font-size:9px !important; letter-spacing:.12em; font-weight:800; }.print-status { border:1px solid #cbd2ca; border-radius:4px; padding:4px 8px; font-size:10px; }
  .print-input,.print-overview { margin-top:13px; padding:10px 12px; background:#f5f5ef; border-radius:6px; font-size:11px; }.print-input p,.print-overview p { margin:4px 0 0; line-height:1.6; }
  .print-stages { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:13px; }.print-stages article { break-inside:avoid; border:1px solid #d9ddd5; padding:10px 11px; border-radius:6px; }.print-stage-top { display:flex; gap:7px; align-items:baseline; }.print-stage-top span { color:#e76d52; font-size:10px; font-weight:800; }.print-stage-top b { font-size:12px; }.print-stage-top em { margin-left:auto; color:#7e8b82; font-size:9px; font-style:normal; }.print-stages article>p { margin:7px 0; font-size:10px; line-height:1.55; }.print-list { margin-top:5px; font-size:9px; }.print-list b { color:#7e8b82; }.print-list ul { margin:2px 0 0; padding-left:14px; }.print-next { border-top:1px solid #eceee8; padding-top:6px; }.print-foot { margin-top:12px; color:#9ca39b; font-size:9px; }
}
@media (max-width:760px) { .overview-grid { grid-template-columns:1fr 1fr; }.overview-heading { display:block; }.overview-heading strong { display:block; margin-top:4px; }.assist-button { min-height:44px; }.text-button { min-height:40px; }.print-stages { grid-template-columns:1fr; } }
@media (max-width:420px) { .overview-grid { grid-template-columns:1fr; } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; scroll-behavior:auto !important; transition-duration:.01ms !important; } }
.credential-dialog { width:min(520px,calc(100vw - 28px)); max-width:none; max-height:min(88vh,760px); padding:0; border:1px solid #d9ddd5; border-radius:12px; background:#fffefa; color:var(--ink); box-shadow:0 24px 70px rgba(20,30,25,.24); overflow:auto; }.credential-dialog::backdrop { background:rgba(20,28,24,.45); }.credential-sheet { padding:24px; }.credential-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }.credential-heading h2 { margin:6px 0 0; font:500 24px/1.25 Georgia,"Songti SC",serif; }.dialog-close { width:36px; height:36px; border:1px solid var(--line); border-radius:8px; background:transparent; color:#68716d; font-size:22px; line-height:1; }.credential-copy { margin:15px 0 14px; color:#68716d; font-size:13px; line-height:1.65; }.vault-state { margin-bottom:16px; padding:10px 12px; border-radius:8px; background:#f2f4ee; color:#526057; font-size:12px; }.vault-state.is-ready { background:#eef8f0; color:#2f7650; }.credential-field { display:grid; gap:6px; margin-top:13px; }.credential-field label { color:#526057; font-size:12px; font-weight:700; }.credential-field input { width:100%; min-height:44px; padding:10px 12px; border:1px solid #d2d9d1; border-radius:8px; background:#fff; color:var(--ink); font-size:14px; }.credential-field input:focus-visible { outline:3px solid rgba(231,109,82,.35); outline-offset:2px; border-color:var(--coral); }.credential-note { margin:10px 0 0; color:#8c958e; font-size:11px; line-height:1.6; }.credential-error { margin-top:12px; color:#9b4935; font-size:12px; line-height:1.6; }.credential-actions { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-top:18px; }.credential-actions .primary-button,.credential-actions .secondary-button,.credential-actions .danger-button { min-height:42px; }.credential-actions button:disabled { cursor:wait; opacity:.62; }.danger-button { min-height:36px; padding:0 11px; border:1px solid #e1b7ac; border-radius:8px; background:#fff7f4; color:#9b4935; font-size:12px; }
@media (max-width:760px) { .topbar-actions { gap:10px; }.topbar-meta { font-size:11px; }.credential-button { min-height:40px; padding:0 9px; font-size:11px; }.credential-sheet { padding:20px 17px; } }
@media (max-width:420px) { .topbar-actions { gap:8px; }.credential-button { gap:6px; padding:0 8px; }.topbar-meta { max-width:88px; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; } }
