/* ===== SOURCE: inline-style-1 ===== */

*{margin:0;padding:0;box-sizing:border-box}
body{font-family:'Inter',system-ui,sans-serif;background:#eef2f7;color:#1e293b;padding:16px;min-height:100vh}
.app{max-width:1600px;margin:0 auto;display:flex;flex-direction:column;gap:16px}
.hidden{display:none!important}
.top-bar{background:#0f2b4b;border-radius:20px;padding:12px 24px;display:flex;justify-content:space-between;align-items:center;color:#fff;box-shadow:0 6px 18px rgba(15,43,75,.2)}
.logo-area{display:flex;align-items:center;gap:12px}
.logo-icon{background:#3b82f6;width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:20px}
.logo-text h1{font-size:1.3rem;font-weight:700}
.logo-text .sub{font-size:.7rem;opacity:.7}
.user-area{display:flex;align-items:center;gap:14px}
.user-badge{background:rgba(255,255,255,.12);padding:6px 14px;border-radius:30px;font-size:.85rem}
.logout-btn{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.2);color:#fff;padding:6px 14px;border-radius:30px;cursor:pointer;font-size:.85rem}
.logout-btn:hover{background:rgba(255,255,255,.2)}
.main-layout{display:flex;gap:16px}
.sidebar{width:250px;background:#fff;border-radius:20px;padding:14px 10px;box-shadow:0 4px 12px rgba(0,0,0,.04);display:flex;flex-direction:column;gap:4px;height:fit-content;position:sticky;top:16px;max-height:calc(100vh - 32px);overflow-y:auto}
.nav-divider{font-size:.65rem;text-transform:uppercase;letter-spacing:.5px;color:#94a3b8;padding:10px 14px 4px;font-weight:600}
.nav-item{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:14px;color:#475569;font-weight:500;font-size:.88rem;cursor:pointer;transition:.15s;border:none;background:transparent;width:100%;text-align:left}
.nav-item i{width:18px;color:#64748b}
.nav-item:hover{background:#f1f5f9;color:#0f2b4b}
.nav-item.active{background:#eef2ff;color:#1e4a7a;font-weight:600;box-shadow:inset 3px 0 0 #3b82f6}
.nav-item.active i{color:#3b82f6}
.content-panel{flex:1;background:#fff;border-radius:20px;padding:22px 26px;box-shadow:0 4px 12px rgba(0,0,0,.04);min-height:75vh;overflow-y:auto}
.auth-container{max-width:440px;margin:60px auto;background:#fff;border-radius:28px;padding:36px 32px;box-shadow:0 20px 40px -12px rgba(0,0,0,.15)}
.auth-container h2{font-size:1.7rem;color:#0f2b4b;margin-bottom:6px}
.auth-container .subtitle{color:#64748b;font-size:.88rem;margin-bottom:26px}
.form-group{margin-bottom:16px}
.form-group label{display:block;font-weight:600;font-size:.83rem;color:#334155;margin-bottom:6px}
.form-group input,.form-group select{width:100%;padding:11px 15px;border-radius:14px;border:1.5px solid #e2e8f0;background:#f8fafc;font-size:.92rem;font-family:inherit}
.form-group input:focus,.form-group select:focus{outline:none;border-color:#3b82f6;background:#fff;box-shadow:0 0 0 3px rgba(59,130,246,.15)}
.auth-btn{width:100%;padding:13px;border-radius:36px;background:#0f2b4b;color:#fff;font-weight:600;font-size:.98rem;border:none;cursor:pointer;margin-top:6px;transition:.2s}
.auth-btn:hover{background:#1e4a7a;transform:translateY(-1px)}
.auth-switch{text-align:center;margin-top:16px;font-size:.85rem;color:#64748b}
.auth-switch a{color:#3b82f6;font-weight:600;cursor:pointer}
.demo-tip{background:#f0f9ff;border-left:3px solid #3b82f6;padding:10px 14px;border-radius:10px;font-size:.78rem;color:#1e4a7a;margin-top:16px}
.profile-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-top:16px}
.profile-card{background:#f8fafc;border-radius:18px;padding:18px;border:1px solid #e2e8f0}
.profile-card .label{font-size:.72rem;text-transform:uppercase;color:#64748b;font-weight:600;letter-spacing:.3px}
.profile-card .value{font-size:1.7rem;font-weight:700;color:#0f2b4b;margin-top:4px}
.profile-card .desc{font-size:.73rem;color:#94a3b8;margin-top:2px}
.chart-container{background:#f8fafc;border-radius:18px;padding:18px;border:1px solid #e2e8f0;margin-top:18px;position:relative;height:280px;overflow:hidden}
.chart-container.radar-container{height:360px}
.chart-container canvas{display:block!important;width:100%!important;height:100%!important;max-height:100%!important}
.toast{position:fixed;bottom:28px;right:28px;background:#0f2b4b;color:#fff;padding:12px 22px;border-radius:36px;font-size:.88rem;box-shadow:0 12px 25px rgba(0,0,0,.2);z-index:9999;animation:slideIn .3s ease}
@keyframes slideIn{from{transform:translateX(100%);opacity:0}to{transform:translateX(0);opacity:1}}
.module-render .sub-header{font-size:1.5rem;font-weight:700;color:#0f2b4b;margin-bottom:6px}
.module-render .sub-desc{color:#64748b;font-size:.85rem;margin-bottom:20px;border-left:3px solid #3b82f6;padding-left:12px}
.sub-card{background:#fff;border-radius:20px;padding:20px;margin-bottom:16px;border:1px solid #e2e8f0;box-shadow:0 2px 8px rgba(0,0,0,.03)}
.sub-card-title{font-size:1.05rem;font-weight:700;color:#0f2b4b;margin-bottom:14px;display:flex;align-items:center;gap:8px;border-left:4px solid #3b82f6;padding-left:12px}
.sub-form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}
.sub-form-group label{display:block;font-size:.78rem;font-weight:600;color:#334155;margin-bottom:4px}
.sub-form-group input,.sub-form-group select,.sub-form-group textarea{width:100%;padding:9px 12px;border-radius:12px;border:1.5px solid #cbd5e1;font-size:.85rem;font-family:inherit;background:#fff}
.sub-form-group input:focus,.sub-form-group select:focus,.sub-form-group textarea:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px rgba(59,130,246,.15)}
.sub-btn{background:#0f2b4b;color:#fff;border:none;padding:10px 20px;border-radius:36px;font-weight:600;font-size:.85rem;cursor:pointer;transition:.2s;display:inline-flex;align-items:center;gap:6px}
.sub-btn:hover{background:#1e4a7a}
.sub-btn.secondary{background:#f1f5f9;color:#0f2b4b;border:1px solid #cbd5e1}
.sub-btn.secondary:hover{background:#e2e8f0}
.sub-btn-group{display:flex;gap:10px;flex-wrap:wrap;margin-top:6px}
.result-box{background:#f8fafc;border-radius:14px;padding:14px;border:1px solid #e2e8f0;margin-top:12px;font-size:.85rem;line-height:1.6}
.result-box.risk-item{border-left:4px solid #f59e0b;background:#fffbeb}
.badge{display:inline-block;padding:2px 10px;border-radius:20px;font-size:.7rem;font-weight:600}
.badge-blue{background:#dbeafe;color:#1e40af}
.badge-green{background:#dcfce7;color:#15803d}
.badge-amber{background:#fef3c7;color:#b45309}
.badge-red{background:#fee2e2;color:#b91c1c}
.sub-table{width:100%;border-collapse:collapse;margin-top:12px;font-size:.82rem}
.sub-table th,.sub-table td{border:1px solid #e2e8f0;padding:8px 10px;text-align:center}
.sub-table th{background:#f1f5f9;font-weight:600}
.gantt-bar{height:20px;background:#e2e8f0;border-radius:10px;position:relative;overflow:hidden;cursor:pointer}
.gantt-progress{height:100%;background:linear-gradient(90deg,#3b82f6,#60b0ff);border-radius:10px;transition:width .2s}
.arch-tree{margin-left:16px;border-left:2px dashed #cbd5e1;padding-left:20px;margin-top:12px}
.arch-node{background:#fff;border-radius:12px;padding:10px 14px;margin:8px 0;border-left:4px solid #3b82f6;box-shadow:0 1px 4px rgba(0,0,0,.04)}
.arch-node b{color:#1e4a7a}
.teach-panel{background:linear-gradient(135deg,#f0f9ff 0%,#e0f2fe 100%);border-radius:20px;padding:18px 20px;margin-bottom:18px;border:1px solid #bae6fd;box-shadow:0 4px 12px rgba(14,165,233,.06)}
.teach-panel .teach-header{display:flex;align-items:center;gap:8px;font-weight:700;color:#0369a1;font-size:.95rem;margin-bottom:12px;cursor:pointer;user-select:none}
.teach-panel .teach-header .toggle-icon{margin-left:auto;transition:transform .2s;font-size:.8rem;color:#0284c7}
.teach-panel.collapsed .teach-header .toggle-icon{transform:rotate(-90deg)}
.teach-panel.collapsed .teach-body{display:none}
.knowledge-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;margin-bottom:12px}
.knowledge-card{background:#fff;border-radius:12px;padding:12px 14px;border-left:4px solid #0ea5e9;box-shadow:0 2px 6px rgba(0,0,0,.04);font-size:.8rem;line-height:1.6;color:#334155}
.knowledge-card .k-title{font-weight:700;color:#0369a1;margin-bottom:4px;font-size:.85rem;display:flex;align-items:center;gap:6px}
.guide-steps{background:#fff;border-radius:12px;padding:14px 16px;margin-bottom:12px}
.guide-steps .step-item{display:flex;align-items:flex-start;gap:10px;padding:8px 0;border-bottom:1px dashed #e2e8f0;font-size:.83rem;color:#334155;cursor:pointer}
.guide-steps .step-item:last-child{border-bottom:none}
.guide-steps .step-item input[type="checkbox"]{margin-top:3px;width:16px;height:16px;accent-color:#0ea5e9;cursor:pointer}
.guide-steps .step-item.done{color:#94a3b8;text-decoration:line-through}
.guide-steps .step-num{background:#0ea5e9;color:#fff;width:20px;height:20px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:700;flex-shrink:0;margin-top:2px}
.guide-steps .step-item.done .step-num{background:#94a3b8}
.faq-list{background:#fff;border-radius:12px;padding:8px 12px;max-height:260px;overflow-y:auto}
.faq-item{border-bottom:1px solid #f1f5f9;padding:10px 4px}
.faq-item:last-child{border-bottom:none}
.faq-q{font-weight:600;color:#0f2b4b;font-size:.83rem;cursor:pointer;display:flex;align-items:center;gap:8px;user-select:none}
.faq-q:hover{color:#0369a1}
.faq-q .faq-icon{color:#0ea5e9;font-size:.75rem;transition:transform .2s}
.faq-item.open .faq-q .faq-icon{transform:rotate(90deg)}
.faq-a{display:none;margin-top:8px;padding:10px 14px;background:#f0f9ff;border-radius:10px;font-size:.8rem;line-height:1.7;color:#334155;border-left:3px solid #0ea5e9}
.faq-item.open .faq-a{display:block}
.skill-rating{background:#fff;border-radius:12px;padding:12px 16px;display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:.83rem}
.skill-rating .star-btn{font-size:1.3rem;color:#cbd5e1;cursor:pointer;transition:.15s}
.skill-rating .star-btn.active{color:#f59e0b}
.skill-rating .star-btn:hover{transform:scale(1.15)}
.skill-rating .rating-feedback{margin-left:auto;font-size:.78rem;color:#0ea5e9;font-weight:600}
.chat-layout{display:grid;grid-template-columns:240px 1fr;gap:16px;height:600px}
.chat-sidebar{background:#f8fafc;border-radius:16px;padding:14px;border:1px solid #e2e8f0;overflow-y:auto}
.chat-sidebar .cat-title{font-size:.72rem;text-transform:uppercase;color:#64748b;font-weight:700;letter-spacing:.5px;margin:14px 8px 6px}
.chat-sidebar .cat-title:first-child{margin-top:0}
.chat-cat-btn{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;border-radius:10px;border:none;background:transparent;color:#475569;font-size:.83rem;text-align:left;cursor:pointer;font-family:inherit;transition:.15s}
.chat-cat-btn:hover{background:#eef2f7;color:#0f2b4b}
.chat-cat-btn.active{background:#eef2ff;color:#1e4a7a;font-weight:600;box-shadow:inset 3px 0 0 #3b82f6}
.chat-cat-btn .cat-count{margin-left:auto;background:#e2e8f0;color:#475569;padding:1px 7px;border-radius:10px;font-size:.68rem;font-weight:600}
.chat-main{display:flex;flex-direction:column;background:#fff;border-radius:16px;border:1px solid #e2e8f0;overflow:hidden}
.chat-header{padding:14px 18px;background:linear-gradient(120deg,#0f2b4b,#1e4a7a);color:#fff;display:flex;align-items:center;gap:10px}
.chat-header .bot-avatar{width:36px;height:36px;border-radius:50%;background:#3b82f6;display:flex;align-items:center;justify-content:center;font-size:16px}
.chat-header .bot-info h4{font-size:.95rem;font-weight:700}
.chat-header .bot-info span{font-size:.7rem;opacity:.8}
.chat-header .online-dot{margin-left:auto;display:flex;align-items:center;gap:5px;font-size:.72rem;background:rgba(255,255,255,.15);padding:4px 10px;border-radius:20px}
.chat-header .online-dot i{color:#4ade80;font-size:.6rem;animation:pulse 1.5s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.4}}
.chat-body{flex:1;overflow-y:auto;padding:18px;background:#f8fafc;display:flex;flex-direction:column;gap:12px}
.chat-msg{display:flex;gap:10px;max-width:85%}
.chat-msg.user{align-self:flex-end;flex-direction:row-reverse}
.chat-msg .avatar{width:32px;height:32px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:13px;color:#fff}
.chat-msg.user .avatar{background:#7c3aed}
.chat-msg.bot .avatar{background:#3b82f6}
.chat-msg .bubble{background:#fff;border-radius:14px;padding:10px 14px;font-size:.86rem;line-height:1.65;box-shadow:0 1px 3px rgba(0,0,0,.05);color:#1e293b}
.chat-msg.user .bubble{background:#7c3aed;color:#fff}
.chat-msg .bubble .ref{display:block;margin-top:8px;padding-top:8px;border-top:1px dashed #cbd5e1;font-size:.72rem;color:#64748b}
.chat-msg.user .bubble .ref{border-top-color:rgba(255,255,255,.3);color:rgba(255,255,255,.85)}
.chat-msg .bubble ul{margin:6px 0 0 16px}
.chat-msg .bubble li{margin-bottom:3px}
.chat-msg .bubble code{background:#f1f5f9;padding:1px 5px;border-radius:4px;font-family:monospace;font-size:.8rem;color:#0f2b4b}
.chat-typing{display:flex;gap:4px;padding:6px 0}
.chat-typing span{width:6px;height:6px;border-radius:50%;background:#94a3b8;animation:typingBounce 1.2s infinite}
.chat-typing span:nth-child(2){animation-delay:.15s}
.chat-typing span:nth-child(3){animation-delay:.3s}
@keyframes typingBounce{0%,80%,100%{transform:translateY(0);opacity:.5}40%{transform:translateY(-6px);opacity:1}}
.chat-quick{padding:10px 18px 6px;background:#fff;border-top:1px solid #f1f5f9;display:flex;gap:6px;flex-wrap:wrap}
.chat-quick .quick-tag{background:#f1f5f9;color:#475569;padding:5px 12px;border-radius:20px;font-size:.75rem;cursor:pointer;transition:.15s;border:none;font-family:inherit}
.chat-quick .quick-tag:hover{background:#eef2ff;color:#1e4a7a}
.chat-input-area{padding:12px 18px 16px;background:#fff;display:flex;gap:10px;align-items:flex-end}
.chat-input-area textarea{flex:1;padding:10px 14px;border-radius:12px;border:1.5px solid #cbd5e1;font-size:.88rem;font-family:inherit;resize:none;max-height:100px;line-height:1.5}
.chat-input-area textarea:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px rgba(59,130,246,.15)}
.chat-input-area .send-btn{background:#0f2b4b;color:#fff;border:none;width:42px;height:42px;border-radius:12px;cursor:pointer;font-size:1rem;display:flex;align-items:center;justify-content:center;transition:.2s}
.chat-input-area .send-btn:hover{background:#1e4a7a}
.chat-input-area .send-btn:disabled{background:#94a3b8;cursor:not-allowed}
.chat-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-bottom:14px}
.chat-stat-card{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:10px 14px}
.chat-stat-card .stat-label{font-size:.7rem;text-transform:uppercase;color:#64748b;font-weight:600}
.chat-stat-card .stat-value{font-size:1.4rem;font-weight:700;color:#0f2b4b;margin-top:2px}
@media(max-width:800px){.main-layout{flex-direction:column}.sidebar{width:100%;flex-direction:row;flex-wrap:wrap;position:static;max-height:none}.nav-item{width:auto;font-size:.78rem;padding:8px 12px}.nav-item i{display:none}.sub-form-row{grid-template-columns:1fr}.chart-container{height:240px}.chart-container.radar-container{height:300px}.chat-layout{grid-template-columns:1fr;height:auto}.chat-sidebar{max-height:180px}.chat-main{height:520px}}

.project-hero{background:linear-gradient(135deg,#0f2b4b,#1f4f7a);color:#fff;border-radius:22px;padding:24px;margin-bottom:18px;position:relative;overflow:hidden}.project-hero:after{content:"";position:absolute;right:-55px;top:-70px;width:220px;height:220px;border-radius:50%;background:rgba(255,255,255,.06)}.project-hero h2{font-size:1.55rem;margin-bottom:8px}.project-hero p{font-size:.86rem;line-height:1.8;opacity:.92;max-width:960px}.project-tags{display:flex;gap:7px;flex-wrap:wrap;margin-top:14px}.project-tag{background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.18);padding:4px 10px;border-radius:20px;font-size:.72rem}.stage-list{display:flex;flex-direction:column;gap:11px}.stage-row{border:1px solid #e2e8f0;border-radius:16px;padding:15px;background:#fff;display:grid;grid-template-columns:42px 1fr auto;gap:12px;align-items:center}.stage-row.done{border-color:#86efac;background:#f0fdf4}.stage-no{width:38px;height:38px;border-radius:12px;background:#eef2ff;color:#1e4a7a;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.78rem}.stage-row.done .stage-no{background:#dcfce7;color:#15803d}.stage-title{font-weight:700;color:#0f2b4b;font-size:.92rem}.stage-desc{font-size:.75rem;color:#64748b;line-height:1.55;margin-top:4px}.project-stage-layout{display:grid;grid-template-columns:minmax(210px,23%) minmax(430px,1fr) minmax(260px,28%);gap:14px;align-items:start}.stage-col{background:#fff;border:1px solid #e2e8f0;border-radius:18px;padding:14px}.stage-col.sticky{position:sticky;top:14px;max-height:calc(100vh - 42px);overflow-y:auto}.stage-col-title{font-size:.9rem;font-weight:800;color:#0f2b4b;margin-bottom:10px;display:flex;align-items:center;gap:7px}.material-item,.policy-card,.teacher-tip,.op-item{border:1px solid #e2e8f0;border-radius:12px;padding:10px 11px;margin-bottom:8px;background:#f8fafc}.material-item .mini,.policy-card .mini{font-size:.65rem;color:#3b82f6;font-weight:700;margin-bottom:3px}.material-item b,.policy-card b{font-size:.78rem;color:#0f2b4b}.material-item p,.policy-card p,.teacher-tip{font-size:.72rem;line-height:1.55;color:#475569}.policy-card{border-left:3px solid #16a34a;background:#f0fdf4}.policy-card a{font-size:.68rem;color:#15803d;text-decoration:none}.teacher-tip{background:#f0f9ff;border-left:3px solid #0ea5e9}.op-item{background:#fff;display:flex;gap:10px;align-items:flex-start}.op-num{width:24px;height:24px;border-radius:50%;background:#0ea5e9;color:#fff;display:flex;align-items:center;justify-content:center;font-size:.68rem;font-weight:800;flex-shrink:0}.op-main{flex:1}.op-main b{font-size:.78rem}.op-main .op-actions{margin-top:7px}.stage-tool-host{border:1px dashed #93c5fd;border-radius:16px;padding:12px;margin-top:12px;background:#f8fbff}.stage-tool-host .teach-panel{display:none!important}.stage-tool-host .sub-header{font-size:1.05rem}.stage-tool-host .sub-desc{font-size:.75rem}.artifact-textarea{width:100%;min-height:250px;padding:14px;border:1.5px solid #cbd5e1;border-radius:14px;font-family:inherit;font-size:.84rem;line-height:1.75;resize:vertical}.rubric-chip{display:inline-block;background:#eef2ff;color:#3730a3;border-radius:18px;padding:4px 9px;font-size:.68rem;margin:3px}.feedback-box{background:#fff7ed;border-left:4px solid #f59e0b;border-radius:12px;padding:12px;font-size:.78rem;line-height:1.7;margin-top:12px}.assistant-panel{display:flex;flex-direction:column;gap:8px}.assistant-messages{height:330px;overflow-y:auto;background:#f8fafc;border-radius:12px;padding:10px;display:flex;flex-direction:column;gap:8px}.assistant-msg{max-width:92%;padding:9px 11px;border-radius:12px;font-size:.75rem;line-height:1.6}.assistant-msg.user{align-self:flex-end;background:#1e4a7a;color:#fff}.assistant-msg.bot{align-self:flex-start;background:#fff;border:1px solid #e2e8f0}.assistant-ref{margin-top:6px;padding-top:6px;border-top:1px dashed #cbd5e1;font-size:.65rem}.assistant-input{display:flex;gap:7px}.assistant-input textarea{flex:1;border:1.5px solid #cbd5e1;border-radius:11px;padding:9px;font-family:inherit;font-size:.76rem;resize:none}.assistant-input button{width:38px;border:none;border-radius:11px;background:#0f2b4b;color:#fff;cursor:pointer}.ai-float{position:fixed;right:24px;bottom:24px;width:54px;height:54px;border-radius:50%;background:#0f2b4b;color:#fff;border:none;box-shadow:0 10px 28px rgba(15,43,75,.3);z-index:9000;cursor:pointer;font-size:20px}.ai-drawer{position:fixed;right:22px;bottom:88px;width:380px;max-width:calc(100vw - 32px);height:560px;background:#fff;border-radius:20px;box-shadow:0 18px 50px rgba(15,43,75,.25);z-index:8999;border:1px solid #e2e8f0;display:flex;flex-direction:column;overflow:hidden}.ai-drawer-head{background:#0f2b4b;color:#fff;padding:13px 15px;display:flex;justify-content:space-between;align-items:center}.ai-drawer-body{padding:11px;flex:1;display:flex;flex-direction:column;min-height:0}.ai-hidden{display:none!important}.profile-two{display:grid;grid-template-columns:1.2fr .8fr;gap:16px}.ai-skill-row{margin-bottom:12px}.ai-skill-row .line{display:flex;justify-content:space-between;font-size:.78rem;margin-bottom:4px}.mini-progress{height:8px;background:#e2e8f0;border-radius:10px;overflow:hidden}.mini-progress>div{height:100%;background:linear-gradient(90deg,#0ea5e9,#3b82f6)}.safe-note{background:#fff7ed;border:1px solid #fed7aa;border-left:4px solid #f59e0b;border-radius:12px;padding:11px;font-size:.72rem;line-height:1.6;color:#7c2d12}.score-badge{font-size:1.5rem;font-weight:800;color:#0f2b4b}.policy-strip{display:flex;gap:8px;overflow-x:auto;padding-bottom:5px}.policy-strip .policy-card{min-width:240px;margin:0}.learning-trace-note{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:10px;font-size:.75rem;color:#64748b;margin-bottom:12px}@media(max-width:1150px){.project-stage-layout{grid-template-columns:1fr}.stage-col.sticky{position:static;max-height:none}.profile-two{grid-template-columns:1fr}}@media(max-width:700px){.stage-row{grid-template-columns:38px 1fr}.stage-row>button{grid-column:1/-1}.ai-drawer{right:10px;bottom:82px;width:calc(100vw - 20px)}}


.diag-card{border:1px solid #dbeafe;background:#f8fbff;border-radius:14px;padding:13px;margin-bottom:10px}.diag-type{display:inline-block;background:#dbeafe;color:#1d4ed8;border-radius:14px;padding:2px 8px;font-size:.65rem;font-weight:700;margin-bottom:7px}.diag-q{font-size:.82rem;font-weight:700;color:#0f2b4b;line-height:1.6;margin-bottom:9px}.diag-option{display:block;border:1px solid #e2e8f0;background:#fff;border-radius:10px;padding:8px 10px;margin:6px 0;font-size:.76rem;cursor:pointer}.diag-option:hover{border-color:#93c5fd;background:#eff6ff}.diag-result{margin-top:8px;font-size:.73rem;line-height:1.6}.diag-result.ok{color:#15803d}.diag-result.bad{color:#b45309}.socratic-modes{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;margin-bottom:7px}.socratic-mode{border:1px solid #cbd5e1;background:#fff;border-radius:9px;padding:6px 7px;font-size:.67rem;cursor:pointer;color:#475569}.socratic-mode.active{background:#e0f2fe;border-color:#38bdf8;color:#075985;font-weight:700}.scaffold-tag{font-size:.65rem;background:#f1f5f9;color:#475569;padding:3px 8px;border-radius:12px;margin-bottom:6px;display:inline-block}.teacher-data-shell{max-width:820px;margin:0 auto;border:1px solid #dbeafe;border-radius:22px;overflow:hidden;background:#fff;box-shadow:0 16px 38px rgba(30,64,175,.09)}.teacher-data-head{background:linear-gradient(135deg,#2563eb,#3b82f6);color:#fff;padding:22px 26px}.teacher-data-head h2{font-size:1.35rem;margin-bottom:5px}.teacher-data-head p{font-size:.8rem;opacity:.88}.teacher-data-controls{display:flex;gap:12px;align-items:center;padding:14px 20px;border-bottom:1px solid #e2e8f0}.teacher-data-controls select{flex:1;padding:10px 12px;border:1px solid #cbd5e1;border-radius:11px;background:#fff}.teacher-data-chat{height:420px;overflow-y:auto;padding:18px;background:#f8fafc;display:flex;flex-direction:column;gap:10px}.teacher-data-msg{max-width:86%;padding:12px 15px;border-radius:14px;font-size:.8rem;line-height:1.7;white-space:pre-wrap}.teacher-data-msg.user{align-self:flex-end;background:#2563eb;color:#fff}.teacher-data-msg.bot{align-self:flex-start;background:#fff;border:1px solid #dbeafe}.teacher-data-input{display:flex;gap:10px;padding:14px 18px;background:#fff;border-top:1px solid #e2e8f0}.teacher-data-input textarea{flex:1;border:1px solid #cbd5e1;border-radius:12px;padding:10px 12px;resize:none;font-family:inherit}.teacher-data-input button{background:#2563eb;color:#fff;border:none;border-radius:12px;padding:0 18px;font-weight:700;cursor:pointer}.admin-actions{display:flex;gap:5px;justify-content:center;flex-wrap:wrap}.modal-mask{position:fixed;inset:0;background:rgba(15,23,42,.5);z-index:99990;display:flex;align-items:center;justify-content:center}.modal-card{width:460px;max-width:92vw;background:#fff;border-radius:20px;padding:24px;box-shadow:0 24px 70px rgba(0,0,0,.25)}.auth-note{background:#f8fafc;border:1px solid #e2e8f0;border-radius:11px;padding:9px 11px;font-size:.73rem;line-height:1.6;color:#64748b;margin-bottom:14px}


/* ===== V7.21.0 财经证据链 / 师生机双循环 ===== */
.node-flow{display:flex;gap:8px;overflow-x:auto;padding:8px 2px 14px;margin-bottom:10px}
.node-pill{min-width:136px;border:1px solid #dbeafe;background:#f8fbff;border-radius:14px;padding:10px;cursor:pointer;position:relative}
.node-pill.active{border-color:#2563eb;background:#eff6ff;box-shadow:0 0 0 2px rgba(37,99,235,.08)}
.node-pill.confirmed{border-color:#86efac;background:#f0fdf4}
.node-pill .n{font-size:.64rem;color:#64748b}.node-pill b{font-size:.75rem;display:block;margin-top:3px}
.node-pill .gate{font-size:.62rem;color:#b45309;margin-top:4px}
.v5-banner{border:1px solid #bfdbfe;background:linear-gradient(135deg,#eff6ff,#f8fafc);border-radius:14px;padding:11px 13px;margin:10px 0;font-size:.74rem;line-height:1.6}
.prof-task{border:1px solid #e2e8f0;border-radius:14px;padding:13px;margin:10px 0;background:#fff}
.prof-task .task-kicker{font-size:.65rem;color:#2563eb;font-weight:700;letter-spacing:.03em}
.prof-task .task-title{font-weight:700;font-size:.82rem;margin:5px 0 10px}
.evidence-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.evidence-grid textarea{width:100%;min-height:84px;border:1px solid #cbd5e1;border-radius:10px;padding:9px;font:inherit}
.evidence-grid label{font-size:.68rem;color:#475569;font-weight:600;display:block;margin-bottom:4px}
.evidence-grid .wide{grid-column:1/-1}
.coach-alert{border:1px solid #fbbf24;background:#fffbeb;border-radius:12px;padding:10px 12px;margin:10px 0;font-size:.74rem;line-height:1.6}
.ai-mode-row{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:8px}
.socratic-mode{border:1px solid #cbd5e1;background:#fff;color:#475569;border-radius:999px;padding:5px 9px;font-size:.65rem;cursor:pointer}
.socratic-mode.active{background:#1d4ed8;color:white;border-color:#1d4ed8}
.cockpit-band{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:12px 0}
.state-card{border-radius:14px;padding:13px;border:1px solid #e2e8f0;background:#fff}
.state-card.good{border-top:4px solid #22c55e}.state-card.mid{border-top:4px solid #f59e0b}.state-card.weak{border-top:4px solid #ef4444}
.state-card h4{font-size:.78rem;margin-bottom:7px}.state-card p{font-size:.7rem;line-height:1.6;color:#475569}
.decision-bar{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.role-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
.role-btn{border:1px solid #cbd5e1;background:#fff;border-radius:12px;padding:9px;font-size:.7rem;cursor:pointer}
.role-btn.active{border-color:#2563eb;background:#eff6ff;color:#1d4ed8;font-weight:700}
.boundary-card{border-left:4px solid #0f766e;background:#f0fdfa;padding:12px;border-radius:10px;margin:8px 0;font-size:.73rem;line-height:1.65}
@media(max-width:900px){.evidence-grid,.cockpit-band{grid-template-columns:1fr}.role-grid{grid-template-columns:repeat(2,1fr)}}


/* ===== V7.21.0 培训风智能体门户首页 ===== */
.portal-home{
  position:fixed; inset:0; z-index:9000; overflow-y:auto;
  background:
    radial-gradient(circle at 88% 12%, rgba(56,189,248,.16), transparent 26%),
    radial-gradient(circle at 12% 18%, rgba(37,99,235,.10), transparent 24%),
    linear-gradient(180deg,#f7fbff 0%,#eef5fb 52%,#f8fafc 100%);
  color:#19324d;
}
.portal-shell{max-width:1240px;margin:0 auto;padding:0 28px}
.portal-nav{
  position:sticky;top:0;z-index:30;
  backdrop-filter:blur(16px); background:rgba(248,251,255,.88);
  border-bottom:1px solid rgba(148,163,184,.18);
}
.portal-nav-inner{height:74px;display:flex;align-items:center;justify-content:space-between;gap:22px}
.portal-brand{display:flex;align-items:center;gap:12px}
.portal-brand-icon{
  width:42px;height:42px;border-radius:14px;background:linear-gradient(135deg,#123a63,#2768a8);
  color:white;display:flex;align-items:center;justify-content:center;font-size:19px;
  box-shadow:0 10px 24px rgba(30,78,121,.20)
}
.portal-brand b{font-size:1.12rem;color:#102e4d}
.portal-brand small{display:block;color:#6b7f92;font-size:.68rem;margin-top:2px}
.portal-links{display:flex;gap:22px;align-items:center}
.portal-links a{font-size:.82rem;color:#52677d;text-decoration:none;cursor:pointer}
.portal-links a:hover{color:#15548a}
.portal-nav-actions{display:flex;gap:10px}
.portal-btn{
  border:0;border-radius:999px;padding:11px 18px;font-weight:650;cursor:pointer;font-family:inherit;
  transition:.2s;display:inline-flex;align-items:center;justify-content:center;gap:8px
}
.portal-btn.primary{background:#123a63;color:#fff;box-shadow:0 10px 24px rgba(18,58,99,.18)}
.portal-btn.primary:hover{transform:translateY(-1px);background:#174d82}
.portal-btn.ghost{background:white;color:#174d82;border:1px solid #cfdceb}
.portal-btn.ghost:hover{background:#eef6fd}
.portal-hero{min-height:680px;display:grid;grid-template-columns:1.08fr .92fr;align-items:center;gap:54px;padding:74px 0 58px}
.portal-kicker{
  display:inline-flex;align-items:center;gap:7px;padding:7px 12px;border-radius:999px;
  background:#e9f4ff;color:#225e92;font-size:.72rem;font-weight:700;margin-bottom:18px
}
.portal-hero h1{font-size:3.1rem;line-height:1.1;letter-spacing:-1.6px;color:#102e4d;margin-bottom:18px}
.portal-hero h1 span{color:#256aa5}
.portal-hero .lead{font-size:1.04rem;line-height:1.9;color:#52677d;max-width:680px}
.portal-hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin:28px 0 20px}
.portal-tags{display:flex;gap:9px;flex-wrap:wrap}
.portal-tag{font-size:.7rem;padding:7px 10px;border-radius:999px;background:white;border:1px solid #d7e3ee;color:#60768b}
.agent-stage{position:relative;min-height:470px;display:flex;align-items:center;justify-content:center}
.agent-halo{
  position:absolute;width:380px;height:380px;border-radius:50%;
  background:radial-gradient(circle,rgba(93,169,224,.19),rgba(93,169,224,.04) 58%,transparent 70%)
}
.agent-card{
  position:relative;width:360px;background:rgba(255,255,255,.94);border:1px solid rgba(199,216,231,.8);
  border-radius:28px;padding:26px;box-shadow:0 28px 70px rgba(42,77,109,.17)
}
.agent-profile{display:flex;align-items:center;gap:14px;margin-bottom:18px}
.agent-avatar{
  width:66px;height:66px;border-radius:20px;background:linear-gradient(145deg,#173b5f,#2c78b8);
  display:flex;align-items:center;justify-content:center;color:white;font-size:28px;position:relative
}
.agent-avatar:after{content:"AI";position:absolute;right:-5px;bottom:-5px;background:#19a974;color:#fff;border:3px solid #fff;border-radius:999px;padding:3px 6px;font-size:.54rem;font-weight:800}
.agent-profile h3{color:#153653;font-size:1.05rem;margin-bottom:4px}
.agent-profile p{font-size:.68rem;color:#74889c}
.agent-bubble{padding:15px 16px;border-radius:18px 18px 18px 5px;background:#edf6fd;color:#34516c;font-size:.82rem;line-height:1.75}
.agent-actions{display:flex;gap:8px;margin-top:14px}
.agent-mini{flex:1;background:#fff;border:1px solid #d9e5ef;border-radius:12px;padding:10px;font-size:.68rem;color:#587088;text-align:center}
.float-note{
  position:absolute;background:#fff;border:1px solid #dce7f0;border-radius:16px;padding:11px 14px;
  box-shadow:0 12px 30px rgba(35,72,106,.12);font-size:.68rem;color:#486178
}
.float-note.a{top:54px;right:-18px}.float-note.b{bottom:56px;left:-34px}
.portal-section{padding:78px 0}
.portal-section.alt{background:rgba(255,255,255,.62);border-top:1px solid rgba(211,224,235,.7);border-bottom:1px solid rgba(211,224,235,.7)}
.portal-heading{max-width:760px;margin-bottom:32px}
.portal-heading .eyebrow{font-size:.7rem;color:#2a6b9f;font-weight:800;letter-spacing:.12em;margin-bottom:10px}
.portal-heading h2{font-size:2rem;color:#123653;margin-bottom:10px;letter-spacing:-.5px}
.portal-heading p{color:#64798e;line-height:1.8;font-size:.9rem}
.task-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.task-card{
  background:white;border:1px solid #dae6f0;border-radius:22px;padding:22px;cursor:pointer;
  transition:.22s;min-height:220px;position:relative;overflow:hidden
}
.task-card:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(36,73,108,.11);border-color:#b9d3e8}
.task-icon{width:44px;height:44px;border-radius:14px;background:#edf6fd;color:#25699e;display:flex;align-items:center;justify-content:center;font-size:18px;margin-bottom:17px}
.task-card h3{font-size:1rem;color:#193b58;margin-bottom:9px}
.task-card p{font-size:.76rem;color:#6b8195;line-height:1.7}
.task-enter{position:absolute;left:22px;bottom:20px;font-size:.7rem;color:#1f6ea8;font-weight:700}
.flow-line{display:grid;grid-template-columns:repeat(7,1fr);gap:10px;align-items:stretch}
.flow-step{background:#fff;border:1px solid #dbe6ef;border-radius:16px;padding:16px 10px;text-align:center;min-height:116px}
.flow-step .n{width:28px;height:28px;border-radius:50%;margin:0 auto 10px;background:#eaf4fc;color:#1e6499;display:flex;align-items:center;justify-content:center;font-size:.68rem;font-weight:800}
.flow-step b{font-size:.73rem;color:#24445f;display:block}.flow-step small{font-size:.61rem;color:#7b8fa2;line-height:1.5;display:block;margin-top:6px}
.ai-demo-grid{display:grid;grid-template-columns:.92fr 1.08fr;gap:28px}
.dialog-panel,.teacher-preview{background:#fff;border:1px solid #dbe6ef;border-radius:24px;padding:24px;box-shadow:0 16px 36px rgba(35,71,103,.07)}
.dialog-row{display:flex;gap:10px;margin:13px 0}
.dialog-row.student{justify-content:flex-end}
.dialog-avatar{width:34px;height:34px;border-radius:11px;background:#eaf3fb;color:#2a6695;display:flex;align-items:center;justify-content:center;flex:0 0 auto}
.dialog-text{max-width:82%;border-radius:16px;padding:12px 14px;font-size:.76rem;line-height:1.7}
.dialog-row.student .dialog-text{background:#173f66;color:white;border-bottom-right-radius:4px}
.dialog-row.ai .dialog-text{background:#eff7fd;color:#3d5870;border-bottom-left-radius:4px}
.detect-state{margin-top:16px;padding:12px;border-radius:14px;background:#fff8e8;border:1px solid #f1d995;color:#846318;font-size:.7rem}
.teacher-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:16px 0}
.teacher-stat{border:1px solid #e1e9f0;border-radius:14px;padding:13px}.teacher-stat b{font-size:1.15rem;color:#194a73}.teacher-stat span{display:block;font-size:.62rem;color:#778b9e;margin-top:5px}
.teacher-advice{background:#f1f8fe;border-radius:16px;padding:15px;font-size:.73rem;line-height:1.7;color:#48637c}
.org-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.org-card{background:#fff;border:1px solid #dbe6ef;border-radius:20px;padding:22px}
.org-card .num{font-size:.65rem;color:#2b6a9a;font-weight:800;margin-bottom:10px}.org-card h3{font-size:.98rem;color:#1b405f;margin-bottom:8px}.org-card p{font-size:.74rem;color:#6f8397;line-height:1.7}
.portal-footer{padding:34px 0 45px;color:#75889a;font-size:.68rem;border-top:1px solid #dfe8ef}
.portal-auth-backdrop{position:fixed;inset:0;background:rgba(12,34,54,.48);backdrop-filter:blur(6px);z-index:11000}
#authContainer.portal-login{
  position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:11001;
  margin:0;max-height:90vh;overflow:auto;width:440px
}
.auth-close{
  position:absolute;right:18px;top:16px;width:32px;height:32px;border:0;border-radius:50%;
  background:#edf2f7;color:#5f7285;cursor:pointer;font-size:18px
}
@media(max-width:1050px){
  .portal-links{display:none}.portal-hero{grid-template-columns:1fr;padding-top:48px}.agent-stage{min-height:430px}
  .task-grid{grid-template-columns:repeat(2,1fr)}.flow-line{grid-template-columns:repeat(2,1fr)}.ai-demo-grid{grid-template-columns:1fr}
}
@media(max-width:640px){
  .portal-shell{padding:0 18px}.portal-nav-actions .ghost{display:none}.portal-hero h1{font-size:2.25rem}
  .task-grid,.org-steps{grid-template-columns:1fr}.agent-card{width:310px}.float-note{display:none}
  .portal-section{padding:58px 0}.teacher-stats{grid-template-columns:1fr}
}


/* ===== V7.21.0 公开预览、注册门槛与动态视觉 ===== */
.portal-home{
  background:
    radial-gradient(circle at 82% 10%, rgba(18,191,166,.18), transparent 23%),
    radial-gradient(circle at 10% 17%, rgba(63,103,240,.18), transparent 24%),
    radial-gradient(circle at 75% 58%, rgba(245,174,53,.10), transparent 20%),
    linear-gradient(180deg,#f6fbff 0%,#edf7f7 42%,#f8fafc 100%);
}
.portal-nav{border-bottom:1px solid rgba(31,85,114,.13)}
.portal-brand-icon{background:linear-gradient(135deg,#14395b 0%,#1f6c82 55%,#1ea58d 100%)}
.portal-btn.primary{
  background:linear-gradient(110deg,#14395b 0%,#226a83 52%,#15977f 100%);
  position:relative;overflow:hidden
}
.portal-btn.primary:after{
  content:"";position:absolute;top:-40%;left:-70%;width:46%;height:180%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.32),transparent);
  transform:rotate(18deg);animation:buttonShine 4.6s ease-in-out infinite
}
.portal-kicker{background:linear-gradient(90deg,#e6f1ff,#e7faf4);color:#1d6373;border:1px solid rgba(34,134,141,.12)}
.portal-hero h1 span{
  background:linear-gradient(90deg,#256aa5,#15977f,#d39a2f,#256aa5);
  background-size:260% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;
  animation:titleFlow 7s linear infinite
}
.agent-stage:before,.agent-stage:after{
  content:"";position:absolute;border:1px dashed rgba(27,124,141,.26);border-radius:50%;
  animation:orbitSpin 18s linear infinite
}
.agent-stage:before{width:420px;height:420px}
.agent-stage:after{width:320px;height:320px;animation-direction:reverse;animation-duration:12s}
.agent-halo{animation:haloPulse 4s ease-in-out infinite}
.agent-card{animation:gentleFloat 5.8s ease-in-out infinite;border-color:rgba(73,155,166,.24)}
.float-note{animation:floatTag 4.8s ease-in-out infinite}
.float-note.b{animation-delay:-2.2s}
.agent-avatar{background:linear-gradient(145deg,#143b61,#207493 58%,#18a085)}
.agent-avatar:before{
  content:"";position:absolute;inset:-8px;border:1px solid rgba(27,160,139,.26);
  border-radius:25px;animation:avatarPulse 2.6s ease-out infinite
}
.agent-bubble{background:linear-gradient(135deg,#edf6fd,#eefaf7)}
.agent-mini:nth-child(1){border-top:3px solid #2b72ac}
.agent-mini:nth-child(2){border-top:3px solid #17a08c}
.agent-mini:nth-child(3){border-top:3px solid #d5a13d}
.portal-section.alt{
  background:linear-gradient(135deg,rgba(255,255,255,.88),rgba(237,248,247,.82));
}
.task-card:before{
  content:"";position:absolute;right:-40px;top:-46px;width:110px;height:110px;border-radius:50%;
  background:radial-gradient(circle,rgba(22,156,137,.12),transparent 68%);
  transition:.25s
}
.task-card:hover:before{transform:scale(1.28)}
.task-card:nth-child(2) .task-icon{background:#e8faf5;color:#138b78}
.task-card:nth-child(3) .task-icon{background:#fff7e3;color:#b67c14}
.task-card:nth-child(4) .task-icon{background:#f3edff;color:#7454b6}
.preview-lock{
  position:absolute;right:14px;top:14px;padding:5px 8px;border-radius:999px;
  background:#f3f6f9;color:#6f8293;font-size:.57rem;font-weight:700;border:1px solid #dfe7ee
}
.flow-step:nth-child(3){border-color:#b9e2d9;background:#f2fbf8}
.flow-step:nth-child(4){border-color:#ead39b;background:#fffbef}
.flow-step:nth-child(7){border-color:#c9b9e7;background:#faf7ff}
#portalAI.portal-section.alt{
  background:
    radial-gradient(circle at 84% 10%,rgba(33,173,150,.18),transparent 24%),
    linear-gradient(135deg,#122f4b,#16485f 54%,#176856);
  color:#fff
}
#portalAI .portal-heading h2,#portalAI .portal-heading p,#portalAI .portal-heading .eyebrow{color:#fff}
#portalAI .portal-heading p{opacity:.75}
#portalAI .dialog-panel{background:rgba(255,255,255,.97)}
#portalTeacher .teacher-preview{border-top:4px solid #d3a040}
#portalOrg .org-card:nth-child(1){border-top:4px solid #246ca1}
#portalOrg .org-card:nth-child(2){border-top:4px solid #15977f}
#portalOrg .org-card:nth-child(3){border-top:4px solid #d6a13a}
.portal-public-strip{
  display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:18px;padding:11px 13px;
  border-radius:14px;background:rgba(255,255,255,.72);border:1px solid rgba(166,190,208,.45);
  color:#5d7488;font-size:.68rem
}
.portal-public-strip b{color:#244965}
.portal-security-badge{
  position:absolute;top:18px;left:18px;z-index:4;border-radius:999px;padding:7px 10px;
  background:rgba(18,47,75,.88);color:#fff;font-size:.58rem;letter-spacing:.04em
}
.dynamic-dots{display:inline-flex;gap:4px;vertical-align:middle;margin-left:4px}
.dynamic-dots i{width:5px;height:5px;background:#18a085;border-radius:50%;animation:dotWave 1.35s ease-in-out infinite}
.dynamic-dots i:nth-child(2){animation-delay:.18s}.dynamic-dots i:nth-child(3){animation-delay:.36s}
.portal-gate-card{
  max-width:560px;background:#fff;border-radius:26px;padding:28px;border:1px solid #dbe7ef;
  box-shadow:0 28px 80px rgba(15,43,75,.22)
}
.portal-gate-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px}
.portal-gate-option{
  border:1px solid #dbe5ed;border-radius:16px;padding:16px;text-align:left;background:#fff;cursor:pointer;
  transition:.2s;color:#38536a
}
.portal-gate-option:hover{transform:translateY(-2px);border-color:#7fb9c0;box-shadow:0 12px 26px rgba(30,90,103,.10)}
.portal-gate-option b{display:block;color:#173d5d;margin-bottom:5px}
.portal-preview-card{
  max-width:760px;background:#fff;border-radius:26px;padding:26px;border:1px solid #dce6ee;
  box-shadow:0 28px 80px rgba(15,43,75,.23);max-height:86vh;overflow:auto
}
.preview-banner{
  padding:10px 12px;background:#fff8e6;border:1px solid #f0daa4;color:#80611e;border-radius:13px;
  font-size:.68rem;margin:12px 0 18px
}
.preview-mini-flow{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.preview-mini-step{background:#f4f8fb;border-radius:12px;padding:12px 8px;text-align:center;font-size:.67rem;color:#476277}
@keyframes titleFlow{0%{background-position:0 50%}100%{background-position:260% 50%}}
@keyframes gentleFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
@keyframes haloPulse{0%,100%{transform:scale(.96);opacity:.65}50%{transform:scale(1.06);opacity:1}}
@keyframes orbitSpin{to{transform:rotate(360deg)}}
@keyframes floatTag{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
@keyframes avatarPulse{0%{transform:scale(.92);opacity:.8}80%,100%{transform:scale(1.18);opacity:0}}
@keyframes buttonShine{0%,65%{left:-70%}85%,100%{left:145%}}
@keyframes dotWave{0%,100%{transform:translateY(0);opacity:.45}50%{transform:translateY(-4px);opacity:1}}
@media(max-width:640px){
  .portal-gate-grid,.preview-mini-flow{grid-template-columns:1fr}
}


/* ===== V7.21.0.1 首页可读性修复 ===== */
#portalAI .dialog-panel{
  color:#405a72 !important;
}
#portalAI .dialog-panel h1,
#portalAI .dialog-panel h2,
#portalAI .dialog-panel h3,
#portalAI .dialog-panel h4,
#portalAI .dialog-panel b{
  color:#173d5b !important;
}
#portalAI .dialog-panel .result-box{
  color:#536b80 !important;
  background:#f7fafc !important;
  border-color:#dce7ef !important;
}
#portalAI .dialog-panel .result-box b{
  color:#234a68 !important;
}
#portalAI .dialog-panel .dialog-text{
  color:#3d5870;
}
#portalAI .dialog-row.student .dialog-text{
  color:#fff !important;
}
#portalAI .detect-state{
  color:#7a5a17 !important;
}
.task-icon i{
  display:inline-block !important;
  opacity:1 !important;
  color:inherit !important;
}
.task-icon:empty::after{
  content:"◆";
  font-size:16px;
  color:inherit;
}



/* ===== SOURCE: v57-student-workbench-refresh ===== */

:root{
  --wb-bg:#F5F8FC;--wb-navy:#1E3A5F;--wb-blue:#3B82F6;--wb-teal:#14B8A6;
  --wb-orange:#F59E0B;--wb-card:#FFFFFF;--wb-line:#E2E8F0;--wb-muted:#64748B;
}
body{background:var(--wb-bg)}
.top-bar{background:linear-gradient(120deg,#16324f,#1E3A5F 55%,#245d83);box-shadow:0 10px 28px rgba(30,58,95,.18)}
.content-panel{background:linear-gradient(180deg,#fbfdff 0%,#f5f8fc 100%);padding:20px 22px}
.sub-btn{transition:transform .16s ease,box-shadow .16s ease,background .16s ease}
.sub-btn:active{transform:scale(.98)}

/* 学生工作台首屏 */
.workbench-hero{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:18px;background:linear-gradient(135deg,#16324f 0%,#245d83 58%,#148a91 125%);border-radius:24px;padding:24px;color:#fff;position:relative;overflow:hidden;box-shadow:0 14px 34px rgba(30,58,95,.16);animation:wbFade .35s ease}
.workbench-hero:before,.workbench-hero:after{content:"";position:absolute;border-radius:50%;background:rgba(255,255,255,.06);pointer-events:none}.workbench-hero:before{width:240px;height:240px;right:-80px;top:-110px}.workbench-hero:after{width:150px;height:150px;left:46%;bottom:-115px}
.workbench-kicker{font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;opacity:.78;font-weight:700;margin-bottom:8px}
.workbench-hero h2{font-size:1.55rem;line-height:1.3;margin:0 0 9px;max-width:780px}
.workbench-role{font-size:.78rem;opacity:.88;margin-bottom:18px}.workbench-role b{color:#fff}
.today-card{background:rgba(255,255,255,.11);border:1px solid rgba(255,255,255,.16);border-radius:16px;padding:14px 15px;backdrop-filter:blur(4px)}
.today-label{font-size:.68rem;opacity:.72;margin-bottom:5px}.today-task{font-size:1rem;font-weight:750;line-height:1.5}.today-sub{font-size:.72rem;opacity:.78;margin-top:4px}
.workbench-progress-line{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:15px 0 7px;font-size:.72rem}.workbench-progress-track{height:8px;background:rgba(255,255,255,.16);border-radius:99px;overflow:hidden}.workbench-progress-fill{height:100%;border-radius:99px;background:linear-gradient(90deg,#5eead4,#fbbf24);width:var(--progress);animation:wbGrow .9s ease-out}
.workbench-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:16px}.workbench-primary{border:none;background:#fff;color:#173b5d;border-radius:999px;padding:10px 18px;font-size:.82rem;font-weight:800;cursor:pointer;box-shadow:0 8px 22px rgba(0,0,0,.12);transition:.18s}.workbench-primary:hover{transform:translateY(-2px)}.workbench-ghost{border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.08);color:#fff;border-radius:999px;padding:9px 15px;font-size:.76rem;cursor:pointer}
.workbench-radar{background:rgba(255,255,255,.96);color:var(--wb-navy);border-radius:18px;padding:12px 13px;min-height:218px;position:relative;z-index:1}.workbench-radar-head{display:flex;justify-content:space-between;align-items:center;font-size:.78rem;font-weight:800;margin-bottom:4px}.workbench-radar-head span{font-size:.64rem;color:#64748b;font-weight:500}.workbench-radar-canvas{height:170px;position:relative}.workbench-radar-empty{height:160px;display:flex;align-items:center;justify-content:center;text-align:center;color:#94a3b8;font-size:.72rem;line-height:1.6}

.workbench-section{margin-top:17px;background:#fff;border:1px solid var(--wb-line);border-radius:20px;padding:16px;box-shadow:0 4px 14px rgba(15,43,75,.035)}
.workbench-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.workbench-section-title{font-size:.98rem;font-weight:800;color:var(--wb-navy)}.workbench-section-note{font-size:.68rem;color:#94a3b8}
.stage-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.stage-mini{border:1px solid #e5eaf0;background:#fff;border-radius:15px;padding:12px;text-align:left;cursor:pointer;transition:.18s;min-height:90px;position:relative}.stage-mini:hover{transform:translateY(-2px);box-shadow:0 9px 22px rgba(30,58,95,.09);border-color:#bfdbfe}.stage-mini.current{border-color:#60a5fa;background:#eff6ff;box-shadow:inset 0 0 0 1px #93c5fd}.stage-mini.done{border-color:#99f6e4;background:#f0fdfa}.stage-mini-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px}.stage-mini-no{font-size:.67rem;font-weight:900;color:#2563eb;background:#dbeafe;padding:3px 7px;border-radius:999px}.stage-mini.done .stage-mini-no{background:#ccfbf1;color:#0f766e}.stage-mini-status{font-size:.62rem;color:#94a3b8}.stage-mini b{display:block;color:#173b5d;font-size:.78rem;line-height:1.42}.stage-mini small{display:block;color:#64748b;font-size:.65rem;margin-top:5px}
.boundary-fold{margin-top:12px;font-size:.7rem;color:#64748b}.boundary-fold summary{cursor:pointer;color:#47627b;font-weight:700}.boundary-fold div{margin-top:8px;background:#fff7ed;border-left:3px solid #f59e0b;padding:9px 11px;border-radius:9px;line-height:1.6}

/* 阶段页：证据 / 当前任务 / 智能导师 */
.stage-worktop{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px}.stage-breadcrumb{font-size:.68rem;color:#64748b}.stage-heading{background:#fff;border:1px solid var(--wb-line);border-radius:18px;padding:15px 17px;margin-bottom:12px;box-shadow:0 4px 12px rgba(15,43,75,.03)}.stage-heading-row{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.stage-heading h2{font-size:1.15rem;color:#173b5d;margin:0 0 5px}.stage-taskline{font-size:.78rem;color:#64748b;line-height:1.55}.stage-progress-chip{white-space:nowrap;font-size:.66rem;background:#eff6ff;color:#1d4ed8;padding:5px 9px;border-radius:999px;font-weight:700}
.flow-lite{display:flex;align-items:center;gap:5px;overflow-x:auto;padding:7px 0 12px}.flow-lite-step{display:flex;align-items:center;gap:5px;white-space:nowrap;color:#64748b;font-size:.65rem}.flow-lite-dot{width:7px;height:7px;border-radius:50%;background:#cbd5e1}.flow-lite-step.active{color:#1d4ed8;font-weight:800}.flow-lite-step.active .flow-lite-dot{background:#3b82f6;box-shadow:0 0 0 4px rgba(59,130,246,.12)}.flow-lite-arrow{color:#cbd5e1;font-size:.6rem}
.project-stage-layout{grid-template-columns:minmax(300px,29%) minmax(400px,1fr) minmax(280px,25%);gap:14px}
.stage-col{border-color:#e5eaf0;border-radius:18px;box-shadow:0 4px 13px rgba(15,43,75,.025);animation:wbFade .28s ease}.stage-col.sticky{top:10px;max-height:calc(100vh - 28px)}
.stage-col-title{font-size:.84rem}.evidence-col{background:#fbfdff}.work-col{background:#fff}.mentor-col{background:linear-gradient(180deg,#fbfdff,#f7fbff)}
.evidence-toolbar{display:flex;align-items:center;justify-content:space-between;gap:7px;margin-bottom:9px}.evidence-count{font-size:.62rem;color:#94a3b8}.evidence-divider{height:1px;background:#e8edf3;margin:11px 0}
.material-item,.policy-card{padding:11px 12px;border-radius:13px;transition:.16s;background:#fff}.material-item:hover,.policy-card:hover{transform:translateY(-1px);box-shadow:0 7px 17px rgba(30,58,95,.07)}.material-item p,.policy-card p{font-size:.72rem;line-height:1.65}.material-summary{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;overflow:hidden}.material-item.expanded .material-summary,.policy-card.expanded .material-summary{-webkit-line-clamp:unset;display:block;overflow:visible}.material-toggle{border:0;background:transparent;color:#2563eb;font-size:.66rem;font-weight:700;padding:5px 0 0;cursor:pointer}.evidence-log{font-size:.6rem;color:#94a3b8;margin-top:4px}
.task-panel{border:1px solid #dbeafe;background:linear-gradient(135deg,#f8fbff,#fff);border-radius:17px;padding:15px;margin-bottom:13px}.task-panel-kicker{font-size:.66rem;color:#2563eb;font-weight:800;margin-bottom:5px}.task-panel-title{font-size:.96rem;color:#173b5d;font-weight:800;line-height:1.5}.task-panel-sub{font-size:.7rem;color:#64748b;margin-top:5px}.task-panel-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:11px}.hint-btn{border:1px solid #cbd5e1;background:#fff;color:#47627b;border-radius:999px;padding:6px 10px;font-size:.68rem;cursor:pointer}.stage-hint{margin-top:10px;background:#f0f9ff;border-left:3px solid #0ea5e9;border-radius:11px;padding:10px}.stage-hint .teacher-tip{margin:0 0 7px;border:0;background:transparent;padding:0;font-size:.7rem}.stage-hint ul{margin:6px 0 0 18px;font-size:.7rem;line-height:1.65;color:#475569}
.diag-flow-head{display:flex;align-items:center;justify-content:space-between;margin:5px 0 8px}.diag-flow-head b{font-size:.76rem;color:#173b5d}.diag-flow-head span{font-size:.65rem;color:#94a3b8}.diag-flow-track{height:5px;background:#e2e8f0;border-radius:99px;overflow:hidden;margin-bottom:11px}.diag-flow-track>div{height:100%;background:linear-gradient(90deg,#3b82f6,#14b8a6);transition:width .35s ease}.prof-task{margin:0;border-color:#dbeafe;background:#fff}.prof-task .task-kicker{color:#0f766e}.diag-nav{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:8px}.diag-nav button{border:0;background:transparent;color:#64748b;font-size:.66rem;cursor:pointer}.diag-nav button:disabled{opacity:.35;cursor:not-allowed}
.work-section{margin-top:14px}.work-section-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.work-section-head b{font-size:.83rem;color:#173b5d}.work-section-head span{font-size:.64rem;color:#94a3b8}.op-item{padding:10px;border-radius:12px}.op-num{background:var(--wb-teal)}
.artifact-box{margin-top:15px;border-top:1px solid #eef2f7;padding-top:14px}.artifact-textarea{min-height:190px;background:#fbfdff}.rubric-chip{background:#eff6ff;color:#1d4ed8}
.mentor-head{display:flex;align-items:center;gap:9px;margin-bottom:10px}.mentor-avatar{width:38px;height:38px;border-radius:13px;background:linear-gradient(135deg,#3b82f6,#14b8a6);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:900;box-shadow:0 7px 18px rgba(59,130,246,.22);animation:mentorBreath 2.8s ease-in-out infinite}.mentor-info{min-width:0;flex:1}.mentor-info b{display:block;font-size:.82rem;color:#173b5d}.mentor-info span{display:block;font-size:.62rem;color:#64748b;margin-top:2px}.mentor-online{font-size:.6rem;color:#0f766e;background:#ccfbf1;border-radius:999px;padding:3px 7px}.mentor-quick{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:9px}.mentor-quick button{border:1px solid #dbeafe;background:#fff;border-radius:10px;padding:7px 5px;font-size:.64rem;color:#315b7c;cursor:pointer;transition:.15s}.mentor-quick button:hover{background:#eff6ff;border-color:#93c5fd}.mentor-boundary{font-size:.62rem;line-height:1.5;color:#7c5a24;background:#fffbeb;border-radius:9px;padding:7px 9px;margin-bottom:8px}.assistant-messages{height:300px}.assistant-input textarea{background:#fff}.mentor-exit{margin-top:7px;width:100%;font-size:.68rem!important}

@keyframes wbGrow{from{width:0}to{width:var(--progress)}}
@keyframes wbFade{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
@keyframes mentorBreath{0%,100%{transform:scale(1);box-shadow:0 7px 18px rgba(59,130,246,.22)}50%{transform:scale(1.045);box-shadow:0 9px 24px rgba(20,184,166,.28)}}
@media(max-width:1360px){.project-stage-layout{grid-template-columns:minmax(280px,30%) minmax(390px,1fr) minmax(250px,24%)}.workbench-hero{grid-template-columns:1fr 260px}}
@media(max-width:1180px){.project-stage-layout{grid-template-columns:1fr}.stage-col.sticky{position:static;max-height:none}.workbench-hero{grid-template-columns:1fr}.workbench-radar{min-height:210px}.stage-strip{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.stage-strip{grid-template-columns:1fr}.workbench-hero{padding:18px}.content-panel{padding:14px}.mentor-quick{grid-template-columns:1fr 1fr}}


/* ===== SOURCE: v64-home-focus ===== */

.v64-home .portal-section{padding:58px 0}
.v64-home .portal-hero{min-height:610px;padding:62px 0 50px;gap:50px}
.v64-home .portal-hero .lead{max-width:650px;font-size:1rem;line-height:1.8}
.v64-home .portal-heading{margin-bottom:24px}
.v64-heading{max-width:680px}
.v64-heading .eyebrow{letter-spacing:.04em;color:#2a6b9f}
.v64-proof-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:22px;max-width:690px}
.v64-proof{background:rgba(255,255,255,.76);border:1px solid #d7e4ee;border-radius:14px;padding:12px 13px}
.v64-proof b{display:block;color:#193f60;font-size:.74rem;margin-bottom:4px}.v64-proof span{display:block;color:#71869a;font-size:.64rem;line-height:1.5}
.v64-agent-stage{min-height:430px}.v64-agent-card{width:350px;padding:24px}.v64-student-say{margin:0 0 10px auto;max-width:88%;background:#173f66;color:#fff;border-radius:15px 15px 4px 15px;padding:11px 13px;font-size:.74rem;line-height:1.65}
.v64-core-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.v64-core-card{background:#fff;border:1px solid #dbe6ef;border-radius:20px;padding:22px;cursor:pointer;transition:.2s;min-height:210px}.v64-core-card:hover{transform:translateY(-3px);box-shadow:0 16px 34px rgba(35,71,103,.09);border-color:#bdd4e6}.v64-core-card h3{font-size:.96rem;color:#1b405f;margin-bottom:8px}.v64-core-card p{font-size:.73rem;color:#6f8397;line-height:1.75}.v64-core-card .task-enter{margin-top:16px}
.v64-flow-line{grid-template-columns:repeat(4,1fr);gap:14px}.v64-flow-line .flow-step{min-height:120px;padding:18px 12px}.v64-stage-details{margin-top:18px;border:1px solid #dbe6ef;background:#fff;border-radius:15px;padding:12px 14px}.v64-stage-details summary{cursor:pointer;color:#345978;font-size:.72rem;font-weight:700}.v64-stage-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.v64-stage-chips span{padding:7px 9px;border-radius:999px;background:#eef6fd;color:#3d6381;font-size:.64rem;border:1px solid #d8e7f2}
.v64-teacher-preview{max-width:900px}.v64-teacher-flow{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:14px}.v64-teacher-step{border:1px solid #dfe8f0;border-radius:15px;padding:15px;background:#fbfdff}.v64-teacher-step i{color:#2b6da2;margin-bottom:8px}.v64-teacher-step b{display:block;color:#214766;font-size:.76rem;margin-bottom:5px}.v64-teacher-step span{display:block;color:#72879a;font-size:.64rem;line-height:1.55}
.v64-org-section{padding:34px 0!important}.v64-org-strip{display:flex;align-items:center;justify-content:space-between;gap:18px;background:#fff;border:1px solid #dce7ef;border-radius:18px;padding:18px 20px}.v64-org-strip b{display:block;color:#1b405f;font-size:.85rem;margin-bottom:5px}.v64-org-strip span{display:block;color:#74889a;font-size:.68rem;line-height:1.6}.v64-footer-inner{display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap}
@media(max-width:980px){.v64-proof-grid,.v64-core-grid,.v64-teacher-flow{grid-template-columns:1fr}.v64-flow-line{grid-template-columns:repeat(2,1fr)}.v64-home .portal-hero{min-height:auto}.v64-org-strip{align-items:flex-start;flex-direction:column}}
@media(max-width:640px){.v64-flow-line{grid-template-columns:1fr}.v64-proof-grid{grid-template-columns:1fr}.v64-agent-card{width:310px}}


/* ===== SOURCE: v7190-agent-upgrade-style-1 ===== */

.v719-state-card{
  margin:0 0 10px;padding:10px 12px;border-radius:11px;
  border:1px solid #d8e6ef;background:#f5f9fc;color:#426278;
  font-size:.59rem;line-height:1.65
}
.v719-state-card b{color:#173f5b}
.v719-designer{
  border:1px solid #cfe0e9;border-radius:15px;background:#fbfdfe;
  padding:14px;margin:0 0 13px
}
.v719-designer h4{margin:0 0 6px;color:#173f5a;font-size:.75rem}
.v719-designer .desc{color:#6e8493;font-size:.57rem;line-height:1.65;margin-bottom:10px}
.v719-design-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.v719-design-field label{display:block;font-size:.54rem;color:#607889;margin-bottom:4px;font-weight:700}
.v719-design-field input,.v719-design-field select,.v719-design-field textarea{
  width:100%;box-sizing:border-box;border:1px solid #dbe5eb;border-radius:8px;
  padding:7px 8px;font:inherit;font-size:.58rem;background:#fff
}
.v719-veto{display:flex;gap:7px;flex-wrap:wrap;margin:8px 0}
.v719-veto label{border:1px solid #dce6eb;background:#fff;border-radius:999px;padding:5px 8px;font-size:.54rem;color:#526d7e}
.v719-check-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:7px;margin-top:10px}
.v719-check{border-radius:9px;padding:8px 9px;font-size:.55rem;line-height:1.55}
.v719-check.pass{background:#f0fdf4;border:1px solid #bbf7d0;color:#166534}
.v719-check.warn{background:#fffaf0;border:1px solid #f0d69a;color:#8a651a}
.v719-check.fail{background:#fff4f2;border:1px solid #fecaca;color:#a33b2e}
.v719-three-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:12px 0}
.v719-layer{border:1px solid #dce6ec;border-radius:13px;padding:12px;background:#fff}
.v719-layer b{display:block;color:#173f5a;font-size:.72rem;margin-bottom:5px}
.v719-layer .num{font-size:1.6rem;font-weight:850;color:#286c91}
.v719-transfer-card{border:1px solid #dce6ec;border-radius:16px;background:#fff;padding:17px}
@media(max-width:850px){
  .v719-design-grid,.v719-check-grid,.v719-three-grid{grid-template-columns:1fr}
}


/* ===== SOURCE: v7191-review-four-role-style ===== */

.v715-review-role.superadmin .icon{background:#f2ecfb;color:#7049a5}
.v7163-role-btn.superadmin .ico{background:#f2ecfb;color:#7049a5}
@media(min-width:761px){
  .v715-review-grid{grid-template-columns:repeat(2,1fr)!important}
  .v7163-role-grid{grid-template-columns:repeat(2,1fr)!important}
}


/* ===== SOURCE: v7200-live-scenario-style ===== */

.v720-scenario-panel{border:1px solid #c9dce8;border-radius:16px;background:linear-gradient(135deg,#f7fbfe,#f7fcfa);padding:15px;margin:0 0 13px}
.v720-scenario-panel h4{margin:0 0 6px;color:#153e5a;font-size:.78rem}
.v720-scenario-meta{font-size:.57rem;color:#6d8392;margin-bottom:8px}
.v720-param-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.v720-param{background:#fff;border:1px solid #dde8ee;border-radius:10px;padding:9px}
.v720-param .k{font-size:.53rem;color:#748997}.v720-param .v{font-size:.78rem;color:#173f5a;font-weight:800;margin-top:3px}
.v720-change{padding:7px 9px;border-radius:9px;background:#fff8e9;border:1px solid #ead6a0;color:#775d24;font-size:.56rem;line-height:1.55;margin:6px 0}
.v720-live-mask{position:fixed;inset:0;z-index:140000;background:rgba(12,35,52,.45);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:20px}
.v720-live-card{width:min(720px,94vw);max-height:90vh;overflow:auto;background:#fff;border-radius:22px;padding:25px;box-shadow:0 30px 90px rgba(8,30,45,.25)}
.v720-live-card h2{margin:0 0 7px;color:#133e5a}.v720-live-card p{color:#5e7686;font-size:.68rem;line-height:1.7}
.v720-live-card textarea{width:100%;box-sizing:border-box;min-height:120px;border:1px solid #dbe6ec;border-radius:10px;padding:10px;font:inherit}
.v720-teacher-shell{display:grid;grid-template-columns:1.02fr .98fr;gap:14px}
.v720-history-item{border:1px solid #e0e8ed;border-radius:11px;padding:10px;margin-bottom:8px;background:#fff;cursor:pointer}
.v720-history-item:hover{border-color:#9fc4d7}.v720-history-item b{color:#173f5a}
.v720-live-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin:10px 0}
.v720-live-kpi{border:1px solid #dce7ed;background:#fff;border-radius:11px;padding:10px}
.v720-live-kpi .n{font-size:1.3rem;font-weight:850;color:#276b91}.v720-live-kpi .l{font-size:.55rem;color:#708695}
.v720-status-pass{color:#14785e;font-weight:800}.v720-status-warn{color:#a36a15;font-weight:800}
@media(max-width:900px){.v720-param-grid,.v720-live-kpis,.v720-teacher-shell{grid-template-columns:1fr}}


/* ===== SOURCE: filing-homepage-mode-v7239 ===== */

/* V7.23.9 备案审批首页：仅影响公开首页与公开预览 */
#portalHome .portal-brand b{font-size:18px!important;line-height:1.35!important}
#portalHome .portal-brand small{font-size:14px!important;line-height:1.5!important}
#portalHome .portal-links a{font-size:15px!important}
#portalHome .portal-kicker{font-size:15px!important}
#portalHome .portal-hero h1{font-size:52px!important;line-height:1.12!important}
#portalHome .portal-hero .lead{font-size:18px!important;line-height:1.8!important}
#portalHome .portal-tag{font-size:14px!important}
#portalHome .v7129-overview-item span{font-size:16px!important}
#portalHome .v7129-overview-item small{font-size:13px!important;line-height:1.55!important}
#publicPreviewMask .portal-preview-card h2{font-size:30px!important;line-height:1.3!important}
#publicPreviewMask .portal-kicker{font-size:14px!important}
#publicPreviewMask .preview-banner{font-size:16px!important;line-height:1.75!important}
#publicPreviewMask .preview-mini-step{font-size:16px!important;line-height:1.5!important;padding:18px 12px!important}
#publicPreviewMask .preview-mini-step b{font-size:17px!important}
#publicPreviewMask .result-box{font-size:16px!important;line-height:1.75!important}
#publicPreviewMask .portal-btn{font-size:16px!important}
@media(max-width:900px){#portalHome .portal-hero h1{font-size:38px!important}}


/* ===== SOURCE: v7283-pre-review-style ===== */

html.v7283-pre-review .v72434-site-footer,
html.v7283-pre-review .v72434-icp-link,
html.v7283-pre-review .v72434-footer-mark{display:none!important}
html.v7283-pre-review .v7136-login-entry-title,
html.v7283-pre-review .v7136-login-entry-grid{display:none!important}
.v7283-review-entry-note{display:none;margin:0 0 14px;padding:9px 12px;border:1px solid #cfe2e4;border-radius:12px;background:linear-gradient(135deg,#f4fbfa,#f5f9fd);color:#3e6877;font-size:12px;line-height:1.55;font-weight:700}
html.v7283-pre-review .v7283-review-entry-note{display:flex;align-items:center;gap:8px}


/* ===== SOURCE: inline-style-9 ===== */

/* ===== V7.21.0 脱敏PBL机制增强 ===== */
.pbl-badges{display:flex;gap:7px;flex-wrap:wrap;margin:10px 0 0}.pbl-badge{font-size:.66rem;font-weight:700;padding:5px 9px;border-radius:999px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);color:#fff}.pbl-badge.teal{background:rgba(20,184,166,.18)}.pbl-badge.amber{background:rgba(245,158,11,.18)}
.pbl-status-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:12px}.pbl-status-item{border:1px solid #e2e8f0;background:#f8fafc;border-radius:12px;padding:9px 10px}.pbl-status-item .k{font-size:.61rem;color:#7a8c9d;margin-bottom:3px}.pbl-status-item b{display:block;font-size:.72rem;color:#153a59}.pbl-status-item.ready{background:#f0fdfa;border-color:#99f6e4}.pbl-status-item.ready b{color:#0f766e}.pbl-status-item.wait{background:#fff7ed;border-color:#fed7aa}.pbl-status-item.wait b{color:#b45309}
.locked-evidence{border:1px dashed #cbd5e1;border-radius:12px;padding:12px;margin-bottom:8px;background:linear-gradient(135deg,#f8fafc,#f1f5f9);color:#64748b;position:relative;overflow:hidden}.locked-evidence:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.65),transparent);transform:translateX(-110%);animation:v58Shimmer 3.4s infinite}@keyframes v58Shimmer{0%,65%{transform:translateX(-110%)}100%{transform:translateX(110%)}}.locked-evidence .lock-title{font-size:.72rem;font-weight:800;color:#475569;margin-bottom:4px}.locked-evidence .lock-note{font-size:.65rem;line-height:1.55}.release-banner{border:1px solid #99f6e4;background:#f0fdfa;color:#0f766e;border-radius:12px;padding:9px 11px;font-size:.68rem;line-height:1.55;margin-bottom:10px}.release-banner.waiting{border-color:#fed7aa;background:#fff7ed;color:#9a3412}
.mentor-state{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border-radius:11px;background:#f8fafc;border:1px solid #e2e8f0;margin-bottom:8px;font-size:.67rem;color:#64748b}.mentor-state b{color:#153a59}.scaffold-pill{font-size:.62rem;font-weight:800;padding:3px 8px;border-radius:999px;background:#dbeafe;color:#1d4ed8}.mentor-locked{background:#fff7ed;border:1px solid #fed7aa;border-radius:12px;padding:10px 11px;font-size:.68rem;color:#9a3412;line-height:1.6;margin-bottom:8px}.mentor-col.mentor-disabled .mentor-quick button,.mentor-col.mentor-disabled .assistant-input textarea,.mentor-col.mentor-disabled .assistant-input button{opacity:.48;pointer-events:none}.mentor-col.mentor-disabled .assistant-messages{filter:grayscale(.15);opacity:.72}
.pbl-inquiry-btn{background:#f0fdfa!important;border-color:#99f6e4!important;color:#0f766e!important}.pbl-modal-mask{position:fixed;inset:0;background:rgba(15,43,75,.5);z-index:100000;display:flex;align-items:center;justify-content:center;padding:18px}.pbl-modal{width:min(780px,96vw);max-height:88vh;background:#fff;border-radius:20px;box-shadow:0 26px 70px rgba(15,43,75,.28);overflow:hidden;display:flex;flex-direction:column}.pbl-modal-head{padding:15px 18px;background:linear-gradient(120deg,#0f2b4b,#155e75);color:#fff;display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.pbl-modal-head h3{font-size:1rem;margin-bottom:3px}.pbl-modal-head p{font-size:.68rem;opacity:.82}.pbl-modal-close{border:0;background:rgba(255,255,255,.14);color:#fff;width:32px;height:32px;border-radius:50%;cursor:pointer;font-size:18px}.pbl-modal-body{padding:14px;overflow:auto}.pbl-role-row{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:10px}.pbl-role-btn{border:1px solid #cbd5e1;background:#fff;color:#475569;padding:7px 10px;border-radius:10px;font-size:.69rem;font-weight:700;cursor:pointer}.pbl-role-btn.active{background:#ecfeff;border-color:#67e8f9;color:#0e7490}.pbl-role-scope{background:#f8fafc;border:1px solid #e2e8f0;border-radius:11px;padding:9px 10px;font-size:.68rem;line-height:1.6;color:#64748b;margin-bottom:10px}.pbl-role-chat{height:260px;overflow-y:auto;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:10px;margin-bottom:9px}.pbl-role-chat .assistant-msg{font-size:.72rem}.pbl-role-input{display:flex;gap:8px}.pbl-role-input textarea{flex:1;border:1.5px solid #cbd5e1;border-radius:11px;padding:9px;font-family:inherit;font-size:.74rem;resize:vertical;min-height:64px}.pbl-role-input button{width:44px;border:0;border-radius:11px;background:#0f2b4b;color:#fff;cursor:pointer}
.pbl-rule-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.pbl-rule-card{border:1px solid #e2e8f0;border-radius:16px;padding:14px;background:#fff}.pbl-rule-card label{display:block;font-size:.72rem;font-weight:800;color:#334155;margin-bottom:7px}.pbl-rule-card select{width:100%;border:1.5px solid #cbd5e1;border-radius:11px;padding:9px;background:#fff}.pbl-stage-table{width:100%;border-collapse:collapse;font-size:.72rem;margin-top:8px}.pbl-stage-table th,.pbl-stage-table td{border:1px solid #e2e8f0;padding:8px;vertical-align:top}.pbl-stage-table th{background:#f8fafc;color:#475569;text-align:left}.privacy-boundary{background:linear-gradient(135deg,#eff6ff,#f0fdfa);border:1px solid #bfdbfe;border-radius:16px;padding:14px;font-size:.72rem;line-height:1.75;color:#334155}.pbl-local-note{font-size:.66rem;color:#92400e;background:#fff7ed;border:1px solid #fed7aa;border-radius:10px;padding:8px 10px;margin-top:10px}
@media(max-width:800px){.pbl-status-strip,.pbl-rule-grid{grid-template-columns:1fr}.pbl-modal{width:98vw}}


/* ===== SOURCE: inline-style-10 ===== */

/* ===== V7.21.0 参赛闭环版：状态感知 / 认知博弈 / 学习状态 ===== */
.agent-decision-card{border:1px solid #bfdbfe;background:linear-gradient(135deg,#eff6ff,#f0fdfa);border-radius:14px;padding:11px 12px;margin:8px 0 10px}
.agent-decision-head{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-bottom:7px}.agent-decision-head b{font-size:.75rem;color:#153a59}.agent-decision-head span{font-size:.58rem;background:#dbeafe;color:#1d4ed8;padding:3px 7px;border-radius:999px;font-weight:800}
.agent-decision-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.agent-decision-grid div{background:rgba(255,255,255,.72);border-radius:9px;padding:7px 8px;font-size:.62rem;color:#64748b}.agent-decision-grid b{display:block;color:#334155;font-size:.67rem;margin-top:2px}
.agent-action{margin-top:7px;border-left:3px solid #14b8a6;padding:6px 8px;font-size:.66rem;line-height:1.55;color:#0f766e;background:#f0fdfa;border-radius:7px}
.error-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 7px;border-radius:999px;background:#fff7ed;color:#9a3412;border:1px solid #fed7aa;font-size:.6rem;font-weight:700;margin:2px}
.cognitive-battle{border:1px solid #c4b5fd;background:linear-gradient(135deg,#faf5ff,#f8fafc);border-radius:16px;padding:13px;margin:12px 0}
.cognitive-battle .cb-head{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:9px}.cognitive-battle .cb-head b{color:#5b21b6;font-size:.78rem}.cognitive-battle .cb-head span{font-size:.6rem;color:#7c3aed;background:#ede9fe;padding:3px 8px;border-radius:999px;font-weight:800}
.cb-role{font-size:.63rem;color:#6d28d9;font-weight:800;margin-bottom:4px}.cb-prompt{font-size:.72rem;color:#334155;line-height:1.65;background:#fff;border-radius:10px;padding:9px 10px;border:1px solid #e9d5ff}
.cb-input{display:flex;gap:7px;margin-top:8px}.cb-input textarea{flex:1;min-height:70px;border:1.5px solid #d8b4fe;border-radius:10px;padding:9px;font-family:inherit;font-size:.72rem;resize:vertical}.cb-input button{border:0;border-radius:10px;background:#6d28d9;color:#fff;padding:0 13px;font-weight:700;cursor:pointer}
.cb-history{display:grid;gap:6px;margin-top:8px}.cb-history-item{font-size:.64rem;line-height:1.55;color:#64748b;background:#fff;border:1px solid #ede9fe;border-radius:9px;padding:7px 8px}.cb-history-item b{color:#5b21b6}
.timeline{position:relative;margin:10px 0 0 10px;padding-left:18px;border-left:2px solid #dbeafe}.timeline-item{position:relative;margin:0 0 12px;padding:0 0 0 4px}.timeline-item:before{content:"";position:absolute;left:-25px;top:5px;width:10px;height:10px;border-radius:50%;background:#3b82f6;border:2px solid #fff;box-shadow:0 0 0 2px #bfdbfe}.timeline-item .time{font-size:.58rem;color:#94a3b8}.timeline-item b{font-size:.7rem;color:#153a59}.timeline-item p{font-size:.66rem;color:#64748b;line-height:1.55;margin-top:2px}
.identity-guard{background:#f0fdfa;border:1px solid #99f6e4;color:#115e59;border-radius:12px;padding:10px 11px;font-size:.66rem;line-height:1.65;margin:8px 0}
.inquiry-unlock{font-size:.61rem;color:#0f766e;margin-top:5px;font-weight:700}
.v59-loop{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;margin:10px 0}.v59-loop div{padding:9px 6px;text-align:center;border:1px solid #dbeafe;border-radius:10px;background:#f8fbff;font-size:.63rem;color:#475569}.v59-loop b{display:block;color:#1e40af;margin-bottom:2px}
@media(max-width:900px){.agent-decision-grid,.v59-loop{grid-template-columns:1fr}.cb-input{flex-direction:column}.cb-input button{padding:9px}}


/* ===== SOURCE: v60-student-guidance ===== */

/* ===== V7.21.0 学生引导优化：把后台Agent术语翻译为学习语言 ===== */
.learning-hint-card{margin:10px 0 12px;padding:14px;border:1px solid #bae6fd;border-radius:16px;background:linear-gradient(135deg,#eff8ff 0%,#ecfdf8 100%);box-shadow:0 8px 22px rgba(30,58,95,.06)}
.learning-hint-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.learning-hint-head b{font-size:.86rem;color:#173b5e}.learning-hint-head span{font-size:.62rem;color:#2563eb;background:#dbeafe;padding:4px 8px;border-radius:999px;font-weight:700}
.learning-hint-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.learning-hint-item{background:rgba(255,255,255,.82);border:1px solid rgba(226,232,240,.9);border-radius:11px;padding:9px 10px;min-height:58px}.learning-hint-item .k{font-size:.62rem;color:#64748b;margin-bottom:4px}.learning-hint-item b{display:block;font-size:.73rem;line-height:1.45;color:#334155}.learning-hint-next{margin-top:9px;border-left:3px solid #14b8a6;padding:8px 10px;background:rgba(255,255,255,.72);border-radius:0 9px 9px 0;font-size:.71rem;line-height:1.55;color:#0f766e}.learning-hint-note{margin-top:8px;font-size:.62rem;color:#64748b;line-height:1.5}
.evidence-card-v60{border:1px solid #dbeafe;background:#fff}.evidence-card-v60 .sub-card-title{display:flex;align-items:center;justify-content:space-between;gap:10px}.ev-card-kicker{font-size:.62rem;color:#64748b;font-weight:500}.ev-stage-note{margin:8px 0 12px;padding:10px 12px;border-radius:10px;background:#f8fafc;border:1px solid #e2e8f0;font-size:.68rem;line-height:1.6;color:#475569}.ev-stage-note b{color:#1e3a5f}.ev-field{position:relative}.ev-label-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:4px}.ev-label-row label{margin:0!important;font-size:.7rem!important;color:#334155!important;font-weight:700}.ev-focus{font-size:.58rem;background:#dcfce7;color:#047857;padding:3px 6px;border-radius:999px;font-weight:700;white-space:nowrap}.ev-explain{font-size:.62rem;color:#64748b;line-height:1.45;margin-bottom:6px}.ev-field textarea{min-height:88px!important}.ev-field.wide textarea{min-height:82px!important}.ev-help-row{display:flex;gap:8px;align-items:center;margin-top:6px}.ev-help-btn{border:0;background:transparent;color:#2563eb;font-size:.62rem;cursor:pointer;padding:2px 0;font-weight:600}.ev-help-btn:hover{text-decoration:underline}.ev-help-panel{display:none;margin-top:7px;padding:8px 10px;background:#eff6ff;border-radius:8px;border:1px solid #dbeafe;font-size:.62rem;line-height:1.55;color:#475569}.ev-help-panel.show{display:block}.ev-help-panel b{color:#1d4ed8}.ev-optional{margin-top:12px;border:1px dashed #cbd5e1;border-radius:10px;padding:9px 10px;background:#fafcff}.ev-optional summary{cursor:pointer;font-size:.68rem;font-weight:700;color:#64748b}.ev-optional .evidence-grid{margin-top:10px}.ev-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.ev-coach-btn{border:1px solid #bfdbfe;background:#eff6ff;color:#1d4ed8;border-radius:8px;padding:7px 10px;font-size:.64rem;cursor:pointer;font-weight:700}.ev-coach-btn:hover{background:#dbeafe}
.v60-teacher-tech{margin-top:12px;padding:10px 12px;border:1px solid #dbeafe;border-radius:10px;background:#f8fafc;font-size:.65rem;line-height:1.6;color:#475569}.v60-teacher-tech b{color:#1e3a5f}
@media(max-width:760px){.learning-hint-grid{grid-template-columns:1fr}.evidence-grid{grid-template-columns:1fr!important}}


/* ===== SOURCE: v61-preclass-cycle ===== */

/* ===== V7.21.0 课前项目探查 + 学习昵称 ===== */
.preclass-hero{background:linear-gradient(135deg,#eff6ff,#f0fdfa);border:1px solid #bfdbfe;border-radius:16px;padding:16px 18px;margin-bottom:14px}.preclass-hero h3{color:#1e3a5f;margin:0 0 6px;font-size:1rem}.preclass-hero p{margin:0;color:#5b7085;font-size:.7rem;line-height:1.7}.preclass-cycle{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:12px 0 16px}.preclass-cycle>div{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:11px 12px;font-size:.68rem;color:#64748b}.preclass-cycle b{display:block;color:#1e3a5f;margin-bottom:4px;font-size:.72rem}.preclass-cycle .active{border-color:#60a5fa;background:#eff6ff}.preclass-template{border-left:3px solid #14b8a6;background:#f8fffd;padding:10px 12px;border-radius:0 10px 10px 0;font-size:.67rem;line-height:1.65;color:#475569;margin:10px 0}.preclass-template b{color:#0f766e}.preclass-list{display:grid;gap:10px}.preclass-task-card{border:1px solid #dbeafe;border-radius:14px;background:#fff;padding:14px}.preclass-task-card .tag{display:inline-block;padding:3px 7px;border-radius:999px;background:#dbeafe;color:#1d4ed8;font-size:.58rem;font-weight:700;margin-bottom:7px}.preclass-task-card h4{margin:0 0 6px;color:#1e3a5f;font-size:.82rem}.preclass-task-card p{margin:0;color:#64748b;font-size:.68rem;line-height:1.65}.teacher-phase-note{margin:0 0 12px;padding:10px 12px;border-radius:10px;background:#fffbeb;border:1px solid #fde68a;color:#786022;font-size:.67rem;line-height:1.6}.identity-mini{display:inline-flex;gap:6px;align-items:center;padding:3px 8px;border-radius:999px;background:rgba(255,255,255,.12);font-size:.66rem;margin-left:6px}
@media(max-width:900px){.preclass-cycle{grid-template-columns:1fr}.preclass-form-grid{grid-template-columns:1fr!important}}


/* ===== SOURCE: v62-teaching-impact ===== */

/* ===== V7.21.0 教学成效与智能决策增强 ===== */
.v62-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:14px 0}.v62-kpi{background:#fff;border:1px solid #dbe5ef;border-radius:15px;padding:14px 15px;box-shadow:0 8px 24px rgba(30,58,95,.05)}.v62-kpi .k{font-size:.66rem;color:#64748b}.v62-kpi .v{font-size:1.55rem;font-weight:800;color:#1e3a5f;margin-top:5px}.v62-kpi .d{font-size:.61rem;color:#94a3b8;margin-top:3px;line-height:1.45}
.v62-dashboard-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:14px;margin:14px 0}.v62-panel{background:#fff;border:1px solid #dbe5ef;border-radius:16px;padding:14px;box-shadow:0 8px 24px rgba(30,58,95,.05)}.v62-panel h4{font-size:.82rem;color:#1e3a5f;margin:0 0 4px}.v62-panel .desc{font-size:.61rem;color:#64748b;margin-bottom:10px;line-height:1.5}.v62-chart{height:240px;position:relative}.v62-chart.small{height:215px}.v62-chart.tall{height:285px}
.v62-stage-bars{display:grid;gap:9px}.v62-stage-row{display:grid;grid-template-columns:44px 1fr 46px;gap:8px;align-items:center;font-size:.65rem}.v62-stage-row b{color:#334155}.v62-stage-track{height:9px;background:#edf2f7;border-radius:999px;overflow:hidden}.v62-stage-fill{height:100%;background:linear-gradient(90deg,#3b82f6,#14b8a6);border-radius:999px}.v62-stage-row span{text-align:right;color:#64748b}
.v62-heat-wrap{overflow:auto}.v62-heat{border-collapse:separate;border-spacing:4px;width:100%;min-width:560px;font-size:.6rem}.v62-heat th{color:#64748b;font-weight:700;padding:4px}.v62-heat td{text-align:center;border-radius:7px;padding:7px 5px;background:#f8fafc;color:#334155;font-weight:700}.v62-heat td.lv1{background:#eff6ff}.v62-heat td.lv2{background:#dbeafe}.v62-heat td.lv3{background:#bfdbfe}.v62-heat td.lv4{background:#93c5fd;color:#163a63}.v62-heat td.lv5{background:#60a5fa;color:#fff}.v62-heat .rowlabel{text-align:left;background:transparent;font-weight:600;color:#475569;white-space:nowrap}
.v62-loop{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:12px 0}.v62-loop div{position:relative;background:#f8fbff;border:1px solid #dbeafe;border-radius:11px;padding:9px 10px;font-size:.61rem;color:#64748b}.v62-loop b{display:block;color:#1e3a5f;margin-bottom:3px;font-size:.68rem}.v62-real-note{padding:9px 11px;border-radius:10px;background:#ecfdf5;border:1px solid #a7f3d0;color:#047857;font-size:.63rem;line-height:1.5}.v62-empty{height:180px;display:flex;align-items:center;justify-content:center;text-align:center;color:#94a3b8;font-size:.66rem;background:#f8fafc;border-radius:11px;border:1px dashed #cbd5e1;padding:18px}
.v62-audit{margin-top:10px;padding:10px;border-radius:11px;background:#f8fafc;border:1px solid #e2e8f0}.v62-audit-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px}.v62-audit-head b{font-size:.72rem;color:#1e3a5f}.v62-audit-head span{font-size:.6rem;color:#64748b}.v62-audit-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}.v62-check{padding:8px;border-radius:9px;border:1px solid #e2e8f0;background:#fff;min-height:72px}.v62-check .name{font-size:.61rem;font-weight:700;color:#334155}.v62-check .state{font-size:.59rem;margin-top:4px}.v62-check .why{font-size:.55rem;color:#64748b;line-height:1.4;margin-top:4px}.v62-check.pass{border-color:#a7f3d0;background:#f0fdf4}.v62-check.pass .state{color:#047857}.v62-check.warn{border-color:#fde68a;background:#fffbeb}.v62-check.warn .state{color:#b45309}.v62-check.na{background:#f8fafc}.v62-check.na .state{color:#94a3b8}.v62-audit-foot{margin-top:7px;font-size:.57rem;color:#64748b;line-height:1.5}
.v62-pressure-shell{display:grid;grid-template-columns:260px 1fr;gap:14px}.v62-pressure-roles{display:grid;gap:8px}.v62-role{padding:10px;border:1px solid #dbe5ef;border-radius:11px;background:#fff}.v62-role.active{border-color:#60a5fa;background:#eff6ff}.v62-role.done{border-color:#a7f3d0;background:#f0fdf4}.v62-role b{display:block;color:#1e3a5f;font-size:.69rem}.v62-role span{font-size:.57rem;color:#64748b;line-height:1.4}.v62-pressure-chat{min-height:360px;max-height:520px;overflow:auto;border:1px solid #dbe5ef;border-radius:13px;padding:12px;background:#fbfdff}.v62-pmsg{margin:8px 0;max-width:88%;padding:9px 11px;border-radius:11px;font-size:.66rem;line-height:1.55}.v62-pmsg.role{background:#eff6ff;color:#1e3a5f}.v62-pmsg.student{background:#ecfdf5;color:#065f46;margin-left:auto}.v62-pmsg.system{background:#fff7ed;color:#9a3412;max-width:100%}.v62-pressure-input{display:flex;gap:8px;margin-top:9px}.v62-pressure-input textarea{flex:1;min-height:78px}.v62-pressure-summary{margin-top:10px;padding:10px;border:1px solid #dbeafe;border-radius:10px;background:#f8fbff;font-size:.63rem;line-height:1.55;color:#475569}
.v62-effect-table{width:100%;border-collapse:collapse;font-size:.63rem}.v62-effect-table th,.v62-effect-table td{padding:8px;border-bottom:1px solid #eef2f7;text-align:left}.v62-effect-table th{color:#64748b}.v62-badge{display:inline-flex;padding:3px 7px;border-radius:999px;font-size:.56rem;font-weight:700;background:#e0f2fe;color:#0369a1}.v62-print{margin-left:auto}
@media(max-width:1180px){.v62-kpis{grid-template-columns:repeat(2,1fr)}.v62-dashboard-grid,.v62-pressure-shell{grid-template-columns:1fr}.v62-audit-grid{grid-template-columns:repeat(2,1fr)}.v62-loop{grid-template-columns:1fr 1fr}}@media(max-width:720px){.v62-kpis{grid-template-columns:1fr}.v62-audit-grid,.v62-loop{grid-template-columns:1fr}}


/* ===== SOURCE: v65-focus-and-float ===== */

/* ===== V7.21.0 首页聚焦 + 单一悬浮智能导师 ===== */
.v65-mini-loop{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:14px}
.v65-mini-loop div{background:#f8fbff;border:1px solid #dbeafe;border-radius:12px;padding:10px 11px;display:flex;gap:9px;align-items:center}
.v65-mini-loop b{width:27px;height:27px;border-radius:50%;background:#1e3a5f;color:#fff;display:flex;align-items:center;justify-content:center;font-size:.62rem}
.v65-mini-loop span{font-size:.68rem;color:#3b536b;line-height:1.4}
.v65-flow-line{grid-template-columns:repeat(3,1fr)}
.v65-teacher-flow{grid-template-columns:repeat(4,1fr)}
.v64-core-card{min-height:190px}
.v64-org-section{display:none!important}

/* 学生项目阶段：证据 + 工作区；智能导师统一悬浮 */
.project-stage-layout{grid-template-columns:minmax(300px,32%) minmax(520px,1fr)!important}
.project-stage-layout>.mentor-col{display:none!important}
.ai-float{display:flex;align-items:center;justify-content:center;width:58px;height:58px;background:linear-gradient(135deg,#1e3a5f,#2563eb);box-shadow:0 13px 34px rgba(30,58,95,.28)}
.ai-float:not(.hidden)::after{content:"智能导师";position:absolute;right:66px;background:#173b5e;color:#fff;padding:5px 8px;border-radius:8px;font-size:.61rem;white-space:nowrap;opacity:0;transform:translateX(5px);transition:.18s;pointer-events:none}
.ai-float:not(.hidden):hover::after{opacity:1;transform:translateX(0)}
.ai-drawer{height:600px;width:405px}
.v65-mentor-boundary{padding:9px 10px;margin-bottom:8px;background:#f0f9ff;border:1px solid #bae6fd;border-radius:10px;color:#475569;font-size:.64rem;line-height:1.55}
.v65-mentor-modes{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:8px}
.v65-mentor-modes .socratic-mode{font-size:.62rem;padding:7px 6px}
@media(max-width:1100px){.project-stage-layout{grid-template-columns:1fr!important}.v65-teacher-flow{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.v65-flow-line,.v65-teacher-flow,.v65-mini-loop{grid-template-columns:1fr}}


/* ===== SOURCE: v66-direct-pages ===== */

/* ===== V7.21.0 菜单直达：点击什么就展示什么 ===== */
.v66-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:12px 0 16px}
.v66-kpi{background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:13px 14px;min-height:92px}
.v66-kpi .k{font-size:.63rem;color:#64748b}.v66-kpi .v{font-size:1.35rem;font-weight:800;color:#153b5a;margin:5px 0}.v66-kpi .d{font-size:.56rem;color:#94a3b8;line-height:1.45}
.v66-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:12px 0}
.v66-panel{background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:14px;min-width:0}
.v66-panel h4{font-size:.76rem;color:#173b5e;margin:0 0 4px}.v66-panel .desc{font-size:.58rem;color:#64748b;line-height:1.5;margin-bottom:10px}
.v66-attention{display:grid;gap:8px}.v66-attention-item{display:grid;grid-template-columns:110px 1fr auto;gap:10px;align-items:center;padding:9px 10px;border:1px solid #e8eef5;border-radius:10px;font-size:.62rem}
.v66-attention-item b{color:#1e3a5f}.v66-attention-item span{color:#64748b}.v66-attention-item em{font-style:normal;font-size:.56rem;padding:3px 7px;border-radius:999px;background:#eff6ff;color:#2563eb}
.v66-chart{height:250px;position:relative}.v66-chart.small{height:210px}
.v66-note{padding:10px 12px;border:1px solid #dbeafe;background:#f8fbff;border-radius:11px;color:#475569;font-size:.61rem;line-height:1.55}
.v66-data-table{width:100%;border-collapse:collapse;font-size:.62rem}.v66-data-table th,.v66-data-table td{padding:8px;border-bottom:1px solid #edf2f7;text-align:left}.v66-data-table th{color:#64748b;font-weight:700}.v66-data-table td{color:#334155}
.v66-state{display:inline-flex;padding:3px 7px;border-radius:999px;font-size:.55rem;font-weight:700}.v66-state.watch{background:#fff7ed;color:#c2410c}.v66-state.progress{background:#eff6ff;color:#2563eb}.v66-state.stable{background:#ecfdf5;color:#047857}
.v66-direct-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}
.v66-direct-head .sub-header{margin-bottom:0}
@media(max-width:1180px){.v66-kpis{grid-template-columns:repeat(2,1fr)}.v66-grid{grid-template-columns:1fr}}
@media(max-width:650px){.v66-kpis{grid-template-columns:1fr}}


/* ===== SOURCE: v72-route-fix ===== */

.v72-route-error{padding:18px;border:1px solid #dbe5ef;border-radius:14px;background:#fff}
.v72-route-error b{display:block;color:#173b5e;margin-bottom:6px}
.v72-route-error p{color:#64748b;font-size:.68rem;line-height:1.6;margin:0 0 10px}


/* ===== SOURCE: v73-router-fix ===== */

.v73-route-error{padding:18px;border:1px solid #dce6ef;border-radius:14px;background:#fff}
.v73-route-error b{display:block;color:#173b5e;margin-bottom:6px}
.v73-route-error p{margin:0;color:#64748b;font-size:.68rem;line-height:1.6}


/* ===== SOURCE: v75-learning-analysis-style ===== */

.v75-analysis-shell{display:grid;grid-template-columns:360px minmax(0,1fr);gap:14px}
.v75-side,.v75-main{background:#fff;border:1px solid #dfe8f0;border-radius:16px;padding:15px}
.v75-status{padding:10px 12px;border-radius:12px;background:#f6f9fc;border:1px solid #e2eaf1;margin-bottom:12px}
.v75-status b{display:block;color:#183f5f;font-size:.72rem}.v75-status span{font-size:.57rem;color:#71869a}
.v75-dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:5px}.v75-dot.on{background:#14b8a6}.v75-dot.off{background:#f59e0b}
.v75-controls{display:grid;gap:9px;margin-bottom:12px}
.v75-controls label{font-size:.59rem;color:#657c90;font-weight:700}
.v75-controls select{width:100%;border:1px solid #d5e1eb;border-radius:10px;padding:8px 9px;background:#fff;color:#36546c}
.v75-student-list{display:grid;gap:7px;max-height:530px;overflow:auto}
.v75-student{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;border:1px solid #e3ebf2;border-radius:11px;padding:9px 10px}
.v75-student b{display:block;color:#1e4564;font-size:.66rem}.v75-student small{display:block;color:#8294a5;font-size:.53rem;margin-top:2px}
.v75-student button,.v75-mini-btn{border:1px solid #cfdde8;background:#fff;color:#285f89;border-radius:8px;padding:6px 8px;font-size:.54rem;cursor:pointer}
.v75-analysis-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap;margin-bottom:12px}
.v75-analysis-head h3{color:#183f5f;font-size:.92rem;margin:0 0 3px}.v75-analysis-head p{color:#75899b;font-size:.58rem;margin:0}
.v75-source{font-size:.53rem;padding:5px 8px;border-radius:999px;background:#eff6ff;color:#2b6fa5}
.v75-summary{background:#f8fbfd;border-left:4px solid #3b82f6;border-radius:11px;padding:12px 13px;color:#425f75;font-size:.66rem;line-height:1.7}
.v75-two{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:11px}
.v75-block{border:1px solid #e2eaf1;border-radius:12px;padding:12px}
.v75-block h4{color:#1d4565;font-size:.68rem;margin:0 0 8px}
.v75-list{margin:0;padding-left:18px;color:#5e7588;font-size:.6rem;line-height:1.75}
.v75-ability{display:grid;gap:7px}
.v75-ability-row{display:grid;grid-template-columns:105px 80px 1fr;gap:8px;align-items:start;border-top:1px solid #edf2f6;padding-top:7px}
.v75-ability-row:first-child{border-top:0;padding-top:0}
.v75-ability-row b{font-size:.59rem;color:#2b506e}.v75-level{font-size:.53rem;padding:3px 6px;border-radius:999px;background:#eef5fb;color:#306c9a;text-align:center}.v75-evidence{font-size:.56rem;color:#71869a;line-height:1.5}
.v75-ref{display:inline-flex;margin:3px 5px 3px 0;padding:4px 7px;border-radius:999px;background:#f4f7fa;border:1px solid #e0e8ef;color:#62798c;font-size:.52rem}
.v75-review{margin-top:12px;padding-top:12px;border-top:1px solid #e6edf3}.v75-review textarea{width:100%;min-height:76px;border:1px solid #d7e2eb;border-radius:10px;padding:9px}
.v75-empty{display:flex;align-items:center;justify-content:center;min-height:320px;color:#8093a4;font-size:.66rem;text-align:center;padding:30px}
@media(max-width:1100px){.v75-analysis-shell{grid-template-columns:1fr}.v75-two{grid-template-columns:1fr}}


/* ===== SOURCE: v78-deploy-ready ===== */

.v78-ready-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:10px}.v78-ready-item{border:1px solid #e1e8ef;border-radius:10px;padding:9px 10px;font-size:.59rem;color:#5d7488}.v78-ready-item.ok{background:#f0fdf4;border-color:#bbf7d0}.v78-ready-item.warn{background:#fff7ed;border-color:#fed7aa}.v78-ready-item b{display:block;color:#244b69;margin-bottom:3px}@media(max-width:800px){.v78-ready-grid{grid-template-columns:1fr}}


/* ===== SOURCE: v78-runtime-mode ===== */

body.v78-production .v71-auth-note,body.v78-production .demo-tip{display:none!important}


/* ===== SOURCE: v79-project-logic ===== */

.v79-lock{display:inline-flex;align-items:center;gap:5px;color:#94a3b8;font-size:.56rem}.v79-lock i{color:#94a3b8}
.v791-stage-list{display:grid;gap:8px;margin-top:10px}
.v791-stage-row{display:grid;grid-template-columns:56px minmax(0,1fr) 92px;align-items:center;gap:10px;border:1px solid #dfe8f0;border-radius:14px;padding:10px 14px;background:#fff;min-height:54px}
.v791-stage-row.done{background:#fbfefd}
.v791-stage-no{font-weight:800;font-size:.72rem;color:#184e7a;background:#eef4ff;border-radius:10px;padding:8px 6px;text-align:center}
.v791-stage-main{min-width:0;display:flex;align-items:center;gap:10px}
.v791-stage-title{font-size:.78rem;font-weight:800;color:#173f60;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.v791-stage-state{font-size:.54rem;color:#8a9bab;white-space:nowrap}
.v791-stage-btn{width:92px;border-radius:999px!important;padding:8px 12px!important}
.v791-main-note{font-size:.58rem;color:#8294a5;margin-top:2px}
.v79-judgment{margin-top:10px;border:1px solid #dbe7f0;background:#fbfdff;border-radius:12px;padding:11px}.v79-judgment b{font-size:.68rem;color:#193f5f}.v79-judgment p{font-size:.59rem;color:#71869a;line-height:1.55;margin:4px 0 8px}.v79-judgment textarea{width:100%;min-height:96px;border:1.5px solid #cfdde8;border-radius:10px;padding:9px;font-family:inherit;font-size:.7rem;resize:vertical}.v79-saved{background:#f0fdfa;border:1px solid #99f6e4;color:#115e59;border-radius:10px;padding:9px;font-size:.65rem;line-height:1.6}.v79-gate-list{display:grid;gap:6px;margin-top:9px}.v79-gate-item{display:flex;justify-content:space-between;gap:8px;border:1px solid #e3ebf2;border-radius:9px;padding:7px 8px;font-size:.6rem;color:#62788b}.v79-gate-item.done{background:#f0fdfa;border-color:#a7f3d0;color:#0f766e}.v79-gate-item.wait{background:#fff7ed;border-color:#fed7aa;color:#9a3412}.v79-stage-note{background:#eff6ff;border:1px solid #bfdbfe;color:#365d7c;border-radius:11px;padding:9px 10px;font-size:.62rem;line-height:1.6;margin:9px 0}.v79-na{font-size:.56rem;color:#94a3b8;margin-left:5px}.v79-profile-note{font-size:.58rem;color:#71869a;line-height:1.55;margin-top:8px}


/* ===== SOURCE: v710-final-closeout-style ===== */

.v710-s08-box{margin:12px 0;border:1px solid #dbe7f0;border-radius:14px;background:#fbfdff;overflow:hidden}
.v710-s08-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px}
.v710-s08-head b{font-size:.76rem;color:#173f60}.v710-s08-head span{font-size:.57rem;color:#8294a5}
.v710-s08-body{padding:0 14px 14px}.v710-s08-body.hidden{display:none}
.v710-growth-list{display:grid;gap:8px;margin-top:12px}
.v710-growth-row{border:1px solid #e0e8ef;border-radius:12px;background:#fff}
.v710-growth-head{display:grid;grid-template-columns:55px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 12px}
.v710-growth-id{font-size:.64rem;font-weight:900;color:#1d5b8f;background:#eef5ff;border-radius:9px;padding:7px 6px;text-align:center}
.v710-growth-title{font-size:.68rem;font-weight:800;color:#244a68}
.v710-growth-meta{font-size:.54rem;color:#8496a6;margin-top:3px}
.v710-growth-detail{display:none;border-top:1px solid #edf2f6;padding:12px}
.v710-growth-detail.open{display:block}
.v710-growth-compare{display:grid;grid-template-columns:1fr 44px 1fr;gap:9px;align-items:stretch}
.v710-growth-text{background:#f8fafc;border-radius:10px;padding:10px;font-size:.6rem;color:#536c80;line-height:1.65;min-height:78px}
.v710-growth-arrow{display:flex;align-items:center;justify-content:center;color:#3b82f6;font-size:1rem}
.v710-process{display:flex;flex-wrap:wrap;gap:5px;margin-top:9px}
.v710-process span{font-size:.52rem;padding:4px 7px;border:1px solid #dce6ee;border-radius:999px;color:#60798d;background:#fff}
.v710-boundary{margin-top:12px;border-top:1px solid #e6edf3;padding-top:10px}
.v710-boundary details{font-size:.58rem;color:#667d90}
.v710-profile-note{font-size:.56rem;color:#8395a5;margin-top:6px;line-height:1.55}
@media(max-width:900px){.v710-growth-compare{grid-template-columns:1fr}.v710-growth-arrow{transform:rotate(90deg)}}


/* ===== SOURCE: v711-six-stage-style ===== */

.v711-flow{display:grid;gap:10px;margin-top:12px}
.v711-primary{border:1px solid #dce7ef;border-radius:15px;background:#fff;overflow:hidden}
.v711-primary.done{background:#fbfefd}
.v711-primary-head{display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 14px}
.v711-code{width:42px;height:42px;border-radius:12px;background:#edf5ff;color:#1e5a8a;font-weight:900;display:flex;align-items:center;justify-content:center;font-size:.82rem}
.v711-primary-title{font-size:.78rem;font-weight:850;color:#173f60}
.v711-primary-summary{font-size:.56rem;color:#8295a6;margin-top:3px}
.v711-primary-state{font-size:.55rem;color:#71869a;white-space:nowrap}
.v711-subtasks{border-top:1px solid #edf2f6;background:#fbfdff;padding:8px 12px 10px 76px;display:grid;gap:6px}
.v711-subtask{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:8px;align-items:center;background:#fff;border:1px solid #e4ebf1;border-radius:10px;padding:8px 10px}
.v711-subcode{font-size:.61rem;font-weight:900;color:#2563eb}
.v711-subtitle{font-size:.63rem;font-weight:760;color:#31546f}
.v711-stage-btn{border-radius:999px!important;padding:6px 11px!important;font-size:.58rem!important}
.v711-kpi-note{font-size:.54rem;color:#8294a5;margin-top:3px}
.v711-flowline{font-size:.58rem;color:#6f8496;margin-top:3px}
.v711-artifact-group{border:1px solid #e0e8ef;border-radius:14px;margin-bottom:10px;overflow:hidden}
.v711-artifact-group h4{font-size:.7rem;color:#244a68;margin:0;padding:10px 12px;background:#f8fbfe;border-bottom:1px solid #e8eef3}
.v711-artifact-row{display:grid;grid-template-columns:58px minmax(0,1fr) 76px 70px 96px;gap:8px;align-items:center;padding:9px 12px;border-bottom:1px solid #eef3f6;font-size:.59rem}
.v711-artifact-row:last-child{border-bottom:0}
@media(max-width:900px){
  .v711-primary-head{grid-template-columns:44px 1fr}
  .v711-primary-head>button,.v711-primary-head>.v711-primary-state{grid-column:2}
  .v711-subtasks{padding-left:12px}
  .v711-artifact-row{grid-template-columns:50px 1fr 70px}.v711-artifact-row>*:nth-child(4),.v711-artifact-row>*:nth-child(5){display:none}
}


/* ===== SOURCE: v7111-progressive-artifact-style ===== */

/* V7.21.0：阶段成果在N5完成前不展示编辑器，避免“界面可交、后台不让交”的冲突 */
.artifact-box.v7111-artifact-locked{
  margin-top:14px;
  border:1px dashed #cbd8e5;
  background:#fbfdff;
  border-radius:14px;
  padding:0;
}
.artifact-box.v7111-artifact-locked > *:not(.v7111-artifact-lock-note){
  display:none !important;
}
.v7111-artifact-lock-note{
  display:flex;
  align-items:flex-start;
  gap:10px;
  padding:12px 14px;
}
.v7111-lock-icon{
  width:30px;height:30px;flex:0 0 30px;
  border-radius:9px;
  display:flex;align-items:center;justify-content:center;
  background:#eef4f9;color:#7890a5;font-size:.76rem;
}
.v7111-lock-main b{
  display:block;
  color:#425f76;
  font-size:.68rem;
  margin-bottom:3px;
}
.v7111-lock-main p{
  margin:0;
  color:#7d91a3;
  font-size:.57rem;
  line-height:1.55;
}
.v7111-lock-steps{
  display:flex;flex-wrap:wrap;gap:5px;
  margin-top:7px;
}
.v7111-lock-steps span{
  border:1px solid #dce6ee;
  border-radius:999px;
  padding:3px 7px;
  font-size:.51rem;
  color:#7a8e9f;
  background:#fff;
}
.v7111-lock-steps span.done{
  color:#0f766e;
  border-color:#bfe7df;
  background:#f0fdfa;
}
.v7111-lock-steps span.current{
  color:#1d4ed8;
  border-color:#bfdbfe;
  background:#eff6ff;
}
.v7111-unlock-flash{
  animation:v7111Unlock .55s ease both;
}
@keyframes v7111Unlock{
  from{opacity:.45;transform:translateY(4px)}
  to{opacity:1;transform:translateY(0)}
}


