:root{--navy:#25362f;--teal:#286653;--bg:#f7f8f6;--line:#e4e8e3;--muted:#748078;--paper:#fff}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:#28372f;font:14px/1.7 'Microsoft YaHei','Segoe UI',sans-serif}button,a,summary,input,textarea,select{font:inherit}button{cursor:pointer;border:1px solid #d9e0d9;background:#fff;color:#344b3e;border-radius:8px;padding:10px 16px;font-weight:500;transition:background .15s,border-color .15s}button:hover{border-color:#87a391;background:#f2f6f1}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid #6b9b82;outline-offset:3px}button:disabled{opacity:.5;cursor:wait}aside{width:216px;position:fixed;inset:0 auto 0 0;background:#fdfefd;border-right:1px solid var(--line);padding:31px 20px;overflow:auto}.brand{display:flex;gap:10px;align-items:center;font-size:19px;font-weight:600;letter-spacing:1px}.brand small{display:block;font-size:10px;font-weight:400;letter-spacing:1px;color:var(--muted)}.mark{background:#286653;border-radius:11px;width:37px;height:40px;text-align:center;line-height:38px;font:26px/38px Georgia,serif;color:#fff}.local{font-size:10px;color:var(--muted);margin:22px 0 36px}.local i{display:inline-block;width:5px;height:5px;background:#549678;border-radius:50%;margin-right:5px}.nav{display:block;text-align:left;width:100%;margin:6px 0;border:0;color:#7a867d;background:transparent;font-size:12px;padding:12px 10px}.nav.active{background:#eaf1e9;color:#285740;font-weight:600}.nav:hover{background:#f0f4ef}.side-label{font-size:10px;color:#99a399;letter-spacing:1px;margin:37px 10px 12px}#history button{background:transparent;border:0;color:#68756c;text-align:left;font-size:11px;width:100%;padding:7px 10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#history button:hover{background:#f1f4ef}.aside-bottom{color:#a2aca3;font-size:9px;line-height:2;margin:42px 10px 0;letter-spacing:1px}main{margin-left:216px;padding:38px 48px 24px;max-width:1520px}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:38px;padding-bottom:23px;border-bottom:1px solid var(--line)}.eyebrow,.section-no{font-size:9px;letter-spacing:2px;color:#7c9080;font-weight:600}h1{font-size:27px;font-weight:600;letter-spacing:-.4px;margin:7px 0 0}h2{font-size:21px;font-weight:600;margin:8px 0 12px}h3{font-size:16px;font-weight:600;margin:8px 0 13px}h4{font-size:15px;font-weight:600;margin:5px 0 9px}p{margin:8px 0 14px}.badge{background:#f1f4ef;border:1px solid #dfe6dd;color:#6b806f;padding:4px 10px;border-radius:20px;font-size:10px;white-space:nowrap}.intro{color:#6b786f;font-size:14px;max-width:660px;margin:0 0 25px}.two-col{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:23px;align-items:start}.card{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:27px 28px;margin-bottom:22px;min-width:0}label{display:block;font-size:12px;font-weight:500;margin:16px 0 9px}input,textarea,select{display:block;width:100%;margin-top:7px;border:1px solid #dfe5de;background:#fff;border-radius:7px;padding:10px 11px;color:#34463b;font-weight:400}input::placeholder,textarea::placeholder{color:#a2aba4;font-size:11px}textarea{resize:vertical;line-height:1.85}input:focus,textarea:focus,select:focus{outline:2px solid #b8cfbb;outline-offset:1px}.filebox{padding:16px 17px;border:1px dashed #c7d5c8;border-radius:8px;background:#fafcf9}.filebox b{font-size:13px}.filebox span{display:block;color:#8a968c;font-size:10px;font-weight:400;margin-top:4px}.filebox input{font-size:11px;background:transparent;border:0;padding-left:0}.primary{background:#286653;border-color:#286653;color:#fff}.primary:hover{background:#205541;color:#fff}.secondary{background:#f0f5ef;border-color:#d4e0d2;color:#356448}.textlink{display:inline-block;color:#6c8b71;font-size:11px;margin:14px}.feature{border-top:1px solid #edf0eb;padding:17px 0 0}.feature b{font-size:12px;font-weight:600}.feature p,.examples p{font-size:11px;color:#819084}.examples button{font-size:11px;margin:4px 5px 0 0}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:17px}.toolbar p,.muted{color:#819084;font-size:11px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin:22px 0}.stat{padding:20px 22px;background:#fff;border:1px solid var(--line);border-radius:10px}.stat b{font-size:28px;font-weight:500;color:#385f46;display:block}.stat span{font-size:10px;color:#8b978d}summary{cursor:pointer;font-weight:500;padding:3px 0;font-size:13px}.settings{display:grid;grid-template-columns:repeat(3,1fr);gap:0 16px}.tablewrap{overflow:auto;max-height:470px}table{border-collapse:collapse;width:100%;font-size:11px;white-space:nowrap}th{background:#f2f5f0;color:#6d8071;position:sticky;top:0;z-index:1;font-weight:500}td,th{padding:9px 10px;border-bottom:1px solid #eaf0e7;text-align:left}tr:nth-child(even){background:#fcfdfb}td input{min-width:85px;padding:5px;font-size:11px}td .reason{min-width:170px}.issue{border-left:2px solid #c7b28c;padding:8px 12px;background:#fcfaf5;font-size:11px;margin:6px 0;white-space:normal}.issue.error{border-color:#be7770;background:#fff7f5}#notice{padding:12px 17px;margin-bottom:20px;border-radius:8px;background:#fbf5e9;color:#8d744a;font-size:12px;white-space:pre-wrap}#chat{max-height:440px;overflow:auto;padding:12px 0}.bubble{white-space:pre-wrap;border-radius:9px;background:#f5f7f3;padding:15px;font-size:12px;margin:10px 0}.bubble.user{background:#edf3ec;margin-left:20px}.privacy{font-size:10px;color:#93a094;border-left:2px solid #dbe5d8;padding-left:10px;margin-top:18px}#aiActions button{font-size:10px;margin:8px 5px 0 0}.quick-notes{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0 20px}.quick-notes button{padding:5px 9px;font-size:10px;color:#7b8c7d}.downloads{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin:20px 0}.download{display:block;text-decoration:none;color:#3d5644;border:1px solid var(--line);padding:21px;background:#fff;border-radius:10px}.download:hover{border-color:#9db79e;background:#fcfefb}.download b{display:block;font-size:13px;font-weight:500}.download small{color:#92a08f;font-size:10px}#figurePreview{width:100%;height:auto;border:1px solid #edf1e9}.statusline{color:#758b77;font-size:12px;margin:8px 0 20px}.analysis-session{padding:24px 28px}.analysis-session .toolbar{margin-bottom:0}.analysis-feed{max-height:660px;overflow:auto;padding:0 8px 0 0;scrollbar-width:thin}.activity{border-bottom:1px solid #eef2eb;padding:20px 1px}.activity:last-child{border-bottom:0}.activity-label{color:#96a18e;font-size:9px;letter-spacing:1px;margin-bottom:8px}.activity p{white-space:pre-line;font-size:12px;line-height:1.95;color:#4b5c4c;margin:0}.activity small{display:block;margin-top:12px;color:#82967c;font-size:10px}.activity.progress{padding:6px 1px;border:0;color:#98a393;font-size:10px}.activity.plan{padding:18px;background:#f6f8f3;border-radius:9px;margin:12px 0}.activity.delivery{border-left:3px solid #5e8a61;padding-left:17px;margin:16px 0}.activity.error{color:#9e5a4d;background:#fff7f4;padding:15px}.running #sessionState:before{content:'';display:inline-block;width:5px;height:5px;background:#52855b;border-radius:50%;margin-right:6px;animation:pulse 1.5s infinite}@keyframes pulse{50%{opacity:.3}}footer{font-size:10px;color:#a3aea0;margin-top:35px;padding-top:20px;border-top:1px solid var(--line)}[hidden]{display:none!important}@media(max-width:1100px){aside{width:185px;padding:26px 15px}main{margin-left:185px;padding:30px}.two-col{grid-template-columns:1fr}h1{font-size:24px}}@media(max-width:720px){aside{position:static;width:auto;padding:16px;border:0;border-bottom:1px solid var(--line)}.brand{font-size:17px}.local,.side-label,.aside-bottom{display:none}.nav{display:inline-block;width:auto;font-size:10px;padding:8px;margin:12px 0 0}.brand small{display:none}main{margin:0;padding:21px 16px}header{gap:10px;margin-bottom:24px}h1{font-size:21px}.stats{grid-template-columns:repeat(2,1fr);gap:9px}.downloads{grid-template-columns:1fr}.settings{grid-template-columns:repeat(2,1fr)}.toolbar{align-items:flex-start;flex-direction:column;gap:10px}.card{padding:20px}.two-col{gap:0}#history{display:flex;overflow:auto;gap:5px;max-height:65px}#history button{flex:0 0 auto;width:auto;font-size:9px;background:#f1f5ed;padding:5px 8px}.analysis-feed{max-height:530px}}
/* Optional layout previews; the user chooses the final direction. */
.view-controls{display:flex;gap:12px;align-items:center}.view-controls label{margin:0;color:var(--muted);font-size:11px}.view-controls select{width:180px;margin:0;font-size:12px}
body[data-layout=lab]{--bg:#f6f7fa;--line:#e0e4ed;--teal:#4257a3;color:#303947}
body[data-layout=lab] aside{width:190px;background:#f0f2f7;padding:26px 16px}
body[data-layout=lab] main{margin-left:190px;max-width:1640px;padding:28px 38px}
body[data-layout=lab] .card{border-radius:7px;padding:22px 24px}
body[data-layout=lab] .primary,body[data-layout=lab] .mark{background:#4257a3;border-color:#4257a3}
body[data-layout=lab] .nav.active{background:#e1e6f3;color:#354789}
body[data-layout=lab] .two-col{grid-template-columns:minmax(0,1.6fr) minmax(310px,1fr);gap:18px}
body[data-layout=notebook]{--bg:#f5f2eb;--line:#e3dfd5;--paper:#fffefb;color:#433f38}
body[data-layout=notebook] aside{width:190px;background:#eeeae1}
body[data-layout=notebook] main{margin-left:190px;max-width:1300px;padding:48px 64px}
body[data-layout=notebook] .two-col{grid-template-columns:1fr}
body[data-layout=notebook] .card{border:0;border-top:1px solid #d6cec0;border-radius:0;padding:30px 34px}
body[data-layout=notebook] h1{font-family:Georgia,'Microsoft YaHei',serif;font-size:32px}
body[data-layout=notebook] .primary,body[data-layout=notebook] .mark{background:#706044;border-color:#706044}
body[data-layout=gallery]{--bg:#f2f5f8;--line:#dae3ec;--teal:#14758a}
body[data-layout=gallery] aside{position:static;width:100%;display:flex;align-items:center;gap:18px;padding:15px 30px;background:#fff;overflow:visible;border-bottom:1px solid var(--line)}
body[data-layout=gallery] aside .local,body[data-layout=gallery] .side-label,body[data-layout=gallery] .aside-bottom,body[data-layout=gallery] #history{display:none}
body[data-layout=gallery] .nav{width:auto;margin:0;padding:10px 14px}
body[data-layout=gallery] main{margin:0 auto;max-width:1600px;padding:30px 48px}
body[data-layout=gallery] .two-col{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr)}
body[data-layout=gallery] .primary,body[data-layout=gallery] .mark{background:#14758a;border-color:#14758a}
body[data-layout=gallery] .card{border-radius:16px}
body[data-layout=gallery] #previewCard{padding:34px}body[data-layout=gallery] #figurePreview{box-shadow:0 12px 38px #203d4e16}
@media(max-width:1100px){body[data-layout] .two-col{grid-template-columns:1fr}body[data-layout=gallery] aside{flex-wrap:wrap}header{flex-wrap:wrap;gap:16px}}
@media(max-width:720px){body[data-layout] aside{position:static;width:auto}body[data-layout] main{margin:0;padding:21px 16px}.view-controls{flex-wrap:wrap}.view-controls label{display:none}body[data-layout] .card{padding:20px}body[data-layout=gallery] aside{padding:16px;gap:5px}body[data-layout=gallery] .nav{font-size:10px;padding:8px}}

body[data-layout=gallery] aside{flex-wrap:wrap}
body[data-layout=gallery] #history{display:flex;flex:1 0 100%;gap:8px;max-height:46px;overflow:auto;border-top:1px solid var(--line);padding-top:7px}
body[data-layout=gallery] #history::before{content:'最近实验';flex:0 0 auto;font-size:11px;color:var(--muted);padding:5px 0}
body[data-layout=gallery] #history button{width:auto;flex:0 0 auto;padding:5px 12px}

body.login-page { min-height: 100vh; display: grid; place-items: center; }
.login-page .login-main { width: min(100%, 480px); margin: 0; padding: 24px; }
.login-main h1 { font-size: 25px; margin-bottom: 12px; }
.login-main form { margin-top: 20px; }
body[data-public-trial] aside form { margin-top: 14px; }
