:root {
  --ink: #251716;
  --muted: #766966;
  --paper: #f8f4f3;
  --white: #fff;
  --line: #ead9d6;
  --green: #b3222a;
  --green-dark: #80151a;
  --mint: #f7dfdc;
  --warm: #c68a2d;
  --shadow: 0 24px 70px rgba(115, 26, 31, .12);
}

* { box-sizing: border-box; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: Inter, "PingFang SC", "Microsoft YaHei", system-ui, sans-serif; }
button, input, textarea, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
.hidden { display: none !important; }

.topbar { height: 72px; padding: 0 max(24px, 4vw); display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid rgba(128, 21, 26, .08); background: rgba(255, 250, 249, .9); backdrop-filter: blur(16px); position: sticky; top: 0; z-index: 20; }
.brand { display: flex; align-items: center; gap: 11px; text-decoration: none; color: var(--ink); }
.brand-mark { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 11px; background: var(--green); color: white; font: 700 20px Georgia, serif; }
.brand strong, .brand small { display: block; line-height: 1.15; }
.brand strong { font-family: Georgia, "Times New Roman", serif; font-size: 20px; letter-spacing: .02em; }
.brand small { margin-top: 3px; color: var(--muted); font-size: 11px; letter-spacing: .12em; }
.top-actions { display: flex; align-items: center; gap: 14px; }
.language-switch { padding: 4px; display: inline-flex; align-items: center; gap: 2px; border: 1px solid var(--line); border-radius: 99px; background: rgba(255,255,255,.72); }
.language-switch span { color: #a4afa9; font-size: 10px; }
.language-switch button { min-width: 36px; padding: 5px 7px; border: 0; border-radius: 99px; color: var(--muted); background: transparent; font-size: 11px; font-weight: 700; cursor: pointer; }
.language-switch button.active { color: white; background: var(--green); }
.daily-link { padding: 8px 13px; border-radius: 99px; color: white; background: var(--green); text-decoration: none; font-size: 12px; font-weight: 700; }
.daily-link:hover { background: var(--green-dark); }
.client-name { font-size: 14px; color: var(--muted); }
.usage-pill { padding: 7px 11px; border-radius: 99px; color: var(--muted); background: #f3e7e5; font-size: 12px; }

main { min-height: calc(100vh - 72px); }
.login-shell { min-height: calc(100vh - 72px); padding: 7vw max(7vw, 28px); display: grid; grid-template-columns: 1.2fr minmax(340px, 430px); align-items: center; gap: 9vw; background: radial-gradient(circle at 10% 10%, #f4deda 0, transparent 38%), linear-gradient(135deg, #fbf8f7, #f4ecea); }
.login-copy h1 { margin: 18px 0 22px; font: 500 clamp(44px, 6vw, 82px)/1.05 Georgia, "Songti SC", serif; letter-spacing: -.04em; }
.login-copy > p { max-width: 620px; color: var(--muted); font-size: 18px; line-height: 1.8; }
.eyebrow, .card-kicker { color: var(--green); font-size: 12px; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.feature-line { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 32px; }
.feature-line span { padding: 8px 13px; border: 1px solid var(--line); border-radius: 99px; color: var(--green-dark); font-size: 13px; background: rgba(255,255,255,.5); }
.login-card { padding: 40px; display: grid; gap: 18px; background: rgba(255,255,255,.86); border: 1px solid white; border-radius: 24px; box-shadow: var(--shadow); }
.login-card h2 { margin: 8px 0; font-size: 30px; }
.login-card p { margin: 0; color: var(--muted); }
.auth-switch { padding: 4px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px; border: 1px solid var(--line); border-radius: 10px; background: #f8f5f4; }
.auth-switch button { padding: 8px 5px; border: 0; border-radius: 7px; color: var(--muted); background: transparent; cursor: pointer; font-size: 12px; }
.auth-switch button.active { color: white; background: var(--green); font-weight: 700; }
.auth-form { display: grid; gap: 12px; }
.remember-login { display: flex; align-items: center; gap: 8px; color: var(--muted); font-size: 12px; font-weight: 400; }
.remember-login input { width: 16px; height: 16px; margin: 0; }
.auth-help { padding: 9px 11px; border-left: 3px solid var(--green); background: #fbf3f2; font-size: 12px; line-height: 1.6; }
label { font-size: 13px; font-weight: 700; }
input, textarea, select { width: 100%; border: 1px solid var(--line); border-radius: 12px; color: var(--ink); background: white; outline: none; transition: .2s; }
input, select { height: 52px; padding: 0 15px; }
textarea { padding: 14px; resize: vertical; }
input:focus, textarea:focus, select:focus { border-color: var(--green); box-shadow: 0 0 0 3px rgba(179,34,42,.1); }
.primary-button { min-height: 44px; padding: 0 20px; display: inline-grid; place-items: center; border: 0; border-radius: 11px; background: var(--green); color: white; font-weight: 700; text-decoration: none; cursor: pointer; transition: .2s; }
.primary-button:hover { background: var(--green-dark); transform: translateY(-1px); }
.primary-button:disabled { opacity: .55; cursor: wait; transform: none; }
.ghost-button { padding: 8px 12px; border: 1px solid var(--line); border-radius: 9px; background: transparent; color: var(--muted); cursor: pointer; }
.form-error { min-height: 20px; color: #a2382a !important; font-size: 13px; }

.portal { width: min(1180px, calc(100% - 48px)); margin: 0 auto; padding: 58px 0 90px; }
.welcome-row { display: flex; align-items: end; justify-content: space-between; gap: 30px; }
.welcome-row h1 { margin: 11px 0 8px; font: 500 clamp(34px, 5vw, 58px)/1.1 Georgia, "Songti SC", serif; }
.welcome-row p { margin: 0; color: var(--muted); }
.library-card { min-width: 220px; padding: 18px 20px; border: 1px solid var(--line); border-radius: 16px; background: white; }
.library-card span, .library-card small { display: block; color: var(--muted); font-size: 12px; }
.library-card strong { display: block; margin: 6px 0 4px; color: var(--green); font: 500 27px Georgia, "Songti SC", serif; }
.tabs { margin-top: 44px; display: flex; gap: 4px; border-bottom: 1px solid var(--line); }
.tab { padding: 14px 20px; border: 0; border-bottom: 2px solid transparent; background: transparent; color: var(--muted); cursor: pointer; }
.tab.active { border-bottom-color: var(--green); color: var(--green); font-weight: 700; }
.tab-badge { min-width: 19px; height: 19px; margin-left: 5px; padding: 0 5px; display: inline-grid; place-items: center; border-radius: 99px; color: white; background: #a2382a; font-size: 10px; font-weight: 800; }
.panel { display: none; padding-top: 34px; }
.panel.active-panel { display: block; }
.pdf-search-intro { margin-bottom: 22px; display: flex; align-items: end; justify-content: space-between; gap: 28px; }
.pdf-search-intro h2 { margin: 9px 0 7px; font: 500 30px/1.2 Georgia, "Songti SC", serif; }
.pdf-search-intro p { margin: 0; color: var(--muted); line-height: 1.7; }
.pdf-search-intro .notice { min-width: 260px; margin: 0; }
.search-box { padding: 10px; display: grid; grid-template-columns: 28px 1fr auto; align-items: center; gap: 8px; border: 1px solid var(--line); border-radius: 16px; background: white; box-shadow: 0 12px 40px rgba(115,26,31,.07); }
.search-box svg { width: 22px; margin-left: 6px; fill: none; stroke: var(--muted); stroke-width: 1.7; }
.search-box input { height: 45px; border: 0; box-shadow: none; font-size: 16px; }
.quick-searches { margin-top: 13px; display: flex; align-items: center; flex-wrap: wrap; gap: 8px; color: var(--muted); font-size: 12px; }
.quick-searches button { padding: 7px 11px; border: 1px solid var(--line); border-radius: 99px; background: rgba(255,255,255,.7); color: var(--green-dark); cursor: pointer; transition: .18s; }
.quick-searches button:hover { border-color: #d7aaa6; background: white; transform: translateY(-1px); }
.section-heading { margin: 42px 0 16px; display: flex; align-items: end; justify-content: space-between; }
.section-heading h2 { margin: 0 0 4px; font-size: 20px; }
.section-heading p { margin: 0; color: var(--muted); font-size: 13px; }
.search-quality { margin: -6px 0 14px; padding: 10px 12px; display: flex; align-items: center; justify-content: space-between; gap: 14px; border: 1px solid #e3c7c3; border-radius: 11px; color: var(--muted); background: #fbf3f2; font-size: 12px; }
.search-quality div { display: flex; gap: 7px; }
.search-quality button { padding: 6px 9px; border: 1px solid #dfbcb8; border-radius: 8px; color: var(--green-dark); background: white; cursor: pointer; }
.search-quality button:disabled { opacity: .55; cursor: wait; }
.document-list { display: grid; gap: 10px; }
.load-more-row { padding-top: 18px; text-align: center; }
.load-more-row .ghost-button { min-width: 160px; }
.document-item { padding: 18px 20px; display: grid; grid-template-columns: 42px 1fr auto; gap: 15px; align-items: start; border: 1px solid var(--line); border-radius: 14px; background: white; transition: .18s; }
.document-item:hover { border-color: #ddb9b5; transform: translateY(-1px); box-shadow: 0 10px 28px rgba(128,21,26,.06); }
.file-icon { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 10px; background: var(--mint); color: var(--green); font-size: 11px; font-weight: 800; text-transform: uppercase; }
.document-main { min-width: 0; }
.doc-meta { margin-bottom: 8px; display: flex; align-items: center; flex-wrap: wrap; gap: 9px; color: #7b8983; font-size: 11px; }
.doc-badge { padding: 4px 8px; border-radius: 99px; color: var(--green); background: var(--mint); font-weight: 700; }
.document-item h3 { margin: 1px 0 8px; font-size: 17px; line-height: 1.4; }
.document-item p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.6; }
.doc-summary { max-width: 820px; display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.search-preview-label { display: inline-block; margin: 1px 0 5px; color: var(--green); font-size: 11px; font-weight: 700; }
.doc-summary.search-preview { -webkit-line-clamp: 4; }
.doc-match-excerpt { margin-top: 8px; color: var(--muted); font-size: 12px; }
.doc-match-excerpt summary { width: fit-content; cursor: pointer; color: var(--green); font-weight: 700; }
.doc-match-excerpt p { margin-top: 7px; padding-left: 10px; border-left: 2px solid var(--line); }
.pdf-hit-preview { max-width: 900px; margin-top: 10px; padding: 11px 13px; border-left: 3px solid #dca9a5; border-radius: 0 8px 8px 0; background: #fcf6f5; }
.pdf-hit-preview span { display: block; margin-bottom: 4px; color: var(--green); font-size: 11px; font-weight: 700; }
.pdf-hit-preview p { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.pdf-hit-preview details { margin-top: 7px; color: var(--muted); font-size: 12px; }
.pdf-hit-preview summary { color: var(--green-dark); cursor: pointer; font-weight: 700; }
.pdf-hit-preview details p { margin-top: 6px; }
.doc-actions { display: flex; gap: 7px; }
.small-button { padding: 7px 11px; border: 1px solid var(--line); border-radius: 8px; background: #fafbf8; color: var(--green); text-decoration: none; font-size: 12px; cursor: pointer; }
.original-button { border-color: var(--green); background: #fff0ee; font-weight: 700; }
.empty { padding: 56px; text-align: center; color: var(--muted); border: 1px dashed var(--line); border-radius: 16px; }

.subscription-hero { padding: 28px; display: grid; grid-template-columns: 1fr minmax(330px, .8fr); align-items: center; gap: 38px; border: 1px solid #e4c3c0; border-radius: 19px; background: linear-gradient(135deg, #fff0ee, #fff); }
.subscription-hero h2 { margin: 9px 0 10px; font: 500 34px/1.15 Georgia, "Songti SC", serif; }
.subscription-hero p { margin: 0; color: var(--muted); line-height: 1.75; }
.subscription-form { padding: 19px; border: 1px solid var(--line); border-radius: 14px; background: rgba(255,255,255,.82); }
.subscription-form > div { margin-top: 9px; display: grid; grid-template-columns: 1fr auto; gap: 9px; }
.subscription-form small { color: var(--muted); font-size: 11px; }
.subscription-form .form-error { margin: 5px 0 0; }
.subscription-summary-grid { margin-top: 18px; display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.subscription-card { min-height: 135px; padding: 19px; border: 1px solid var(--line); border-radius: 15px; background: white; }
.subscription-card-heading { margin-bottom: 14px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.subscription-card-heading h3 { margin: 0; font-size: 16px; }
.subscription-card-heading span { color: var(--muted); font-size: 11px; }
.topic-list { display: flex; flex-wrap: wrap; gap: 8px; }
.topic-chip { padding: 8px 10px; display: inline-flex; align-items: center; gap: 8px; border: 1px solid #ddb9b5; border-radius: 99px; color: var(--green-dark); background: #fff3f1; font-size: 12px; }
.topic-chip button { width: 20px; height: 20px; padding: 0; border: 0; border-radius: 50%; color: var(--muted); background: #f2dcd9; cursor: pointer; }
.topic-chip.inferred { border-style: dashed; background: #fff; }
.topic-chip small { color: var(--muted); font-size: 10px; }
.topic-empty { color: var(--muted); font-size: 12px; line-height: 1.65; }
.subscription-update-heading { margin-top: 34px; }
.agent-subscription-note { margin-top: 18px; padding: 18px 20px; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 20px; border-left: 3px solid var(--green); border-radius: 0 12px 12px 0; background: #fff0ee; }
.agent-subscription-note strong { display: block; margin-bottom: 5px; }
.agent-subscription-note p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.65; }
.agent-subscription-note code { padding: 10px 12px; border-radius: 8px; color: var(--green-dark); background: white; font: 11px/1.5 ui-monospace, SFMono-Regular, Menlo, monospace; }
.admin-subscription-panel { margin-top: 34px; padding: 24px; border: 1px solid #ddb9b5; border-radius: 17px; background: linear-gradient(135deg, #fff0ee, #fff); }
.admin-subscription-panel .section-heading { margin: 0 0 20px; }
.admin-subscription-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.admin-subscription-grid h3 { margin: 0 0 10px; font-size: 15px; }
.admin-overview-list { display: grid; gap: 8px; }
.admin-overview-item { padding: 12px; border: 1px solid var(--line); border-radius: 11px; background: rgba(255,255,255,.82); }
.admin-overview-item strong, .admin-overview-item small { display: block; }
.admin-overview-item small { margin-top: 4px; color: var(--muted); font-size: 11px; line-height: 1.5; }
.admin-overview-item p { margin: 7px 0 0; display: flex; flex-wrap: wrap; gap: 6px; }
.admin-overview-item p span { padding: 4px 7px; border-radius: 99px; color: var(--green-dark); background: var(--mint); font-size: 10px; }
.admin-overview-item p em { color: var(--muted); font-size: 11px; font-style: normal; }
.admin-overview-item .revoked { color: #8c3024; }
.research-gap-item { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 10px; }
.gap-actions { display: flex; flex-wrap: wrap; gap: 5px; }
.gap-actions button { padding: 6px 7px; border: 1px solid var(--line); border-radius: 7px; color: var(--green-dark); background: white; font-size: 10px; cursor: pointer; }

.chat-layout, .api-grid { display: grid; grid-template-columns: .78fr 1.35fr; gap: 38px; align-items: start; }
.chat-intro h2, .api-grid h2 { margin: 10px 0 12px; font: 500 34px/1.15 Georgia, "Songti SC", serif; }
.chat-intro p, .api-grid p { color: var(--muted); line-height: 1.75; }
.notice { margin-top: 24px; padding: 14px; border-left: 3px solid var(--warm); background: #fff7e9; color: #715322; font-size: 13px; line-height: 1.6; }
.chat-card { overflow: hidden; border: 1px solid var(--line); border-radius: 18px; background: white; }
.chat-messages { height: 420px; padding: 24px; overflow-y: auto; display: flex; flex-direction: column; gap: 13px; }
.message { max-width: 86%; padding: 13px 15px; border-radius: 13px; font-size: 14px; line-height: 1.75; white-space: pre-wrap; }
.message.assistant { align-self: flex-start; background: #fbefed; }
.message.user { align-self: flex-end; background: var(--green); color: white; }
.message.error { background: #fff0ed; color: #8c3024; }
.message.rich-message { white-space: normal; }
.message.rich-message p { margin: 0 0 10px; }
.message.rich-message p:last-child { margin-bottom: 0; }
.message.rich-message ol, .message.rich-message ul { margin: 8px 0 4px; padding-left: 22px; }
.message.rich-message li { margin: 7px 0; }
.source-links { margin: -4px 0 4px; padding-left: 14px; font-size: 12px; color: var(--muted); }
.source-links button { border: 0; background: none; color: var(--green); cursor: pointer; text-align: left; }
.chat-form { padding: 14px; display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 10px; border-top: 1px solid var(--line); }
.plain-list { padding: 0; list-style: none; }
.plain-list li { margin: 12px 0; padding-left: 24px; position: relative; color: var(--muted); }
.plain-list li::before { content: "✓"; position: absolute; left: 0; color: var(--green); font-weight: bold; }
.usage-grid { margin-top: 24px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 9px; }
.usage-grid div { padding: 12px; border: 1px solid var(--line); border-radius: 11px; background: rgba(255,255,255,.65); }
.usage-grid span, .usage-grid strong { display: block; }
.usage-grid span { margin-bottom: 6px; color: var(--muted); font-size: 11px; }
.usage-grid strong { color: var(--green-dark); font-size: 13px; }
.api-activation-panel { margin-bottom: 28px; padding: 26px; display: grid; grid-template-columns: .8fr 1.2fr; align-items: center; gap: 30px; border: 1px solid #d9aaa6; border-radius: 18px; background: linear-gradient(135deg, #fbe8e6, #fff); }
.api-activation-panel h2, .api-ready-panel h2 { margin: 8px 0 9px; font: 600 27px/1.2 Georgia, "Songti SC", serif; }
.api-activation-panel p, .api-ready-panel p { margin: 0; color: var(--muted); line-height: 1.7; }
.api-activation-form { padding: 18px; border: 1px solid var(--line); border-radius: 13px; background: white; }
.api-activation-form > div:first-of-type { margin-top: 9px; display: grid; grid-template-columns: 1fr auto; gap: 9px; }
.api-activation-form .form-error { margin: 5px 0 0; }
.api-ready-panel { margin-bottom: 28px; padding: 22px 25px; border-left: 4px solid var(--green); border-radius: 0 14px 14px 0; background: #fff0ee; }
.admin-dashboard-hero { margin-bottom: 22px; padding: 27px; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 28px; border-radius: 18px; color: white; background: linear-gradient(130deg, #721119, #bd282f); box-shadow: var(--shadow); }
.admin-dashboard-hero .eyebrow { color: #ffd6d3; }
.admin-dashboard-hero h2 { margin: 8px 0 8px; font: 600 32px/1.2 Georgia, "Songti SC", serif; }
.admin-dashboard-hero p { margin: 0; max-width: 650px; color: #f7dedd; line-height: 1.7; }
.admin-dashboard-metrics { display: grid; grid-template-columns: repeat(3, minmax(100px, 1fr)); gap: 9px; }
.admin-dashboard-metrics div { min-width: 110px; padding: 15px; border: 1px solid rgba(255,255,255,.16); border-radius: 12px; background: rgba(255,255,255,.08); }
.admin-dashboard-metrics span, .admin-dashboard-metrics strong { display: block; }
.admin-dashboard-metrics span { color: #f3d4d2; font-size: 11px; }
.admin-dashboard-metrics strong { margin-top: 6px; font: 500 25px Georgia, serif; }
.admin-api-panel { margin-bottom: 34px; padding: 24px; display: grid; grid-template-columns: .8fr 1.2fr; gap: 28px; border: 1px solid #ddb9b5; border-radius: 17px; background: linear-gradient(135deg, #fff0ee, #fff); }
.admin-api-copy h2 { margin: 8px 0 9px; font: 600 26px/1.2 Georgia, "Songti SC", serif; }
.admin-api-copy p { margin: 0; color: var(--muted); line-height: 1.65; }
.admin-api-copy .admin-limit-note { margin-top: 10px; color: var(--green-dark); font-size: 12px; }
.admin-key-form label { display: block; margin-bottom: 8px; font-size: 13px; font-weight: 700; }
.admin-key-controls { display: grid; grid-template-columns: 1fr 120px auto; gap: 10px; }
.temporary-key-controls { display: grid; grid-template-columns: 1fr 145px auto; gap: 10px; align-items: end; }
.invite-key-controls { display: grid; grid-template-columns: 1fr 130px 120px auto; gap: 10px; align-items: end; }
.temporary-key-controls label { display: block; margin-bottom: 8px; }
.invite-key-controls label { display: block; margin-bottom: 8px; }
.generated-key-result { margin-top: 10px; padding: 15px; display: grid; gap: 9px; border: 1px solid #ddb9b5; border-radius: 12px; background: white; }
.generated-key-result span, .generated-key-result small { color: var(--muted); }
.generated-key-result strong { color: var(--green-dark); font-size: 13px; }
.generated-key-result code { padding: 12px; overflow-wrap: anywhere; border-radius: 8px; color: var(--green-dark); background: #fff0ee; font: 600 13px/1.6 ui-monospace, SFMono-Regular, Menlo, monospace; }
.generated-key-result .ghost-button { justify-self: start; }
.generated-key-result small { font-size: 11px; }
.generated-key-actions { display: flex; flex-wrap: wrap; gap: 9px; }
.admin-client-management { margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--line); }
.admin-client-heading { margin-bottom: 10px; display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.admin-client-heading strong, .admin-client-heading small { display: block; }
.admin-client-heading small { margin-top: 4px; color: var(--muted); font-size: 11px; line-height: 1.5; }
.admin-client-list { display: grid; gap: 8px; }
.admin-client-empty { padding: 14px; border: 1px dashed var(--line); border-radius: 10px; color: var(--muted); font-size: 12px; text-align: center; }
.admin-client-item { padding: 11px 12px; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 10px; border: 1px solid var(--line); border-radius: 10px; background: rgba(255,255,255,.72); }
.admin-client-item strong, .admin-client-item small { display: block; }
.admin-client-item small { margin-top: 3px; color: var(--muted); font-size: 11px; line-height: 1.45; }
.admin-client-item .revoked { color: #8c3024; }
.admin-client-item .issued { color: var(--green); }
.admin-client-item .pending { color: #8a641f; }
.admin-client-item button { padding: 8px 10px; border: 1px solid #d7a69e; border-radius: 9px; color: #8c3024; background: white; cursor: pointer; }
.admin-client-item button:disabled { cursor: default; opacity: .55; }
.code-card { overflow: hidden; border-radius: 16px; color: #f7e7e5; background: #2b1517; box-shadow: var(--shadow); }
.code-title { padding: 13px 17px; display: flex; justify-content: space-between; border-bottom: 1px solid rgba(255,255,255,.1); color: #d6b9b6; font-size: 12px; }
.code-title.api-secondary-title { border-top: 1px solid rgba(255,255,255,.1); }
.code-title button { border: 0; background: transparent; color: #ffd6d3; cursor: pointer; }
.code-card pre { margin: 0; padding: 23px; overflow-x: auto; font: 12px/1.8 ui-monospace, SFMono-Regular, Menlo, monospace; white-space: pre-wrap; }
.code-card p { margin: 0; padding: 0 23px 20px; color: #d6b9b6; font-size: 12px; }
.code-card p a { color: #ffd6d3; }

.document-dialog { width: min(900px, calc(100% - 30px)); max-height: 86vh; padding: 0; border: 0; border-radius: 18px; box-shadow: var(--shadow); }
.document-dialog::backdrop { background: rgba(42, 15, 17, .55); backdrop-filter: blur(5px); }
.dialog-head { padding: 23px 26px; display: flex; justify-content: space-between; border-bottom: 1px solid var(--line); }
.dialog-head h2 { margin: 7px 0 4px; font-size: 22px; }
.dialog-head p { margin: 0; color: var(--muted); font-size: 12px; }
.icon-button { width: 36px; height: 36px; border: 0; border-radius: 50%; background: #eef2ed; color: var(--muted); font-size: 23px; cursor: pointer; }
.document-content { min-height: 200px; max-height: 58vh; padding: 30px 34px; overflow: auto; word-break: break-word; color: #3f2c29; font-size: 14px; line-height: 1.85; }
.document-content h2 { margin: 0 0 18px; color: var(--ink); font: 600 28px/1.35 Georgia, "Songti SC", serif; }
.document-content h3 { margin: 30px 0 12px; padding-bottom: 7px; border-bottom: 1px solid var(--line); color: var(--ink); font-size: 19px; }
.document-content h4 { margin: 24px 0 10px; color: var(--ink); font-size: 16px; }
.document-content p { margin: 0 0 15px; }
.document-content aside { margin: 6px 0; padding: 8px 13px; border-left: 3px solid #d7a6a2; background: #fff4f2; color: var(--muted); font-size: 12px; }
.document-content ul, .document-content ol { margin: 10px 0 18px; padding-left: 25px; }
.document-content li { margin: 7px 0; }
.document-content code { padding: 2px 5px; border-radius: 5px; background: #f8ecea; font: 12px ui-monospace, SFMono-Regular, Menlo, monospace; }
.md-table { margin: 16px 0; padding: 14px; overflow-x: auto; border-radius: 9px; background: #fbf1ef; font: 12px/1.7 ui-monospace, SFMono-Regular, Menlo, monospace; }
.dialog-actions { padding: 16px 26px; display: flex; justify-content: end; align-items: center; gap: 10px; border-top: 1px solid var(--line); }
.toast { position: fixed; left: 50%; bottom: 28px; padding: 11px 18px; border-radius: 9px; color: white; background: #671319; transform: translate(-50%, 20px); opacity: 0; pointer-events: none; transition: .2s; z-index: 100; }
.toast.show { transform: translate(-50%, 0); opacity: 1; }

@media (max-width: 800px) {
  .login-shell { grid-template-columns: 1fr; padding-top: 50px; }
  .login-copy h1 { font-size: 48px; }
  .portal { width: min(100% - 28px, 1180px); padding-top: 35px; }
  .welcome-row { align-items: start; }
  .library-card { min-width: 180px; }
  .chat-layout, .api-grid, .admin-api-panel, .subscription-hero, .admin-subscription-grid, .api-activation-panel, .admin-dashboard-hero { grid-template-columns: 1fr; }
  .subscription-summary-grid { grid-template-columns: 1fr; }
  .agent-subscription-note { grid-template-columns: 1fr; }
  .temporary-key-controls { grid-template-columns: 1fr; }
  .invite-key-controls { grid-template-columns: 1fr 1fr; }
  .pdf-search-intro { align-items: start; flex-direction: column; gap: 16px; }
  .pdf-search-intro .notice { width: 100%; min-width: 0; }
  .usage-grid { grid-template-columns: 1fr; }
  .document-item { grid-template-columns: 42px 1fr; }
  .doc-actions { grid-column: 2; }
}

@media (max-width: 520px) {
  .topbar { padding: 0 15px; }
  .brand strong { font-size: 14px; letter-spacing: .01em; }
  .brand small, .daily-link, .client-name { display: none; }
  .login-shell { padding: 35px 18px; }
  .login-copy h1 { font-size: 40px; }
  .login-card { padding: 27px 22px; }
  .welcome-row { display: block; }
  .library-card { margin-top: 20px; }
  .usage-pill { display: none; }
  .language-switch button { min-width: 30px; padding: 5px; }
  .tabs { overflow-x: auto; }
  .tab { padding: 12px 14px; white-space: nowrap; }
  .search-box { grid-template-columns: 24px 1fr; }
  .search-box button { grid-column: 1 / -1; }
  .document-item { padding: 15px; }
  .chat-form { grid-template-columns: 1fr; }
  .admin-key-controls { grid-template-columns: 1fr; }
  .subscription-form > div { grid-template-columns: 1fr; }
  .api-activation-form > div:first-of-type { grid-template-columns: 1fr; }
  .invite-key-controls { grid-template-columns: 1fr; }
  .admin-dashboard-metrics { grid-template-columns: 1fr; }
  .research-gap-item { grid-template-columns: 1fr; }
}

/* 2026-09 research-workspace refresh
   Content-first layout inspired by mature knowledge-base and dashboard patterns. */
:root {
  --ink: #211516;
  --muted: #6f6262;
  --paper: #f7f5f4;
  --line: #e7dfdd;
  --green: #b11f2a;
  --green-dark: #7c111b;
  --mint: #f8e6e7;
  --warm: #b77622;
  --shadow: 0 18px 55px rgba(81, 27, 30, .09);
}

body {
  min-width: 320px;
  background:
    linear-gradient(rgba(177, 31, 42, .022) 1px, transparent 1px),
    linear-gradient(90deg, rgba(177, 31, 42, .022) 1px, transparent 1px),
    var(--paper);
  background-size: 32px 32px;
}

.topbar {
  height: 68px;
  padding: 0 max(24px, calc((100vw - 1320px) / 2));
  border-bottom: 1px solid var(--line);
  background: rgba(255, 255, 255, .93);
  box-shadow: 0 1px 0 rgba(62, 29, 31, .02);
}

.brand { gap: 12px; }
.brand-mark {
  width: 40px;
  height: 40px;
  border-radius: 7px 7px 7px 2px;
  background: linear-gradient(150deg, #c22934, #86141e);
  box-shadow: 0 7px 16px rgba(124, 17, 27, .2);
}
.brand strong { font-size: 17px; letter-spacing: .07em; }
.brand small { margin-top: 4px; font-size: 10px; letter-spacing: .08em; }
.daily-link { border-radius: 8px; }
.language-switch, .usage-pill { background: #faf7f6; }

main { min-height: calc(100vh - 68px); }
.portal {
  width: min(1320px, calc(100% - 48px));
  padding: 30px 0 76px;
}

.welcome-row {
  min-height: 154px;
  padding: 28px 30px 27px 34px;
  position: relative;
  overflow: hidden;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 18px;
  background:
    radial-gradient(circle at 86% 12%, rgba(177, 31, 42, .08), transparent 16rem),
    linear-gradient(122deg, #fff 0 70%, #fcf4f4 100%);
  box-shadow: 0 10px 34px rgba(72, 30, 32, .045);
}
.welcome-row::before {
  content: "";
  width: 5px;
  position: absolute;
  inset: 0 auto 0 0;
  background: var(--green);
}
.welcome-row::after {
  content: "P";
  position: absolute;
  right: 250px;
  bottom: -55px;
  color: rgba(177, 31, 42, .035);
  font: 700 190px/1 Georgia, serif;
  pointer-events: none;
}
.welcome-row > div:first-child { position: relative; z-index: 1; }
.welcome-row h1 {
  margin: 8px 0 8px;
  max-width: 850px;
  font: 600 clamp(30px, 3.4vw, 46px)/1.15 Georgia, "Songti SC", serif;
  letter-spacing: -.025em;
}
.welcome-row p { max-width: 850px; font-size: 15px; line-height: 1.7; }
.eyebrow, .card-kicker { font-size: 11px; letter-spacing: .14em; }
.library-card {
  min-width: 215px;
  padding: 17px 19px;
  position: relative;
  z-index: 1;
  border-color: #e0ccca;
  border-radius: 13px;
  box-shadow: 0 10px 28px rgba(86, 28, 32, .055);
}
.library-card strong { font-size: 28px; }
.library-card span, .library-card small { font-size: 12px; }

.tabs {
  margin-top: 18px;
  padding: 6px;
  position: sticky;
  top: 78px;
  z-index: 15;
  gap: 3px;
  overflow-x: auto;
  border: 1px solid var(--line);
  border-radius: 13px;
  background: rgba(255, 255, 255, .94);
  box-shadow: 0 9px 26px rgba(65, 28, 30, .05);
  backdrop-filter: blur(14px);
}
.tab {
  min-height: 42px;
  padding: 10px 18px;
  border: 0;
  border-radius: 8px;
  white-space: nowrap;
  font-size: 14px;
  font-weight: 650;
}
.tab:hover { color: var(--green-dark); background: #fbf4f4; }
.tab.active { border: 0; color: white; background: var(--green); }
.tab.active .tab-badge { color: var(--green); background: white; }

.panel { padding-top: 22px; }
.active-panel > .search-box:first-child,
#pdfPanel > .search-box {
  border-color: #dcc9c7;
  box-shadow: 0 14px 38px rgba(97, 32, 36, .075);
}
.search-box { min-height: 72px; border-radius: 14px; }
.search-box input { height: 50px; font-size: 17px; }
.search-box .primary-button { min-width: 106px; }
.primary-button { border-radius: 8px; box-shadow: 0 7px 15px rgba(124, 17, 27, .12); }
.ghost-button { border-radius: 8px; background: white; }
.quick-searches { margin-top: 11px; font-size: 13px; }
.quick-searches button { border-radius: 8px; font-size: 13px; }
.section-heading { margin: 31px 0 14px; }
.section-heading h2 { font-size: 22px; }
.section-heading p { margin-top: 4px; font-size: 13px; }

.document-list { gap: 9px; }
.document-item {
  padding: 17px 19px;
  grid-template-columns: 44px minmax(0, 1fr) auto;
  border-radius: 12px;
  box-shadow: 0 2px 0 rgba(74, 29, 31, .018);
}
.document-item:hover {
  border-color: #d8b7b6;
  box-shadow: 0 12px 26px rgba(94, 28, 32, .07);
}
.file-icon { width: 44px; height: 44px; border-radius: 8px; }
.doc-meta { margin-bottom: 7px; font-size: 12px; }
.doc-badge { border-radius: 6px; }
.document-item h3 { font-size: 18px; }
.document-item p { font-size: 14px; }
.small-button { border-radius: 7px; font-size: 13px; }
.empty { padding: 46px 24px; border-radius: 12px; background: rgba(255, 255, 255, .5); }

.pdf-search-intro,
.subscription-hero,
.api-activation-panel,
.api-ready-panel {
  padding: 24px 26px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: linear-gradient(120deg, #fff 0 72%, #fcf1f1 100%);
}
.pdf-search-intro h2, .subscription-hero h2 { font-size: 30px; }
.notice { border-radius: 0 8px 8px 0; }
.subscription-summary-grid { gap: 10px; }
.subscription-card, .subscription-form, .chat-card { border-radius: 12px; }
.chat-layout, .api-grid { gap: 22px; }
.chat-intro, .api-grid > div:first-child {
  padding: 24px;
  border: 1px solid var(--line);
  border-radius: 13px;
  background: rgba(255, 255, 255, .72);
}
.chat-intro h2, .api-grid h2 { font-size: 30px; }
.message { font-size: 15px; }
.usage-grid div { background: white; }
.code-card { border-radius: 12px; background: #281719; }
.document-dialog { border-radius: 14px; }

.login-shell {
  padding: max(50px, 7vh) max(6vw, 28px);
  background:
    linear-gradient(rgba(177,31,42,.026) 1px, transparent 1px),
    linear-gradient(90deg, rgba(177,31,42,.026) 1px, transparent 1px),
    radial-gradient(circle at 10% 10%, #f4d9d9 0, transparent 35%),
    #f8f5f4;
  background-size: 32px 32px, 32px 32px, auto, auto;
}
.login-copy h1 { max-width: 760px; font-size: clamp(32px, 3.7vw, 54px); line-height: 1.25; }
.login-card { border: 1px solid var(--line); border-top: 4px solid var(--green); border-radius: 16px; }

/* Explain the product briefly without displacing the research tools. */
.home-capabilities { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin: 28px 0 18px; }
.home-capabilities > div { border-top: 2px solid var(--green); padding-top: 12px; }
.home-capabilities strong { display: block; font-size: 18px; margin-bottom: 8px; }
.home-capabilities span { display: block; color: var(--muted); font-size: 14px; line-height: 1.7; }
.login-copy .home-access-note { font-size: 14px; }
.home-feature-strip { display: flex; flex-wrap: wrap; gap: 6px 20px; margin-top: 13px; color: var(--green-dark); font-size: 14px; }
.home-help { display: flex; flex-wrap: wrap; gap: 0 24px; margin-top: 12px; }
.home-disclosure { color: var(--muted); font-size: 14px; line-height: 1.75; }
.home-disclosure summary { width: fit-content; padding: 8px 0; color: var(--green-dark); font-weight: 600; cursor: pointer; }
.home-disclosure summary:focus-visible { outline: 2px solid var(--green); outline-offset: 4px; border-radius: 3px; }
.home-disclosure p { max-width: 850px; margin: 8px 0 14px; }
.home-help .home-disclosure[open] { flex-basis: 100%; }
.home-examples { margin: 8px 0 14px; padding-left: 24px; }
.home-examples li { margin-bottom: 10px; padding-left: 4px; }
.home-examples strong { color: var(--ink); margin-right: 12px; }

@media (max-width: 520px) {
  .home-capabilities { grid-template-columns: 1fr; gap: 12px; margin-top: 22px; }
  .home-capabilities > div { border-top: 0; border-left: 2px solid var(--green); padding: 0 0 0 12px; }
  .home-capabilities strong { font-size: 16px; margin-bottom: 3px; }
  .home-feature-strip { gap: 6px 14px; }
  .home-examples strong { display: block; }
}

@media (max-width: 800px) {
  .portal { width: min(100% - 26px, 1320px); padding-top: 18px; }
  .welcome-row { align-items: flex-start; padding: 24px; }
  .welcome-row::after { display: none; }
  .tabs { top: 76px; }
  .chat-intro, .api-grid > div:first-child { padding: 20px; }
}

@media (max-width: 520px) {
  .topbar { height: 62px; }
  .brand-mark { width: 36px; height: 36px; }
  .portal { width: min(100% - 18px, 1320px); }
  .welcome-row { min-height: 0; padding: 20px 18px; }
  .welcome-row h1 { font-size: 29px; }
  .welcome-row p { font-size: 14px; }
  .library-card { width: 100%; min-width: 0; }
  .tabs { top: 69px; margin-top: 10px; }
  .tab { padding: 9px 13px; font-size: 13px; }
  .panel { padding-top: 15px; }
  .search-box { min-height: 0; padding: 9px; }
  .search-box .primary-button { min-width: 0; }
  .document-item { grid-template-columns: 42px minmax(0, 1fr); }
  .pdf-search-intro, .subscription-hero, .api-activation-panel, .api-ready-panel { padding: 20px 18px; }
}
