:root{--bg:#f3f5f4;--surface:#fff;--surface-2:#eef3f1;--ink:#17211f;--muted:#5d6a66;--line:#d8e1dd;--teal:#12736a;--teal-dark:#0b4f49;--amber:#b7791f;--coral:#c6503f;--blue:#2f6f9f;--shadow:0 1px 2px rgba(23,33,31,.05),0 14px 36px rgba(23,33,31,.07);--shadow-raised:0 1px 2px rgba(23,33,31,.06),0 18px 42px rgba(23,33,31,.1);--ease-out:cubic-bezier(0.22,1,0.36,1);--press-duration:110ms;--ui-duration:190ms;--cityu-visual-height:100dvh;--cityu-visual-offset-top:0px;--cityu-header-height:72px}*{box-sizing:border-box}body,html{margin:0;min-height:100%;width:100%;max-width:100%;overflow-x:hidden;color:var(--ink);background:var(--bg);font-family:SF Pro Text,SF Pro Display,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button,input,select,textarea{font:inherit}button{cursor:pointer}a,button{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}.app-shell{min-height:100vh;max-width:100vw;overflow-x:hidden}.site-header{position:-webkit-sticky;position:sticky;top:0;z-index:20;border-bottom:1px solid rgba(207,218,213,.78);background:rgba(247,249,248,.78);backdrop-filter:blur(24px) saturate(165%);-webkit-backdrop-filter:blur(24px) saturate(165%)}.header-inner{display:flex;align-items:center;justify-content:space-between;gap:20px;width:min(1180px,calc(100% - 32px));min-height:72px;margin:0 auto;max-width:100%}.brand{display:inline-flex;align-items:center;gap:10px;min-width:-moz-fit-content;min-width:fit-content;font-weight:800;letter-spacing:0}.brand-mark{display:grid;width:36px;height:36px;place-items:center;border:1px solid rgba(18,115,106,.28);border-radius:8px;color:var(--teal);background:#eef8f4}.brand-text{display:grid;line-height:1.05}.brand-text small{color:var(--muted);font-size:11px;font-weight:650}.nav{display:flex;justify-content:center;gap:4px;flex:1 1;min-width:0}.nav,.nav a{align-items:center}.nav a{display:inline-flex;flex:0 0 auto;gap:7px;min-height:40px;padding:0 12px;border-radius:8px;color:var(--muted);font-size:14px;font-weight:680;white-space:nowrap;transition:color var(--ui-duration) var(--ease-out),background-color var(--ui-duration) var(--ease-out),transform var(--press-duration) var(--ease-out),box-shadow var(--ui-duration) var(--ease-out)}.nav a.active{color:var(--teal-dark);background:hsla(0,0%,100%,.9);box-shadow:0 1px 2px rgba(23,33,31,.08),0 5px 14px rgba(23,33,31,.06)}.nav a:active{transform:scale(.96)}.header-actions{display:inline-flex;align-items:center;gap:12px}.language-switcher{position:relative;display:grid;width:142px;padding:3px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.language-options{display:grid;grid-template-columns:repeat(3,1fr)}.language-current,.language-switcher button{min-width:0;min-height:30px;border:0;border-radius:6px;color:var(--muted);background:transparent;font-size:12px;font-weight:760}.language-current{display:none}.language-switcher button.active{color:#fff;background:var(--teal)}.main{width:min(1180px,calc(100% - 32px));max-width:100vw;margin:0 auto;padding:28px 0 56px;overflow-x:hidden;animation:page-arrive var(--ui-duration) var(--ease-out) both}@keyframes page-arrive{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.notice{display:flex;align-items:center;gap:10px;min-height:44px;margin-bottom:18px;padding:10px 14px;border:1px solid #eadfca;border-radius:8px;color:#614318;background:#fff7e6;font-size:14px;font-weight:650}body.home-chat-active{min-height:var(--cityu-visual-height);overflow-x:hidden}body.home-chat-active .site-header{position:fixed;left:0;right:0;top:0}.main:has(.home-chat-only){width:min(1180px,calc(100% - 32px));min-height:var(--cityu-visual-height);padding:calc(var(--cityu-header-height) + 8px) 0 0;display:grid;grid-template-rows:minmax(0,1fr);overflow-x:hidden}.main:has(.home-chat-only) .notice{display:none}.home-grid{display:grid;grid-template-columns:minmax(0,1fr) 330px;grid-gap:18px;gap:18px;align-items:start}.home-chat-only{display:grid;width:100%;min-height:calc(var(--cityu-visual-height) - var(--cityu-header-height) - 8px);overflow-x:hidden}.home-chat-only .chat-panel{height:calc(var(--cityu-visual-height) - var(--cityu-header-height) - 8px);min-height:0;min-width:0;max-height:none;width:100%;max-width:100%}.card,.chat-panel,.detail-panel,.panel,.upload-panel{min-width:0;max-width:100%;border:1px solid var(--line);border-radius:8px;background:var(--surface);box-shadow:var(--shadow)}.chat-panel{display:grid;grid-template-rows:auto 1fr auto;min-width:0;width:100%;height:min(720px,calc(100dvh - 138px));min-height:520px;overflow:hidden;box-shadow:var(--shadow-raised)}.panel-header{display:flex;align-items:center;justify-content:space-between;gap:16px;min-width:0;min-height:68px;padding:16px 18px;border-bottom:1px solid var(--line);background:hsla(0,0%,100%,.82);backdrop-filter:blur(18px) saturate(150%);-webkit-backdrop-filter:blur(18px) saturate(150%)}.title-stack{display:grid;grid-gap:3px;gap:3px;min-width:0}.chat-title-row{display:inline-flex;align-items:center;gap:8px;min-width:0;flex-wrap:wrap}.faq-empty-link,.github-link,.planner-link{display:inline-flex;align-items:center;gap:5px;color:var(--teal-dark)}.github-link,.planner-link{min-height:28px;padding:0 8px;justify-content:center;border:1px solid #c7dfd8;border-radius:8px;background:#eff9f5;font-size:12px;font-weight:760;line-height:1;white-space:nowrap}.planner-link{color:#315a51;border-color:#d6dfc7;background:#f8faf4}.empty-chat-links{position:-webkit-sticky;position:sticky;top:0;z-index:2;display:flex;flex-wrap:wrap;gap:6px}.empty-chat-links,.faq-empty-link{width:-moz-fit-content;width:fit-content}.faq-empty-link{color:var(--muted);font-size:12px;font-weight:760;padding:4px 6px;border:1px solid var(--line);border-radius:8px;background:hsla(0,0%,100%,.86);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.title-stack h1,.title-stack h2,.title-stack h3{margin:0;font-size:clamp(20px,2vw,28px);letter-spacing:0}.title-stack p{margin:0;color:var(--muted);font-size:14px;line-height:1.45}.points-badge{display:inline-flex;align-items:center;gap:7px;min-width:-moz-fit-content;min-width:fit-content;min-height:36px;padding:0 11px;border:1px solid #c7dfd8;border-radius:8px;color:var(--teal-dark);background:#eff9f5;font-size:13px;font-weight:760}.messages{align-content:start;grid-gap:14px;gap:14px;min-height:0;padding:18px;overflow:auto;overscroll-behavior:contain;scrollbar-color:#bccbc5 transparent}.message,.messages{display:grid;min-width:0}.message{grid-gap:8px;gap:8px;max-width:82%;animation:message-arrive .18s var(--ease-out) both}@keyframes message-arrive{0%{opacity:0;transform:translateY(6px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}.message.user{justify-self:end}.bubble{min-width:0;max-width:100%;padding:13px 14px;border-radius:8px;color:var(--ink);border:1px solid #e0e7e3;background:hsla(0,0%,100%,.94);box-shadow:0 1px 2px rgba(23,33,31,.04),0 8px 20px rgba(23,33,31,.04);line-height:1.55;font-size:15px;overflow-wrap:anywhere}.message.user .bubble{color:#fff;border-color:var(--teal);background:var(--teal);box-shadow:0 6px 18px rgba(18,115,106,.16)}.message-label{color:var(--muted);font-size:12px;font-weight:760}.engine-mode-note{width:-moz-fit-content;width:fit-content;max-width:100%;color:#a65d18;background:#fff6e8;border:1px solid #edd5b8;border-radius:8px;padding:4px 8px;font-size:12px;font-weight:760;line-height:1.25}.source-list{display:flex;flex-wrap:wrap;gap:8px;min-width:0;max-width:100%}.source-chip,.tag{display:inline-flex;align-items:center;gap:6px;min-height:28px;padding:0 9px;border:1px solid var(--line);border-radius:8px;color:var(--muted);background:var(--surface);font-size:12px;font-weight:680;min-width:0}.source-chip{transition:transform var(--press-duration) var(--ease-out),border-color var(--ui-duration) var(--ease-out),background-color var(--ui-duration) var(--ease-out)}.source-chip:active{transform:scale(.98)}.source-chip{max-width:100%;overflow:hidden;overflow-wrap:anywhere}.source-title{min-width:0;max-width:min(34ch,42vw);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.source-index{color:var(--teal-dark);font-weight:820}.relevance-badge{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:20px;padding:0 6px;border-radius:7px;border:1px solid #d8e4de;color:#60726c;background:#eef2ef;font-size:11px;font-weight:820;line-height:1}.relevance-badge.high{border-color:#2f6f62;color:#fff;background:#2f6f62}.relevance-badge.medium{border-color:#9bc8bd;color:#23584e;background:#dff1ec}.relevance-badge.low{border-color:#c6d8d2;color:#526a63;background:#edf5f2}.relevance-badge.weak{border-color:#d8ddd9;color:#74807b;background:#f4f5f2}.source-chip.official{border-color:#bcded7;color:var(--teal-dark);background:#eef8f4}.answer-feedback-actions{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.mini-icon-button,.mini-text-button{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:26px;border:1px solid var(--line);border-radius:8px;color:var(--muted);background:#fbfbf8;font-size:12px;font-weight:760;transition:transform var(--press-duration) var(--ease-out),color var(--ui-duration) var(--ease-out),border-color var(--ui-duration) var(--ease-out),background-color var(--ui-duration) var(--ease-out)}.mini-icon-button{width:30px;padding:0}.mini-text-button{padding:0 8px}.mini-icon-button.active{color:#fff;border-color:var(--teal-dark);background:var(--teal-dark)}.mini-icon-button:active,.mini-text-button:active{transform:scale(.94)}.feedback-page{padding:20px}.feedback-context-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px;margin:16px 0}.feedback-context-grid>div{min-width:0;padding:12px;border:1px solid var(--line);border-radius:8px;background:#fbfbf8}.feedback-context-grid pre{max-height:240px;margin:8px 0 0;overflow:auto;white-space:pre-wrap;font:inherit;color:var(--muted)}.email-control-row{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:8px;gap:8px;align-items:center}.email-control-row input:disabled{color:var(--teal-dark);background:#eef8f4}.chat-form{display:grid;grid-gap:10px;gap:10px;min-width:0;padding:14px;border-top:1px solid var(--line);background:rgba(248,250,249,.88);box-shadow:0 -10px 30px rgba(23,33,31,.04);backdrop-filter:blur(18px) saturate(145%);-webkit-backdrop-filter:blur(18px) saturate(145%)}.app-chat .messages{min-height:0}.compact-header{min-height:58px;padding:12px 14px}.chat-header-actions{display:flex;align-items:center;gap:8px;min-width:0;flex:0 1 auto}.compact-chat-form{grid-template-columns:minmax(0,1fr) 58px;align-items:end;min-width:0}.compact-chat-form textarea{min-width:0;width:100%;min-height:48px;max-height:120px;resize:vertical}.send-button{width:100%;min-height:48px;padding:0;justify-content:center}.chat-options{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--muted);font-size:12px}.chat-options label,.toggle-row{display:inline-flex;align-items:center;gap:7px}.link-button{border:0;color:var(--teal);background:transparent;font-weight:750}.empty-chat-wrap{display:grid;min-height:100%;place-items:center;padding:22px}.empty-chat-text{max-width:min(72ch,100%);color:#74817d;font-size:15px;line-height:1.7;text-align:center;white-space:pre-line}.markdown p{margin:0 0 10px}.markdown p:last-child{margin-bottom:0}.markdown h1,.markdown h2,.markdown h3{margin:10px 0 8px;font-size:1.05rem}.markdown ul{margin:8px 0;padding-left:20px}.markdown a{color:var(--teal-dark);font-weight:650;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}.trust-official{border-color:#bcded7;color:var(--teal-dark);background:#eef8f4}.trust-cssaug{border-color:#d9c58d;color:#75510b;background:#fff8dc}.trust-student{border-color:var(--line);color:var(--muted);background:var(--surface)}.chat-form textarea,.field input,.field select,.field textarea{width:100%;border:1px solid var(--line);border-radius:8px;color:var(--ink);background:var(--surface);outline:none;transition:border-color var(--ui-duration) var(--ease-out),box-shadow var(--ui-duration) var(--ease-out),background-color var(--ui-duration) var(--ease-out)}.chat-form textarea:focus,.field input:focus,.field select:focus,.field textarea:focus{border-color:rgba(18,115,106,.68);box-shadow:0 0 0 4px rgba(18,115,106,.11);background:#fff}.chat-form textarea{min-height:78px;max-height:160px;resize:vertical;padding:12px 13px;line-height:1.5}.chat-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.helper-text{color:var(--muted);font-size:12px;line-height:1.4}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:0 14px;border:1px solid transparent;border-radius:8px;color:#fff;background:var(--teal);font-weight:760;transition:transform var(--press-duration) var(--ease-out),background-color var(--ui-duration) var(--ease-out),border-color var(--ui-duration) var(--ease-out),box-shadow var(--ui-duration) var(--ease-out)}.button.secondary{color:var(--ink);border-color:var(--line);background:var(--surface)}.button.warning{color:#fff;background:var(--coral)}.button:active:not(:disabled){transform:scale(.97)}.button:disabled{cursor:default;opacity:.5}.icon-button{display:inline-grid;width:38px;height:38px;place-items:center;border:1px solid var(--line);border-radius:8px;color:var(--muted);background:var(--surface);transition:transform var(--press-duration) var(--ease-out),color var(--ui-duration) var(--ease-out),border-color var(--ui-duration) var(--ease-out),background-color var(--ui-duration) var(--ease-out)}.icon-button:active{transform:scale(.93)}.side-stack{display:grid;grid-gap:14px;gap:14px}.card{padding:16px}.card h2,.card h3{margin:0 0 10px;font-size:17px}.category-list,.history-list,.question-list{display:grid;grid-gap:8px;gap:8px}.quick-question{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:42px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;color:var(--ink);background:#fbfbf8;text-align:left}.faq-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:14px;gap:14px}.faq-group{padding:18px}.faq-group h2{margin:0 0 12px;font-size:20px}.relevance-guide-card{grid-column:1/-1}.relevance-guide-card p{max-width:860px;margin:0;color:var(--muted);line-height:1.65}.score-swatch-row{display:flex;gap:8px;margin-top:12px}.category-pill{align-items:center;min-height:38px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface);font-size:14px;font-weight:680}.category-pill,.page-head{display:flex;justify-content:space-between}.page-head{align-items:flex-end;gap:20px;margin-bottom:18px}.page-head h1{margin:0;font-size:clamp(28px,4vw,42px);letter-spacing:0}.page-head p{max-width:720px;margin:8px 0 0;color:var(--muted);line-height:1.55}.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}.filter-chip{min-height:36px;padding:0 12px;border:1px solid var(--line);border-radius:8px;color:var(--muted);background:var(--surface);font-weight:720}.filter-chip.active{color:#fff;border-color:var(--teal);background:var(--teal)}.segmented-control{display:inline-grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;width:min(100%,640px);padding:4px;border:1px solid var(--line);border-radius:8px;background:#fbfbf8}.segmented-control button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:36px;padding:0 8px;border:0;border-radius:6px;color:var(--muted);background:transparent;font-weight:760}.segmented-control button.active{color:#fff;background:var(--teal)}.kb-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:14px;gap:14px}.kb-card{display:grid;grid-gap:12px;gap:12px;min-height:260px;padding:16px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.kb-card h2{margin:0;font-size:19px;line-height:1.3}.kb-card p{margin:0;color:var(--muted);line-height:1.55}.kb-meta{display:flex;flex-wrap:wrap;gap:8px}.kb-card-actions{display:flex;align-items:center;gap:8px;margin-top:auto}.detail-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;grid-gap:18px;gap:18px}.detail-panel{padding:24px}.detail-panel h1{margin:0 0 12px;font-size:clamp(28px,4vw,44px)}.detail-content{display:grid;grid-gap:16px;gap:16px;margin-top:22px;color:#26312f;line-height:1.75}.detail-content h2{margin:12px 0 0;font-size:22px}.upload-panel{padding:20px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:14px;gap:14px}.field{display:grid;grid-gap:7px;gap:7px}.field.full{grid-column:1/-1}.field label{color:var(--ink);font-size:13px;font-weight:760}.field input,.field select{min-height:42px;padding:0 12px}.field textarea{min-height:110px;resize:vertical;padding:12px;line-height:1.5}.dropzone{display:grid;place-items:center;min-height:180px;border:1px dashed #a9bbb5;border-radius:8px;color:var(--muted);background:#fbfbf8;text-align:center}.dropzone strong{display:block;margin-top:8px;color:var(--ink)}.status-box{display:flex;gap:10px;padding:12px;border:1px solid #c7dfd8;border-radius:8px;color:var(--teal-dark);background:#eff9f5;line-height:1.5}.empty-state{display:grid;place-items:center;min-height:260px;border:1px solid var(--line);border-radius:8px;background:var(--surface);text-align:center}.empty-state h2{margin:12px 0 6px}.empty-state p{max-width:520px;margin:0;color:var(--muted);line-height:1.55}.folder-heading{margin-bottom:14px;padding:14px 16px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.folder-heading h2{margin:0 0 4px}.folder-heading p{margin:0;color:var(--muted);line-height:1.55}.about-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:14px;gap:14px}.about-card{min-height:220px;padding:18px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.about-card h2{margin:0 0 12px}.about-card li,.about-card p{color:var(--muted);line-height:1.65}.about-card a{color:var(--teal-dark);font-weight:760;text-decoration:underline;text-underline-offset:3px}.about-card.full{grid-column:1/-1}.about-github-card{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:0}.about-github-card p{margin:0}.about-github-card .github-cta{width:auto;min-width:112px;text-decoration:none}.inline-button{width:-moz-fit-content;width:fit-content;text-decoration:none}.changelog-list{display:grid;grid-gap:12px;gap:12px}.changelog-entry{min-height:0}.changelog-entry-head{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:8px}.changelog-entry-head h2{margin:0}.inline-form{display:grid;grid-template-columns:minmax(0,1fr) auto auto;grid-gap:10px;gap:10px}.stack{display:grid;grid-gap:14px;gap:14px}.admin-layout{display:grid;grid-template-columns:220px minmax(0,1fr);grid-gap:18px;gap:18px;align-items:start}.admin-sidebar{position:-webkit-sticky;position:sticky;top:92px;display:grid;grid-gap:8px;gap:8px;padding:14px;border:1px solid var(--line);border-radius:8px;background:var(--surface);box-shadow:var(--shadow)}.admin-sidebar h1{margin:0 0 6px;font-size:20px}.admin-sidebar button{min-height:38px;border:1px solid transparent;border-radius:8px;color:var(--muted);background:transparent;text-align:left;font-weight:760}.admin-sidebar button.active{color:var(--teal-dark);border-color:#c7dfd8;background:#eff9f5}.admin-doc,.admin-main{min-width:0}.admin-doc{padding:12px}.admin-doc h3{margin:6px 0 2px;font-size:16px;line-height:1.25}.compact-form{margin-top:8px;gap:7px}.compact-form .field{gap:4px}.compact-form .field label{font-size:12px}.compact-form input,.compact-form select{min-height:34px;padding:0 9px;font-size:13px}.admin-doc .chips{gap:5px}.admin-doc .tag{min-height:24px;padding:3px 7px;font-size:11px}.admin-doc .button{min-height:32px;padding:0 9px;font-size:12px}.folder-children{display:grid;grid-gap:10px;gap:10px;margin-top:12px;padding-left:12px;border-left:3px solid #c7dfd8}.folder-children summary{cursor:pointer;color:#4f625d;font-size:12px;font-weight:760;list-style-position:inside}.folder-children[open] summary{margin-bottom:10px}.nested-admin-doc{box-shadow:none;background:#fbfbf8}.tag-checkbox-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:4px;gap:4px}.tag-checkbox-grid label{display:inline-flex;align-items:center;gap:4px;min-height:24px;padding:3px 5px;border:1px solid var(--line);border-radius:6px;background:#fbfbf8;font-size:11px;font-weight:700}.tag-checkbox-grid input{width:12px;height:12px}.text-preview{max-width:100%;margin:7px 0;padding:8px;border:1px solid var(--line);border-radius:8px;color:var(--muted);background:#fbfbf8;line-height:1.55;font-size:13px;white-space:pre-wrap}.text-preview.scroll{max-height:220px;overflow:auto}.state-published{color:#0d5c34;border-color:#aad7bc;background:#ecf8ef}.state-rejected{color:#8b1d1d;border-color:#f0b5b5;background:#fff1f1}.state-archived{color:#fff;border-color:#111;background:#111}.state-pending{color:#78520d;border-color:#e6cd8d;background:#fff8dc}.status-box.warning{border-color:#f0d0c7;color:#80392c;background:#fff2ef}.metric-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:12px;gap:12px}.metric{display:grid;grid-gap:4px;gap:4px;padding:12px;border:1px solid var(--line);border-radius:8px;background:#fbfbf8}.metric span{color:var(--muted);font-size:12px}.metric strong{font-size:20px}.table-wrap{width:100%;overflow:auto;margin-top:14px;border:1px solid var(--line);border-radius:8px}.stats-table{width:100%;min-width:760px;border-collapse:collapse;font-size:13px}.stats-table td,.stats-table th{padding:10px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.stats-table th{color:var(--muted);background:#f5f7f5;font-size:12px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.section-head h2{margin:0}.recent-table{min-width:980px}.table-expand-button{display:block;width:100%;max-width:360px;padding:0;border:0;color:inherit;background:transparent;text-align:left;cursor:pointer}.table-expand-button span{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-height:1.45}.answer-preview span{color:var(--muted)}.expanded-row td,.recent-expanded{background:#fbfbf8}.recent-expanded-grid{display:grid;grid-gap:12px;gap:12px}.recent-expanded-grid pre{overflow:auto;max-height:300px;margin:6px 0 0;padding:12px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);font:12px/1.55 Cascadia Code,Consolas,monospace;white-space:pre-wrap}.pager{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:12px}.code-box{min-height:360px;font-family:Cascadia Code,Consolas,monospace;font-size:12px}.danger{color:#8b1d1d}.admin-subtabs{display:flex;flex-wrap:wrap;gap:6px}.admin-subtabs button{min-height:32px;padding:0 10px;border:1px solid var(--line);border-radius:8px;color:var(--muted);background:var(--surface);font-size:12px;font-weight:760}.admin-subtabs button.active{color:#fff;border-color:var(--teal);background:var(--teal)}.compact-empty{min-height:80px;color:var(--muted)}@media (hover:hover) and (pointer:fine){.nav a:hover{color:var(--teal-dark);background:hsla(0,0%,100%,.68)}.button:hover{background:var(--teal-dark);box-shadow:0 7px 18px rgba(18,115,106,.14)}.button.secondary:hover,.icon-button:hover,.mini-icon-button:hover,.mini-text-button:hover{color:var(--teal-dark);border-color:#b8d6d0;background:#f0f8f5}.source-chip:hover{border-color:#b8d6d0;background:#f7fbf9}.quick-question:hover{border-color:#b8d6d0;background:#f0f8f5}}@media (prefers-reduced-motion:reduce){.main,.message{animation:none}.button,.icon-button,.mini-icon-button,.mini-text-button,.nav a,.source-chip{transition-duration:1ms}.button:active:not(:disabled),.icon-button:active,.mini-icon-button:active,.mini-text-button:active,.nav a:active,.source-chip:active{transform:none}}@media (prefers-reduced-transparency:reduce){.chat-form,.faq-empty-link,.panel-header,.site-header{background:#fff;backdrop-filter:none;-webkit-backdrop-filter:none}}@media (max-width:980px){.header-inner{flex-wrap:wrap;padding:12px 0}.nav{order:3;flex-basis:100%;justify-content:flex-start;overflow-x:auto}.about-grid,.admin-layout,.detail-layout,.faq-grid,.home-grid{grid-template-columns:1fr}.admin-sidebar{position:static}.kb-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:700px){:root{--cityu-header-height:48px}.feedback-context-grid{grid-template-columns:1fr}.header-inner,.main,body.home-chat-active{width:100%}.site-header{position:fixed;left:0;right:0;top:0}.header-inner{flex-wrap:nowrap;gap:6px;min-height:48px;padding:6px 8px;max-width:100vw;overflow:hidden}.brand{gap:4px;min-width:auto;flex:0 1 auto;overflow:hidden}.brand-mark{width:22px;height:22px}.brand-mark svg{width:14px;height:14px}.brand-text span{font-size:11px}.brand-text small{display:none}.nav{order:0;flex:1 1 auto;flex-basis:auto;justify-content:flex-start;gap:2px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;min-width:0;max-width:100%}.nav::-webkit-scrollbar{display:none}.nav a{justify-content:center;gap:0;width:32px;min-height:32px;padding:0;border-radius:7px;font-size:0}.nav a.active{width:auto;gap:4px;padding:0 8px;font-size:11px}.header-actions{width:auto;flex:0 0 auto;justify-content:flex-end}.language-switcher{width:36px;padding:2px;border-radius:7px}.language-current{display:block;min-height:26px;border-radius:5px;font-size:10px}.language-options{position:absolute;top:calc(100% + 5px);right:0;z-index:50;display:none;width:104px;grid-template-columns:1fr;gap:2px;padding:3px;border:1px solid var(--line);border-radius:8px;background:var(--surface);box-shadow:var(--shadow)}.language-switcher.open .language-options{display:grid}.language-options button{min-height:28px;border-radius:6px;font-size:11px}.main{padding:54px 6px 0}.main:has(.home-chat-only){width:100%;max-width:100vw;min-height:var(--cityu-visual-height);padding:calc(var(--cityu-header-height) + 4px) 6px 0;overflow-x:hidden}.notice{display:none}.page-head{display:grid;align-items:start;grid-gap:8px;gap:8px;margin-bottom:14px}.page-head h1{font-size:30px}.page-head p{margin-top:4px;font-size:15px}.filters{flex-wrap:nowrap;gap:6px;margin:0 -6px 14px;padding:0 6px 4px;overflow-x:auto;scrollbar-width:none;overscroll-behavior-x:contain;scroll-snap-type:x proximity}.filters::-webkit-scrollbar{display:none}.filter-chip{flex:0 0 auto;min-height:34px;padding:0 11px;scroll-snap-align:start}.form-grid,.kb-grid{grid-template-columns:1fr}.kb-grid{gap:10px}.kb-card{gap:10px;min-height:0;padding:14px}.kb-card h2{font-size:18px}.kb-card p{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:3}.segmented-control{grid-template-columns:repeat(2,minmax(0,1fr))}.message{width:-moz-fit-content;width:fit-content;max-width:94%}.home-chat-only{width:100%;max-width:calc(100vw - 12px);min-height:calc(var(--cityu-visual-height) - var(--cityu-header-height) - 4px);overflow-x:hidden}.home-chat-only .chat-panel{height:calc(var(--cityu-visual-height) - var(--cityu-header-height) - 4px);min-height:0;max-height:none;width:100%;max-width:100%}.panel-header{align-items:center;flex-direction:row;flex-wrap:wrap;gap:8px;min-height:50px;padding:7px 9px}.title-stack h1,.title-stack h2,.title-stack h3{font-size:17px}.title-stack p{display:none}.github-link,.planner-link{flex:0 1 auto;max-width:100%;min-height:26px;padding:0 6px;border-radius:7px;font-size:11px}.faq-empty-link{font-size:11px}.chat-header-actions{gap:6px;margin-left:auto;max-width:100%;flex-wrap:wrap;justify-content:flex-end}.points-badge{max-width:calc(100vw - 70px);min-height:28px;padding:0 7px;font-size:11px}.messages{position:relative;gap:10px;padding:12px 10px}.compact-chat-form{grid-template-columns:minmax(0,1fr) 46px;gap:8px;padding:7px 7px 4px;max-width:100%}.compact-chat-form textarea{font-size:16px;min-height:42px;max-height:88px;padding:10px}.send-button{min-height:42px}.chat-actions{align-items:stretch;flex-direction:column}.kb-card-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:8px;gap:8px}.kb-card-actions .button{width:100%;min-width:0}.inline-form,.metric-grid{grid-template-columns:1fr}.about-github-card{align-items:stretch;flex-direction:column}.about-github-card .github-cta{width:100%}.tag-checkbox-grid{grid-template-columns:1fr}.button,.icon-button{width:100%}.chat-header-actions .icon-button{width:30px;height:30px}.empty-chat-wrap{padding:18px 14px}.empty-chat-text{max-width:48ch;font-size:14px;line-height:1.6}}