.collaboration-workspace{max-width:1200px;margin:auto}.collaboration-workspace .card{margin-bottom:20px}.ai-toolbar{display:flex;align-items:end;gap:14px;flex-wrap:wrap;margin:12px 0 20px}.ai-toolbar label{min-width:160px;flex:0 1 auto}.ai-toolbar .grow{flex:1}.ai-toolbar input,.ai-toolbar select{width:100%}.ai-toolbar strong{align-self:center}.ai-check{display:flex!important;align-items:center;gap:10px;margin:18px 0}.ai-check input,.duty-check input{width:18px!important;height:18px;flex-shrink:0;accent-color:#27684e}.field-action{display:flex;align-items:end;padding-bottom:4px}.form-grid .full{flex-basis:100%}.prewrap{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.85}.ai-answer{background:#f0f7f2;border:1px solid #d7e6dc;border-radius:14px;padding:22px;margin:18px 0}.ai-brand{display:flex;gap:10px;font-size:20px;color:#27634b}.ai-brand span{background:#e4f0e9;border-radius:10px;padding:8px}.assistant-card{padding-bottom:20px}.ai-suggestions{display:flex;flex-wrap:wrap;gap:8px}.ai-conversation{max-height:65vh;min-height:260px;overflow-y:auto;padding:20px 4px}.ai-message{max-width:92%;padding:18px 20px;margin:0 0 18px;border-radius:16px;border:1px solid #dde5df;background:#fff}.ai-message.from-user{margin-left:auto;background:#edf5ef;border-color:#d5e6da}.ai-message>b{display:block;color:#36614a;margin-bottom:8px}.ai-composer{display:flex;align-items:end;gap:14px;border-top:1px solid #e4e9e5;padding-top:18px}.ai-composer textarea{flex:1;min-height:85px;margin:0}.ai-composer button{flex-shrink:0}.ai-source{margin-top:12px;border-top:1px dashed #cbdacf;padding-top:10px;font-size:13px}.ai-source summary{cursor:pointer;color:#32634d;line-height:1.6}.ai-source p{line-height:1.8;margin-top:10px}.ai-proposal{margin-top:16px;padding:16px;background:#f9f6e9;border-radius:10px}.ai-proposal small{display:block;margin-top:10px}.duty-checklist{display:grid;gap:10px;margin:18px 0}.duty-check{display:flex!important;align-items:flex-start;gap:12px;background:#f7f9f7;border:1px solid #e0e8e1;border-radius:12px;padding:16px;line-height:1.8;font-weight:400}.duty-check:has(input:checked){background:#eaf4ed;color:#3f694d}.knowledge-item{border-bottom:1px solid #e4e9e5;padding:22px 0}.knowledge-item p{line-height:1.9}.knowledge-item small{color:#627268;display:block;line-height:1.7}.handoff-item{border:1px solid #dfe7e1;padding:20px;border-radius:12px;margin:14px 0}.handoff-item p{line-height:1.8}.handoff-item small{color:#64746b}.ai-facts{display:grid;grid-template-columns:70px 1fr;gap:8px;font-size:14px;line-height:1.8}.ai-facts dt{color:#65766b}.ai-facts dd{margin:0;white-space:pre-wrap}.ai-detail-title{cursor:pointer;font-size:17px;font-weight:600;padding:10px 0}.report-metrics{display:flex;flex-wrap:wrap;gap:14px;margin:20px 0}.report-metrics>div{flex:1 1 200px;min-width:0;background:#edf5ef;padding:22px 18px;border-radius:12px}.report-metrics small{display:block;color:#61756a}.report-metrics strong{font-size:26px;display:block;margin-top:10px}.report-history-item{display:flex;justify-content:space-between;gap:20px;width:100%;background:#fff;border:0;border-bottom:1px solid #e1e8e3;padding:18px 10px;text-align:left;cursor:pointer;color:#315942}.seat-entry{text-align:center;padding:55px 25px!important}.seat-mark{font-size:65px;color:#3e7659}.seat-entry p{margin:20px 0;line-height:1.8}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.ai-launch{display:flex;justify-content:space-between;gap:20px;align-items:center;background:#eaf4ee;border:1px solid #cfe3d5;border-radius:16px;padding:18px 22px;margin-bottom:20px}.ai-launch p{margin:6px 0 0;color:#607469}.review-date-fields{margin:12px 0;display:flex;flex-wrap:wrap;gap:12px}.review-date-fields label{min-width:140px;max-width:210px}.review-date-fields input{width:100%}
@media(max-width:760px){.ai-toolbar{align-items:stretch}.ai-toolbar label{flex:1;min-width:130px}.ai-toolbar button{align-self:end}.ai-message{max-width:100%}.ai-composer{flex-direction:column;align-items:stretch}.ai-launch{align-items:start;flex-direction:column}.report-history-item{flex-direction:column;gap:5px}.handoff-item{padding:15px}.ai-facts{grid-template-columns:60px 1fr}}
.resource-profile{margin-top:22px;padding:18px;background:#f3f8f5;border-radius:14px;border:1px solid #dbe9e1}.resource-profile p{line-height:1.75}.resource-profile small{display:block;color:#65776d;line-height:1.6}.ai-composer textarea{border:1px solid #ccdcd2;border-radius:12px;padding:12px;font:inherit;resize:vertical}
.library-resources{padding:20px;margin-bottom:20px}
.library-resources-heading{display:flex;align-items:baseline;justify-content:space-between;gap:8px 20px;flex-wrap:wrap;margin-bottom:16px}
.library-resources-heading h3{margin:0;font-size:18px;color:#254936}
.library-resources-heading p{margin:0;color:#65786c;font-size:13px;line-height:1.6}
.library-resource-grid{display:flex;flex-wrap:wrap;gap:12px}
.library-resource-link{display:flex;align-items:center;gap:12px;padding:18px 14px;border:1px solid #d8e5dc;border-radius:12px;background:#f5f9f6;text-decoration:none;color:#254936;transition:background .15s,border-color .15s;flex:1 1 280px;min-width:0}
.library-resource-link:hover{background:#eaf4ee;border-color:#719a80}
.library-resource-link:focus-visible{outline:3px solid #3c7856;outline-offset:3px}
.library-resource-link strong{display:block;font-size:16px;line-height:1.6}
.library-resource-link small{display:block;font-size:12px;line-height:1.6;color:#65786c;margin-top:3px}
.library-resource-icon{display:flex;flex-shrink:0;padding:10px;border-radius:10px;background:#e3eee7;color:#366c4c}
.library-resource-icon svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.library-resource-arrow{margin-left:auto;align-self:flex-start;color:#527c60;font-size:18px}
.reading-resource-links{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:14px 16px;margin-bottom:18px;border:1px solid #d8e5dc;border-radius:12px;background:#f5f9f6}
.reading-resource-links[hidden]{display:none}
.reading-resource-links>span{font-weight:600;color:#315c43;font-size:14px}
.reading-resource-links small{color:#65786c;font-size:12px}
@media(max-width:1100px){.library-resource-grid{grid-template-columns:1fr}}
@media(max-width:760px){.library-resources{padding:16px}.library-resource-link{padding:14px}.reading-resource-links>span{flex-basis:100%}}

/* 智汇图钉 · visual identity; workflow and API behavior are unchanged. */
:root {
  --navy: #28533f;
  --navy-2: #1f4434;
  --teal: #2c6b4d;
  --paper: #f5f7f3;
  --line: #dfe7df;
}
.side { background: linear-gradient(180deg, #28533f 0%, #214734 100%); scrollbar-width: thin; scrollbar-color: #7b9b87 transparent; }
.brand { gap: 22px; padding-bottom: 23px; }
.brand > .brand-logo { width: 210px; max-width: 100%; }
.brand-subline { align-items: flex-start; gap: 12px; }
.brand-subline .brand-crest { width: 34px; height: 34px; margin-top: 3px; }
.brand .platform-wordmark { min-width: 0; }
.brand .platform-wordmark h1 { font-size: 27px; line-height: 1.35; font-weight: 750; letter-spacing: .08em; }
.platform-wordmark h1 small { display: block; margin-top: 10px; font-size: 12px; line-height: 1.85; letter-spacing: .03em; font-weight: 400; color: #d6e6db; }
.platform-wordmark h1 small > span { display: block; white-space: nowrap; }
.nav-btn { min-height: 36px; padding: 8px 12px; gap: 12px; }
.nav-svg, .nav-mascot { width: 20px; height: 20px; flex: none; }
.nav-mascot { object-fit: contain; transform: scale(1.35); }
.nav-btn.active { background: #e8f2e9; box-shadow: inset 3px 0 #c2b077; }
.nav-btn:focus-visible, .button:focus-visible, .quick:focus-visible { outline: 3px solid #bba260; outline-offset: 3px; }
.main { display: flex; flex-direction: column; }
.content { width: 100%; flex: 1; }
.top-title h2 { letter-spacing: 0; }
.site-footer { display: block; border-top: 0; padding-top: 8px; }
.campus-skyline { display: block; width: min(100%, 900px); height: auto; max-height: 80px; object-fit: contain; object-position: center bottom; margin: 0 auto 16px; opacity: .32; }
.footer-meta { display: flex; justify-content: space-between; gap: 10px 24px; flex-wrap: wrap; padding-top: 16px; border-top: 1px solid var(--line); line-height: 1.8; color: #718277; }
.hero { background: linear-gradient(110deg, #244737, #3a7355); }
.hero h4 { line-height: 1.55; }
.hero .small-time { color: #d4e7dc; }
.collaboration-workspace .card { padding: 22px 24px; }
.collaboration-workspace .card > h3:first-child { margin-top: 0; }
.page-heading h3 { font-size: 24px; letter-spacing: 0; }
.ai-selection-bar { max-width: 1200px; margin: 0 auto 24px; gap: 24px; padding: 18px 22px; background: #eef4ef; border: 1px solid #d8e4db; }
.ai-selection-bar > label { flex: 0 1 390px; min-width: 0; font-size: 14px; gap: 9px; }
.ai-selection-bar > div { flex: 1 1 240px; min-width: 0; }
.ai-selection-bar select { max-width: none; min-height: 44px; font-size: 14px; }
.ai-selection-bar p { font-size: 13px; line-height: 1.7; }
.ai-selection-bar small { font-size: 11px; line-height: 1.8; }
.ai-toolbar label, #ai-notice-form > label { display: grid; gap: 8px; color: #53685a; font-size: 13px; }
.ai-toolbar input, .ai-toolbar select, #ai-notice-form textarea { min-height: 42px; min-width: 0; padding: 10px 14px; background: #ffffff; color: #243b2e; border: 1px solid #d4e0d9; border-radius: 10px; font: inherit; transition: border-color .18s ease, box-shadow .18s ease, background .18s ease; }
.ai-toolbar input:hover, .ai-toolbar select:hover, #ai-notice-form textarea:hover { border-color: #b8cfc2; background: #fdfefe; }
.ai-toolbar input:focus, .ai-toolbar select:focus, .ai-composer textarea:focus, #ai-notice-form textarea:focus, .ai-selection-bar select:focus { outline: none; border-color: #548f6b; background: #fff; box-shadow: 0 0 0 3px rgba(41,97,64,.12); }
.ai-toolbar { margin-top: 0; }
.ai-toolbar label { max-width: 100%; }
.ai-toolbar .grow { min-width: min(250px, 100%); }
.ai-brand { align-items: center; margin-right: auto; gap: 12px; color: #285b42; }
.ai-mascot { width: 56px; height: 56px; object-fit: contain; background: #f8f3e6; border: 1px solid #eee4cc; border-radius: 16px; padding: 3px; }
.ai-message > .ai-message-author { display: flex; align-items: center; gap: 9px; min-height: 28px; }
.ai-message-avatar { width: 30px; height: 30px; object-fit: contain; }
.ai-conversation { padding-top: 26px; }
.ai-message { box-shadow: 0 3px 12px rgba(32, 72, 48, .025); }
.ai-suggestions .quick { line-height: 1.6; }
.card:has(> #ai-notice-form) { padding: 22px 24px; margin-bottom: 20px; }
#ai-notice-form textarea { width: 100%; min-height: 100px; resize: vertical; }
#ai-notice-form > button { margin-top: 14px; }
.campus-intro { min-height: 650px; padding: 32px 34px 265px; color: #244b37; background: #f3f7ee; text-align: center; }
.campus-intro:before { display: none; }
.campus-intro:after { display: none; }
.campus-intro .auth-logo { padding: 0; background: transparent; border: 0; border-radius: 0; box-shadow: none; }
.campus-intro .auth-logo .brand-logo { width: 230px; max-width: 100%; border-radius: 0; }
.campus-intro .auth-message { margin-top: 14px; text-align: center; max-width: none; }
.campus-intro .auth-platform-title { font-size: 42px; letter-spacing: .08em; line-height: 1.3; margin: 12px 0 16px; }
.auth-platform-title > span { display: block; margin-top: 12px; font-size: 20px; line-height: 1.7; letter-spacing: .08em; font-weight: 500; }
.campus-intro .auth-message p { color: #5f7b64; font-size: 12px; }
.auth-campus-art { position: absolute; left: 0; bottom: 0; width: 100%; height: 255px; object-fit: cover; object-position: center; mix-blend-mode: multiply; }
.campus-intro .auth-mascot { width: 96px; height: 96px; bottom: 12px; right: 16px; }
@media (max-width: 1100px) {
  .ai-selection-bar { flex-wrap: wrap; gap: 12px 24px; }
  .ai-selection-bar > label { flex-basis: 100%; }
  .ai-selection-bar > label select { max-width: 460px; }
}
@media (max-width: 800px) {
  .ai-selection-bar { margin: 0 auto 20px; align-items: stretch; }
  .ai-selection-bar > label, .ai-selection-bar > div { flex: none; width: 100%; }
  .ai-selection-bar > label select { max-width: 100%; }
}
@media (max-width: 780px) {
  .brand .platform-wordmark h1 { font-size: 27px; }
  .collaboration-workspace .card, .card:has(> #ai-notice-form) { padding: 18px 16px; }
  .ai-selection-bar { padding: 16px; }
  .ai-toolbar { gap: 14px 10px; }
  .ai-toolbar label { min-width: min(150px, 100%); }
  .ai-brand { flex-basis: 100%; }
  .page-heading h3 { font-size: 22px; }
  .campus-skyline { margin-bottom: 10px; }
  .footer-meta { font-size: 10px; gap: 4px; }
  .campus-intro { min-height: 575px; padding: 24px 24px 210px; }
  .campus-intro .auth-message { margin-top: 24px; max-width: none; }
  .campus-intro .auth-platform-title { font-size: 34px; }
  .auth-platform-title > span { font-size: 17px; letter-spacing: .02em; }
  .auth-campus-art { height: 205px; }
  .campus-intro .auth-logo .brand-logo { width: 200px; }
  .campus-intro .auth-mascot { width: 75px; height: 75px; bottom: 5px; }
}
@media (prefers-reduced-motion: reduce) {
  .nav-btn, .library-resource-link, .metric-action { transition: none; }
}
.ai-notice-draft-meta { display: flex; align-items: center; gap: 10px; margin: 18px 0 4px; }
.ai-draft-card { margin-top: 16px; padding: 18px 20px; background: #fbfdfb; border: 1px solid #d7e6dc; border-radius: 14px; }
.missing-inputs { display: flex; flex-wrap: wrap; gap: 12px; margin: 4px 0 6px; padding: 14px 16px; background: #fdf6e7; border: 1px solid #f0e2bd; border-radius: 12px; }
.missing-inputs > b { width: 100%; font-size: 13px; color: #8a6a1c; }
.missing-inputs label { flex: 1 1 280px; }
.free-list { margin-top: 14px; display: grid; gap: 8px; }
.free-item { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 14px; background: #f6faf7; border: 1px solid #ddeae1; border-radius: 10px; }
.free-time { font-weight: 600; color: var(--ink); }
.notice-del { margin-top: 6px; }
.ai-notice-draft-meta small { color: #61756a; line-height: 1.6; }
.missing-list { display: flex; flex-wrap: wrap; gap: 8px; margin: 14px 0 6px; padding: 12px 14px; background: #fdf6e7; border: 1px solid #f0e2bd; border-radius: 10px; }
.missing-list b { width: 100%; font-size: 13px; color: #8a6a1c; }
.missing-list span { font-size: 12px; background: #fff; border: 1px solid #e5d5a8; border-radius: 999px; padding: 4px 11px; color: #7a5f1b; }
.ai-notice-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 8px; }
.ai-notice-actions .ai-check { margin: 0; }
#ai-notice-draft .notice { margin: 14px 0 6px; }
#notice-publish textarea { min-height: 140px; }

/* ===== 前端体验优化：AI 打字机 / 思考动画 / 消息入场 ===== */
.ai-message { animation: aiMsgIn .34s cubic-bezier(.22, .9, .36, 1); }
@keyframes aiMsgIn { from { transform: translateY(12px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }
.ai-message.from-user { animation-name: aiMsgInUser; }
@keyframes aiMsgInUser { from { transform: translateX(14px); opacity: 0; } to { transform: translateX(0); opacity: 1; } }
.typewriter-content { white-space: pre-wrap; overflow-wrap: anywhere; }
.typing-cursor { display: inline-block; color: #2f7d5f; font-weight: 700; animation: blink 1s steps(2, start) infinite; margin-left: 1px; }
@keyframes blink { to { visibility: hidden; } }
.ai-thinking { display: inline-flex; align-items: center; gap: 8px; color: #5a7266; font-size: 13px; }
.ai-thinking i { width: 7px; height: 7px; border-radius: 99px; background: #2f7d5f; animation: thinkDot 1.2s infinite ease-in-out; }
.ai-thinking i:nth-child(2) { animation-delay: .18s; }
.ai-thinking i:nth-child(3) { animation-delay: .36s; }
@keyframes thinkDot { 0%, 60%, 100% { transform: translateY(0); opacity: .35; } 30% { transform: translateY(-4px); opacity: 1; } }
