:root {
    --primary: #2866c7;
    --primary-dark: #1e4f9d;
    --primary-soft: #eaf2ff;
    --navy: #17335f;
    --text: #1b2a41;
    --text-secondary: #65748b;
    --text-muted: #94a0b2;
    --border: #e3e9f1;
    --background: #f4f6f9;
    --surface: #ffffff;
    --green: #2f9461;
    --green-soft: #eaf7f0;
    --yellow: #d59019;
    --yellow-soft: #fff6df;
    --red: #ca4b50;
    --red-soft: #fff0f0;
    --cyan: #2789a4;
    --cyan-soft: #e8f6f8;
    --purple: #7357b5;
    --shadow: 0 5px 18px rgba(29, 52, 84, 0.055);
    --radius: 10px;
    font-family: "Microsoft YaHei", "PingFang SC", system-ui, -apple-system, sans-serif;
    color: var(--text);
    background: var(--background);
}

* { box-sizing: border-box; }
body { margin: 0; min-width: 1120px; background: var(--background); }
button, input, textarea, select { font: inherit; }
button { cursor: pointer; }
svg { width: 1em; height: 1em; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

.app-shell { min-height: 100vh; display: flex; }
.sidebar { position: fixed; inset: 0 auto 0 0; width: 238px; display: flex; flex-direction: column; background: #15325d; color: #fff; z-index: 10; }
.brand { height: 96px; padding: 0 22px; display: flex; align-items: center; gap: 12px; border-bottom: 1px solid rgba(255,255,255,.1); }
.brand-mark { width: 40px; height: 40px; display: grid; place-items: center; border-radius: 9px; background: rgba(255,255,255,.12); color: #fff; }
.brand-mark svg { width: 23px; height: 23px; }
.brand strong, .brand span { display: block; white-space: nowrap; }
.brand strong { font-size: 16px; letter-spacing: .2px; }
.brand span { margin-top: 4px; color: rgba(255,255,255,.68); font-size: 13px; }
.sidebar-nav { padding: 24px 14px; display: grid; gap: 7px; }
.nav-item { position: relative; width: 100%; height: 48px; display: flex; align-items: center; gap: 13px; padding: 0 15px; border: 0; border-radius: 8px; background: transparent; color: rgba(255,255,255,.68); font-size: 15px; text-align: left; transition: .18s ease; }
.nav-item:hover { color: #fff; background: rgba(255,255,255,.07); }
.nav-item.active { color: #fff; background: #2866c7; box-shadow: 0 6px 14px rgba(7,35,79,.23); }
.nav-item.active::before { content: ""; position: absolute; left: -14px; width: 3px; height: 22px; background: #7bb5ff; border-radius: 0 3px 3px 0; }
.nav-icon { width: 20px; display: grid; place-items: center; }
.nav-icon svg { width: 19px; height: 19px; }
.sidebar-footer { margin: auto 16px 18px; padding: 14px; display: flex; align-items: center; gap: 10px; border: 1px solid rgba(255,255,255,.1); border-radius: 9px; background: rgba(255,255,255,.045); }
.sidebar-footer div { display: grid; gap: 2px; }
.sidebar-footer strong { font-size: 13px; font-weight: 500; }
.sidebar-footer span:not(.status-dot) { color: rgba(255,255,255,.54); font-size: 12px; }
.status-dot { width: 8px; height: 8px; border-radius: 50%; background: #58c48c; box-shadow: 0 0 0 4px rgba(88,196,140,.12); }

.main-area { width: calc(100% - 238px); min-height: 100vh; margin-left: 238px; }
.topbar { height: 96px; padding: 0 38px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--border); background: rgba(255,255,255,.96); }
.eyebrow { margin: 0 0 5px; color: var(--text-muted); font-size: 12px; letter-spacing: 1px; }
.topbar h1 { margin: 0; font-size: 26px; font-weight: 600; }
.topbar-actions { display: flex; align-items: center; gap: 24px; }
.date-badge { padding-right: 24px; border-right: 1px solid var(--border); color: var(--text-secondary); font-size: 14px; }
.user-chip { display: flex; align-items: center; gap: 10px; }
.user-chip > span:last-child { display: grid; gap: 2px; }
.user-chip strong { font-size: 14px; font-weight: 600; }
.user-chip small { color: var(--text-muted); font-size: 12px; }
.avatar { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 50%; background: var(--primary-soft); color: var(--primary); font-size: 14px; font-weight: 700; }
.content-wrap { max-width: 1510px; margin: 0 auto; padding: 30px 38px 50px; }
.page { display: none; animation: page-in .2s ease; }
.page.active { display: block; }
@keyframes page-in { from { opacity: 0; transform: translateY(3px); } to { opacity: 1; transform: none; } }
.page-heading { min-height: 52px; margin-bottom: 24px; display: flex; align-items: flex-start; justify-content: space-between; }
.page-heading h2 { margin: 0 0 7px; font-size: 22px; font-weight: 600; }
.page-heading p, .panel-header p, .panel-title-block p, .section-heading p { margin: 0; color: var(--text-secondary); font-size: 14px; line-height: 1.6; }

.metric-grid { display: grid; gap: 16px; margin-bottom: 20px; }
.four-columns { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.three-columns { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.metric-card { min-height: 126px; padding: 23px; display: flex; align-items: center; gap: 17px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); box-shadow: var(--shadow); }
.metric-card > div:last-child { display: grid; grid-template-columns: auto auto; align-items: baseline; flex: 1; }
.metric-card span { grid-column: 1 / -1; color: var(--text-secondary); font-size: 14px; }
.metric-card strong { margin-top: 8px; font-size: 31px; font-weight: 600; line-height: 1; }
.metric-card small { justify-self: end; color: var(--text-muted); font-size: 12px; }
.metric-icon { width: 43px; height: 43px; flex: 0 0 43px; display: grid; place-items: center; border-radius: 10px; }
.metric-icon svg { width: 21px; height: 21px; }
.blue { color: var(--primary); background: var(--primary-soft); }
.cyan { color: var(--cyan); background: var(--cyan-soft); }
.amber { color: var(--yellow); background: var(--yellow-soft); }
.green { color: var(--green); background: var(--green-soft); }
.purple { color: var(--purple); background: #f0ecfa; }

.dashboard-grid { display: grid; grid-template-columns: 1.25fr .9fr; gap: 20px; }
.panel { border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); box-shadow: var(--shadow); }
.risk-panel, .popular-panel { min-height: 272px; padding: 22px 24px; }
.ai-panel { grid-column: 1 / -1; min-height: 148px; padding: 22px 24px; }
.panel-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; }
.panel-header h3, .panel-title-block h3, .section-heading h3, .report-module h3 { margin: 0 0 6px; font-size: 18px; font-weight: 600; }
.text-button { padding: 3px; border: 0; background: transparent; color: var(--primary); font-size: 13px; }
.empty-state { padding: 42px 20px; display: flex; align-items: center; justify-content: center; flex-direction: column; color: var(--text-muted); }
.empty-state.compact { padding: 42px 20px 25px; }
.empty-state strong { margin-bottom: 6px; color: var(--text-secondary); font-size: 14px; font-weight: 500; }
.empty-state span { font-size: 13px; }
.empty-icon { width: 41px; height: 41px; margin-bottom: 12px; display: grid; place-items: center; border-radius: 50%; background: #f1f4f8; }
.empty-icon svg { width: 20px; height: 20px; }
.ranking-placeholder { margin-top: 28px; }
.ranking-placeholder > div { height: 34px; display: flex; align-items: center; gap: 11px; border-bottom: 1px solid #f0f2f6; }
.ranking-placeholder p { margin: 14px 0 0; color: var(--text-muted); font-size: 12px; text-align: center; }
.rank { width: 19px; height: 19px; display: grid; place-items: center; border-radius: 4px; background: #f0f3f8; color: var(--text-muted); font-size: 12px; }
.line { height: 7px; border-radius: 5px; background: #edf1f5; }
.line.long { width: 46%; }.line.medium { width: 38%; }.line.short { width: 31%; }
.tag-placeholder { width: 35px; height: 16px; margin-left: auto; border-radius: 8px; background: var(--green-soft); }
.course-list { margin-top: 17px; max-height: 365px; overflow-y: auto; }
.course-item { padding: 14px 0; border-bottom: 1px solid #edf1f5; }
.course-item:last-child { border-bottom: 0; }
.course-item-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.course-item-header strong { color: var(--text); font-size: 15px; font-weight: 600; }
.course-facts { margin-top: 11px; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 9px; }
.course-facts div { display: grid; gap: 3px; }
.course-facts span { color: var(--text-muted); font-size: 12px; }
.course-facts b { color: var(--text-secondary); font-size: 13px; font-weight: 500; white-space: nowrap; }
.popular-course-list .course-facts { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.status-tag { display: inline-flex; align-items: center; min-height: 24px; padding: 3px 9px; border-radius: 12px; font-size: 12px; font-weight: 600; white-space: nowrap; }
.status-tag.green { color: var(--green); background: var(--green-soft); }
.status-tag.yellow { color: #a56800; background: var(--yellow-soft); }
.status-tag.red { color: var(--red); background: var(--red-soft); }
.data-feedback { min-height: 46px; margin: -4px 0 20px; padding: 10px 14px; align-items: center; justify-content: space-between; gap: 14px; border: 1px solid #dbe6f5; border-radius: 8px; background: #f8fbff; color: var(--text-secondary); font-size: 13px; }
.data-feedback:not([hidden]) { display: flex; }
.data-feedback.error { border-color: #f1cecf; background: #fff7f7; color: #934044; }
.retry-button { height: 30px; margin-top: 9px; padding: 0 12px; border: 1px solid currentColor; border-radius: 6px; background: transparent; color: inherit; font-size: 12px; }
.data-feedback .retry-button { margin-top: 0; }
.loading-dot { width: 8px; height: 8px; display: inline-block; margin-right: 9px; border-radius: 50%; background: var(--primary); animation: pulse 1s infinite alternate; }
@keyframes pulse { to { opacity: .28; } }
.ai-label { display: inline-block; margin-bottom: 6px; padding: 3px 7px; border-radius: 4px; background: var(--primary-soft); color: var(--primary); font-size: 12px; font-weight: 700; letter-spacing: .5px; }
.insight-placeholder { margin-top: 16px; display: flex; align-items: center; gap: 16px; }
.insight-mark { width: 43px; height: 43px; flex: 0 0 43px; display: grid; place-items: center; border-radius: 8px; background: linear-gradient(145deg, #2b6bcd, #4f83d3); color: white; font-size: 12px; font-weight: 700; }
.insight-placeholder strong { font-size: 15px; font-weight: 600; }
.insight-placeholder p { margin: 5px 0 0; color: var(--text-secondary); font-size: 13px; line-height: 1.6; }

.secondary-button, .primary-button, .filter-button { border-radius: 7px; transition: .15s ease; }
.secondary-button { height: 36px; padding: 0 14px; border: 1px solid var(--border); background: var(--surface); color: var(--text-secondary); font-size: 13px; }
.secondary-button:hover { border-color: #aac2e6; color: var(--primary); }
.primary-button { height: 40px; padding: 0 19px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; border: 1px solid var(--primary); background: var(--primary); color: white; font-size: 14px; box-shadow: 0 4px 10px rgba(40,102,199,.18); }
.primary-button:hover { background: var(--primary-dark); border-color: var(--primary-dark); }
.primary-button svg { width: 17px; height: 17px; }
.primary-button.small { height: 36px; }

.form-panel { position: relative; padding: 25px 28px 28px; margin-bottom: 20px; }
.section-number { position: absolute; right: 27px; top: 18px; color: #e3ebf7; font: 700 37px/1 Arial, sans-serif; }
.section-number.muted { color: #edf0f4; }
.panel-title-block { margin-bottom: 22px; }
.field { display: flex; flex-direction: column; gap: 8px; color: var(--text-secondary); font-size: 14px; }
.field > span { color: #40506a; font-weight: 500; }
.field b { color: var(--red); font-weight: 500; }
.field small { color: var(--text-muted); }
.field input, .field textarea, .field select, .table-actions input { width: 100%; border: 1px solid #dbe2eb; border-radius: 7px; outline: none; background: #fff; color: var(--text); transition: .15s ease; }
.field input, .field select { height: 40px; padding: 0 12px; }
.field textarea { padding: 13px; resize: vertical; line-height: 1.65; }
.field input:focus, .field textarea:focus, .field select:focus, .table-actions input:focus { border-color: #7da5de; box-shadow: 0 0 0 3px rgba(40,102,199,.08); }
.field input::placeholder, .field textarea::placeholder, .table-actions input::placeholder { color: #aab3c0; }
.full-width { width: 100%; }
.form-actions { margin-top: 18px; display: flex; justify-content: flex-end; }
.result-panel { position: relative; padding: 25px 28px 28px; }
.result-columns { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.result-slot { min-height: 150px; padding: 18px; display: flex; align-items: center; justify-content: center; flex-direction: column; border: 1px dashed #d9e0e9; border-radius: 8px; background: #fafbfd; text-align: center; }
.result-slot > span { align-self: flex-start; color: var(--text-secondary); font-size: 14px; font-weight: 600; }
.slot-icon { width: 36px; height: 36px; margin: 12px 0 7px; display: grid; place-items: center; border-radius: 50%; background: var(--primary-soft); color: var(--primary); font-size: 13px; }
.result-slot p { margin: 0; color: var(--text-muted); font-size: 12px; }
#page-planning { min-height: calc(100vh - 176px); }
#page-planning [hidden] { display: none !important; }
#page-planning .planning-workspace { width: min(100%, 1384px); margin: 0 auto; }
#page-planning .planning-welcome { padding: 14px 0 28px; text-align: center; }
#page-planning .planning-welcome h2 { margin: 8px 0 12px; color: var(--navy); font-size: 30px; font-weight: 700; letter-spacing: .3px; }
#page-planning .planning-welcome > p { margin: 0; color: var(--text-secondary); font-size: 16px; line-height: 1.7; }
#page-planning .planning-robot { position: relative; width: 266px; height: 165px; margin: 0 auto; }
#page-planning .planning-robot span { position: absolute; display: block; }
#page-planning .planning-robot-head { z-index: 2; left: 79px; top: 32px; width: 108px; height: 88px; border: 6px solid #e3efff; border-radius: 35px; background: linear-gradient(145deg, #fff, #dbeaff); box-shadow: 0 10px 25px rgba(49, 113, 199, .15); }
#page-planning .planning-robot-face { left: 14px; top: 16px; width: 68px; height: 47px; border-radius: 22px; background: #153a68; }
#page-planning .planning-robot-face i { position: absolute; display: block; top: 16px; width: 13px; height: 9px; border: 3px solid #9bc8ff; border-bottom: 0; border-radius: 12px 12px 0 0; }
#page-planning .planning-robot-face i:first-child { left: 13px; }
#page-planning .planning-robot-face i:nth-child(2) { right: 13px; }
#page-planning .planning-robot-face b { position: absolute; display: block; left: 29px; top: 32px; width: 11px; height: 4px; border-radius: 5px; background: #4287e6; }
#page-planning .planning-robot-antenna { left: 132px; top: 13px; width: 3px; height: 24px; border-radius: 4px; background: #4a93f4; }
#page-planning .planning-robot-antenna::before { position: absolute; top: -8px; left: -7px; width: 17px; height: 17px; border-radius: 50%; background: #367de1; content: ""; }
#page-planning .planning-robot-ear { z-index: 1; top: 67px; width: 14px; height: 27px; border-radius: 12px; background: #b6d4fb; }
#page-planning .planning-robot-ear-left { left: 71px; }
#page-planning .planning-robot-ear-right { right: 71px; }
#page-planning .planning-robot-body { left: 72px; bottom: 1px; width: 122px; height: 44px; border-radius: 60px 60px 14px 14px; background: linear-gradient(160deg, #f3f8ff, #d8e9ff); }
#page-planning .planning-robot-bubble { top: 62px; width: 49px; height: 32px; border-radius: 9px; background: #e4efff; }
#page-planning .planning-robot-bubble::before, #page-planning .planning-robot-bubble::after { position: absolute; left: 11px; height: 3px; border-radius: 3px; background: #fff; content: ""; }
#page-planning .planning-robot-bubble::before { top: 10px; width: 27px; }
#page-planning .planning-robot-bubble::after { top: 17px; width: 18px; }
#page-planning .planning-robot-bubble-left { left: 8px; }
#page-planning .planning-robot-bubble-right { right: 8px; top: 42px; }
#page-planning .planning-prompts { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; margin: 31px 0 0; }
#page-planning .planning-prompts button { min-height: 46px; padding: 0 22px; border: 1px solid #e3ebf8; border-radius: 24px; background: #fff; box-shadow: 0 6px 17px rgba(25, 76, 144, .055); color: var(--primary); font-size: 14px; font-weight: 500; }
#page-planning .planning-prompts button:hover, #page-planning .planning-prompts button:focus-visible { border-color: #9bbdec; background: #f6faff; }
#page-planning .planning-result-header { margin-bottom: 8px; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
#page-planning .planning-result-header > div { display: flex; align-items: center; gap: 10px; }
#page-planning .planning-result-header .ai-label { margin: 0; }
#page-planning .planning-result-header h2 { margin: 0; color: var(--navy); font-size: 20px; }
#page-planning .planning-result-header button:disabled { opacity: .65; cursor: wait; }
#page-planning .planning-input-area { margin-top: 4px; }
#page-planning .planning-composer { min-height: 180px; padding: 18px 19px 15px; border: 1px solid #cfddf2; border-radius: 15px; background: #fff; box-shadow: 0 12px 29px rgba(26, 70, 132, .065); transition: border-color .15s ease, box-shadow .15s ease; }
#page-planning .planning-composer:focus-within { border-color: #8db6eb; box-shadow: 0 12px 29px rgba(26, 70, 132, .08), 0 0 0 3px rgba(40, 102, 199, .07); }
#page-planning .planning-composer textarea { display: block; width: 100%; min-height: 83px; padding: 2px 2px 8px; border: 0; outline: 0; resize: vertical; background: transparent; color: var(--text); font-size: 16px; line-height: 1.7; }
#page-planning .planning-composer textarea::placeholder { color: #94a4ba; }
#page-planning .planning-file-input { display: none; }
#page-planning .planning-file-tags { display: flex; flex-wrap: wrap; gap: 9px; margin: 0 0 12px; }
#page-planning .planning-file-tag { max-width: 300px; min-height: 32px; padding: 4px 7px 4px 9px; display: inline-flex; align-items: center; gap: 7px; border: 1px solid #e1e9f4; border-radius: 7px; background: #f3f7fd; color: #405777; font-size: 13px; }
#page-planning .planning-file-tag > span:nth-child(2) { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
#page-planning .planning-file-icon { width: 19px; height: 21px; flex: 0 0 19px; display: grid; place-items: center; border-radius: 3px; background: #328c67; color: #fff; font-size: 11px; font-weight: 700; }
#page-planning .planning-file-icon.is-pdf { background: #b95157; }
#page-planning .planning-file-icon.is-doc { background: #4c7fc2; }
#page-planning .planning-file-tag button { width: 20px; height: 20px; flex: 0 0 20px; padding: 0; border: 0; border-radius: 4px; background: transparent; color: #708099; font-size: 18px; line-height: 1; }
#page-planning .planning-file-tag button:hover { background: #e5edf8; color: var(--primary-dark); }
#page-planning .planning-composer-footer { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
#page-planning .planning-add-file { width: 44px; height: 44px; display: grid; place-items: center; padding: 0; border: 0; border-radius: 12px; background: #ecf2fa; color: #4b6688; font-size: 27px; line-height: 1; }
#page-planning .planning-add-file:hover { background: #dfeafa; color: var(--primary); }
#page-planning .planning-send-button { min-width: 129px; height: 44px; padding: 0 20px; display: inline-flex; align-items: center; justify-content: center; gap: 10px; border: 1px solid var(--primary); border-radius: 10px; background: var(--primary); box-shadow: 0 5px 11px rgba(40, 102, 199, .16); color: #fff; font-size: 15px; font-weight: 600; }
#page-planning .planning-send-button:hover { background: var(--primary-dark); }
#page-planning .planning-send-button:disabled { opacity: .72; cursor: wait; }
#page-planning .planning-send-button svg { width: 19px; height: 19px; }
#page-planning .planning-usage-hints { margin-top: 19px; padding: 0 9px; color: var(--text-secondary); font-size: 13px; line-height: 1.75; }
#page-planning .planning-usage-hints p { margin: 3px 0; }
#page-planning .planning-feedback { margin: 14px 9px 0; color: var(--text-secondary); font-size: 13px; line-height: 1.6; }
#page-planning .planning-feedback.error { color: var(--red); }
#page-planning.has-conversation .planning-workspace { min-height: calc(100vh - 195px); display: flex; flex-direction: column; }
#page-planning .planning-conversation { min-height: 145px; max-height: calc(100vh - 390px); overflow-y: auto; padding: 10px 4px 18px; }
#page-planning.has-conversation .planning-input-area { margin-top: auto; }
#page-planning .planning-message { max-width: 82%; margin-bottom: 19px; display: flex; align-items: flex-start; gap: 11px; }
#page-planning .planning-message-user { margin-left: auto; flex-direction: row-reverse; }
#page-planning .planning-message-agent { width: min(100%, 1080px); max-width: 100%; }
#page-planning .planning-message-avatar { width: 34px; height: 34px; flex: 0 0 34px; display: grid; place-items: center; border-radius: 50%; background: #dfeafa; color: var(--primary-dark); font-size: 13px; font-weight: 700; }
#page-planning .planning-message-agent .planning-message-avatar { background: var(--primary); color: #fff; }
#page-planning .planning-message-body { min-width: 0; padding: 13px 16px; border: 1px solid #dbe7f7; border-radius: 11px; background: #fff; color: var(--text); }
#page-planning .planning-message-agent .planning-message-body { width: 100%; }
#page-planning .planning-message-user .planning-message-body { background: #f3f8ff; }
#page-planning .planning-message-sender { color: var(--text-secondary); font-size: 12px; font-weight: 600; }
#page-planning .planning-message-body p { margin: 7px 0 0; white-space: pre-wrap; overflow-wrap: anywhere; font-size: 14px; line-height: 1.7; }
#page-planning .planning-message-pending .planning-message-body p { display: flex; align-items: center; color: var(--text-secondary); }
#page-planning .planning-markdown { margin-top: 10px; color: var(--text-secondary); font-size: 14px; line-height: 1.75; }
#page-planning .planning-markdown h1, #page-planning .planning-markdown h2, #page-planning .planning-markdown h3, #page-planning .planning-markdown h4, #page-planning .planning-markdown h5, #page-planning .planning-markdown h6 { margin: 1.35em 0 .55em; color: var(--text); line-height: 1.4; }
#page-planning .planning-markdown h1:first-child, #page-planning .planning-markdown h2:first-child, #page-planning .planning-markdown h3:first-child { margin-top: 0; }
#page-planning .planning-markdown h1 { font-size: 22px; }
#page-planning .planning-markdown h2 { font-size: 19px; }
#page-planning .planning-markdown h3 { font-size: 17px; }
#page-planning .planning-markdown h4, #page-planning .planning-markdown h5, #page-planning .planning-markdown h6 { font-size: 15px; }
#page-planning .planning-markdown p { margin: .65em 0; white-space: normal; }
#page-planning .planning-markdown ul, #page-planning .planning-markdown ol { margin: .65em 0; padding-left: 1.6em; }
#page-planning .planning-markdown li { margin: .3em 0; }
#page-planning .planning-markdown strong { color: var(--text); font-weight: 700; }
#page-planning .planning-markdown blockquote { margin: .8em 0; padding: 8px 13px; border-left: 3px solid #9bbdec; background: #f6f9fd; color: #53657e; }
#page-planning .planning-markdown code { padding: 2px 5px; border-radius: 4px; background: #f0f3f8; color: #405777; font-family: Consolas, monospace; font-size: .92em; }
#page-planning .planning-markdown pre { overflow-x: auto; padding: 12px; border-radius: 7px; background: #f5f7fa; }
#page-planning .planning-markdown pre code { padding: 0; background: transparent; }
#page-planning .planning-markdown hr { margin: 18px 0; border: 0; border-top: 1px solid var(--border); }
#page-planning .planning-markdown-table-wrap { margin: 12px 0; overflow-x: auto; border: 1px solid var(--border); border-radius: 7px; }
#page-planning .planning-markdown-table-wrap table { min-width: 620px; }
#page-planning .planning-markdown-table-wrap th, #page-planning .planning-markdown-table-wrap td { height: auto; padding: 9px 11px; vertical-align: top; line-height: 1.55; white-space: normal; }
#page-planning .planning-markdown-table-wrap td:last-child { min-width: 0; }
#page-planning .planning-message-attachments { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 9px; }
#page-planning .planning-message-attachments span { max-width: 220px; padding: 4px 8px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; border-radius: 5px; background: #e6f0fc; color: #4b6483; font-size: 12px; }

.schedule-form { padding: 24px 28px 26px; }
.schedule-form .primary-button:disabled { opacity: .72; cursor: wait; }
#page-scheduling [hidden] { display: none !important; }
.schedule-form .panel-header { margin-bottom: 23px; }
.scheduling-requirements-grid { display: grid; grid-template-columns: minmax(0, 1.85fr) minmax(260px, 1fr); gap: 24px; }
.schedule-ai-requirements { min-width: 0; padding: 17px; align-self: stretch; border: 1px solid #e0e8f2; border-radius: 8px; background: #f9fbfe; }
.schedule-ai-requirements label { display: block; margin-bottom: 10px; color: #40506a; font-size: 15px; font-weight: 600; }
.schedule-ai-requirements label span { margin-left: 4px; color: var(--text-muted); font-size: 12px; font-weight: 400; }
.schedule-ai-requirements p { margin: 9px 0 12px; color: var(--text-secondary); font-size: 13px; }
.schedule-ai-requirements textarea { width: 100%; min-height: 222px; padding: 12px; border: 1px solid #dbe2eb; border-radius: 7px; outline: 0; resize: vertical; background: #fff; color: var(--text); font-size: 14px; line-height: 1.7; }
.schedule-ai-requirements textarea:focus { border-color: #7da5de; box-shadow: 0 0 0 3px rgba(40,102,199,.08); }
.schedule-ai-requirements textarea::placeholder { color: #9ca9ba; }
.schedule-ai-requirements small { display: block; margin-top: 10px; color: var(--text-muted); font-size: 12px; line-height: 1.5; }
.scheduling-conflict-message { margin-top: 14px; padding: 10px 12px; border: 1px solid #f1cecf; border-radius: 7px; background: var(--red-soft); color: var(--red); font-size: 13px; line-height: 1.6; }
.scheduling-understood { margin-top: 14px; color: var(--text-secondary); font-size: 13px; }
.scheduling-understood-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 7px; }
.scheduling-understood-tags span { padding: 4px 8px; border-radius: 5px; background: var(--primary-soft); color: var(--primary); font-size: 12px; }
.scheduling-empty-message { padding: 20px 22px; border: 1px solid #f0d7aa; border-radius: var(--radius); background: #fffaf0; color: #665337; font-size: 14px; line-height: 1.7; }
.scheduling-empty-message h3 { margin: 0 0 10px; color: #4f402c; font-size: 17px; }
.scheduling-empty-message p { margin: 7px 0; }
.scheduling-diagnostic-primary strong { color: #a06212; }
.scheduling-diagnostic-summary { color: #725c3d; }
.scheduling-diagnostic-other { margin-top: 12px; }
.scheduling-diagnostic-other ul { margin: 5px 0 0; padding-left: 20px; }
.scheduling-diagnostic-other li + li { margin-top: 3px; }
.scheduling-diagnostic-suggestion { margin-top: 14px !important; padding-top: 12px; border-top: 1px solid #efdcb9; color: #574529; }
.required-note, .data-note { color: var(--text-muted); font-size: 12px; }
.form-grid { display: grid; gap: 20px 18px; }
.weekday-field { grid-column: 1 / -1; min-width: 0; margin: 0; padding: 0; border: 0; }
.weekday-field legend { padding: 0; color: #40506a; font-size: 14px; font-weight: 500; }
.weekday-options { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 8px; }
.weekday-option { position: relative; display: inline-flex; align-items: center; }
.weekday-option input { position: absolute; opacity: 0; pointer-events: none; }
.weekday-option span { min-width: 58px; padding: 8px 12px; border: 1px solid #dbe2eb; border-radius: 7px; color: var(--text-secondary); font-size: 13px; text-align: center; transition: .15s ease; }
.weekday-option input:checked + span { border-color: #8fb2e8; background: var(--primary-soft); color: var(--primary); font-weight: 600; }
.weekday-option input:focus-visible + span { box-shadow: 0 0 0 3px rgba(40,102,199,.12); }
.input-prefix { position: relative; }
.input-prefix > span { position: absolute; top: 50%; left: 12px; transform: translateY(-50%); color: var(--text-muted); }
.input-prefix input { padding-left: 28px; }
.resource-status-panel { margin-bottom: 20px; padding: 20px 24px; }
.resource-status-panel .panel-header { margin-bottom: 14px; }
.resource-status-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.resource-status-card { min-width: 0; padding: 15px 17px; display: flex; align-items: flex-start; flex-direction: column; gap: 10px; border: 1px solid #e1e8f1; border-radius: 8px; background: #fbfcfe; }
.resource-status-card h4 { margin: 0; color: var(--text); font-size: 16px; font-weight: 600; }
.resource-status-card p { margin: 5px 0 0; color: var(--text-secondary); font-size: 13px; line-height: 1.6; }
.resource-status-card p strong { color: var(--primary); font-weight: 600; }
.resource-sync-state { margin-left: 10px; padding: 3px 7px; border-radius: 4px; background: #edf1f5; color: var(--text-secondary); font-size: 12px; }
.resource-sync-state.is-synced { background: var(--green-soft); color: var(--green); }
.resource-action-row { width: 100%; display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.resource-action-row input[type="file"] { width: min(100%, 225px); color: var(--text-secondary); font-size: 12px; }
.resource-import-note { color: var(--text-muted); font-size: 12px; line-height: 1.5; }
.resource-action-feedback { min-height: 19px; margin: 0 !important; color: var(--green) !important; }
.resource-action-feedback.error { color: var(--red) !important; }
.scheduling-ai-panel { margin-top: 12px; padding-top: 12px; border-top: 1px solid #e0e8f2; }
.scheduling-ai-panel p { display: -webkit-box; max-height: 3.2em; margin: 0; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; color: var(--text-secondary); font-size: 13px; line-height: 1.6; }
.section-heading { margin: 27px 0 15px; display: flex; align-items: flex-end; justify-content: space-between; }
.plan-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.plan-grid.plan-count-1 { grid-template-columns: minmax(0, 1fr); }
.plan-grid.plan-count-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.plan-card { min-height: 190px; padding: 18px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); box-shadow: var(--shadow); }
.plan-card.is-recommended { border-color: #8fb2e8; box-shadow: 0 4px 18px rgba(40,102,199,.10); }
.plan-card-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.ai-recommend-tag { padding: 4px 8px; border-radius: 4px; background: var(--primary-soft); color: var(--primary); font-size: 12px; font-weight: 600; }
.plan-card h4 { margin: 16px 0 14px; color: var(--text); font-size: 18px; font-weight: 600; }
.plan-hard-constraint { margin: -7px 0 14px; color: var(--green); font-size: 13px; font-weight: 600; }
.plan-details { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px 15px; }
.plan-details div { display: grid; gap: 4px; }
.plan-details span, .plan-feature span { color: var(--text-muted); font-size: 12px; }
.plan-details strong { color: var(--text-secondary); font-size: 14px; font-weight: 500; }
.plan-feature { margin-top: 16px; padding-top: 13px; border-top: 1px solid #edf1f5; }
.room-efficiency-tip { margin: 6px 0 0; color: var(--text-secondary); font-size: 13px; line-height: 1.6; }
.weekly-arrangements { margin: 6px 0 0; padding-left: 19px; color: var(--text-secondary); font-size: 13px; line-height: 1.7; }
.session-date-details { margin-top: 16px; padding-top: 13px; border-top: 1px solid #edf1f5; color: var(--text-secondary); font-size: 13px; line-height: 1.7; }
.session-date-details summary { color: var(--primary); cursor: pointer; font-weight: 600; }
.session-date-details ol { margin: 8px 0 0; padding-left: 20px; }
.plan-index { display: inline-block; padding: 4px 8px; border-radius: 4px; background: var(--primary-soft); color: var(--primary); font-size: 12px; font-weight: 600; }
.plan-placeholder { height: 135px; display: flex; align-items: center; justify-content: center; flex-direction: column; color: var(--text-muted); }
.plan-placeholder strong { margin-bottom: 7px; color: var(--text-secondary); font-size: 14px; font-weight: 500; }
.plan-placeholder p { margin: 0; font-size: 12px; }

.status-metrics { margin-bottom: 20px; }
.status-card { min-height: 112px; padding: 22px 24px; display: flex; align-items: center; gap: 16px; border: 1px solid var(--border); border-top: 3px solid currentColor; border-radius: var(--radius); background: white; box-shadow: var(--shadow); }
.status-metrics { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.status-card.blue { color: var(--primary); }
.status-card.yellow { color: var(--yellow); }.status-card.red { color: var(--red); }
.status-symbol { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 50%; background: currentColor; color: white; font-weight: 700; }
.status-card > div { display: grid; grid-template-columns: auto auto; flex: 1; align-items: baseline; }
.status-card div span { grid-column: 1 / -1; color: var(--text-secondary); font-size: 14px; }
.status-card strong { margin-top: 7px; color: var(--text); font-size: 30px; }
.status-card small { justify-self: end; color: var(--text-muted); font-size: 12px; }
.table-panel { padding: 22px 24px 24px; }
.table-actions { display: flex; gap: 8px; }
.table-actions input, .table-actions select { height: 34px; padding: 0 11px; border: 1px solid #dbe2eb; border-radius: 7px; outline: none; background: #fff; color: var(--text); font-size: 13px; }
.table-actions select { width: 116px; }
.table-actions input { width: 185px; }
.filter-button { height: 34px; padding: 0 13px; border: 1px solid var(--border); background: #fff; color: var(--text-secondary); font-size: 13px; }
.table-wrap { margin-top: 20px; overflow-x: auto; border: 1px solid var(--border); border-radius: 7px; }
table { width: 100%; border-collapse: collapse; }
th { height: 43px; padding: 0 15px; background: #f7f9fb; color: #66758b; font-size: 14px; font-weight: 600; text-align: left; white-space: nowrap; }
td { height: 53px; padding: 0 15px; border-top: 1px solid var(--border); color: var(--text-secondary); font-size: 14px; }
.table-wrap td:last-child { min-width: 190px; line-height: 1.5; }
.table-wrap .status-tag { min-width: 88px; justify-content: center; }
.empty-row td { height: 228px; }
.empty-row .empty-state { padding: 20px; }

.report-controls { margin-bottom: 20px; padding: 22px 25px; }
#page-report [hidden] { display: none !important; }
#page-report .primary-button:disabled { opacity: .72; cursor: wait; }
.period-tabs { display: flex; gap: 6px; padding-bottom: 18px; border-bottom: 1px solid var(--border); }
.period-tab { height: 34px; padding: 0 17px; border: 1px solid transparent; border-radius: 6px; background: #f3f5f8; color: var(--text-secondary); font-size: 13px; }
.period-tab.active { border-color: #bdd1ee; background: var(--primary-soft); color: var(--primary); font-weight: 600; }
.date-range { padding-top: 18px; display: flex; align-items: center; gap: 12px; }
.date-range .field { width: 205px; }
.date-separator { margin-top: 21px; color: var(--text-muted); font-size: 13px; }
.align-bottom { margin-top: 21px; }
.report-query-field { margin-top: 18px; }
.report-query-field textarea { width: 100%; min-height: 82px; padding: 11px 12px; border: 1px solid #dbe2eb; border-radius: 7px; outline: 0; resize: vertical; color: var(--text); font-size: 14px; line-height: 1.6; }
.report-query-field textarea:focus { border-color: #7da5de; box-shadow: 0 0 0 3px rgba(40,102,199,.08); }
.report-query-field textarea::placeholder { color: #9ca9ba; }
.operations-report-result { margin-bottom: 20px; padding: 22px 25px; }
.operations-report-loading { min-height: 46px; display: flex; align-items: center; color: var(--text-secondary); font-size: 14px; }
.operations-report-loading strong { font-weight: 500; }
.operations-report-success-heading { display: flex; align-items: center; gap: 9px; color: var(--green); font-size: 17px; }
.operations-report-success-heading span { width: 27px; height: 27px; display: grid; place-items: center; border-radius: 50%; background: var(--green-soft); font-weight: 700; }
.operations-report-success p { margin: 14px 0 17px; color: var(--text-secondary); font-size: 14px; }
.operations-report-success p span { color: var(--text); font-weight: 600; overflow-wrap: anywhere; }
.operations-report-downloads { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.operations-report-download { width: max-content; text-decoration: none; }
.operations-report-download.secondary-button { height: 40px; display: inline-flex; align-items: center; justify-content: center; }
.operations-report-success .operations-report-word-warning { margin: 12px 0 0; color: #9b6b16; }
.operations-report-error { padding: 13px 15px; border: 1px solid #f1cecf; border-radius: 7px; background: #fff7f7; color: #934044; font-size: 14px; }
.report-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.report-module { min-height: 120px; padding: 20px 22px; display: flex; align-items: flex-start; gap: 15px; }
.report-module.wide, .report-module.ai-summary { grid-column: 1 / -1; }
.module-icon { width: 42px; height: 42px; flex: 0 0 42px; display: grid; place-items: center; border-radius: 9px; font-size: 12px; font-weight: 700; }
.report-module-content { min-width: 0; flex: 1; }
.report-summary { color: var(--text-secondary); font-size: 13px; line-height: 1.65; }
.report-summary p { margin: 0; }
.report-summary ul { margin: 0; padding-left: 18px; }
.report-summary li + li { margin-top: 3px; }
.report-metric-list { display: flex; flex-wrap: wrap; gap: 7px 14px; padding: 0 !important; list-style: none; }
.report-metric-list li { position: relative; padding-left: 10px; color: #40506a; }
.report-metric-list li::before { content: ""; position: absolute; top: .72em; left: 0; width: 4px; height: 4px; border-radius: 50%; background: var(--primary); }
.report-ai-summary { max-width: 980px; }
.module-status { margin-left: auto; flex: 0 0 auto; padding: 4px 9px; border-radius: 10px; background: #f0f2f5; color: var(--text-muted); font-size: 12px; }
.ai-summary { background: linear-gradient(105deg, #fff 65%, #f6f8fd); }

.toast { position: fixed; left: 50%; bottom: 30px; z-index: 20; max-width: 420px; padding: 11px 16px; border-radius: 7px; background: rgba(27,42,65,.94); color: white; font-size: 13px; opacity: 0; pointer-events: none; transform: translate(-50%, 10px); transition: .2s ease; box-shadow: 0 8px 24px rgba(0,0,0,.18); }
.toast.show { opacity: 1; transform: translate(-50%, 0); }

@media (max-width: 1260px) {
    .content-wrap { padding-left: 28px; padding-right: 28px; }
    .topbar { padding-left: 28px; padding-right: 28px; }
    .metric-card { padding: 18px; }
    .metric-card small, .status-card small { display: none; }
}

@media (max-width: 920px) {
    .resource-status-grid { grid-template-columns: minmax(0, 1fr); }
    .scheduling-requirements-grid { grid-template-columns: minmax(0, 1fr); }
}

/* 智能排课：将资源、条件、分析和方案收束为桌面端一屏工作区。 */
body:has(#page-scheduling.active) .topbar { height: 82px; }
body:has(#page-scheduling.active) .content-wrap { max-width: none; padding: 16px 28px 32px; }
#page-scheduling .page-heading { min-height: 0; margin-bottom: 12px; }
#page-scheduling .page-heading h2 { display: none; }
#page-scheduling .page-heading p { font-size: 13px; line-height: 1.4; }

#page-scheduling .resource-status-panel { margin-bottom: 12px; padding: 11px 14px 12px; }
#page-scheduling .resource-status-panel .panel-header { margin-bottom: 8px; }
#page-scheduling .resource-status-panel .panel-header h3 { margin-bottom: 2px; font-size: 16px; }
#page-scheduling .resource-status-panel .panel-header p { font-size: 12px; line-height: 1.4; }
#page-scheduling .resource-status-grid { gap: 0; border: 1px solid #e1e8f1; border-radius: 8px; }
#page-scheduling .resource-status-card { gap: 4px; padding: 9px 13px; border: 0; border-radius: 0; background: #fff; }
#page-scheduling .resource-status-card:first-child { border-right: 1px solid #e1e8f1; }
#page-scheduling .resource-status-card h4 { font-size: 14px; }
#page-scheduling .resource-status-card p { margin-top: 2px; font-size: 12px; line-height: 1.3; }
#page-scheduling .resource-sync-state { margin-left: 8px; padding: 2px 6px; }
#page-scheduling .resource-action-row { gap: 6px; }
#page-scheduling .resource-action-row .secondary-button { height: 28px; padding: 0 9px; font-size: 12px; }
#page-scheduling .resource-file-input { position: absolute; width: 1px !important; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
#page-scheduling .resource-upload-trigger { display: inline-flex; align-items: center; cursor: pointer; }
#page-scheduling .resource-file-input:focus-visible + .resource-upload-trigger { outline: 3px solid rgba(40,102,199,.25); outline-offset: 2px; }
#page-scheduling .resource-import-note { max-width: 165px; overflow: hidden; text-overflow: ellipsis; font-size: 11px; white-space: nowrap; }
#page-scheduling .resource-action-feedback { min-height: 0; font-size: 12px; }
#page-scheduling .resource-action-feedback:empty { display: none; }

#page-scheduling .schedule-form { margin-bottom: 10px; padding: 14px 17px 16px; }
#page-scheduling .schedule-form .panel-header { margin-bottom: 12px; }
#page-scheduling .schedule-form .panel-header h3 { margin-bottom: 2px; font-size: 16px; }
#page-scheduling .schedule-form .panel-header p { font-size: 12px; line-height: 1.4; }
#page-scheduling .scheduling-requirements-grid { grid-template-columns: minmax(0, 2.1fr) minmax(310px, 1fr); gap: 18px; }
#page-scheduling .form-grid { gap: 12px 14px; align-content: start; }
#page-scheduling .field { gap: 5px; font-size: 12px; }
#page-scheduling .field input, #page-scheduling .field select { height: 36px; font-size: 13px; }
#page-scheduling .weekday-field legend { font-size: 12px; }
#page-scheduling .weekday-options { gap: 6px; margin-top: 5px; }
#page-scheduling .weekday-option span { min-width: 45px; height: 31px; padding: 5px 7px; font-size: 12px; }
#page-scheduling .weekday-option input:checked + span { border-color: var(--primary); background: var(--primary); color: #fff; }
#page-scheduling .schedule-ai-requirements { display: flex; flex-direction: column; min-width: 0; padding: 0 0 0 18px; border: 0; border-left: 1px solid #e1e8f1; border-radius: 0; background: transparent; }
#page-scheduling .schedule-ai-requirements label { margin: 0; color: var(--text); font-size: 15px; }
#page-scheduling .schedule-ai-hint { margin: 2px 0 9px; font-size: 12px; line-height: 1.4; }
#page-scheduling .schedule-ai-requirements textarea { height: 127px; min-height: 127px; padding: 10px 11px; border-color: #a9c5ed; background: #f5f9ff; font-size: 13px; line-height: 1.5; }
#page-scheduling .schedule-ai-requirements textarea::placeholder { color: #7288a7; }
#page-scheduling .schedule-ai-requirements small { margin-top: 7px; font-size: 11px; line-height: 1.35; }
#page-scheduling .scheduling-conflict-message { margin-top: 7px; padding: 7px 9px; font-size: 12px; }
#page-scheduling .form-actions { margin-top: auto; padding-top: 8px; }
#page-scheduling .form-actions .primary-button { height: 36px; padding: 0 15px; font-size: 13px; }
#page-scheduling .form-actions .primary-button span { margin-left: 6px; font-size: 18px; line-height: 1; }

#page-scheduling .data-feedback { margin: 0 0 10px; }
#page-scheduling .scheduling-ai-summary { min-height: 67px; margin: 0 0 10px; padding: 10px 14px; display: flex; align-items: center; gap: 15px; border: 1px solid #d7e6fb; border-radius: 9px; background: #f9fcff; box-shadow: var(--shadow); }
#page-scheduling .scheduling-ai-summary-title { flex: 0 0 120px; align-self: stretch; display: flex; align-items: center; border-right: 1px solid #d7e6fb; color: var(--primary); font-size: 15px; white-space: nowrap; }
#page-scheduling .scheduling-ai-summary-body { min-width: 0; display: grid; gap: 3px; }
#page-scheduling .scheduling-understood { margin: 0; display: flex; align-items: center; gap: 8px; font-size: 12px; }
#page-scheduling .scheduling-understood > strong { flex: 0 0 auto; color: var(--text-secondary); font-weight: 500; }
#page-scheduling .scheduling-understood-tags { margin: 0; gap: 5px; }
#page-scheduling .scheduling-understood-tags span { padding: 3px 7px; border-radius: 12px; font-size: 11px; }
#page-scheduling .scheduling-ai-panel { margin: 0; padding: 0; border: 0; }
#page-scheduling .scheduling-ai-panel p { max-height: 2.8em; margin: 0; font-size: 12px; line-height: 1.4; }
#page-scheduling .section-heading { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
#page-scheduling .scheduling-empty-message { margin-top: 10px; }

#page-scheduling .plan-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
#page-scheduling .plan-card { min-width: 0; min-height: 0; padding: 11px 12px 9px; }
#page-scheduling .plan-card.is-recommended { border-color: #78a9ed; background: #fbfdff; }
#page-scheduling .plan-card-header { align-items: center; gap: 5px; }
#page-scheduling .plan-card-title { display: flex; align-items: center; gap: 5px; }
#page-scheduling .plan-index { padding: 2px 4px; background: transparent; color: var(--text); font-size: 13px; }
#page-scheduling .ai-recommend-tag { padding: 3px 7px; border-radius: 4px; background: var(--primary); color: #fff; font-size: 11px; white-space: nowrap; }
#page-scheduling .plan-hard-constraint { margin: 0; padding: 3px 6px; border-radius: 10px; background: var(--green-soft); font-size: 11px; white-space: nowrap; }
#page-scheduling .plan-facts { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 8px; margin-top: 8px; }
#page-scheduling .plan-facts-column { min-width: 0; display: grid; align-content: start; gap: 3px; }
#page-scheduling .plan-facts-column + .plan-facts-column { padding-left: 8px; border-left: 1px solid #e5edf8; }
#page-scheduling .plan-fact { min-width: 0; display: grid; grid-template-columns: 55px minmax(0, 1fr); align-items: start; gap: 3px; font-size: 12px; line-height: 1.4; }
#page-scheduling .plan-fact span { color: var(--text-muted); white-space: nowrap; }
#page-scheduling .plan-fact strong { min-width: 0; color: var(--text-secondary); font-weight: 500; overflow-wrap: anywhere; }
#page-scheduling .plan-facts-column + .plan-facts-column .plan-fact { grid-template-columns: 61px minmax(0, 1fr); }
#page-scheduling .plan-period { display: block; }
#page-scheduling .plan-period span { display: block; }
#page-scheduling .plan-date-range { display: block; font-size: 11px; white-space: nowrap; }
#page-scheduling .plan-fixed-times strong { font-size: 11px; line-height: 1.35; }
#page-scheduling .room-efficiency-tip { margin: 6px 0 0; color: var(--text-secondary); font-size: 12px; line-height: 1.3; }
#page-scheduling .session-date-details { margin-top: 7px; padding-top: 7px; font-size: 12px; line-height: 1.5; }
#page-scheduling .session-date-details summary { font-size: 12px; }
#page-scheduling .session-date-details ol { max-height: 180px; overflow-y: auto; }
#page-scheduling .plan-empty { grid-column: 1 / -1; }

@media (max-width: 1190px) {
    #page-scheduling .resource-status-grid { grid-template-columns: minmax(0, 1fr); }
    #page-scheduling .resource-status-card:first-child { border-right: 0; border-bottom: 1px solid #e1e8f1; }
    #page-scheduling .scheduling-requirements-grid { grid-template-columns: minmax(0, 1fr); }
    #page-scheduling .schedule-ai-requirements { padding: 14px 0 0; border-left: 0; border-top: 1px solid #e1e8f1; }
    #page-scheduling .plan-grid { grid-template-columns: minmax(0, 1fr); }
}
