:root{--red:#960001;--red2:#b20d18;--ink:#171315;--muted:#756b6d;--line:#e7dfe0;--paper:#fbf9f7;--soft:#f3eeec;--green:#24704a;--shadow:0 24px 80px #42000620}*{box-sizing:border-box}html,body,#app{height:100%;margin:0}body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;color:var(--ink);background:var(--paper)}button,input,textarea,select{font:inherit}button{cursor:pointer}.hidden{display:none!important}.kicker,.top-label{font:600 10px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.16em;color:var(--red)}.light{color:#f4b9b9}.primary{border:0;border-radius:8px;background:var(--red);color:#fff;min-height:44px;padding:0 18px;font-weight:650}.primary:hover{background:#760001}.primary:disabled{opacity:.55}.wide{width:100%}.secondary{min-height:42px;padding:0 16px;border:1px solid var(--line);border-radius:8px;background:#fff}.text-button{border:0;background:none;color:var(--red);min-height:40px}.toast{position:fixed;z-index:100;left:50%;bottom:30px;transform:translate(-50%,20px);background:#242021;color:#fff;padding:12px 18px;border-radius:8px;opacity:0;pointer-events:none;transition:.2s;box-shadow:var(--shadow)}.toast.show{opacity:1;transform:translate(-50%,0)}.toast.error{background:var(--red)}
.modeling-panel{position:absolute;left:30px;top:88px;z-index:3;background:#fff;border:1px solid var(--line);border-radius:8px;max-width:min(480px,calc(100% - 40px));box-shadow:0 10px 40px #42000612}.modeling-panel summary{padding:12px 16px;cursor:pointer;color:var(--red);font-size:12px}.modeling-body{padding:0 18px 18px;max-height:55vh;overflow:auto;display:grid;gap:10px;font-size:13px}.modeling-body label{display:grid;gap:6px}.modeling-body select{max-width:100%;min-width:0;width:100%;padding:8px;border:1px solid var(--line);border-radius:5px}.modeling-body button{background:var(--red);color:white;border:0;padding:10px;border-radius:5px}.modeling-body button:disabled{opacity:.45}.modeling-body p{color:var(--muted);line-height:1.7;margin:6px 0}.viz-canvas:has(.modeling-panel){padding-top:148px;padding-bottom:110px}.viz-frame{box-shadow:0 4px 24px #4200060a!important}.viz-files{top:14px!important}.viz-history{top:88px!important}@media(max-width:700px){.modeling-panel{left:12px;top:70px;max-width:calc(100% - 24px)}.modeling-panel summary{max-width:210px;font-size:10px}.viz-history{top:70px!important;right:12px}.viz-canvas:has(.modeling-panel){padding:122px 8px 155px}.viz-top{padding:0 12px}}
.auth-shell{min-height:100%;display:grid;grid-template-columns:1.08fr .92fr}.auth-hero{position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;padding:46px 7vw;background:linear-gradient(140deg,#6f0002,#9b0004 55%,#b61620);color:#fff}.auth-hero:after{content:"经";position:absolute;right:-4vw;bottom:-17vw;font:700 38vw Georgia;color:#fff08;line-height:1}.auth-brand{display:flex;align-items:center;gap:16px;z-index:1}.auth-brand img{width:210px;height:auto;object-fit:contain}.auth-brand div{border-left:1px solid #ffffff50;padding-left:16px;display:flex;flex-direction:column}.auth-brand b{font-size:16px}.auth-brand span{font-size:11px;margin-top:5px;opacity:.72}.auth-statement{z-index:1;max-width:610px}.auth-statement h1{font-family:Georgia,"Songti SC",serif;font-size:clamp(46px,5vw,82px);line-height:1.12;margin:22px 0}.auth-statement p{max-width:500px;line-height:1.9;color:#f8dada}.auth-hero small{z-index:1;letter-spacing:.14em;opacity:.55}.auth-card-wrap{display:grid;place-items:center;padding:40px;background:#fff}.auth-card{width:min(410px,100%)}.auth-logo img{width:270px}.auth-card h2{font:600 36px Georgia,"Songti SC",serif;margin:25px 0 8px}.auth-card>p{color:var(--muted);margin:0 0 30px}.auth-card label,.modal label{display:flex;flex-direction:column;gap:9px;font-size:13px;font-weight:600;margin:18px 0}.auth-card input,.modal input,.modal textarea,.modal select{width:100%;border:1px solid var(--line);border-radius:8px;padding:13px;background:#fff;outline:none}.auth-card input:focus,.modal input:focus,.modal textarea:focus{border-color:var(--red);box-shadow:0 0 0 3px #96000112}.auth-card .primary{margin-top:12px;display:flex;justify-content:space-between;align-items:center}.auth-toggle{width:100%;margin:12px 0}.security-note{font-size:11px;color:#918789;border-top:1px solid var(--line);padding-top:20px;margin-top:18px;white-space:pre-line;line-height:1.6}
.workspace{height:100%;display:grid;grid-template-columns:290px 1fr}.sidebar,.admin-side{min-width:0;background:#5f0002;color:#fff;display:flex;flex-direction:column}.side-brand,.admin-brand{height:84px;padding:20px 22px;display:flex;align-items:center;gap:12px;border-bottom:1px solid #ffffff18}.side-brand img,.admin-brand img{width:92px}.side-brand div,.admin-brand div{border-left:1px solid #ffffff40;padding-left:11px;display:flex;flex-direction:column}.side-brand b,.admin-brand b{font-size:12px}.side-brand span,.admin-brand span{font-size:10px;opacity:.6;margin-top:4px}.new-chat{height:46px;margin:18px;border:1px solid #ffffff44;border-radius:7px;background:#ffffff0b;color:white;text-align:left;padding:0 14px}.new-chat:hover{background:#ffffff18}.side-search{margin:0 18px 18px;background:#390001;border-radius:7px;padding:0 12px;color:#c6a9a9;display:flex;align-items:center}.side-search input{height:40px;width:100%;border:0;outline:0;background:none;color:#fff;padding:0 8px}.side-section{display:flex;justify-content:space-between;align-items:center;padding:0 19px 9px;font:600 9px ui-monospace;letter-spacing:.13em;color:#cda8a8}.side-section button{border:0;background:none;color:#e7c9c9;font-size:10px}#conversationList{flex:1;overflow:auto;padding:0 10px;scrollbar-width:thin;scrollbar-color:#a64245 #4b0002}#conversationList::-webkit-scrollbar{width:8px}#conversationList::-webkit-scrollbar-track{background:#4b0002;border-radius:8px}#conversationList::-webkit-scrollbar-thumb{background:#a64245;border:2px solid #4b0002;border-radius:8px}#conversationList::-webkit-scrollbar-thumb:hover{background:#cf7375}.conversation{position:relative;border-radius:7px;margin:2px 0}.conversation.active{background:#fff;color:var(--red)}.conversation>button:first-child{width:100%;border:0;background:none;color:inherit;text-align:left;padding:11px 40px 11px 12px;display:flex;flex-direction:column;gap:5px}.conversation b{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.conversation span{font-size:9px;opacity:.56}.conversation>button:last-child{position:absolute;right:6px;top:8px;border:0;background:none;color:inherit;opacity:.55}.empty-side{text-align:center;padding:40px 10px;color:#dfc5c5;font-size:12px}.empty-side span{font-size:10px;opacity:.6}.side-footer{border-top:1px solid #ffffff18}.side-tools{display:grid;grid-template-columns:repeat(3,1fr);padding:8px}.side-tools button{border:0;background:none;color:#ead6d6;display:flex;flex-direction:column;gap:4px;align-items:center;min-height:50px}.side-tools span{font-size:9px}.account{display:flex;align-items:center;gap:9px;padding:14px 18px;background:#3f0001}.avatar{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:#fff;color:var(--red);font-weight:700}.account>div:nth-child(2){display:flex;flex:1;flex-direction:column}.account b{font-size:12px}.account span{font-size:9px;opacity:.55;margin-top:3px}.account>button{border:0;background:none;color:#fff;font-size:17px}.chat-main{min-width:0;height:100%;display:grid;grid-template-rows:74px 1fr auto;background:#fcfaf8}.topbar{border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 30px;background:#fff}.mobile-menu{display:none}.topbar>div:first-of-type{display:flex;flex-direction:column;gap:4px}.topbar select{border:0;background:none;font-weight:650;outline:none;max-width:360px}.top-actions{margin-left:auto;display:flex;align-items:center;gap:24px}.top-actions>button{border:1px solid var(--line);background:#fff;border-radius:7px;padding:8px 12px}.service-state{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:11px}.service-state i{width:7px;height:7px;border-radius:50%;background:#aaa}.service-state.online i{background:#21a267;box-shadow:0 0 0 4px #21a26714}#content{min-height:0;overflow:auto}.welcome{width:min(970px,calc(100% - 48px));margin:0 auto;padding:9vh 0 40px}.welcome-seal{width:80px;height:80px;border:1px solid #d7c4c4;color:var(--red);display:grid;place-items:center;font:52px Georgia;position:relative;margin-bottom:28px}.welcome-seal span{position:absolute;bottom:-7px;background:var(--paper);padding:0 4px;font:8px ui-monospace;letter-spacing:.15em}.welcome h1{font:600 clamp(32px,4vw,50px) Georgia,"Songti SC",serif;margin:14px 0}.welcome>p{color:var(--muted);margin-bottom:40px}.prompt-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.prompt-grid button{position:relative;min-height:125px;text-align:left;border:1px solid var(--line);border-radius:9px;background:#fff;padding:20px;display:flex;flex-direction:column;gap:8px}.prompt-grid button:hover{border-color:#b98d8f;box-shadow:0 8px 28px #4200060b}.prompt-grid span{font:600 9px ui-monospace;color:var(--red);letter-spacing:.12em}.prompt-grid small{color:var(--muted)}.prompt-grid i{position:absolute;right:18px;top:18px;color:var(--red)}.composer-shell{padding:12px 24px 16px;background:linear-gradient(transparent,#fcfaf8 20%)}.composer{max-width:900px;margin:auto;background:#fff;border:1px solid #d7cccd;border-radius:12px;box-shadow:0 8px 35px #3f00010c;padding:10px}.composer textarea{border:0;outline:0;resize:none;width:100%;min-height:34px;padding:7px 10px;line-height:1.55}.composer-row{display:flex;justify-content:space-between;align-items:center}.composer-row>div{display:flex;gap:8px}.composer-row button,.composer-row select{border:0;background:var(--soft);border-radius:7px;min-height:38px;padding:0 12px}.composer-row .send{width:40px;border-radius:50%;background:var(--red);color:#fff;font-size:20px}.composer-shell>p{text-align:center;font-size:9px;color:#9a9091;margin:8px 0 0}.messages{max-width:900px;margin:auto;padding:30px 25px 80px}.message{display:grid;grid-template-columns:38px 1fr;gap:13px;padding:18px 0}.message-avatar{width:34px;height:34px;border-radius:7px;display:grid;place-items:center;background:var(--red);color:#fff;font-weight:700}.message.user .message-avatar{background:#292324}.message-body{min-width:0}.message-meta{display:flex;gap:12px;align-items:center;margin:3px 0 10px}.message-meta b{font-size:12px}.message-meta span{font:9px ui-monospace;color:var(--muted)}.message-content{line-height:1.8;font-size:14px;overflow-wrap:anywhere}.message.user .message-content{background:#f2edeb;border-radius:0 10px 10px 10px;padding:12px 15px;display:inline-block}.message-actions{opacity:0;margin-top:7px}.message:hover .message-actions{opacity:1}.message-actions button{border:0;background:none;color:var(--muted);font-size:10px;padding:4px 8px 4px 0}.thinking .message-content{display:flex;gap:5px;padding:10px}.thinking .message-content i{width:6px;height:6px;border-radius:50%;background:var(--red);animation:pulse 1s infinite}.thinking .message-content i:nth-child(2){animation-delay:.2s}.thinking .message-content i:nth-child(3){animation-delay:.4s}@keyframes pulse{50%{opacity:.25;transform:translateY(-3px)}}
.backdrop{position:fixed;z-index:20;inset:0;background:#18000366;backdrop-filter:blur(2px)}.drawer{position:fixed;z-index:21;top:0;right:0;width:min(520px,100%);height:100%;overflow:auto;background:#fff;padding:32px;box-shadow:var(--shadow)}.drawer-head{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:22px;margin-bottom:22px}.drawer-head h2{font:600 28px Georgia;margin:8px 0}.drawer-head p{color:var(--muted);font-size:12px;margin:0}.drawer-close,.modal-close{border:0;background:var(--soft);border-radius:50%;width:38px;height:38px;font-size:20px}.card-list{margin-top:22px}.kb-card,.integration-card{display:grid;grid-template-columns:42px 1fr 30px;align-items:center;gap:10px;border-bottom:1px solid var(--line);padding:15px 0}.kb-card>button:nth-child(2){border:0;background:none;text-align:left;display:flex;flex-direction:column;gap:6px}.kb-card span,.integration-card code{font-size:10px;color:var(--muted);overflow:hidden;text-overflow:ellipsis}.kb-card>button:last-child,.integration-card>button{border:0;background:none;color:var(--red)}.file-symbol,.integration-card>div:first-child{width:38px;height:38px;display:grid;place-items:center;background:#f6e9e9;color:var(--red);border-radius:7px}.integration-card span{display:flex;min-width:0;flex-direction:column;gap:6px}.empty{text-align:center;color:var(--muted);padding:55px 20px;border:1px dashed var(--line);border-radius:9px}.empty span{font-size:11px}.upload-box{border:1px dashed #bf9c9e;border-radius:9px;padding:24px;text-align:center;margin:18px 0;background:#fdfafa}.upload-box input{display:none}.upload-box>div{display:flex;flex-direction:column;gap:7px;margin-bottom:15px}.upload-box span{font-size:10px;color:var(--muted)}.upload-progress{color:var(--red);font-size:11px;margin-top:15px}.doc-list article{display:grid;grid-template-columns:44px 1fr auto;gap:12px;align-items:center;border-bottom:1px solid var(--line);padding:14px 0}.file-type{font:700 9px ui-monospace;background:var(--soft);padding:10px 3px;text-align:center;border-radius:5px}.doc-list article>div:nth-child(2){display:flex;flex-direction:column;gap:5px;min-width:0}.doc-list b{font-size:12px;overflow:hidden;text-overflow:ellipsis}.doc-list span{font-size:10px;color:var(--muted)}.doc-list em{font-style:normal;color:var(--green)}.doc-list button{border:0;background:none;color:var(--red)}.modal{position:fixed;z-index:22;top:50%;left:50%;transform:translate(-50%,-50%);width:min(470px,calc(100% - 30px));max-height:85vh;overflow:auto;background:#fff;border-radius:12px;padding:30px;box-shadow:var(--shadow)}.modal-close{position:absolute;right:20px;top:20px}.modal h3{font:600 26px Georgia;margin:10px 45px 25px 0}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:25px}.file-list a{display:flex;justify-content:space-between;padding:16px 0;border-bottom:1px solid var(--line);color:inherit;text-decoration:none}.file-list span{color:var(--red)}
.admin-shell{height:100%;display:grid;grid-template-columns:260px 1fr}.admin-side nav{flex:1;padding:24px 12px}.admin-side nav button{width:100%;min-height:46px;border:0;border-radius:7px;background:none;color:#e9d5d5;text-align:left;padding:0 16px;margin:3px 0}.admin-side nav button.active{background:#fff;color:var(--red);font-weight:650}.admin-main{min-width:0;overflow:auto;background:#f6f2f0}.admin-main>header{height:105px;background:#fff;border-bottom:1px solid var(--line);padding:0 35px;display:flex;align-items:center;justify-content:space-between}.admin-main h1{font:600 27px Georgia;margin:5px 0}.admin-main>header>span{font-size:11px;color:var(--muted)}.admin-mobile{display:none}#adminContent{padding:28px 35px}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px}.metric-grid article{background:#fff;border:1px solid var(--line);padding:22px;border-radius:9px;display:flex;flex-direction:column}.metric-grid article.accent{background:var(--red);color:#fff}.metric-grid span{font-size:11px;color:var(--muted)}.metric-grid .accent span{color:#f0cccc}.metric-grid b{font:600 34px Georgia;margin:16px 0 7px}.metric-grid small{font-size:10px;opacity:.55}.admin-card{background:#fff;border:1px solid var(--line);border-radius:9px;padding:24px;margin-top:20px}.admin-card>header{display:flex;justify-content:space-between;margin-bottom:20px}.admin-card h2{font:600 22px Georgia;margin:5px 0}.bars>div{display:grid;grid-template-columns:220px 1fr 80px;align-items:center;gap:15px;padding:10px 0;font-size:11px}.bars i{height:8px;background:var(--soft);border-radius:5px;overflow:hidden}.bars em{display:block;height:100%;background:var(--red)}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:12px}th{text-align:left;color:var(--muted);font-size:10px;padding:12px;border-bottom:1px solid var(--line)}td{padding:14px 12px;border-bottom:1px solid var(--line);max-width:260px}td small{display:block;color:var(--muted);margin-top:4px}td button{border:1px solid var(--line);background:#fff;border-radius:6px;padding:6px 10px;color:var(--red)}td code{font-size:10px}.admin-columns{display:grid;grid-template-columns:1fr 1fr;gap:20px}.stat-row{display:flex;justify-content:space-between;padding:15px 0;border-bottom:1px solid var(--line)}.stat-row span{font-size:12px}.audit-messages article{border-left:2px solid var(--red);padding:5px 14px;margin:15px 0}.audit-messages p{line-height:1.6}.loading{text-align:center;padding:100px;color:var(--muted)}
@media(max-width:900px){.auth-shell{grid-template-columns:1fr}.auth-hero{display:none}.workspace{grid-template-columns:1fr}.sidebar,.admin-side{position:fixed;z-index:30;left:0;top:0;width:290px;height:100%;transform:translateX(-101%);transition:.2s}.admin-side.open{transform:none}.mobile-menu,.admin-mobile{display:block;border:0;background:none;font-size:20px;margin-right:14px}.topbar{padding:0 15px}.top-actions .service-state{display:none}.welcome{padding-top:6vh}.admin-shell{display:block}.admin-main>header{padding:0 18px}.admin-main>header>span{display:none}#adminContent{padding:18px}.metric-grid{grid-template-columns:1fr 1fr}.admin-columns{grid-template-columns:1fr}}@media(max-width:600px){.auth-card-wrap{padding:25px}.auth-logo img{width:230px}.prompt-grid{grid-template-columns:1fr}.welcome{width:calc(100% - 30px);padding-top:35px}.welcome-seal{width:64px;height:64px;font-size:40px}.welcome h1{font-size:31px}.topbar select{max-width:190px}.top-actions>button{display:none}.composer-shell{padding:8px}.messages{padding:15px}.drawer{padding:22px}.metric-grid{grid-template-columns:1fr}.message-actions{opacity:1}.bars>div{grid-template-columns:100px 1fr 50px}}
.auth-hero-footer{display:flex;align-items:center;gap:11px}.page-footer{margin-top:22px;text-align:center;color:#9a9091;font-size:11px;letter-spacing:.03em}.integration-section{margin-top:24px}.section-label{font:600 10px ui-monospace;color:var(--muted);letter-spacing:.12em;margin-bottom:9px}.template-grid{display:grid;gap:8px}.template-card{display:flex;justify-content:space-between;align-items:center;gap:12px;border:1px solid var(--line);background:#fff8f7;border-radius:9px;padding:13px}.template-card b{font-size:12px}.template-card p{font-size:10px;color:var(--muted);margin:5px 0 0}.template-card .secondary{min-height:32px;padding:0 10px;font-size:11px}.integration-card{grid-template-columns:42px 1fr auto auto}.integration-card>button{padding:5px}.modal-hint{color:var(--muted);font-size:12px;line-height:1.6}.check-row{display:flex!important;flex-direction:row!important;align-items:center;gap:10px!important;background:var(--soft);padding:11px;border-radius:7px;margin:8px 0!important}.check-row input{width:16px!important}.admin-shell{background:#efe9e7}.admin-side{background:linear-gradient(180deg,#650003,#420001)}.admin-main{background:#f5f1ef}.admin-main>header{box-shadow:0 3px 18px #42000608}.admin-card,.metric-grid article{box-shadow:0 8px 26px #42000609;border-color:#e5d8d6}.metric-grid article{min-height:142px}.metric-grid article.accent{background:linear-gradient(145deg,#8d0004,#b3131d)}.admin-footer{display:flex;justify-content:center;align-items:center;gap:9px;padding:17px 35px 24px;color:#948789;font-size:11px}
.status-pill{font-size:10px;color:var(--green);background:#e7f3ed;padding:5px 8px;border-radius:999px;white-space:nowrap}
.admin-main .template-card{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto auto;align-items:center;gap:10px}.admin-main .template-card>div{min-width:0}.admin-main .template-card p{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-main .template-card button{min-height:34px;padding:0 10px;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--red);white-space:nowrap}.admin-main .template-card button:hover{background:var(--soft)}
.upload-trigger{cursor:pointer}.upload-box.dragover{border-color:var(--red);background:#fff3f2}.upload-file-list{display:grid;gap:7px;margin:12px 0;text-align:left}.upload-file-list .empty{padding:15px;font-size:11px}.upload-file-row{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:9px;padding:9px;border:1px solid var(--line);border-radius:7px;background:#fff}.upload-file-row>div:nth-child(2){display:flex;min-width:0;flex-direction:column;gap:3px}.upload-file-row b{font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upload-file-row small,.upload-file-row em{font-size:10px;color:var(--muted);font-style:normal}.upload-file-row em{color:var(--red);white-space:nowrap}.upload-progress{display:grid;gap:7px}.progress-track{height:6px;background:#eadedf;border-radius:6px;overflow:hidden}.progress-track i{display:block;width:0;height:100%;background:var(--red);transition:width .2s ease}.progress-status{font-size:10px;color:var(--muted)}
.work-process{margin:6px 0 12px;padding:10px 13px;border:1px solid #eadcdb;border-left:3px solid var(--red);border-radius:8px;background:#fffaf9;color:#645a5b;font-size:12px}.work-process summary{cursor:pointer;font-weight:650;line-height:1.5}.work-process summary::marker{color:var(--red)}.work-process ol{margin:10px 0 0 20px;padding:0;display:grid;gap:7px;max-height:220px;overflow:auto}.work-process li{padding-left:2px;line-height:1.45;overflow-wrap:anywhere}.work-process li.done{color:#806e70}.work-process li:last-child:not(.done){color:var(--red);font-weight:650}.work-process.complete{background:#fbf9f7;border-left-color:#bb8f90}.work-process.complete summary{color:#685d5f}.markdown h1,.markdown h2,.markdown h3,.markdown h4{font-family:Georgia,"Songti SC",serif;line-height:1.35;margin:18px 0 8px}.markdown h1{font-size:23px}.markdown h2{font-size:20px}.markdown h3{font-size:17px}.markdown p{margin:0 0 10px}.markdown ul,.markdown ol{padding-left:22px;margin:7px 0 13px}.markdown li{margin:4px 0}.markdown blockquote{margin:10px 0;padding:8px 13px;border-left:3px solid #caa1a3;background:#fff8f7;color:#6f6364}.markdown pre{margin:12px 0;padding:13px;overflow:auto;border-radius:7px;background:#2d1d1e;color:#f8e9e9;font-size:12px}.markdown code{padding:2px 5px;border-radius:4px;background:#f1e7e6;font:12px ui-monospace,SFMono-Regular,monospace}.markdown pre code{padding:0;background:none}.math{font-family:"Times New Roman",serif;color:#4d292b;white-space:nowrap}.math-display{display:block;text-align:center;margin:14px 0;font-size:20px}.frac{display:inline-flex;vertical-align:middle;flex-direction:column;text-align:center;line-height:1.05;margin:0 3px}.frac>span:first-child{border-bottom:1px solid currentColor;padding:0 3px}.frac>span:last-child{padding:2px 3px 0}
@media(max-width:700px){.admin-main .template-card{grid-template-columns:minmax(0,1fr) auto auto}.admin-main .template-card>div{grid-column:1/-1}.admin-main .template-card button{font-size:11px}.upload-file-row{grid-template-columns:31px minmax(0,1fr)}.upload-file-row em{grid-column:2}}
.provenance{margin-top:14px;border:1px solid var(--line);background:#fafafa;padding:10px 12px;border-radius:8px}.provenance>summary{cursor:pointer;color:var(--red);font-weight:700}.source-list{display:grid;gap:8px;margin-top:10px}.source-item{border:1px solid var(--line);background:#fff;padding:8px 10px;border-radius:6px}.source-item summary{cursor:pointer;display:flex;gap:10px;align-items:center}.source-item summary span{color:var(--muted);font-size:12px}.source-content{margin-top:8px;padding:10px;border-left:3px solid var(--red);background:#fffdfb;max-height:260px;overflow:auto;font-size:13px}.source-item small{display:block;color:var(--muted);margin-top:6px}.generated-file{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:14px 0;border-bottom:1px solid var(--line)}.file-actions{display:flex;gap:14px}.file-actions a{color:var(--red);font-weight:700;text-decoration:none}.preview-pane{max-height:60vh;overflow:auto;border:1px solid var(--line);padding:18px;background:#fffdfb;border-radius:8px}
.doc-list article b{cursor:pointer}.doc-list article b:hover{color:var(--red)}
.side-brand div{min-width:0;flex:1}.side-brand b{font-size:11px;white-space:nowrap;letter-spacing:0;line-height:1.2}
/* Service health indicator states */
.service-state i{display:block;width:10px;height:10px;border-radius:50%;background:#9aa0a6}
.service-state.online i{background:#21a267;box-shadow:0 0 0 4px #21a26714}
.service-state.busy i{background:#d99a16;box-shadow:0 0 0 4px #d99a1614}
.service-state.fault i{background:#c62b32;box-shadow:0 0 0 4px #c62b3214}
/* The header health control is intentionally a signal light only. */
.service-state span{display:none}
.service-state{min-width:10px;width:10px;height:10px;gap:0}
@media(max-width:900px){.top-actions .service-state{display:block}}

@keyframes viz-rise{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
.admin-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:18px}.viz-drag:active{cursor:grabbing}.viz-composer button:disabled{opacity:.5;cursor:wait}button:focus-visible,select:focus-visible,a:focus-visible{outline:2px solid #b57633;outline-offset:3px}

/* Resizable, authenticated conversation workspace preview. */
.workspace{grid-template-columns:290px minmax(420px,1fr);transition:grid-template-columns .22s ease}
.workspace.preview-open{grid-template-columns:290px minmax(420px,1fr) minmax(340px,min(var(--preview-width),calc(100vw - 710px)))}
.file-launcher{position:relative}
.file-launcher>button{border:1px solid var(--line);background:#fff;border-radius:7px;padding:8px 12px}
.file-bubble{position:absolute;z-index:18;right:0;top:calc(100% + 12px);width:min(390px,calc(100vw - 28px));max-height:min(520px,70vh);overflow:auto;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 22px 60px #42000622}
.file-bubble:before{content:"";position:absolute;right:24px;top:-7px;width:12px;height:12px;background:#fff;border-left:1px solid var(--line);border-top:1px solid var(--line);transform:rotate(45deg)}
.file-bubble>header,.file-bubble>footer{position:sticky;z-index:1;background:#fff;display:flex;justify-content:space-between;align-items:center;padding:14px 16px}
.file-bubble>header{top:0;border-bottom:1px solid var(--line)}.file-bubble>footer{bottom:0;border-top:1px solid var(--line)}
.file-bubble>header small{color:var(--muted)}.file-bubble>footer button{border:0;background:none;color:var(--red);font-weight:650}
.bubble-files{padding:6px}.bubble-files>button{width:100%;display:grid;grid-template-columns:48px minmax(0,1fr);gap:10px;align-items:center;border:0;border-radius:6px;background:transparent;text-align:left;padding:9px}
.bubble-files>button:hover{background:var(--soft)}.bubble-files>button>span:last-child{min-width:0;display:flex;flex-direction:column;gap:4px}.bubble-files b{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bubble-files small{font-size:10px;color:var(--muted)}
.file-kind{height:34px;display:grid;place-items:center;border:1px solid #ddcfd0;color:var(--red);font:700 8px ui-monospace}.file-kind.web{background:var(--red);color:#fff;border-color:var(--red)}.bubble-empty{padding:45px 20px;text-align:center;color:var(--muted)}
.preview-panel{position:relative;min-width:0;height:100%;border-left:1px solid var(--line);background:#fff;display:grid;grid-template-rows:74px 1fr}.preview-panel>header{display:flex;align-items:center;justify-content:space-between;padding:0 16px 0 22px;border-bottom:1px solid var(--line)}
.preview-panel>header>div{min-width:0;display:flex;flex-direction:column;gap:5px}.preview-panel>header b{max-width:32vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.preview-panel>header>div:last-child{flex-direction:row;align-items:center;gap:4px}
.preview-panel>header a,.preview-panel>header button{width:34px;height:34px;display:grid;place-items:center;border:0;background:var(--soft);color:var(--ink);text-decoration:none;border-radius:6px}.preview-body{min-height:0;background:#f0ecea}.preview-body iframe{display:block;width:100%;height:100%;border:0;background:#fff}.preview-empty{height:100%;display:grid;place-items:center;color:var(--muted);font-size:12px}
.preview-resizer{position:absolute;z-index:3;left:-4px;top:0;width:8px;height:100%;cursor:col-resize}.preview-resizer:hover,.resizing-preview .preview-resizer{background:#96000120}.resizing-preview{cursor:col-resize;user-select:none}.resizing-preview iframe{pointer-events:none}
@media(max-width:1150px){.workspace.preview-open{grid-template-columns:290px 1fr}.preview-panel{position:fixed;z-index:19;right:0;top:0;width:min(var(--preview-width),calc(100vw - 60px));box-shadow:-15px 0 45px #42000620}}
@media(max-width:900px){.workspace,.workspace.preview-open{grid-template-columns:1fr}.preview-panel{width:100vw}.file-launcher>button{font-size:0}.file-launcher>button:first-letter{font-size:15px}}

.edge-form{display:grid;gap:16px}.edge-form label{display:grid;gap:7px;font-size:13px}.edge-form input{width:100%;padding:11px;border:1px solid var(--line);border-radius:6px}.edge-form button{padding:12px;background:var(--red);color:white;border:0;border-radius:6px}#edgeError{color:var(--red)}
.workspace-tabs{display:flex;gap:4px;margin-left:18px}.workspace-tabs button{border:0;background:transparent;color:var(--muted);min-height:32px;padding:6px 12px;border-bottom:2px solid transparent}.workspace-tabs button.active,.workspace-tabs button:hover{color:var(--red);border-bottom-color:var(--red);background:transparent}.modeling-toggle{display:flex;gap:8px;align-items:flex-start;margin-top:16px;color:var(--muted);font-size:12px}.modeling-toggle input{margin-top:3px}

/* Unified research and visualization workspace. */
.topbar>div.workspace-tabs{display:flex;flex-direction:row;align-items:center;gap:3px;margin:0 28px 0 10px;padding:3px;border:1px solid var(--line);border-radius:7px;background:var(--soft)}
.workspace-tabs button{min-height:30px;padding:5px 14px;border:0;border-radius:5px;background:transparent;color:var(--muted);font-size:12px;font-weight:600;letter-spacing:0;transition:background .18s ease,color .18s ease,box-shadow .18s ease}
.workspace-tabs button:hover{border-bottom-color:transparent;background:#fff;color:var(--red)}
.workspace-tabs button.active,.workspace-tabs button[aria-selected=true]{border-bottom-color:transparent;background:#fff;color:var(--red);box-shadow:0 1px 5px #42000612}
.workspace-tabs button:active{transform:translateY(1px)}
.topbar>div.workspace-tabs,.viz-top>.workspace-tabs{flex:0 0 auto;flex-wrap:nowrap;white-space:nowrap}
.workspace-tabs button{white-space:nowrap;flex:none;line-height:20px}
.admin-shell{grid-template-columns:260px minmax(0,1fr);transition:grid-template-columns .22s ease}
.admin-shell>.admin-side{width:260px;overflow:hidden;transform:translateX(0);transition:transform .22s ease,visibility .22s;min-height:0}
.admin-side nav{overflow-y:auto;min-height:0}
.admin-shell.sidebar-collapsed{grid-template-columns:0 minmax(0,1fr)}
.admin-shell.sidebar-collapsed>.admin-side{transform:translateX(-100%);visibility:hidden;pointer-events:none}
.admin-shell .admin-mobile{display:none;white-space:nowrap;font-size:13px;border:1px solid var(--line);background:#fff;border-radius:5px;padding:8px 10px}
.admin-shell.sidebar-collapsed .admin-mobile{display:block}
#conversationList{position:relative}
.project-drag-handle{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:30px;height:36px;border:0;border-radius:4px;background:transparent;color:#e6c9ca;cursor:grab;touch-action:none;font-size:24px;line-height:1}
.project-drag-handle:hover,.project-drag-handle:focus-visible{background:#ffffff25;color:#fff}
.project-drag-placeholder{opacity:.3;outline:1px dashed #dfb8ba;background:#ffffff12;border-radius:5px}
.project-drag-ghost{position:fixed!important;z-index:60;pointer-events:none;background:#720006;box-shadow:0 12px 28px #0005;color:#fff;border-radius:6px;opacity:.96}
.project-drag-ghost .platform-side-item{color:#fff;border:0;background:transparent;padding:14px 40px 14px 16px;width:100%;text-align:left}
@media(max-width:900px){.admin-shell{display:grid;grid-template-columns:0 minmax(0,1fr)}.admin-shell>.admin-side{position:fixed;height:100dvh;z-index:30}.admin-shell .admin-mobile{display:none}.admin-main{grid-column:2}}
@media(prefers-reduced-motion:reduce){.admin-shell,.admin-shell>.admin-side,.agent-control>summary i{transition:none}}
.model-control{display:flex;flex-direction:column;gap:3px;min-width:0}
.model-control select{max-width:270px;text-overflow:ellipsis}
.agent-control{position:relative;flex:0 0 auto}
.agent-control>summary{height:36px;min-width:164px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;padding:0 10px;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--muted);cursor:pointer;list-style:none}
.agent-control>summary::-webkit-details-marker{display:none}
.agent-control>summary span{font-size:9px;color:var(--red);font-weight:700}
.agent-control>summary b{max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink);font-size:11px;font-weight:650}
.agent-control>summary i{display:grid;place-items:center;width:16px;height:16px;line-height:0;transform-origin:50% 50%;font-style:normal;transition:transform .16s ease}
.agent-control>summary i svg{display:block;width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.agent-control[open]>summary{border-color:#c8a8aa;background:#fcf8f7}
.agent-control[open]>summary i{transform:rotate(180deg)}
.agent-control-menu{position:absolute;z-index:40;left:0;top:43px;width:280px;display:grid;gap:12px;padding:14px;border:1px solid #d8cccd;border-radius:7px;background:#fff;box-shadow:0 18px 48px #42000620}
.agent-control-menu label{display:grid;grid-template-columns:76px minmax(0,1fr);align-items:center;gap:8px;color:var(--muted);font-size:10px}
.agent-control-menu select{width:100%;min-width:0;height:36px;padding:0 9px;border:1px solid var(--line);border-radius:5px;background:#fff;color:var(--ink);font-size:12px;outline:none}
.agent-control-menu select:focus{border-color:#a85c60;box-shadow:0 0 0 3px #9600010d}
.agent-control-menu small{padding-top:2px;border-top:1px solid var(--line);color:#95898b;font-size:9px;line-height:1.6}
.workspace-mode-canvas .chat-main{grid-template-rows:74px minmax(0,1fr)}
.workspace-mode-canvas .top-actions .file-launcher{display:none}

/* Visualization project index. */
.viz-library{min-height:100%;width:min(1180px,calc(100% - 56px));margin:0 auto;padding:54px 0 28px;color:var(--ink)}
.viz-library-head{display:flex;align-items:flex-end;justify-content:space-between;gap:36px;padding-bottom:34px;border-bottom:1px solid var(--line)}
.viz-library-head>div{max-width:720px}
.viz-library-head h1{margin:10px 0 12px;font:600 clamp(30px,3.4vw,48px)/1.22 Georgia,"Songti SC",serif;letter-spacing:0;text-wrap:balance}
.viz-library-head p{max-width:650px;margin:0;color:var(--muted);font-size:14px;line-height:1.8;text-wrap:pretty}
.viz-library-head .primary{display:flex;align-items:center;gap:18px;white-space:nowrap}
.viz-library-head .primary span{font-size:19px;font-weight:400}
.viz-master-entry{display:grid;grid-template-columns:58px minmax(0,1fr) auto;align-items:center;gap:26px;margin:32px 0 46px;padding:25px 26px;border-left:3px solid var(--red);background:#f3eeec}
.viz-master-index{align-self:start;color:#b8aaab;font:600 13px ui-monospace,SFMono-Regular,monospace;font-variant-numeric:tabular-nums}
.viz-master-entry h2{margin:7px 0 7px;font:600 22px Georgia,"Songti SC",serif;letter-spacing:0}
.viz-master-entry p{max-width:680px;margin:0;color:var(--muted);font-size:12px;line-height:1.75}
.viz-master-entry .secondary{display:flex;align-items:center;gap:20px;white-space:nowrap;background:#fff}
.viz-master-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.viz-master-tags span{padding:5px 8px;border:1px solid #ded3d3;border-radius:4px;background:#fbf9f7;color:#655b5d;font-size:10px}
.viz-projects>header{display:flex;align-items:end;justify-content:space-between;margin-bottom:16px}
.viz-projects h2{margin:7px 0 0;font:600 24px Georgia,"Songti SC",serif;letter-spacing:0}
.viz-projects>header>span{color:var(--muted);font-size:11px}
.viz-project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.viz-project-grid article{min-width:0}
.viz-project-grid article>button{width:100%;display:grid;grid-template-columns:120px minmax(0,1fr) 28px;align-items:center;gap:17px;padding:13px;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--ink);text-align:left;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}
.viz-project-grid article>button:hover{border-color:#c6a9aa;box-shadow:0 12px 30px #4200060c;transform:translateY(-2px)}
.viz-project-grid article>button:active{transform:translateY(0)}
.viz-project-preview{height:72px;display:grid;grid-template-columns:1.2fr .8fr;grid-template-rows:22px 1fr;gap:5px;padding:7px;border:1px solid #e5dddd;border-radius:5px;background:#f6f3f1}
.viz-project-preview i{display:block;border-radius:2px;background:#dfd6d4}
.viz-project-preview i:first-child{grid-column:1/-1;background:#8d0004}
.viz-project-preview i:nth-child(2){grid-row:2;background:#fff;border:1px solid #e7dfe0}
.viz-project-preview i:nth-child(3),.viz-project-preview i:nth-child(4){background:#e9e2df}
.viz-project-copy{min-width:0;display:flex;flex-direction:column;gap:7px}
.viz-project-copy b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}
.viz-project-copy small{color:var(--muted);font-size:10px}
.viz-project-arrow{color:var(--red);font-size:17px}
.viz-library-empty{min-height:210px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:11px;border:1px dashed #cdbebf;background:#fff;color:var(--muted);text-align:center}
.viz-library-empty b{color:var(--ink);font:600 20px Georgia,"Songti SC",serif}
.viz-library-empty span{max-width:560px;font-size:12px;line-height:1.7}
.viz-library-empty button{margin-top:7px;border:0;background:none;color:var(--red);font-weight:650}
.viz-library>footer{margin-top:34px;padding-top:17px;border-top:1px solid var(--line);color:#9a9091;font-size:10px;text-align:right}
.viz-template-library{margin:30px 0 38px;padding:22px 24px 20px;border:1px solid var(--line);background:#fff;box-shadow:0 10px 30px #42000608}
.viz-template-library>header{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;padding-bottom:16px;border-bottom:1px solid var(--line)}
.viz-template-library h2{margin:5px 0 4px;font:600 22px Georgia,"Songti SC",serif;letter-spacing:0}.viz-template-library>header p{margin:0;color:var(--muted);font-size:11px;line-height:1.6}
.viz-template-library .domain-template-grid{padding-top:16px}
.domain-template-grid .template-resource-type{color:var(--red);font-size:9px;letter-spacing:.04em;text-transform:uppercase}
.domain-template-grid>button b{font-size:14px}
.user-template-row{display:grid;grid-template-columns:150px minmax(0,1fr);gap:16px;align-items:start;margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}
.user-template-row h3{margin:4px 0 0;font:600 15px Georgia,"Songti SC",serif}.user-template-row .user-template-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
.master-drawer{width:min(1180px,calc(100% - 32px));padding:22px}
.master-drawer .drawer-head{margin-bottom:14px;padding-bottom:14px}
.master-template-tabs{display:flex;gap:7px;flex-wrap:wrap;margin:0 0 14px;padding:0 0 12px;border-bottom:1px solid var(--line)}
.master-template-tab{min-height:34px;padding:7px 12px;border:1px solid var(--line);border-radius:999px;background:var(--soft);color:var(--muted);font-size:11px;cursor:pointer}
.master-template-tab:hover,.master-template-tab.active{border-color:var(--red);background:#fff8f7;color:var(--red)}
.master-frame{display:block;width:100%;height:calc(100dvh - 126px);border:1px solid var(--line);background:#f3f6fb}
.visualization-setup{display:grid;gap:12px;margin-top:22px}
.visualization-setup>div{padding:15px 16px;border-left:3px solid var(--red);background:var(--soft)}
.visualization-setup>div b,.modeling-toggle b{display:block;margin-bottom:5px;color:var(--ink);font-size:13px}
.visualization-setup>div span,.modeling-toggle small{display:block;color:var(--muted);font-size:11px;line-height:1.6}
.visualization-setup .modeling-toggle{margin:0;padding:14px 16px;border:1px solid var(--line);border-radius:6px;background:#fff;cursor:pointer}
.visualization-setup .modeling-toggle>span{min-width:0}

/* Unified visualization editor shell. */
.viz-shell{height:100dvh;min-height:100dvh;position:relative;overflow:hidden;background:#eeebe8;color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif}
.viz-top{height:74px;min-width:0;display:flex;align-items:center;gap:20px;padding:0 22px;border-bottom:1px solid var(--line);background:#fff;color:var(--ink);box-shadow:0 3px 16px #42000608;overflow:clip;contain:layout paint}
.viz-brand{min-width:260px;display:flex;align-items:center;gap:10px}
.viz-brand img{width:82px;height:auto}
.viz-brand>span{padding-left:10px;border-left:1px solid var(--line);font-size:11px;font-weight:650;white-space:nowrap}
.viz-back{width:32px;height:32px;display:grid;place-items:center;padding:0;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--red);font-size:17px}
.viz-back:hover{background:var(--soft)}
.viz-top>.workspace-tabs{flex-shrink:0;margin:0}
.viz-project-title{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:8px;margin-left:2px}
.viz-project-title>span{grid-column:1/-1;color:var(--muted);font-size:9px}
.viz-project-title>b{max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}
.viz-permission{padding:3px 6px;border-radius:4px;background:#fff3df;color:#90600b;font-size:9px;white-space:nowrap}
.viz-permission.allowed{background:#e7f3ed;color:var(--green)}
.viz-toolbar{min-width:0;max-width:100%;flex:1 1 0;display:flex;align-items:center;justify-content:flex-end;gap:4px;margin-left:auto;overflow-x:auto;overflow-y:hidden;white-space:nowrap}
.viz-tool-button{flex:0 0 auto}
.viz-top>.agent-control{min-width:0;flex:0 1 auto}
.viz-top>.agent-control>summary{min-width:142px}
.viz-top>.agent-control>summary b{max-width:145px}
.viz-top>.agent-control-menu{left:auto;right:0}
.viz-tool-button{height:34px;display:flex;align-items:center;gap:6px;padding:0 9px;border:1px solid transparent;border-radius:6px;background:transparent;color:#62585a;font-size:11px;transition:background .18s ease,color .18s ease,border-color .18s ease}
.viz-tool-button span{color:var(--red);font-size:15px}
.viz-tool-button b{font-size:11px;font-weight:600;white-space:nowrap}
.viz-tool-button i{min-width:17px;height:17px;display:grid;place-items:center;border-radius:4px;background:var(--soft);font:normal 9px ui-monospace,SFMono-Regular,monospace}
.viz-tool-button:hover,.viz-tool-button.active{border-color:#dfd1d1;background:#f7f2f1;color:var(--red)}
.viz-canvas{position:absolute;inset:74px 0 0;display:grid;place-items:center;padding:22px 22px 132px;background:#eeebe8}
.viz-canvas:has(.modeling-panel){inset:74px 0 0;padding:22px 22px 132px}
.viz-frame{display:block;width:100%;height:100%;border:1px solid #d9d1cf;border-radius:6px;background:#fff;box-shadow:0 12px 42px #42000610!important}
.viz-empty{width:min(760px,calc(100% - 32px));padding:50px 38px;border:1px dashed #cdbebf;border-radius:7px;background:#f7f4f2;text-align:center;animation:viz-rise .5s cubic-bezier(.32,.72,0,1)}
.viz-mark{width:58px;height:58px;margin:0 auto 24px;display:grid;place-items:center;border:1px solid #b98e90;border-radius:4px;color:var(--red);font:600 32px Georgia,"Songti SC",serif;transform:none}
.viz-empty h2{margin:14px 0 10px;font:600 clamp(28px,3vw,42px) Georgia,"Songti SC",serif;letter-spacing:0;text-wrap:balance}
.viz-empty p{margin:0 auto 24px;color:var(--muted);font-size:12px;line-height:1.8}
.viz-empty p span{display:inline-block;margin:9px 7px 0;color:#675b5d;font:600 10px ui-monospace,SFMono-Regular,monospace}
.viz-primary{display:inline-flex;align-items:center;gap:14px;padding:10px 11px 10px 17px;border:0;border-radius:7px;background:var(--red);color:#fff;font-weight:650;box-shadow:none}
.viz-primary b{width:24px;height:24px;display:grid;place-items:center;border-radius:5px;background:#ffffff20;font-size:16px}
.viz-primary:hover{background:#760001;transform:translateY(-1px)}
.viz-empty.drag-over{outline:2px solid var(--red);outline-offset:5px;background:#fff6f5}
.viz-tool-panel{position:absolute;z-index:8;right:16px;top:86px;width:min(460px,calc(100% - 32px));height:calc(100dvh - 102px);display:grid;grid-template-rows:62px minmax(0,1fr);overflow:hidden;border:1px solid #d8cccd;border-radius:8px;background:#fff;color:var(--ink);box-shadow:0 22px 64px #42000620}
.viz-tool-panel>header{display:flex;align-items:center;justify-content:space-between;padding:0 16px 0 20px;border-bottom:1px solid var(--line)}
.viz-tool-panel>header>div{display:flex;flex-direction:column;gap:4px}
.viz-tool-panel>header b{font-size:13px}
.viz-tool-panel>header button{width:34px;height:34px;border:0;border-radius:6px;background:var(--soft);color:var(--ink);font-size:18px}
.viz-tool-view{min-height:0;overflow:auto;padding:20px}
.viz-panel-intro{display:flex;align-items:start;justify-content:space-between;gap:18px;margin-bottom:19px}
.viz-panel-intro h2{margin:0 0 7px;font:600 20px Georgia,"Songti SC",serif;letter-spacing:0}
.viz-panel-intro p{margin:0;color:var(--muted);font-size:11px;line-height:1.7}
.viz-panel-intro .secondary{min-height:34px;white-space:nowrap}
.viz-tool-panel .viz-files{position:static;display:grid;gap:6px;max-width:none;overflow:visible;color:var(--ink)}
.viz-tool-panel .viz-files>span{padding:8px 2px;color:var(--muted);font-size:9px;letter-spacing:0}
.viz-tool-panel .viz-file-item{display:grid;grid-template-columns:minmax(0,1fr) 34px;align-items:center;gap:5px}
.viz-tool-panel .viz-files button{width:100%;min-width:0;max-width:none;display:flex;flex-direction:column;gap:4px;padding:11px 12px;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--ink);box-shadow:none;text-align:left}
.viz-tool-panel .viz-files button:hover{border-color:#c6a9aa;background:#fcf8f7;transform:none}
.viz-tool-panel .viz-files b{font-size:11px}
.viz-tool-panel .viz-files small{color:var(--muted);font-size:9px}
.viz-tool-panel .viz-file-item a{height:34px;display:grid;place-items:center;padding:0;border-radius:5px;background:var(--soft);color:var(--red);text-decoration:none}
.viz-tool-panel .modeling-panel{position:static!important;max-width:none!important;border:0!important;border-radius:0!important;background:#fff!important;color:var(--ink)!important;box-shadow:none!important}
.viz-tool-panel .modeling-body{max-height:none;padding:0;gap:12px;color:var(--ink)}
.viz-tool-panel .modeling-body label{margin:0;color:var(--ink);font-size:11px}
.viz-tool-panel .modeling-body select{background:#fff;color:var(--ink);border-color:var(--line)}
.viz-tool-panel .modeling-body button{border-radius:6px;background:var(--red)}
.viz-tool-panel .modeling-body p{color:var(--muted)}
.canvas-kit-frame{display:block;width:100%;height:calc(100% - 94px);min-height:560px;border:1px solid var(--line);background:#f3f6fb}
.viz-tool-panel .viz-history{position:static!important;width:auto!important;max-width:none;border:0;border-radius:0;background:#fff;color:var(--ink);box-shadow:none}
.viz-tool-panel .viz-history summary{padding:0 0 14px;color:var(--red);font-size:12px}
.viz-tool-panel .viz-history #vizMessages{max-height:none!important;overflow:visible;padding:0!important}
.viz-history-message{padding:15px 0;border-top:1px solid var(--line);color:var(--ink);font-size:12px;line-height:1.7}
.viz-history-message>b{color:var(--red);font-size:10px}
.viz-history-message.user{color:var(--muted)}
.viz-history .markdown{color:var(--ink)}
.viz-composer{position:absolute;z-index:7;left:50%;bottom:22px;transform:translateX(-50%);width:min(800px,calc(100% - 40px));display:grid;grid-template-columns:auto auto minmax(0,1fr) auto auto;align-items:center;gap:8px;padding:12px 13px 10px;border:1px solid #d1c4c5;border-radius:8px;background:#fff;color:var(--ink);box-shadow:0 18px 50px #4200061f}
.viz-drag{padding:7px 5px;color:#b69fa1;cursor:grab;font-size:16px;letter-spacing:-4px;touch-action:none;user-select:none}
.viz-mode{display:flex;padding:3px;border:1px solid var(--line);border-radius:6px;background:var(--soft)}
.viz-mode button{padding:6px 10px;border:0;border-radius:4px;background:transparent;color:var(--muted);font-size:10px}
.viz-mode button.active{background:var(--red);color:#fff}
.viz-composer textarea,.viz-composer textarea:disabled{min-width:0;width:100%;min-height:37px;padding:8px 4px;border:0;outline:0;resize:none;background:transparent;color:var(--ink);font-size:13px;line-height:1.5}
.viz-composer textarea::placeholder{color:#9a8d8f}
.viz-icon,.viz-send{width:35px;height:35px;display:grid;place-items:center;border:0;border-radius:6px;background:var(--soft);color:var(--red);font-size:18px}
.viz-send{background:var(--red);color:#fff}
.viz-icon:hover,.viz-send:hover{transform:translateY(-1px)}
.viz-attached{position:absolute;left:14px;right:14px;top:-24px;overflow:hidden;color:#756b6d;font-size:9px;text-overflow:ellipsis;white-space:nowrap}
.viz-hint{position:absolute;left:14px;bottom:-17px;color:#897d7f;font-size:9px}
.viz-credit{position:absolute;right:13px;bottom:3px;color:#948789;font-size:9px}

@media(max-width:1100px){
  .viz-brand{min-width:auto}.viz-brand>span{display:none}.viz-project-title{display:none}.viz-top{gap:10px}.viz-toolbar{gap:1px}.viz-tool-button b{display:none}.viz-tool-button.viz-publish-button b{display:inline}.viz-tool-button{padding:0 9px}.viz-library{width:calc(100% - 36px)}
}
@media(max-width:760px){
  .topbar>div.workspace-tabs{margin:0 8px 0 0}.workspace-tabs button{padding:5px 9px}.model-control{display:none}.agent-control>summary{min-width:58px;width:auto;grid-template-columns:auto auto;padding:0 9px}.agent-control>summary span{display:inline}.agent-control>summary b{display:none}.agent-control-menu{position:fixed;left:12px;right:12px;top:66px;width:auto}.workspace-mode-canvas .top-actions{margin-left:auto}
  .viz-library{width:calc(100% - 28px);padding-top:30px}.viz-library-head{align-items:start;flex-direction:column;gap:20px}.viz-library-head h1{font-size:30px}.viz-master-entry{grid-template-columns:38px minmax(0,1fr);gap:14px;padding:20px 16px}.viz-master-entry>button{grid-column:2;width:max-content}.viz-project-grid{grid-template-columns:1fr}.viz-project-grid article>button{grid-template-columns:96px minmax(0,1fr) 20px}.viz-project-preview{height:62px}
  .viz-shell{width:100%;max-width:100vw;overflow:hidden}.viz-top{width:100%;max-width:100vw;height:64px;padding:0 10px;overflow:hidden}.viz-brand img{display:none}.viz-top>.workspace-tabs{margin:0}.viz-top>.agent-control{margin-left:auto}.viz-top>.agent-control>summary{min-width:58px;width:auto}.viz-toolbar{width:0;min-width:0;max-width:100%;flex:1 1 0;margin-left:0;overflow-x:auto;overflow-y:hidden;justify-content:start;contain:inline-size}.viz-canvas,.viz-canvas:has(.modeling-panel){inset:64px 0 0;padding:10px 8px 148px}.viz-frame{border-radius:4px}.viz-empty{padding:38px 18px}.viz-empty h2{font-size:29px}.viz-tool-panel{top:72px;right:8px;width:calc(100% - 16px);height:calc(100dvh - 80px)}.viz-composer{bottom:20px;width:calc(100% - 16px);grid-template-columns:auto minmax(0,1fr) auto auto;padding:10px}.viz-mode{grid-column:1/-1;justify-self:start}.viz-drag{grid-row:2}.viz-composer textarea{grid-row:2;font-size:16px}.viz-hint{left:8px}.viz-credit{bottom:1px;font-size:8px}.master-drawer{width:100%;padding:14px}.master-frame{height:calc(100dvh - 112px)}
}

/* Keep the workspace fixed while each working surface owns its scroll. */
.workspace{height:100dvh;min-height:0;overflow:hidden}
.sidebar,.chat-main{min-height:0;overflow:hidden}
#conversationList{min-height:0}
.chat-main{grid-template-rows:74px minmax(0,1fr) auto}
.workspace-mode-chat #content{min-height:0;margin:16px 22px 0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:0 8px 30px #42000608}
.workspace-mode-chat .welcome{padding-top:clamp(30px,5vh,54px)}
.workspace-mode-chat .welcome-seal{width:66px;height:66px;margin-bottom:18px;font-size:42px}
.workspace-mode-chat .welcome-seal span{font-size:7px}
.workspace-mode-chat .welcome h1{max-width:900px;margin:12px 0 9px;font-size:clamp(27px,2.6vw,32px);line-height:1.35;text-wrap:balance}
.workspace-mode-chat .welcome>p{max-width:620px;margin:0 0 26px;font-size:14px;line-height:1.7}
.workspace-mode-chat .prompt-grid{gap:10px}
.workspace-mode-chat .prompt-grid button{min-height:108px;padding:16px;gap:6px}
.workspace-mode-chat .messages{padding-bottom:34px}
.workspace-mode-chat .composer-shell{position:relative;z-index:2;flex:0 0 auto}

/* The supplied CUEB artwork is white, so white surfaces use a restrained red mount. */
.auth-logo{display:inline-flex;width:max-content;max-width:100%;margin-bottom:22px;padding:12px 16px;border-radius:6px;background:#650003}
.auth-logo img{display:block;width:min(270px,100%);height:auto}
.viz-brand img{width:92px;height:auto;padding:7px 8px;border-radius:4px;background:#650003}

/* Decorative login glyph stays behind copy and uses a dark-red tonal layer. */
.auth-hero:after{right:-3vw;bottom:-12vh;z-index:0;color:#470002;opacity:.48;font-size:clamp(330px,38vw,700px);line-height:.78;pointer-events:none;user-select:none}
.auth-brand,.auth-statement,.auth-hero-footer{position:relative;z-index:1}

@media(max-width:900px){
  .workspace-mode-chat #content{margin:10px 10px 0}
}
@media(prefers-reduced-motion:reduce){.viz-project-grid article>button,.viz-primary,.viz-icon,.viz-send{transition:none!important}}

/* Reserve the editor workspace when a desktop tool panel is open. */
.viz-empty .kicker{color:var(--red)}
.viz-shell.tool-panel-open .viz-canvas{right:492px}
.viz-shell.tool-panel-open .viz-composer{left:calc((100% - 492px)/2);width:min(800px,calc(100% - 532px))}

@media(max-width:760px){
  .auth-logo img{width:min(230px,100%);height:auto}
  .viz-shell.tool-panel-open .viz-canvas{right:0}
  .viz-shell.tool-panel-open .viz-composer{left:50%;width:calc(100% - 16px)}
}

/* Publishing is the primary hand-off action for a finished visualization. */
.viz-publish-button{border-color:#d9b8ba;background:#fff8f7;color:var(--red)}
.viz-publish-button:hover{border-color:#b98e90;background:#f7e9e9}
.viz-publish-view{display:block;overflow:auto}
.publish-readonly-badge{flex:0 0 auto;padding:5px 8px;border:1px solid #c9dfd0;border-radius:999px;background:#eff8f1;color:var(--green);font-size:9px;white-space:nowrap}
.publish-form{display:grid;gap:12px;padding:15px;border:1px solid var(--line);border-radius:7px;background:#fcfaf9}
.publish-form label{display:grid;grid-template-columns:76px minmax(0,1fr);align-items:center;gap:10px;color:var(--muted);font-size:10px}
.publish-form select{min-width:0;height:36px;padding:0 9px;border:1px solid var(--line);border-radius:5px;background:#fff;color:var(--ink);font-size:12px}
.publish-form .primary{width:max-content;min-height:36px;padding:0 13px;border-radius:6px;font-size:11px}
.publish-form .primary span{margin-left:8px;font-size:15px}
.publish-result{display:grid;gap:10px;margin-top:12px;padding:15px;border:1px solid #c9dfd0;border-radius:7px;background:#f5fbf6}
.publish-result>label{display:grid;gap:7px;color:var(--muted);font-size:10px}
.publish-link-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px}
.publish-link-row input{min-width:0;height:36px;padding:0 9px;border:1px solid #c9dfd0;border-radius:5px;background:#fff;color:var(--ink);font:11px ui-monospace,SFMono-Regular,monospace}
.publish-link-row input.unavailable{color:#7c7072;background:#f4f1ef;font-family:inherit;font-style:italic}
.publish-link-row .secondary{min-height:36px;padding:0 12px;border-color:#b8d5bf;color:var(--green);font-size:11px}
.publish-link-row .secondary:disabled{opacity:.5;cursor:not-allowed}
.publish-status{margin:0;color:var(--green);font-size:10px;line-height:1.6}
.publish-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.publish-actions .secondary{display:inline-flex;align-items:center;min-height:34px;padding:0 11px;border-color:#b8d5bf;color:var(--green);text-decoration:none;font-size:10px}
.publish-actions .secondary.disabled{pointer-events:none;opacity:.5}
.publish-actions .text-button{min-height:34px;padding:0 5px;color:var(--red);font-size:10px}
.publish-actions .text-button:disabled{opacity:.4;cursor:not-allowed}
.publish-pet-mount{min-height:72px;margin-top:15px;padding-top:10px;border-top:1px dashed var(--line);display:flex;align-items:center;justify-content:flex-end;gap:8px;color:#aa9a9c;font-size:9px}
.publish-pet-mount .cueb-research-robot{display:grid;place-items:center;width:58px;height:58px;animation:publish-pet-float 2.8s ease-in-out infinite;filter:drop-shadow(0 8px 14px #42000624);transform-origin:50% 80%}
.publish-pet-mount .cueb-research-robot img{display:block;width:100%;height:100%;object-fit:contain}
.publish-pet-mount .cueb-research-robot:hover{animation-duration:1.6s}
@keyframes publish-pet-float{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-4px) rotate(1deg)}}
.publish-pet-mount img{width:46px;height:46px;object-fit:contain;filter:drop-shadow(0 6px 10px #4200061c)}
.publish-pet-mount span{padding:4px 7px;border:1px solid #e4d8d9;border-radius:999px;background:#fff;color:#a8989a}
.viz-published-banner{position:absolute;z-index:10;top:86px;left:50%;display:flex;align-items:center;gap:14px;transform:translateX(-50%);padding:7px 9px 7px 12px;border:1px solid #c9dfd0;border-radius:999px;background:#f3fbf4eF;color:var(--green);box-shadow:0 8px 24px #214e2b18;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);font-size:10px}
.viz-published-banner>span{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.viz-published-banner i{width:7px;height:7px;border-radius:50%;background:#2f8b55;box-shadow:0 0 0 3px #2f8b5520}
.viz-published-banner button{min-height:26px;padding:0 9px;border:1px solid #b8d5bf;border-radius:999px;background:#fff;color:var(--green);font-size:10px}
.viz-published-banner button:hover{background:#eff8f1}
.viz-shell.published-preview .viz-composer{display:none}
.viz-shell.published-preview .viz-toolbar>[data-viz-tool]{display:none}
.viz-shell.published-preview .viz-toolbar #vizPublish{display:flex}
.viz-shell.published-preview .viz-canvas{inset:74px 0 0;padding:22px;background:#eeebe8}
.viz-shell.published-preview .viz-frame{box-shadow:0 12px 42px #214e2b12!important}
@media(prefers-reduced-motion:reduce){.publish-pet-mount .cueb-research-robot{animation:none}}
@media(max-width:760px){
  .viz-published-banner{top:72px;max-width:calc(100% - 16px);width:max-content}
  .viz-shell.published-preview .viz-canvas{inset:64px 0 0;padding:10px 8px}
  /* A desktop drag can leave an inline left coordinate for one layout frame
     while the viewport changes. Keep the mobile composer inside the shell in
     that first frame; its vertical drag position remains available. */
  .viz-shell .viz-composer{left:8px!important;right:auto!important;transform:none!important;width:calc(100% - 16px)!important}
  .publish-form label{grid-template-columns:1fr;gap:6px}
  .publish-form .primary{width:100%;justify-content:center}
}
/* Showcase template library and safe custom-template preview. */
.viz-domain-templates{margin:26px 0 34px;padding:22px 24px;border:1px solid var(--line);background:#fff;box-shadow:0 10px 30px #42000608}
.viz-domain-templates>header{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;padding-bottom:16px;border-bottom:1px solid var(--line)}
.viz-domain-templates h2{margin:5px 0 4px;font:600 22px Georgia,"Songti SC",serif}.viz-domain-templates p{margin:0;color:var(--muted);font-size:11px;line-height:1.6}
.domain-template-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding-top:14px}
.domain-template-grid>button{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:7px;min-height:104px;padding:15px;text-align:left;border:1px solid var(--line);background:#fffaf9;color:var(--ink);transition:.2s ease;cursor:pointer}
.domain-template-grid>button:hover{transform:translateY(-2px);border-color:#b98d8f;box-shadow:0 10px 24px #42000610}.domain-template-grid b{font-size:13px}.domain-template-grid span{color:var(--muted);font-size:10px;line-height:1.5}.domain-template-grid i{position:absolute;right:13px;top:12px;color:var(--red);font-style:normal}
.user-template-cards{display:grid;gap:7px;min-width:0}.user-template-card{display:grid;grid-template-columns:1fr 28px;align-items:center;gap:4px;border:1px dashed #cdbebf;background:#fff;padding:9px 10px}.user-template-card button:first-child{display:flex;min-width:0;flex-direction:column;gap:4px;text-align:left;border:0;background:none;color:inherit}.user-template-card span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-template-card button:last-child{border:0;background:none;color:var(--red);font-size:17px}.template-empty,.template-loading{display:block;padding:14px 8px;border:1px dashed var(--line);color:var(--muted);font-size:10px;text-align:center}
.template-upload-preview{display:block;width:100%;height:min(58vh,520px);border:1px solid var(--line);background:#fff}
@media(max-width:1120px){.domain-template-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.viz-domain-templates{padding:18px 15px}.viz-domain-templates>header{align-items:flex-start;flex-direction:column}.viz-template-library{padding:18px 15px}.viz-template-library>header{align-items:flex-start;flex-direction:column}.domain-template-grid{grid-template-columns:1fr}.domain-template-grid>button{min-height:82px}.user-template-row{grid-template-columns:1fr;gap:8px}.user-template-row .user-template-cards{grid-template-columns:1fr}}
/* Compact integration summaries: detailed configuration stays opt-in. */
.integration-summary-line,.integration-template-meta{display:block;color:var(--muted);font-size:10px;line-height:1.45;margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.integration-template-meta{color:var(--red);font-size:9px}.integration-details{margin-top:7px;font-size:10px}.integration-details summary{cursor:pointer;color:var(--red);list-style:none;user-select:none}.integration-details summary::-webkit-details-marker{display:none}.integration-details summary:before{content:'＋ ';font-size:11px}.integration-details[open] summary:before{content:'− '}.integration-details dl{display:grid;gap:4px;margin:7px 0 0;padding:8px 9px;border:1px solid var(--line);border-radius:6px;background:#fcfaf9}.integration-details dl div{display:grid;grid-template-columns:55px 1fr;gap:8px}.integration-details dt{color:var(--muted)}.integration-details dd{margin:0;color:var(--ink);overflow-wrap:anywhere}.integration-actions{display:flex;gap:7px;margin-top:7px}.integration-actions button{border:1px solid var(--line);border-radius:5px;background:#fff;padding:6px 8px;color:var(--red);font-size:10px;transition:border-color .2s ease,background .2s ease,transform .2s ease}.integration-actions button:hover{border-color:#b98d8f;background:var(--soft)}.integration-actions button:active{transform:translateY(1px)}.integration-table-summary{display:block;max-width:220px;color:var(--muted);font-size:10px;white-space:normal}.table-wrap .integration-details{min-width:150px}.table-wrap .integration-details dl{background:#fff}.template-card>div{min-width:0}
.template-card .secondary:disabled{border-color:#ddd3d3;background:#f4f1f0;color:#9a9091;cursor:not-allowed;transform:none}

/* Keep the platform credit in one quiet, fixed badge across every app surface. */
.stario-badge-bar{position:fixed!important;z-index:18;left:0;right:0;bottom:0;transform:none;display:flex;align-items:center;justify-content:center;gap:10px;width:100%;max-width:none;min-height:30px;padding:7px 24px calc(7px + env(safe-area-inset-bottom));border:0;border-top:1px solid #e4d8d5;border-radius:0;background:#fffdfcf7;box-shadow:0 -3px 14px #35101412;color:#8b7c7c;font-size:10px;line-height:1.3;letter-spacing:.02em;white-space:nowrap;pointer-events:auto}
.stario-badge-bar span{display:block;overflow:hidden;text-overflow:ellipsis}
.stario-badge-bar a{display:inline-flex;align-items:center;min-height:22px;padding:0 4px;color:var(--red);font-size:10px;text-decoration:none}
.stario-badge-bar a:hover{text-decoration:underline}
.admin-footer.stario-badge-bar span::after,.viz-credit.stario-badge-bar span::after{content:" · 数智经济研究平台"}
.auth-shell>.stario-badge-bar{z-index:3}
.workspace>.stario-badge-bar,.viz-shell>.stario-badge-bar{z-index:16}
.admin-main>.stario-badge-bar{z-index:16}
.showcase-stage{padding-bottom:40px}
.showcase-stage:has(>.showcase-stage-head){grid-template-rows:24px minmax(0,1fr)}
.showcase-stage-empty{grid-template-rows:minmax(0,1fr);padding-bottom:40px}
.showcase-stage>footer.stario-badge-bar{align-self:auto;text-align:left;justify-content:space-between;font-size:10px}
.showcase-stage>footer.stario-badge-bar span{flex:0 0 auto;max-width:none;overflow:visible;text-overflow:clip}
.workspace:not(.sidebar-collapsed)>.stario-badge-bar{left:290px;right:auto;width:calc(100% - 290px)}
.workspace:not(.sidebar-collapsed) .showcase-stage>footer.stario-badge-bar{left:290px;right:auto;width:calc(100% - 290px)}
.admin-side{position:relative;padding-bottom:32px}
.workspace>.sidebar{padding-bottom:32px}
.admin-shell:not(.sidebar-collapsed)>.admin-main>.stario-badge-bar{left:260px;right:auto;width:calc(100% - 260px)}
.admin-main{padding-bottom:52px}
.viz-library{padding-bottom:52px}
@media(max-width:600px){.stario-badge-bar{padding-left:12px;padding-right:12px;font-size:9px}.stario-badge-bar a{font-size:9px}.showcase-stage{padding-bottom:36px}}
@media(max-width:900px){
  .workspace:not(.sidebar-collapsed)>.stario-badge-bar,
  .workspace:not(.sidebar-collapsed) .showcase-stage>footer.stario-badge-bar,
  .admin-shell:not(.sidebar-collapsed)>.admin-main>.stario-badge-bar{left:0;right:0;width:100%}
}

/* Role-aware showcase catalog and administrator curation. */
.admin-workspace-entry{position:relative;display:grid;gap:3px;width:calc(100% - 24px);margin:8px 12px 2px;padding:13px 38px 13px 14px;border:1px solid #ffffff2b;border-radius:7px;background:#ffffff0d;color:#fff;text-align:left;transition:background .2s ease,border-color .2s ease,transform .2s ease}
.admin-workspace-entry:hover{border-color:#ffffff58;background:#ffffff16;transform:translateY(-1px)}
.admin-workspace-entry span{color:#e9c9ca;font-size:9px;letter-spacing:.08em}.admin-workspace-entry b{font-size:12px}.admin-workspace-entry i{position:absolute;right:15px;top:50%;transform:translateY(-50%);font-style:normal;color:#f4c9ca}
.admin-console-return{width:calc(100% - 28px);min-height:35px;margin:10px 14px 0;border:1px solid #ead9d8;border-radius:6px;background:#fff9f8;color:var(--red);font-size:11px;font-weight:650;transition:background .18s ease,border-color .18s ease,transform .18s ease}
.admin-console-return:hover{border-color:#c69b9d;background:#fff;transform:translateY(-1px)}
.workspace-mode-showcase-platform .chat-main{grid-template-rows:62px minmax(0,1fr)}
.workspace-mode-showcase-platform #content{margin:0;border:0;border-radius:0;background:#f5f1ef;overflow:hidden}
.workspace-mode-showcase-platform .side-footer{border-top:1px solid #ffffff17}.workspace-mode-showcase-platform .top-actions{margin-left:auto}
.workspace-mode-showcase-platform .side-brand{gap:9px;padding:18px 16px}
.workspace-mode-showcase-platform .side-brand img{width:70px;flex:none}
.workspace-mode-showcase-platform .side-brand div{min-width:0}
.workspace-mode-showcase-platform .side-brand b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.platform-sidebar-toggle{min-height:28px;padding:0 6px;border:1px solid #ffffff42;border-radius:5px;background:#ffffff0c;color:#fff;font-size:calc(12px * var(--font-scale,1))}
.platform-sidebar-toggle:hover,.platform-sidebar-toggle:focus-visible{background:#ffffff22}
.platform-side-item{width:100%;display:grid;gap:5px;margin:3px 0;padding:13px 14px;border:0;border-left:3px solid transparent;border-radius:0 5px 5px 0;background:transparent;color:#f5e9e9;text-align:left;transition:background .18s ease,border-color .18s ease}
.platform-side-item:hover,.platform-side-item:focus-visible{border-left-color:#f0b6b8;background:#ffffff12}
.platform-side-item.active{border-left-color:#fff;background:#ffffff20}
.platform-side-item b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:calc(16px * var(--font-scale,1));line-height:1.4}
.platform-side-item span{color:#e0babc;font-size:calc(13px * var(--font-scale,1));line-height:1.35}
.access-link-card{max-width:1000px}.access-link-card>header{display:flex;justify-content:space-between;gap:16px}.access-link-state{align-self:center;color:var(--red);font-size:14px}.access-link-warning,.access-link-hint{font-size:14px;line-height:1.7;color:var(--muted)}.access-link-warning{padding:14px;border-left:3px solid var(--red);background:#fff7f4}.access-link-card form{display:flex;align-items:end;flex-wrap:wrap;gap:12px;margin-block:20px}.access-link-card label{display:grid;gap:8px;font-size:14px}.access-link-card label.check-row{display:flex;align-items:center;margin-top:18px}.access-link-card select,.access-link-card input[readonly]{padding:10px;border:1px solid var(--line);border-radius:5px;background:#fff;color:var(--ink);font:inherit}.access-link-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:18px;background:#f8f5f2;border-radius:6px}.access-link-details dt{font-size:12px;color:var(--muted)}.access-link-details dd{margin:6px 0 0;font-size:14px}#test0LinkResult{padding-top:18px;border-top:1px solid var(--line)}#test0LinkResult input{width:100%;min-width:0;font-size:13px}#test0LinkResult button{margin-top:10px}.access-link-card button:disabled{opacity:.45;cursor:not-allowed}
.sample-settings{padding:28px!important}.sample-access-toggle{display:flex!important;align-items:center;justify-content:space-between;gap:20px;padding:20px;margin-top:24px;background:#f8f4f1;border:1px solid #e6d9d5;border-radius:8px}.sample-access-toggle b{display:block;font-size:18px}.sample-access-toggle small{display:block;margin-top:6px;font-size:13px;color:var(--muted)}.sample-switch{position:relative;flex:none;width:48px;height:28px}.sample-switch input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer;z-index:1}.sample-switch i{display:block;height:28px;border-radius:20px;background:#b9afac;transition:background .2s}.sample-switch i:after{content:"";position:absolute;top:4px;left:4px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0002;transition:transform .2s}.sample-switch input:checked+i{background:var(--red)}.sample-switch input:checked+i:after{transform:translateX(20px)}.sample-switch input:focus-visible+i{outline:2px solid var(--red);outline-offset:4px}.sample-switch input:disabled+i{opacity:.5}.sample-reset{display:flex;gap:24px;align-items:center;justify-content:space-between;border-top:1px solid var(--line);margin-top:28px;padding-top:24px}.sample-reset h3{font-size:19px;margin:8px 0}.sample-reset p{font-size:14px;color:var(--muted);line-height:1.7;max-width:65ch}.sample-reset button{flex:none}.platform-project-row{position:relative;display:flex;align-items:stretch}.platform-project-row .platform-side-item{width:100%;padding-right:40px}.project-order-reset{border:0;background:transparent;color:#ddbfc0;padding:12px 16px;font-size:12px;text-align:left;cursor:pointer}@media(max-width:640px){.sample-reset{align-items:start;flex-direction:column}.sample-settings{padding:18px!important}}
.showcase-stage{height:100%;min-height:0;display:grid;grid-template-rows:minmax(0,1fr) 32px;padding:0 12px 0;background:#f5f1ef}
.showcase-stage:has(>.showcase-stage-head){grid-template-rows:24px minmax(0,1fr) 32px}
.showcase-stage-head{min-width:0;display:flex;align-items:center;justify-content:space-between;gap:16px}
.showcase-stage-head>div{min-width:0;display:flex;align-items:baseline;gap:12px}
.showcase-stage-head span{flex:none;color:var(--red);font-size:calc(11px * var(--font-scale,1));font-weight:650}
.showcase-external{flex:none;display:inline-flex;align-items:center;gap:7px;min-height:32px;padding:0 8px;border-radius:4px;color:var(--red);font-size:calc(13px * var(--font-scale,1));font-weight:650;text-decoration:none;transition:background .18s ease}
.showcase-external:hover{background:#7000080b;text-decoration:underline}
.showcase-frame-wrap{min-width:0;min-height:0;display:grid;grid-template-rows:minmax(0,1fr);overflow:hidden;border:1px solid #d9cecd;border-radius:5px;background:#fff}
.showcase-frame-viewport{position:relative;min-width:0;min-height:0}
.showcase-frame-wrap iframe{display:block;width:100%;height:100%;border:0;background:#fff}
.showcase-frame-status{position:absolute;inset:0;z-index:1;display:grid;place-items:center;background:#fff;color:var(--muted);font-size:calc(14px * var(--font-scale,1))}
.showcase-outbound{min-width:0;min-height:0;display:grid;place-items:center;padding:24px;border:1px solid #d9cecd;border-radius:5px;background:radial-gradient(circle at 76% 16%,#e9dfe033,transparent 42%),#fff}
.showcase-outbound-card{width:min(540px,100%);display:grid;justify-items:start;gap:12px;padding:clamp(24px,4vw,44px);border:1px solid #e4d8d5;border-radius:8px;background:#fcfaf9;box-shadow:0 20px 50px #4200060b}
.showcase-outbound-mark{display:grid;place-items:center;width:48px;height:48px;border-radius:8px;background:#70080b;color:#fff;font-size:27px}
.showcase-outbound-eyebrow{color:var(--red);font-size:calc(12px * var(--font-scale,1));font-weight:650;letter-spacing:.06em}
.showcase-outbound-card h2{margin:0;color:var(--ink);font:600 calc(27px * var(--font-scale,1))/1.35 Georgia,"Songti SC",serif;text-wrap:balance}
.showcase-outbound-card p{min-height:24px;margin:0;color:var(--muted);font-size:calc(14px * var(--font-scale,1))}
.showcase-stage>footer{align-self:center;color:#978c8b;font-size:9px;text-align:right}
.showcase-stage>footer.showcase-stage-footer{align-self:stretch;display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left;font-size:10px}
.showcase-stage-empty{grid-template-rows:minmax(0,1fr) 18px}
.showcase-select-prompt{display:grid;align-content:center;justify-items:center;gap:10px;color:var(--muted);text-align:center}
.showcase-select-prompt>span{color:#b69091;font-size:34px}
.showcase-select-prompt h1{margin:0;color:var(--ink);font:600 calc(23px * var(--font-scale,1))/1.3 Georgia,"Songti SC",serif}
.showcase-select-prompt p{margin:0;font-size:calc(14px * var(--font-scale,1))}
.viz-library-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.viz-library-actions .secondary{min-height:44px;color:var(--red)}
.showcase-admin-toolbar{justify-content:space-between;align-items:flex-end;padding:4px 0 2px}.showcase-admin-toolbar h2{margin:6px 0 4px;font:600 27px Georgia,"Songti SC",serif}.showcase-admin-toolbar p{margin:0}.showcase-admin-card>header>span{align-self:center}.admin-showcase-grid{display:grid;gap:10px}.admin-showcase-item{display:grid;grid-template-columns:150px minmax(0,1fr) auto;gap:17px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:7px;background:#fdfbf9}.admin-showcase-thumb{aspect-ratio:16/9;display:grid;place-items:center;overflow:hidden;border-radius:5px;background:#eee7e4;color:#a9898a;font-size:25px}.admin-showcase-thumb img{width:100%;height:100%;object-fit:cover}.admin-showcase-copy{min-width:0}.admin-showcase-copy>span{display:flex;gap:6px}.admin-showcase-copy i{padding:3px 5px;border-radius:3px;background:#eee7e4;color:#756b6d;font-size:8px;font-style:normal}.admin-showcase-copy .project-state.enabled{background:#e7f3ed;color:var(--green)}.admin-showcase-copy h3{margin:8px 0 5px;font:600 15px Georgia,"Songti SC",serif}.admin-showcase-copy p{margin:0 0 7px;color:var(--muted);font-size:10px;line-height:1.55}.admin-showcase-copy small{color:#96898b;font-size:9px}.admin-showcase-actions{max-width:190px;display:flex;justify-content:flex-end;gap:5px;flex-wrap:wrap}.admin-showcase-actions button{min-height:30px;padding:0 8px;border:1px solid var(--line);border-radius:5px;background:#fff;color:var(--red);font-size:9px}.admin-showcase-actions button:hover{border-color:#c8a5a7;background:#fff8f7}.showcase-admin-empty{min-height:220px;display:grid;place-items:center;align-content:center;gap:7px;color:var(--muted);text-align:center}.showcase-admin-empty b{color:var(--ink);font:600 19px Georgia,"Songti SC",serif}.showcase-admin-empty span{font-size:11px}
.portal-select{min-width:104px;height:32px;padding:0 8px;border:1px solid var(--line);border-radius:5px;background:#fff;color:var(--ink);font-size:10px}.showcase-project-form{display:grid;gap:13px}.showcase-project-form label{display:grid;gap:6px}.showcase-project-form input,.showcase-project-form select,.showcase-project-form textarea{width:100%;min-width:0;padding:10px;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--ink)}.form-columns{display:grid;grid-template-columns:1fr 1fr;gap:12px}.showcase-advanced{border:1px solid var(--line);border-radius:6px;background:#fcfaf9}.showcase-advanced summary{padding:10px 12px;color:var(--red);font-size:10px;cursor:pointer}.showcase-advanced .form-columns{padding:0 12px 12px}.showcase-user-access{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:0;padding:11px;border:1px solid var(--line);border-radius:6px;transition:opacity .18s ease}.showcase-user-access legend{padding:0 6px;color:var(--muted);font-size:10px}.showcase-user-access>label{display:flex;align-items:center;gap:8px;padding:7px;border-radius:5px;background:var(--soft)}.showcase-user-access input{width:15px}.showcase-user-access span{display:grid;gap:2px}.showcase-user-access b{font-size:10px}.showcase-user-access small{color:var(--muted);font-size:8px}.showcase-user-access.disabled{opacity:.42;pointer-events:none}.showcase-thumbnail-option{display:flex!important;grid-template-columns:none!important;flex-direction:row;align-items:center;gap:8px!important;padding:9px 10px;border-radius:6px;background:var(--soft);font-size:10px}.showcase-thumbnail-option input{width:15px}

/* The editor always renders a 1440×900 desktop viewport, then scales the
   complete surface as one object. This preserves internal layout and avoids
   responsive breakpoints crushing the generated page inside a narrow frame. */
.viz-viewport{width:100%;height:100%;min-width:0;min-height:0;display:grid;place-items:center;overflow:hidden;border-radius:6px;contain:strict}
.viz-viewport .viz-frame{flex:none;width:1440px!important;height:900px!important;max-width:none!important;max-height:none!important;transform:scale(var(--viz-scale,1));transform-origin:50% 50%;border:0;background:#fff;box-shadow:0 20px 60px #42000618!important;will-change:transform}
.viz-shell.tool-panel-open .viz-viewport .viz-frame{box-shadow:0 16px 46px #42000614!important}

@media(max-width:1120px){.admin-showcase-item{grid-template-columns:120px minmax(0,1fr)}.admin-showcase-actions{grid-column:1/-1;max-width:none;justify-content:flex-start}}
@media(max-width:760px){.viz-library-actions{width:100%;justify-content:flex-start}.viz-library-actions .primary,.viz-library-actions .secondary{flex:1;justify-content:center}.form-columns,.showcase-user-access{grid-template-columns:1fr}.admin-showcase-item{grid-template-columns:1fr}.admin-showcase-thumb{max-width:240px}.showcase-admin-toolbar{align-items:flex-start;flex-direction:column}}

/* A restrained reading scale for the application chrome and research text. */
html[data-font-size="small"]{--font-scale:.92}
html[data-font-size="medium"]{--font-scale:1}
html[data-font-size="large"]{--font-scale:1.14}
html[data-font-size="xlarge"]{--font-scale:1.28}
html[data-font-size="xlarge"] .platform-side-item b{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;white-space:normal}
.account>div:nth-child(2){min-width:0}
.account span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.font-size-control{position:relative;flex:none}
.font-size-control>summary{display:flex;align-items:center;gap:8px;min-height:34px;padding:0 10px;border:1px solid var(--line);border-radius:5px;background:#fff;color:#62585a;font-size:calc(12px * var(--font-scale,1));font-weight:600;cursor:pointer;list-style:none}
.font-size-control>summary::-webkit-details-marker{display:none}
.font-size-control>summary b{color:var(--red);font-size:calc(12px * var(--font-scale,1))}
.font-size-control[open]>summary,.font-size-control>summary:hover{border-color:#c7a5a7;background:#fff8f7}
.font-size-menu{position:absolute;z-index:40;top:42px;right:0;display:grid;grid-template-columns:repeat(4,1fr);gap:3px;width:212px;padding:5px;border:1px solid #d8cccd;border-radius:6px;background:#fff;box-shadow:0 12px 32px #42000620}
.font-size-menu button{min-height:34px;padding:0 3px;border:0;border-radius:4px;background:transparent;color:var(--ink);font-size:12px}
.font-size-menu button:hover,.font-size-menu button[aria-pressed="true"]{background:var(--red);color:#fff}
.font-size-control :focus-visible,.platform-side-item:focus-visible,.showcase-external:focus-visible,.sidebar-collapse:focus-visible,.sidebar-expand:focus-visible{outline:2px solid #e1a1a5;outline-offset:2px}
.top-actions{gap:14px}
.side-brand b,.admin-brand b{font-size:clamp(13px,calc(13px * var(--font-scale,1)),14px)}
.side-brand span,.admin-brand span{font-size:calc(12px * var(--font-scale,1))}
.side-search input{font-size:calc(15px * var(--font-scale,1))}
.side-section{font:600 calc(13px * var(--font-scale,1)) ui-monospace,SFMono-Regular,monospace;letter-spacing:0}
.side-section button{font-size:calc(12px * var(--font-scale,1))}
.conversation b{font-size:calc(15px * var(--font-scale,1))}
.conversation span,.side-tools span,.account span{font-size:calc(12px * var(--font-scale,1))}
.account b,.new-chat{font-size:calc(14px * var(--font-scale,1))}
.account>button{flex:none;min-height:30px;padding:0 6px;border:1px solid #ffffff40;border-radius:4px;background:#ffffff0e;font-size:calc(12px * var(--font-scale,1));white-space:nowrap}
.account>button:hover{background:#ffffff20}
.workspace-tabs button{font-size:calc(14px * var(--font-scale,1))}
.message-content,.composer textarea,.welcome>p{font-size:calc(14px * var(--font-scale,1))}
.message-meta b{font-size:calc(12px * var(--font-scale,1))}
.markdown h1{font-size:calc(23px * var(--font-scale,1))}.markdown h2{font-size:calc(20px * var(--font-scale,1))}.markdown h3{font-size:calc(17px * var(--font-scale,1))}
@media(max-width:900px){
  .showcase-stage{padding:0 8px;grid-template-rows:minmax(0,1fr) 32px}
  .showcase-stage-empty{grid-template-rows:minmax(0,1fr) 18px}
  .showcase-stage-head>div{gap:6px}
  .showcase-stage-head span{display:none}
}

/* Decisions requested by a live agent remain visible until the user answers. */
.agent-interaction-stack{display:grid;gap:10px}
.agent-interaction{margin:10px 0 16px;padding:16px;border:1px solid #d8babc;border-radius:10px;background:#fff;box-shadow:0 10px 32px #4200060b}
.agent-interaction-heading{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.agent-interaction-heading>span{flex:none;display:grid;place-items:center;width:30px;height:30px;border-radius:8px;background:#f6e9e9;color:var(--red);font-weight:750}
.agent-interaction-heading>div{display:grid;gap:2px}
.agent-interaction-heading b{font-size:14px}
.agent-interaction-heading small{font-size:11px;color:var(--muted)}
.agent-interaction-form{display:grid;gap:13px}
.agent-interaction-question{min-width:0;margin:0;padding:12px;border:1px solid var(--line);border-radius:8px}
.agent-interaction-question legend{padding:0 5px;font-size:12px;font-weight:700;color:var(--red)}
.agent-interaction-question p,.agent-interaction-permission p{margin:0 0 9px;font-size:13px;line-height:1.5;overflow-wrap:anywhere}
.agent-interaction-options{display:grid;gap:7px}
.agent-interaction-option{display:flex;align-items:flex-start;gap:9px;border:1px solid var(--line);border-radius:7px;padding:9px 10px;cursor:pointer}
.agent-interaction-option:has(input:checked){border-color:#b78689;background:#fff8f7}
.agent-interaction-option input{margin:3px 0 0;accent-color:var(--red)}
.agent-interaction-option span{display:grid;gap:3px;min-width:0}
.agent-interaction-option b{font-size:12px;line-height:1.4}
.agent-interaction-option small{font-size:11px;color:var(--muted);line-height:1.45}
.agent-interaction-custom{display:grid;gap:6px;margin-top:10px;color:var(--muted);font-size:11px}
.agent-interaction-custom input{width:100%;min-height:37px;padding:7px 10px;border:1px solid var(--line);border-radius:6px}
.agent-interaction-patterns{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:11px}
.agent-interaction-patterns code{max-width:100%;padding:5px 7px;border-radius:5px;background:var(--soft);color:#59474a;font-size:11px;overflow-wrap:anywhere}
.agent-interaction-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:12px}
.agent-interaction-actions .primary,.agent-interaction-actions .secondary{min-height:38px}
.agent-interaction-actions button:disabled{opacity:.5;cursor:wait}
.agent-interaction-status{margin:10px 0 0;font-size:11px;color:#745e61;line-height:1.4}
.agent-interaction[data-state="expired"]{opacity:.7}
.viz-history-message .agent-interaction{font-size:13px}

/* Conversation groups follow the existing burgundy navigation language. */
.workspace-mode-chat .side-section{align-items:flex-start;flex-wrap:wrap;gap:7px;padding:0 18px 9px}
.workspace-mode-chat .side-section>span{padding-top:3px;white-space:nowrap;color:#f8eeee;font-size:calc(18px * var(--font-scale,1));font-weight:700}
.side-section-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:5px;margin-left:auto}
.side-section-actions button{min-height:30px;padding:3px 6px;border:1px solid transparent;border-radius:5px;background:transparent;color:#f0d6d6;font-size:calc(12px * var(--font-scale,1));letter-spacing:0;white-space:nowrap;transition:background .18s ease,border-color .18s ease}
.side-section-actions button:hover{border-color:#ffffff30;background:#ffffff14}
.chat-group{padding:3px 0 8px;border-bottom:1px solid #ffffff1a}
.chat-group:last-child{border-bottom:0}
.chat-group-head{display:flex;align-items:center;min-width:0;padding:1px 4px}
.chat-group-toggle{display:flex;align-items:center;gap:6px;min-width:0;flex:1;min-height:40px;padding:5px 6px;border:0;border-radius:5px;background:transparent;color:#f1dcdc;text-align:left;font-size:calc(16px * var(--font-scale,1));font-weight:700;transition:background .18s ease,color .18s ease}
.chat-group-toggle:hover,.chat-group-action:hover{background:#ffffff17;color:#fff}
.chat-group-chevron{display:grid;place-items:center;flex:0 0 16px;width:16px;height:16px;color:#e2b8b9;line-height:0;transform-origin:50% 50%;transition:transform .2s cubic-bezier(.2,.8,.2,1)}
.chat-group-chevron svg{display:block;width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.chat-group-toggle[aria-expanded=false] .chat-group-chevron{transform:rotate(-90deg)}
.chat-group-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chat-group-count{flex:none;min-width:22px;margin-left:auto;padding:2px 5px;border-radius:4px;background:#ffffff14;color:#e9cccc;text-align:center;font:600 calc(11px * var(--font-scale,1)) ui-monospace,SFMono-Regular,monospace;font-variant-numeric:tabular-nums}
.chat-group-action{flex:none;width:30px;height:34px;display:grid;place-items:center;margin-left:1px;padding:0;border:0;border-radius:5px;background:transparent;color:#e4c2c4;font-size:15px;line-height:1;transition:background .18s ease,color .18s ease}
.chat-group-items{padding:1px 3px 1px 13px}
.chat-group-items[hidden]{display:none}
.showcase-project-form [hidden]{display:none!important}
.chat-group-items .conversation{margin:2px 0}
.chat-group-items .conversation:not(.active):hover{background:#ffffff12}
.chat-group-items .conversation>button:first-child{min-height:58px;padding:9px 38px 9px 10px}
.chat-group-items .conversation b{display:-webkit-box;font-size:calc(14px * var(--font-scale,1));font-weight:550;overflow:hidden;white-space:normal;line-height:1.45;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow-wrap:anywhere;text-wrap:pretty}
.chat-group-items .conversation>button:last-child{top:10px;right:3px;min-width:32px;min-height:34px;border-radius:4px;opacity:.78}
.chat-group-items .conversation>button:last-child:hover{background:#ffffff1c;opacity:1}
.chat-group-items .conversation.active>button:last-child:hover{background:#96000112}
.chat-group-empty{margin:4px 8px 8px;padding:8px 10px;color:#d4b7b9;font-size:calc(12px * var(--font-scale,1));line-height:1.4}
.chat-group-toggle:focus-visible,.chat-group-action:focus-visible,.side-section-actions button:focus-visible,.chat-group-items .conversation button:focus-visible{outline:2px solid #f5c9cb;outline-offset:1px}
.chat-group-items .conversation.active button:focus-visible{outline-color:var(--red)}
.chat-group-form .modal-hint{margin:4px 0 0;color:var(--muted);font-size:12px;line-height:1.6}
.chat-group-form .form-error{margin:10px 0 0;color:var(--red);font-size:12px;line-height:1.5}
.chat-group-form .modal-actions{flex-wrap:wrap}
.chat-group-form .modal-actions button{min-height:40px}
.chat-group-form .modal-actions button:first-child:not(:last-child){margin-right:auto}
@media(max-width:900px){.chat-group-items .conversation>button:first-child{min-height:58px}}
@media(prefers-reduced-motion:reduce){.chat-group-chevron,.chat-group-action,.chat-group-toggle,.side-section-actions button{transition:none}}

/* Administrator-controlled source labels for the public showcase list. */
.showcase-display-settings{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:24px;row-gap:6px;margin:0 0 18px;padding:16px 18px;border:1px solid var(--line);border-left:3px solid var(--red);border-radius:6px;background:#fff}
.showcase-display-settings h3{margin:5px 0 4px;color:var(--ink);font:600 calc(17px * var(--font-scale,1)) Georgia,"Songti SC",serif}
.showcase-display-settings p{margin:0;color:var(--muted);font-size:calc(12px * var(--font-scale,1));line-height:1.5}
.showcase-source-switch{position:relative;display:inline-flex;align-items:center;gap:10px;margin:0;color:var(--ink);font-size:calc(13px * var(--font-scale,1));font-weight:650;white-space:nowrap;cursor:pointer}
.showcase-source-switch input{position:absolute;inset:0;z-index:1;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.showcase-switch-track{position:relative;width:42px;height:24px;flex:none;border:1px solid #c3b1b1;border-radius:20px;background:#e9e0df;transition:background .18s ease,border-color .18s ease}
.showcase-switch-track i{position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 4px #42000626;transition:transform .18s ease}
.showcase-source-switch input:checked + .showcase-switch-track{border-color:var(--red);background:var(--red)}
.showcase-source-switch input:checked + .showcase-switch-track i{transform:translateX(18px)}
.showcase-source-switch input:focus-visible + .showcase-switch-track{outline:2px solid #b57633;outline-offset:3px}
.showcase-source-switch input:disabled + .showcase-switch-track{opacity:.55;cursor:wait}
#showcaseSourceStatus{grid-column:1/-1;min-height:0;color:var(--red)}
#showcaseSourceStatus:empty{display:none}
.workspace-mode-chat .composer-shell.archive-view{padding:10px 18px 14px}
.workspace-mode-chat .composer-shell.archive-view .composer{display:none}
.workspace-mode-chat .composer-shell.archive-view>p{margin:0;color:var(--muted);font-size:calc(12px * var(--font-scale,1));line-height:1.5}
@media(max-width:760px){.showcase-display-settings{grid-template-columns:1fr}.showcase-source-switch{justify-self:start}}
@media(prefers-reduced-motion:reduce){.showcase-switch-track,.showcase-switch-track i{transition:none}}

/* One explicitly controlled sidebar for chat, showcase and project workspaces. */
.workspace{position:relative;grid-template-columns:290px minmax(0,1fr);transition:grid-template-columns .22s ease}
.workspace>.sidebar{width:290px;z-index:30;transform:translateX(0);visibility:visible;transition:transform .22s ease,visibility 0s}
.workspace.sidebar-collapsed{grid-template-columns:0 minmax(0,1fr)}
.workspace.sidebar-collapsed>.sidebar{transform:translateX(-100%);visibility:hidden;pointer-events:none;transition:transform .22s ease,visibility 0s .22s}
.workspace .sidebar-expand{display:none;flex:none;min-height:32px;margin-right:12px;padding:0 9px;border:1px solid var(--line);border-radius:5px;background:#fff;color:var(--red);font-size:13px;font-weight:650}
.workspace.sidebar-collapsed .sidebar-expand{display:inline-flex;align-items:center}
.sidebar-collapse{align-self:flex-end;flex:none;margin:6px 17px;padding:4px 8px;min-height:28px;border:1px solid #ffffff30;border-radius:4px;background:#ffffff08;color:#f5dddd;font-size:12px;cursor:pointer}
.sidebar-collapse:hover{background:#ffffff19}
.workspace-mode-chat .welcome-seal{font-size:27px;letter-spacing:.04em}
.showcase-frame-status.preview-load-error{inset:auto 10px 10px;display:flex;align-items:center;justify-content:center;gap:12px;padding:9px;border:1px solid var(--line);border-radius:5px;background:#fffef5ef;font-size:13px}
.preview-load-error button{padding:4px 9px;border:1px solid var(--line);border-radius:4px;background:#fff;color:var(--red);cursor:pointer}
@media(min-width:1101px){.workspace.sidebar-collapsed.preview-open{grid-template-columns:0 minmax(360px,1fr) var(--preview-width,420px)}}
@media(max-width:900px){
 .workspace,.workspace.sidebar-collapsed{grid-template-columns:minmax(0,1fr)}
 .workspace>.sidebar{position:fixed;left:0;top:0;width:min(290px,88vw);height:100%;box-shadow:12px 0 25px #42000612}
 .workspace .sidebar-expand{margin-right:8px}
}
@media(prefers-reduced-motion:reduce){.workspace,.workspace>.sidebar,.workspace.sidebar-collapsed>.sidebar{transition:none}}
@media(max-width:600px){
 .workspace .chat-main{grid-template-columns:minmax(0,1fr)}
 .workspace .topbar{min-width:0;width:100%}
 .workspace .topbar{padding-inline:8px;gap:5px}
 .workspace .sidebar-expand{padding-inline:6px;font-size:12px;margin-right:0}
 .workspace .topbar>div.workspace-tabs{margin:0;padding:2px;gap:2px}
 .workspace .workspace-tabs button{padding:5px 8px;font-size:12px}
 .workspace .agent-control{margin:0;flex:none;min-width:0}
 .workspace .agent-control>summary{min-width:30px;width:30px;padding:0 7px;grid-template-columns:16px}
 .workspace .agent-control>summary>span,.workspace .agent-control>summary>b{display:none}
 .workspace .top-actions{gap:5px;margin-left:auto}
 .workspace .font-size-control>summary{gap:4px;padding:0 6px;font-size:11px}
 .workspace .top-actions>button{padding-inline:7px}
 .workspace .composer-row>div{min-width:0}
 .workspace .composer-row select{min-width:0;max-width:calc(100vw - 170px)}
 .workspace .composer-row .send{flex:0 0 40px}
}
/* Administration: shared type scale, measured data columns and quieter navigation. */
.admin-shell{font-size:14px;line-height:1.55}
.admin-main{min-width:0}
.admin-main>header{min-height:86px;height:auto;padding:20px 30px;gap:18px}
.admin-main>header h1{font-family:inherit;font-size:26px;line-height:1.3;font-weight:650;margin:4px 0}
.admin-shell .kicker{font-size:11px;letter-spacing:.08em}
.admin-side nav{display:grid;align-content:start;gap:5px;padding:16px 12px;overflow-y:auto}
.admin-side nav button{font-size:15px;line-height:1.4;text-align:left;min-height:42px;margin:0;padding:10px 16px;border-radius:8px}
#adminContent{padding:22px 30px}
.admin-card{padding:22px;margin-top:18px;min-width:0}
#adminContent>.admin-card:first-child{margin-top:0}
.admin-card h2,.admin-main .sample-settings-header h2{font-family:inherit;font-size:21px;line-height:1.4;font-weight:650}
.admin-card h3,.admin-card .template-card b{font-family:inherit;font-size:16px;line-height:1.5}
.admin-card p,.admin-card .modal-hint{font-size:14px;line-height:1.65}
.admin-shell .metric-grid span,.admin-shell .stat-row span,.admin-shell .bars>div{font-size:14px}
.admin-shell .metric-grid small,.admin-main>header>span{font-size:12px}
.admin-shell .metric-grid b{font-family:inherit;font-size:32px}
.admin-shell .bars>div{grid-template-columns:minmax(160px,240px) minmax(60px,1fr) 80px}
.admin-card button,.admin-card input,.admin-card select{font-size:14px}
.admin-data-table{table-layout:fixed;width:100%;min-width:780px;font-size:14px}
.admin-data-table th{font-size:13px;font-weight:600;padding:13px 14px;white-space:nowrap}
.admin-data-table td{font-size:14px;padding:15px 14px;max-width:none;overflow-wrap:anywhere;vertical-align:middle}
.admin-data-table td small{display:block;font-size:12px;line-height:1.5;margin-top:4px}
.admin-data-table td button{margin:3px 4px 3px 0;white-space:nowrap}
.admin-data-table .table-empty{text-align:center;padding:36px;color:var(--muted)}
.admin-card .table-wrap{overflow-x:auto}
.admin-card .template-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:16px}
.admin-main .template-card{grid-template-columns:repeat(3,minmax(0,1fr));align-content:start;align-items:start;padding:18px;gap:12px;background:#fffaf9}
.admin-main .template-card>div{grid-column:1/-1}
.admin-main .template-card p{white-space:normal;overflow:visible;text-overflow:clip;font-size:14px;line-height:1.6;overflow-wrap:anywhere;margin:8px 0 0}
.admin-main .template-card>.status-pill{grid-column:1/-1;justify-self:start;font-size:12px}
.admin-main .template-card button{width:100%;font-size:14px}
.admin-card>header>button{align-self:center;min-height:42px;padding:10px 18px}
.admin-data-table .integration-table-summary,.admin-data-table .integration-details{font-size:13px;max-width:none}
.model-alias-card{max-width:920px}
#modelAliases{display:grid;gap:22px;max-width:650px}
#modelAliases label{display:grid;gap:8px;font-size:14px;font-weight:600}
#modelAliases input{width:100%;padding:12px;border:1px solid #d9dce2;border-radius:8px;font-weight:400}
#modelAliases small{font-size:12px;font-weight:400;color:#687181}
#modelAliases>.primary{justify-self:start}
#aliasStatus{font-size:14px;color:#357352}
@media(max-width:700px){#adminContent{padding:16px}.admin-main>header{padding:16px;flex-wrap:wrap}.admin-main>header h1{font-size:23px}.admin-card{padding:16px}.admin-card>header{flex-wrap:wrap;gap:12px}}
.secret-key-field,.secret-url-preview{min-width:0;grid-column:1/-1}
.secret-key-warning{color:#a46016;font-size:13px;line-height:1.6}
.secret-key-field input,.secret-url-preview input{width:100%;min-width:0;font:13px/1.6 ui-monospace,monospace;padding:10px;border:1px solid var(--line);border-radius:7px;background:#fff}
#test0LinkForm{flex-wrap:wrap;gap:14px}
#test0LinkForm .secret-key-field,#test0LinkForm .secret-url-preview{flex-basis:100%}
#vizPublishForm input{width:100%;min-width:0;padding:10px;border:1px solid var(--line);border-radius:7px}

/* Modal and drawer shell: keep controls fixed while long content scrolls. */
.backdrop{z-index:70}
.modal{z-index:72;display:flex;flex-direction:column;width:min(720px,calc(100vw - 32px));max-height:min(88dvh,860px);overflow:hidden;padding:0}
.modal-head{position:relative;flex:none;min-height:78px;padding:24px 76px 20px 32px;border-bottom:1px solid var(--line);background:#fff}
.modal-head>.kicker{display:block;margin-bottom:8px}
.modal-scroll{min-height:0;overflow:auto;overscroll-behavior:contain;padding:24px 32px 32px;scrollbar-color:#bd9294 #faf5f4;scrollbar-width:thin}
.modal-close,.drawer-close{display:grid;place-items:center;flex:none;width:38px;height:38px;padding:0;border:1px solid #e4d8d5;border-radius:8px;background:#f7f1ef;color:var(--ink);font:500 24px/1 Arial,sans-serif;text-align:center;transition:background .18s ease,border-color .18s ease,transform .18s ease}
.modal-close{position:absolute;top:16px;right:16px;z-index:4}
.modal-close:hover,.drawer-close:hover{border-color:#c9a6a8;background:#fff;color:var(--red)}
.modal-close:active,.drawer-close:active{transform:scale(.96)}
.modal-close:focus-visible,.drawer-close:focus-visible{outline:2px solid #b57633;outline-offset:2px}
.modal .modal-head h3,.modal .modal-head h2{margin:0;padding:0;font-family:inherit;font-size:24px;font-weight:600;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.modal-close svg,.drawer-close svg,#previewClose svg,#vizToolClose svg{display:block;width:20px;height:20px;flex:none}
.modal-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.modal-actions button,.file-actions button,.file-actions a{white-space:nowrap}
.modal:has(.file-list){width:min(980px,calc(100vw - 32px))}
.modal:has(.showcase-project-form){width:min(900px,calc(100vw - 32px))}
.modal:has(.audit-messages){width:min(800px,calc(100vw - 32px))}
.file-list{min-width:0}
.generated-file{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px}
.generated-file>div{min-width:0}
.generated-file>div>b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.file-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px;min-width:0}
.file-actions button,.file-actions a{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:0 10px;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--red);font-size:13px}
.file-actions button:hover,.file-actions a:hover{border-color:#c9a6a8;background:var(--soft)}
.drawer{z-index:71;display:flex;flex-direction:column;width:min(720px,calc(100vw - 32px));padding:0;overflow:hidden}
.drawer-head{position:relative;flex:none;min-height:96px;margin:0;padding:24px 76px 20px 32px;background:#fff;z-index:2}
.drawer-head>div{min-width:0}
.drawer-head h2{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.drawer-head p{max-width:58ch;line-height:1.6;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;overflow-wrap:anywhere}
.drawer-head .drawer-close{position:absolute;top:24px;right:24px}
.drawer-scroll{min-height:0;overflow:auto;overscroll-behavior:contain;padding:26px 32px 38px;scrollbar-color:#bd9294 #faf5f4;scrollbar-width:thin}
.master-drawer{width:min(1100px,calc(100vw - 32px))}
.master-drawer .drawer-scroll{display:flex;flex-direction:column}
.integration-card>span,.template-card>div{min-width:0;overflow:hidden}
.drawer .template-grid{grid-template-columns:minmax(0,1fr)}
.template-card{min-width:0}
.integration-card>span>b,.template-card b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.template-card>button,.template-card>.status-pill{flex:none;white-space:nowrap}
.integration-card{grid-template-columns:38px minmax(0,1fr) auto auto}
.integration-card>button{white-space:nowrap}
.integration-name{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.modal-scroll p,.modal-scroll label,.modal-scroll small{overflow-wrap:anywhere}
.kb-card>button:nth-child(2){min-width:0}
.kb-card b,.kb-card span,.doc-list b{max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.integration-card .integration-summary-line,.integration-table-summary{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.template-card p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;text-overflow:ellipsis;max-height:3.2em}
.admin-main .template-card p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;text-overflow:ellipsis;max-height:3.2em}
@media(max-width:700px){
  .modal,.drawer,.master-drawer{width:calc(100vw - 20px);max-height:calc(100dvh - 20px)}
  .modal-scroll,.drawer-scroll{padding:22px 18px 28px}
  .modal-head{padding:20px 62px 16px 18px;min-height:68px}
  .modal .modal-head h3,.modal .modal-head h2{font-size:20px}
  .modal-close{top:10px;right:10px}
  .drawer-head{padding:20px 62px 16px 18px}
  .drawer-head .drawer-close{top:16px;right:16px}
  .generated-file{grid-template-columns:1fr;gap:10px}
  .file-actions{justify-content:flex-start}
}

.login-settings-card{max-width:720px}.login-settings-card form{display:grid;gap:14px}.login-settings-card label{display:grid;gap:8px;font-size:13px;font-weight:600}.login-settings-card textarea{width:100%;min-width:0;padding:12px;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--ink);resize:vertical;line-height:1.6;outline:none}.login-settings-card textarea:focus{border-color:var(--red);box-shadow:0 0 0 3px #96000112}.login-settings-card small{color:var(--muted);font-size:10px;font-weight:400}.login-settings-card [role=status]{color:var(--green);font-size:11px}
