:root {
  --bg: #f4f1eb;
  --surface: #fffdf9;
  --surface-strong: #ffffff;
  --ink: #241f18;
  --muted: #7a7165;
  --line: #e6dfd3;
  --gold: #a77b25;
  --gold-soft: #f5ead2;
  --green: #24745a;
  --green-soft: #e4f2ec;
  --orange: #b85d21;
  --orange-soft: #fae9dd;
  --red: #ad3f45;
  --red-soft: #f8e4e5;
  --brown: #6d421f;
  --brown-dark: #3f2c22;
  --shadow: 0 18px 50px rgba(44, 34, 21, 0.08);
}

* { box-sizing: border-box; }
html { scrollbar-gutter: stable; }
body { margin: 0; background: var(--bg); color: var(--ink); font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif; }
body.drawer-open { overflow: hidden; overscroll-behavior: none; }
body.secure-modal-open { overflow: hidden; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
.hidden { display: none !important; }
.role-hidden { display: none !important; }
.muted { color: var(--muted); }
.eyebrow { margin: 0 0 5px; color: var(--gold); font-size: 11px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }

.login-shell { min-height: 100vh; padding: 0 34px; overflow: hidden; background: radial-gradient(circle at 8% 12%, rgba(255,237,207,.9) 0, transparent 32%), radial-gradient(circle at 92% 78%, rgba(203,157,100,.18) 0, transparent 33%), linear-gradient(145deg, #f4eadc, #fbf8f3 58%, #efe1d1); }
.login-public-page { width: min(1240px, 100%); min-height: 100vh; margin: auto; display: flex; flex-direction: column; }
.login-public-header { min-height: 92px; display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid rgba(112,76,43,.14); }
.login-public-brand { display: flex; align-items: center; gap: 12px; }
.login-public-brand strong, .login-public-brand span { display: block; }
.login-public-brand strong { font-size: 18px; letter-spacing: .06em; }
.login-public-brand span { color: var(--muted); font-size: 12px; letter-spacing: .09em; }
.entity-brand-mark { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 12px; background: #2e211a; color: #f6dfb5; font: 700 20px/1 Georgia, "Songti SC", serif; }
.login-platform-badge { padding: 7px 14px; border: 1px solid rgba(129,80,31,.18); border-radius: 999px; color: #81501f; background: rgba(255,253,249,.48); font-size: 12px; }
.login-public-hero { flex: 1; display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(360px, .72fr); gap: 84px; align-items: center; padding: 54px 0 48px; }
.login-hero-copy { max-width: 690px; }
.login-hero-copy h1 { margin: 10px 0 22px; font: 700 clamp(44px, 5vw, 68px)/1.12 Georgia, "Songti SC", serif; letter-spacing: -.025em; }
.login-hero-copy h1 em { color: #a15239; font-style: normal; }
.login-hero-lead { max-width: 625px; margin: 0 0 30px; color: #69564a; font-size: 18px; line-height: 1.85; }
.login-value-list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 13px; }
.login-value-list > div { min-height: 130px; padding: 17px; border: 1px solid rgba(129,80,31,.13); border-radius: 16px; background: rgba(255,253,249,.5); }
.login-value-list b { display: block; margin-bottom: 12px; color: #a86f32; font: 700 13px/1 Georgia, serif; letter-spacing: .14em; }
.login-value-list strong, .login-value-list span { display: block; }
.login-value-list strong { margin-bottom: 4px; color: #3d2b20; font-size: 14px; }
.login-value-list span { color: var(--muted); font-size: 12px; line-height: 1.65; }
.login-founder-sign { display: flex; align-items: center; gap: 12px; margin-top: 24px; }
.login-founder-sign img { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; object-position: 70% 24%; border: 2px solid rgba(255,255,255,.85); box-shadow: 0 5px 16px rgba(65,39,19,.12); }
.login-founder-sign strong, .login-founder-sign span { display: block; }
.login-founder-sign strong { font-size: 13px; }
.login-founder-sign span { color: var(--muted); font-size: 11px; }
.login-card { width: 100%; padding: 38px; border: 1px solid rgba(168,111,50,.2); border-radius: 28px; background: rgba(255,253,249,.9); box-shadow: 0 22px 60px rgba(82,55,32,.12); backdrop-filter: blur(18px); }
.login-card-head { display: flex; align-items: center; gap: 13px; }
.login-card-head h2 { margin: 0; font-size: 25px; }
.login-symbol { width: 48px; height: 48px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 15px; background: #2e211a; color: #f6dfb5; font-size: 19px; }
.login-card > .muted { margin: 12px 0 0; font-size: 13px; }
.login-form-fields { display: grid; gap: 16px; margin-top: 26px; }
.login-card label { display: grid; gap: 7px; color: #5c4a3e; font-size: 13px; font-weight: 700; }
.login-card label small { color: var(--muted); font-weight: 500; }
.login-field { display: grid; gap: 7px; }
.login-field > label { display: block; }
.login-card input { height: 48px; padding: 0 13px; border-radius: 12px; }
.password-field { position: relative; display: block; }
.password-field input { padding-right: 72px; }
.password-toggle { position: absolute; top: 50%; right: 8px; min-width: 52px; padding: 7px 9px; border-radius: 8px; background: #f3ece3; color: #765431; font-size: 12px; transform: translateY(-50%); }
.password-toggle:hover, .password-toggle:focus-visible { background: #eadbc8; outline: none; box-shadow: 0 0 0 2px rgba(168,111,50,.14); }
.login-card .primary { min-height: 50px; margin-top: 2px; border-radius: 11px; background: #2e211a; color: #fff7e9; }
.login-card .message { margin: 12px 0 0; }
.login-learner-entry { display: block; width: fit-content; margin: -4px auto 10px; color: #81501f; font-size: 12px; font-weight: 800; text-decoration: none; }
.login-help { margin: 4px 0 0; color: #9a8a7f; font-size: 11px; text-align: center; }
.login-public-footer { min-height: 68px; display: flex; justify-content: center; align-items: center; gap: 18px; border-top: 1px solid rgba(112,76,43,.14); color: #79665a; font-size: 12px; letter-spacing: .05em; }
.login-public-footer i { width: 3px; height: 3px; border-radius: 50%; background: #b99167; }

input, select, textarea { width: 100%; border: 1px solid var(--line); border-radius: 10px; background: var(--surface-strong); color: var(--ink); outline: none; transition: .2s; }
input, select { height: 42px; padding: 0 12px; }
textarea { padding: 12px; resize: vertical; line-height: 1.65; }
input:focus, select:focus, textarea:focus { border-color: var(--gold); box-shadow: 0 0 0 3px rgba(167,123,37,.12); }

button { border: 0; border-radius: 10px; padding: 10px 14px; font-weight: 750; }
.primary { background: var(--ink); color: white; }
.primary:hover { background: #44392d; }
.ghost { border: 1px solid var(--line); background: var(--surface); color: var(--ink); }
.ghost:hover { border-color: #cbbda8; }
.danger { color: var(--red); }
.full { width: 100%; }
.small { padding: 8px 12px; font-size: 13px; }
.message { min-height: 22px; margin: 12px 0 0; color: var(--red); font-size: 13px; }

.topbar { position: sticky; top: 0; z-index: 20; display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 18px 28px; border-bottom: 1px solid var(--line); background: rgba(244,241,235,.92); backdrop-filter: blur(16px); }
.topbar h1 { margin: 0; font-size: 23px; }
.top-actions { display: flex; align-items: center; gap: 10px; }
.user-chip { display: inline-flex; align-items: center; min-height: 34px; padding: 7px 11px; border-radius: 9px; background: var(--gold-soft); color: #77581b; font-size: 12px; font-weight: 800; }
main { width: min(1480px, calc(100% - 40px)); margin: 24px auto 70px; }

.access-scope { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 14px; padding: 18px 20px; border: 1px solid #d8c39a; border-radius: 16px; background: linear-gradient(135deg, #fffaf0, #f3e6cb); box-shadow: 0 8px 25px rgba(90,62,27,.05); }
.access-scope h2 { margin: 0 0 5px; font-size: 18px; }
.access-scope p { margin: 0; color: var(--muted); line-height: 1.6; }
.access-capabilities { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px; }
.access-capabilities span { padding: 7px 10px; border: 1px solid #d8c39a; border-radius: 999px; background: rgba(255,255,255,.72); color: #76551f; font-size: 12px; font-weight: 800; white-space: nowrap; }

.slot-panel { display: flex; align-items: stretch; flex-direction: column; gap: 18px; margin-bottom: 14px; padding: 22px; border: 1px solid #d9c08c; border-radius: 14px; background: #fff8e9; }
.slot-panel h2 { margin: 0 0 10px; font-size: 20px; }
.slot-panel p { margin: 0; }
#quotaSummary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; overflow: hidden; border: 1px solid #e3d4b7; border-radius: 10px; background: rgba(255,255,255,.76); box-shadow: 0 8px 24px rgba(93,65,29,.05); }
.quota-line { display: grid; align-content: space-between; gap: 18px; min-width: 0; min-height: 124px; padding: 16px 18px; border-left: 1px solid #eadfc9; }
.quota-line:first-child { border-left: 0; }
.quota-title { display: grid; grid-template-columns: 24px minmax(0, 1fr); align-items: start; gap: 9px; }
.quota-title strong { color: #44362c; font-size: 13px; line-height: 1.45; }
.quota-index { display: inline-grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: var(--red); color: #fff; font-size: 12px; line-height: 1; }
.quota-values { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.quota-values > span { display: grid; gap: 4px; min-width: 0; }
.quota-values small { color: #918474; font-size: 10px; white-space: nowrap; }
.quota-values b { color: #5a4a3d; font-size: 20px; line-height: 1; }
.quota-values .quota-remaining b { color: #a86c16; }
.quota-line.quota-depleted { background: rgba(246,241,232,.72); }
.quota-line.quota-depleted .quota-remaining b { color: #a45a55; }
.supplement-editor { display: grid; gap: 12px; }
.supplement-field { display: grid; gap: 6px; }
.supplement-field span { color: var(--muted); font-size: 13px; font-weight: 700; }
.supplement-field textarea { width: 100%; min-height: 92px; resize: vertical; }
.interview-conversation-input { width: 100%; min-height: 230px; margin-top: 10px; resize: vertical; line-height: 1.75; }
.slot-form { display: grid; grid-template-columns: minmax(230px, .8fr) minmax(420px, 1.6fr) minmax(210px, .65fr); align-items: end; gap: 16px; padding-top: 2px; }
.slot-identity-fields { display: grid; gap: 10px; min-width: 0; }
.slot-name-field, .source-field { display: grid; gap: 6px; min-width: 0; }
.slot-name-field > span, .source-field > span { color: var(--muted); font-size: 12px; font-weight: 700; }
.slot-name-field input, .source-field select { width: 100%; }
.program-checks { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; min-width: 0; margin: 0; padding: 0; border: 0; }
.program-checks legend { width: 100%; margin-bottom: 2px; color: var(--muted); font-size: 12px; font-weight: 700; }
.program-check { display: inline-flex; align-items: center; gap: 10px; min-width: 178px; min-height: 58px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface-strong); cursor: pointer; }
.program-check:hover { border-color: #cbbda8; background: #fffaf1; }
.program-check input { width: 17px; height: 17px; margin: 0; accent-color: var(--gold); }
.program-check span { display: grid; gap: 2px; min-width: 0; }
.program-check strong { font-size: 12px; line-height: 1.35; }
.program-check small { color: var(--muted); font-size: 11px; }
.program-check.quota-empty { opacity: .58; cursor: not-allowed; }
.slot-submit { display: grid; gap: 8px; min-width: 210px; }
.slot-submit button { min-height: 52px; }
.slot-form-hint { color: var(--muted); font-size: 11px; line-height: 1.4; text-align: center; white-space: nowrap; }

.stats-grid { display: grid; grid-template-columns: repeat(6, minmax(130px, 1fr)); gap: 12px; }
.stat-card { min-height: 108px; padding: 18px; border: 1px solid var(--line); border-radius: 16px; background: var(--surface); box-shadow: 0 8px 25px rgba(44,34,21,.04); }
.stat-card span { color: var(--muted); font-size: 13px; }
.stat-card strong { display: block; margin-top: 8px; font-size: 29px; }
.stat-card.attention { background: var(--orange-soft); border-color: #edc9ae; }
.stat-card.success { background: var(--green-soft); border-color: #bcded0; }
.stat-card-clickable { width: 100%; color: var(--text); font: inherit; text-align: left; cursor: pointer; }
.stat-card-clickable small { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.stat-card-clickable small b { display: inline-grid; place-items: center; width: 27px; height: 27px; border-radius: 50%; background: #efe2cf; color: #7a4c20; font-size: 15px; transition: transform .18s ease, background .18s ease; }
.stat-card-clickable:hover, .stat-card-clickable:focus-visible { border-color: #c9a36f; background: #fff8ed; box-shadow: 0 13px 30px rgba(97,63,29,.1); transform: translateY(-2px); }
.stat-card-clickable:hover small b, .stat-card-clickable:focus-visible small b { background: #dfbd89; transform: translateX(3px); }

.tabs { display: flex; gap: 7px; margin: 24px 0 12px; padding: 5px; overflow-x: auto; border: 1px solid var(--line); border-radius: 13px; background: var(--surface); }
.tab { flex: 0 0 auto; background: transparent; color: var(--muted); }
.tab.active { background: var(--ink); color: white; }
.toolbar { display: grid; grid-template-columns: minmax(240px, 1fr) auto 190px 180px 180px; gap: 10px; margin-bottom: 12px; }
.toolbar-search { min-width: 78px; }
.bulk-bar { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; padding: 12px 15px; border-radius: 12px; background: var(--gold-soft); }
.bulk-bar select { width: 220px; }

.panel { border: 1px solid var(--line); border-radius: 16px; background: var(--surface); box-shadow: 0 8px 25px rgba(44,34,21,.035); overflow: hidden; }
.panel-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 18px 20px; border-bottom: 1px solid var(--line); }
.panel-head h2 { margin: 0; font-size: 18px; }
.panel-head-actions { display: flex; align-items: center; justify-content: flex-end; gap: 8px; }
.completion-view-toggle, .trash-toggle { min-height: 38px; padding: 8px 15px; border-radius: 999px; font-weight: 800; }
.trash-toggle.active { border-color: #c97d72; background: var(--red-soft); color: var(--red); }
.table-wrap { overflow: auto; }
table { width: 100%; border-collapse: collapse; min-width: 1050px; }
th { position: sticky; top: 0; z-index: 1; padding: 11px 12px; background: #f8f4ed; color: var(--muted); font-size: 12px; text-align: left; white-space: nowrap; }
td { padding: 12px; border-top: 1px solid var(--line); font-size: 13px; vertical-align: middle; }
tr:hover td { background: #fffaf1; }
.student-name { font-weight: 800; }
.student-name-line { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; min-width: 0; }
.student-source-tag { display: inline-flex; align-items: center; min-height: 22px; padding: 3px 8px; border: 1px solid #ddd8d0; border-radius: 999px; background: #efede9; color: #77716a; font-size: 10px; font-weight: 800; line-height: 1.2; white-space: nowrap; }
.student-meta { margin-top: 3px; color: var(--muted); font-size: 11px; }
.student-taxonomy, .taxonomy-tags { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; }
.student-taxonomy > span:not(.tag), .taxonomy-tags > span { display: inline-flex; align-items: center; min-height: 22px; padding: 3px 7px; border: 1px solid #e5dccd; border-radius: 6px; background: #f7f2ea; color: #6f6559; font-size: 10px; font-weight: 750; line-height: 1.2; white-space: nowrap; }
.student-taxonomy > span:nth-child(2) { border-color: #dfcda8; background: #fff6e4; color: #805b19; }
.industry-tags { max-width: 250px; }
.industry-tags > span { border-color: #cfe0d8; background: #edf7f2; color: #2b6955; }
.student-row { cursor: pointer; }
.student-open { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; column-gap: 12px; width: 100%; min-width: 185px; padding: 7px 9px; border: 1px solid #decda9; border-radius: 8px; background: #fffaf1; color: var(--ink); text-align: left; }
.student-open .student-name-line, .student-open .student-meta { grid-column: 1; }
.student-open > span { grid-column: 2; grid-row: 1 / span 2; color: var(--gold); font-size: 12px; font-weight: 800; white-space: nowrap; }
.student-open:hover, .student-open:focus-visible { border-color: var(--gold); background: var(--gold-soft); outline: none; box-shadow: 0 0 0 3px rgba(185,132,35,.16); }
.row-actions { display: flex; gap: 7px; }
.student-actions { flex-wrap: wrap; gap: 5px; min-width: 170px; }
.student-actions .tiny { padding: 6px 8px; font-size: 11px; }
.student-actions .student-delete { border-color: #e5c0bb; background: #fff8f7; }
.student-actions .student-delete:hover { border-color: #c97d72; background: var(--red-soft); }
.row-check { width: 18px; height: 18px; }
.rank-number { display: inline-grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: var(--gold-soft); font-weight: 850; }
.rank-number.top { background: var(--gold); color: white; }
.trash-area { border-top: 8px solid #f7f3ed; }
.trash-area-head { display: flex; align-items: center; justify-content: space-between; padding: 15px 20px; border-bottom: 1px solid var(--line); background: #fff8f7; }
.trash-area-head strong, .trash-area-head span { display: block; }
.trash-area-head span { margin-top: 4px; color: var(--muted); font-size: 12px; }
.trash-table { min-width: 820px; }
.trash-empty { background: #fffaf9; }

@media (max-width: 680px) {
  #completionPanel > .panel-head { align-items: flex-start; flex-direction: column; }
  #completionPanel .panel-head-actions { width: 100%; justify-content: flex-start; flex-wrap: wrap; }
}

.material-diagnosis-card { border-color: #dcc8a8; background: #fffdf8; }
.material-diagnosis-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.detail-flow-heading { display: grid; grid-template-columns: 36px minmax(0, 1fr); gap: 12px; align-items: start; min-width: 0; }
.detail-flow-heading > :last-child { min-width: 0; }
.detail-flow-number { display: block; min-height: 30px; padding-right: 10px; border-right: 2px solid #d8c7af; color: #201b18; font-family: Georgia, "Times New Roman", serif; font-size: 23px; font-weight: 800; line-height: 1.1; letter-spacing: 0; text-align: left; font-variant-numeric: tabular-nums; }
.material-diagnosis-head > .detail-flow-heading,
.student-supplement-card-head > .detail-flow-heading,
.ai-context-head > .detail-flow-heading { flex: 1 1 auto; }
.material-diagnosis-head h3 { margin: 3px 0 6px; }
.material-diagnosis-head .detail-actions { flex: 0 0 auto; margin: 0; }
.material-diagnosis-body { display: grid; gap: 10px; margin-top: 14px; line-height: 1.8; }
.material-diagnosis-body details { border: 1px solid #eadfce; border-radius: 8px; background: #fff; }
.material-diagnosis-body summary { padding: 11px 13px; cursor: pointer; font-weight: 700; }
.material-diagnosis-summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.material-diagnosis-summary button { flex: 0 0 auto; }
.material-diagnosis-overview { padding: 4px 13px 15px; }
.material-diagnosis-overview-intro, .material-diagnosis-overview-copy { margin: 8px 0; color: #55493c; white-space: pre-wrap; }
.material-diagnosis-overview-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 8px 0 0; padding: 0; list-style: none; }
.material-diagnosis-overview-item { display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: 10px; align-items: start; padding: 13px; border: 1px solid #eadfce; border-radius: 8px; background: #fffaf1; }
.material-diagnosis-overview-number { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: #8a5a24; color: #fff; font-weight: 800; line-height: 1; }
.material-diagnosis-overview-item strong { display: block; margin: 2px 0 5px; color: #5e4029; font-size: 15px; }
.material-diagnosis-overview-item div div { color: #51463b; line-height: 1.75; white-space: pre-wrap; }
.student-supplement-card { border: 1px solid #dcc8a8; border-radius: 10px; background: #fffaf0; overflow: hidden; }
.student-supplement-summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 15px 16px; cursor: pointer; list-style: none; }
.student-supplement-summary::-webkit-details-marker, .diagnosis-collapse-summary::-webkit-details-marker, .ai-context-summary::-webkit-details-marker { display: none; }
.student-supplement-summary strong { display: block; margin-top: 5px; font-size: 17px; }
.student-supplement-panel { border-top: 1px solid #eadfce; }
.student-supplement-guidance { margin: 0; padding: 12px 16px; border-bottom: 1px solid #eadfce; }
.student-supplement-body { padding: 14px 16px 16px; background: #fff; }
.student-supplement-intro { margin: 0 0 12px; color: var(--muted); white-space: pre-wrap; }
.student-supplement-list { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.student-supplement-item { display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: 10px; align-items: start; padding: 12px; border: 1px solid #eee3d2; border-radius: 8px; background: #fffdf9; }
.student-supplement-number { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: #8a5a24; color: #fff; font-weight: 800; line-height: 1; }
.student-supplement-item strong { display: block; margin: 1px 0 5px; color: #5e4029; font-size: 15px; }
.student-supplement-item-copy, .student-supplement-content { color: #423a31; line-height: 1.75; white-space: pre-wrap; }
.student-advice-variant { padding: 16px; background: #fff; }
.student-advice-variant + .student-advice-variant { border-top: 1px solid #eadfce; }
.student-advice-variant-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 10px; }
.student-advice-variant-head span { display: block; color: #9a6a2d; font-size: 12px; font-weight: 800; }
.student-advice-variant-head strong { display: block; margin-top: 3px; color: #5e4029; font-size: 17px; }
.student-advice-variant-head small { max-width: 430px; color: var(--muted); line-height: 1.55; text-align: right; }
.student-advice-editor { box-sizing: border-box; width: 100%; min-height: 300px; resize: vertical; border: 1px solid #d8c4a4; border-radius: 8px; background: #fffdf9; padding: 14px; color: #342d27; font: inherit; line-height: 1.75; }
.student-advice-editor:focus { outline: 2px solid rgba(166, 115, 52, .24); border-color: #a67334; }
.student-warm-message { border: 1px solid #ead7b5; border-radius: 8px; background: #fffaf0; padding: 14px 16px; color: #493c31; line-height: 1.8; white-space: pre-wrap; }
.script-hook-module-title { display: flex; align-items: center; gap: 8px; margin: 16px 0 8px; padding: 8px 12px; border-left: 3px solid #b68a49; border-radius: 6px; background: #fff5e6; color: #76512f; font-size: 15px; }
.generated-output .script-body-label { display: flex; align-items: center; gap: 10px; margin: 12px 0 8px; padding: 8px 10px; border: 0; border-left: 3px solid #a8875b; border-radius: 0; background: rgba(239, 216, 181, .32); color: #68472f; font-size: 15px; font-weight: 800; line-height: 1.4; }
.generated-output .script-body-label::after { content: ""; flex: 1; height: 1px; background: rgba(168, 135, 91, .38); }
.generated-output .script-module-hint-inline { min-width: 0; color: inherit; font-size: 12px; font-weight: 650; line-height: 1.4; opacity: .88; }

@media (max-width: 760px) {
  .material-diagnosis-head { flex-direction: column; }
  .material-diagnosis-head .detail-actions { width: 100%; }
  .material-diagnosis-overview-list { grid-template-columns: 1fr; }
  .diagnosis-collapse-summary { align-items: flex-start; flex-direction: column; }
  .diagnosis-collapse-summary button { width: 100%; }
  .student-advice-variant-head { flex-direction: column; }
  .student-advice-variant-head small { max-width: none; text-align: left; }
}

.tag { display: inline-flex; align-items: center; gap: 5px; padding: 5px 9px; border-radius: 999px; background: #eee9e0; color: #655c50; font-size: 11px; font-weight: 800; white-space: nowrap; }
.tag.green { background: var(--green-soft); color: var(--green); }
.tag.orange { background: var(--orange-soft); color: var(--orange); }
.tag.red { background: var(--red-soft); color: var(--red); }
.progress-mini { width: 110px; height: 7px; overflow: hidden; border-radius: 999px; background: #e9e3d9; }
.progress-mini i { display: block; height: 100%; border-radius: inherit; background: var(--gold); }

.assignment-layout { display: grid; grid-template-columns: 340px minmax(0,1fr); gap: 14px; }
.source-group-shell { overflow: hidden; border: 1px solid var(--line); border-radius: 16px; background: #fffdf9; box-shadow: 0 8px 25px rgba(44,34,21,.035); }
.source-group-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; padding: 22px 24px; border-bottom: 1px solid var(--line); }
.source-group-head h2 { margin: 2px 0 6px; font-size: 22px; }
.source-group-head p:last-child { margin: 0; color: var(--muted); font-size: 13px; }
.source-group-layout { display: grid; grid-template-columns: 280px minmax(0, 1fr); min-height: 560px; }
.source-group-list { display: grid; align-content: start; gap: 7px; padding: 14px; border-right: 1px solid var(--line); background: #f8f4ed; }
.source-group-card { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 3px 8px; width: 100%; padding: 13px 14px; border: 1px solid transparent; border-radius: 8px; background: transparent; color: var(--ink); text-align: left; }
.source-group-card strong { grid-column: 1; font-size: 14px; }
.source-group-card small { grid-column: 1; overflow: hidden; color: var(--muted); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.source-group-role { grid-column: 2; grid-row: 1; align-self: start; color: #8b8177; font-size: 10px; font-weight: 800; }
.source-group-count { grid-column: 1 / -1; margin-top: 7px; color: #786e64; font-size: 11px; }
.source-group-count b { color: var(--brown); font-size: 15px; }
.source-group-card:hover { border-color: #d9cbb8; background: #fffaf1; }
.source-group-card.active { border-color: #b9945f; background: #fff5e4; box-shadow: inset 3px 0 0 #b98423; }
.source-group-detail { min-width: 0; overflow: hidden; background: #fff; }
.source-group-detail > .panel-head { min-height: 88px; }
.member-form { display: grid; gap: 9px; padding: 16px; }
.member-quota-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; padding: 12px; border: 1px solid var(--line); border-radius: 8px; background: #faf8f4; }
.quota-field { display: grid; gap: 6px; color: var(--muted); font-size: 12px; }
.member-quota-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; margin-top: 10px; }
.member-quota-item { display: flex; justify-content: space-between; gap: 8px; padding: 7px 9px; border: 1px solid var(--line); border-radius: 6px; background: #faf8f4; color: var(--muted); font-size: 11px; }
.member-quota-item b { color: var(--text); white-space: nowrap; }
.member-form-actions { display: grid; grid-template-columns: 1fr auto; gap: 8px; }
.member-cards { display: grid; gap: 9px; padding: 0 16px 16px; }
.member-card { padding: 13px; border: 1px solid var(--line); border-radius: 12px; background: white; }
.member-card-head { display: flex; justify-content: space-between; gap: 10px; }
.member-card p { margin: 5px 0 0; color: var(--muted); font-size: 12px; }
.member-card-actions { display: flex; align-items: center; gap: 7px; }
.role-label { display: inline-flex; margin-top: 8px; padding: 4px 8px; border-radius: 7px; background: #f3eee5; color: #695f52; font-size: 11px; font-weight: 800; }

.drawer-backdrop { position: fixed; inset: 0; z-index: 40; background: rgba(32,25,17,.32); }
.drawer { position: fixed; inset: 0; z-index: 50; width: 100vw; height: 100dvh; display: flex; flex-direction: column; background: var(--surface); box-shadow: -24px 0 70px rgba(32,25,17,.2); transform: translateX(102%); transition: transform .25s ease; }
.drawer.open { transform: translateX(0); }
.drawer-head { position: relative; z-index: 12; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px max(22px, calc((100vw - 1440px) / 2)); border-bottom: 1px solid var(--line); background: rgba(255,253,249,.98); box-shadow: 0 8px 24px rgba(44,34,21,.06); }
.drawer-head h2 { margin: 0; }
.icon-button { width: 40px; height: 40px; display: grid; place-items: center; padding: 0; border-radius: 50%; background: #eee8df; font-size: 25px; }
.drawer-content { flex: 1; min-height: 0; padding: 22px max(22px, calc((100vw - 1440px) / 2)) 80px; overflow-y: auto; overscroll-behavior: contain; scroll-behavior: auto; -webkit-overflow-scrolling: touch; }
.detail-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; width: min(1440px, 100%); margin: 0 auto; }
.detail-card { padding: 14px; border: 1px solid var(--line); border-radius: 12px; background: white; }
.detail-card.wide { grid-column: 1 / -1; }
.detail-card h3 { margin: 0 0 10px; font-size: 15px; }
.archive-download-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 40px; margin-top: 10px; padding: 9px 14px; border: 1px solid #79523d; border-radius: 8px; background: #4b3024; color: #fff8ef; font-size: 13px; font-weight: 850; text-decoration: none; }
.archive-download-btn:hover { background: #684533; }
.support-records { padding: 0; overflow: hidden; }
.support-records > summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 74px; padding: 16px 18px; cursor: pointer; list-style: none; }
.support-records > summary::-webkit-details-marker { display: none; }
.support-records > summary span { min-width: 0; }
.support-records > summary strong, .support-records > summary small { display: block; }
.support-records > summary strong { color: var(--brown-dark); font-size: 15px; }
.support-records > summary small { margin-top: 5px; color: var(--muted); font-size: 12px; font-weight: 650; }
.support-records > summary i { display: grid; place-items: center; flex: 0 0 auto; width: 30px; height: 30px; border-radius: 50%; background: #f3eee5; color: var(--brown); font-size: 22px; font-style: normal; transition: transform .2s ease; }
.support-records[open] > summary { border-bottom: 1px solid var(--line); background: #fffcf7; }
.support-records[open] > summary i { transform: rotate(90deg); }
.support-records-content { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 18px; padding: 18px; }
.support-records-content > section { min-width: 0; }
.support-records-content h4 { margin: 0 0 9px; font-size: 14px; }
.student-materials-records { padding: 0; overflow: hidden; }
.student-materials-records > summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 78px; padding: 16px 18px; cursor: pointer; list-style: none; }
.student-materials-records > summary::-webkit-details-marker { display: none; }
.student-materials-records > summary span { min-width: 0; }
.student-materials-records > summary strong, .student-materials-records > summary small { display: block; }
.student-materials-records > summary strong { color: var(--brown-dark); font-size: 15px; }
.student-materials-records > summary small { margin-top: 5px; color: var(--muted); font-size: 12px; font-weight: 650; line-height: 1.55; }
.student-materials-records > summary i { display: grid; place-items: center; flex: 0 0 auto; width: 30px; height: 30px; border-radius: 50%; background: #f8d9d5; color: #9f302b; font-size: 22px; font-style: normal; transition: transform .2s ease; }
.student-materials-records > summary { position: sticky; top: 0; z-index: 12; border: 2px solid #e4544d; border-radius: 10px; background: #fff7f5; box-shadow: 0 6px 16px rgba(173, 55, 47, .14); }
.student-materials-records[open] > summary { border-color: #e4544d; background: #fff2ef; }
.student-materials-records[open] > summary i { transform: rotate(90deg); }
.student-materials-content { display: grid; gap: 22px; padding: 18px; }
.student-material-section + .student-material-section { padding-top: 22px; border-top: 1px solid var(--line); }
.student-material-section h3 { margin: 0 0 10px; font-size: 15px; }
.student-materials-content > .support-records { margin: 0 -18px -18px; border-top: 1px solid var(--line); }
.student-materials-content .support-records > summary,
.student-materials-content details:not(.student-materials-records) > summary { border: 2px solid #e4544d; border-radius: 10px; background: #fff7f5; }
.student-materials-content .support-records[open] > summary,
.student-materials-content details:not(.student-materials-records)[open] > summary { background: #fff2ef; }
.profile-list { display: grid; gap: 0; }
.profile-row { display: grid; grid-template-columns: minmax(150px, max-content) minmax(0, 1fr); gap: 20px; padding: 12px 0; border-bottom: 1px dashed var(--line); }
.profile-row:last-child { border-bottom: 0; }
.profile-row dt { color: var(--muted); font-size: 12px; }
.profile-row dd { margin: 0; white-space: pre-wrap; line-height: 1.65; }
.question-label { display: inline-flex; align-items: flex-start; gap: 9px; min-width: 0; color: var(--brown-dark); font-weight: 800; line-height: 1.45; }
.question-number { display: inline-grid; place-items: center; flex: 0 0 auto; min-width: 27px; height: 27px; padding: 0 6px; border-radius: 50%; background: linear-gradient(135deg, var(--gold), #d5b26f); color: #fff; font-size: 12px; font-weight: 900; box-shadow: 0 4px 10px rgba(109,66,31,.14); }
.supplement-answer-group { display: grid; gap: 10px; }
.supplement-answer-group + .supplement-answer-group { margin-top: 18px; }
.supplement-answer-group h5 { margin: 0; padding: 9px 11px; border-left: 4px solid var(--gold); border-radius: 7px; background: #fff6e7; color: var(--brown); font-size: 13px; }
.supplement-field > span { display: block; }
.supplement-field .question-label { display: flex; color: var(--brown-dark); }
.supplement-field .question-number { color: #fff; }
.supplement-field .question-label > span:last-child { color: var(--brown-dark); }
.content-block { margin: 9px 0; padding: 12px; border-radius: 10px; background: #f8f4ed; white-space: pre-wrap; line-height: 1.65; max-height: 360px; overflow: auto; }
.content-block.large { max-height: 640px; }
.ready-score { color: var(--green); }
.pending-score { color: var(--orange); }
.file-upload-row { display: grid; grid-template-columns: minmax(180px, .8fr) minmax(180px, 1fr) auto; gap: 9px; align-items: center; margin: 10px 0; }
.file-list { display: grid; gap: 8px; margin-top: 10px; }
.file-item { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 10px; background: #fffdf9; }
.file-item strong, .file-item span { display: block; }
.file-item span { margin-top: 4px; color: var(--muted); font-size: 12px; }
.synced-files { margin: 15px 0; padding: 14px 16px; border: 1px solid #d8bd91; border-radius: 12px; background: linear-gradient(135deg, #fff9ee, #fffdf9); }
.synced-files > div:first-child strong, .synced-files > div:first-child span { display: block; }
.synced-files > div:first-child span { margin-top: 3px; color: var(--muted); font-size: 12px; }
.synced-file-list { display: grid; gap: 7px; margin-top: 10px; }
.synced-file-item { display: flex; justify-content: space-between; gap: 10px; padding: 9px 11px; border: 1px solid var(--line); border-radius: 9px; color: var(--ink); background: #fff; text-decoration: none; }
.synced-file-item span { color: var(--muted); font-size: 12px; }
#drawerScript { max-height: none; overflow: visible; }
.script-workspace { padding: 22px; }
.script-workspace-title { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 12px; }
.script-workspace-title h3 { margin-bottom: 0; font-size: 20px; }
.script-workspace-status { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 8px; }
.publish-shortcut { flex: 0 0 auto; margin-left: auto; }
.publish-shortcut-button { min-height: 36px; padding: 8px 14px; border: 1px solid #8a4d34; border-radius: 8px; background: #8a4d34; color: #fff8ef; font-size: 13px; font-weight: 850; cursor: pointer; box-shadow: 0 5px 12px rgba(138,77,52,.16); }
.publish-shortcut-button:hover, .publish-shortcut-button:focus-visible { background: #a46143; outline: none; }
.publish-shortcut-button.is-review-progress, #directorSubmitReviewBtn.is-review-progress { --review-submit-progress: 0%; position: relative; display: inline-grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; align-items: center; min-width: 230px; overflow: hidden; opacity: 1; }
.publish-shortcut-button.is-review-progress::after, #directorSubmitReviewBtn.is-review-progress::after { position: absolute; right: 0; bottom: 0; left: 0; height: 4px; background: linear-gradient(90deg, #f4c06a var(--review-submit-progress), rgba(255,255,255,.28) var(--review-submit-progress)); content: ''; transition: background .25s ease; }
.publish-shortcut-button.is-review-progress span, .publish-shortcut-button.is-review-progress small, #directorSubmitReviewBtn.is-review-progress span, #directorSubmitReviewBtn.is-review-progress small { position: relative; z-index: 1; }
.publish-shortcut-button.is-review-progress small, #directorSubmitReviewBtn.is-review-progress small { color: inherit; font-size: 10px; font-weight: 850; }
.publish-shortcut-button.is-review-progress.is-complete, #directorSubmitReviewBtn.is-review-progress.is-complete { border-color: #4f8b68; background: #e9f6ed; color: #2f7653; box-shadow: none; }
.publish-shortcut-button.is-review-progress.is-complete::after, #directorSubmitReviewBtn.is-review-progress.is-complete::after { background: #5e9c72; }
.publish-shortcut-success, .publish-shortcut-locked { display: inline-flex; align-items: center; min-height: 36px; padding: 8px 12px; border: 1px solid #b9d8bf; border-radius: 8px; background: #eef8f0; color: #3f7a50; font-size: 12px; font-weight: 800; }
.publish-shortcut-locked { border-color: #ded6cc; background: #f6f2ed; color: #786d62; }
.script-publication-badge { display: inline-flex; align-items: center; min-height: 28px; border-radius: 999px; padding: 5px 11px; font-size: 12px; font-weight: 800; letter-spacing: 0; white-space: nowrap; }
.script-publication-badge-published { border: 1px solid #65a879; background: #e8f7ec; color: #24643a; }
.script-publication-badge-draft { border: 1px solid #d6b06a; background: #fff6df; color: #805c20; }
.script-workspace-published { border-color: #75ad86; box-shadow: 0 0 0 2px rgba(101, 168, 121, .12); }
.interview-review-bar { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:12px 14px; margin:12px 0 16px; border:1px solid var(--line); background:var(--surface); border-radius:10px; }
.interview-review-bar div { display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.interview-review-bar span { color:var(--muted); font-size:13px; }
.script-tabs { position: sticky; top: -1px; z-index: 8; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; margin: 0 0 12px; padding: 8px; border: 1px solid var(--line); border-radius: 11px; background: rgba(255,253,249,.97); box-shadow: 0 8px 18px rgba(90,62,27,.08); backdrop-filter: blur(10px); }
.script-tab { --tab-color: #4c3024; position: relative; display: grid; grid-template-columns: 31px minmax(0, 1fr) auto; align-items: center; gap: 7px; min-height: 62px; padding: 8px 100px 8px 10px; border: 1px solid #bda28f; border-radius: 9px; background: linear-gradient(145deg, #f4ece5, #e6d7ca); color: #4c3024; text-align: left; box-shadow: 0 4px 10px rgba(74,45,32,.08); }
.script-tab.script-section-tab-two { --tab-color: #684936; border-color: #c9ad98; background: linear-gradient(145deg, #f7f0ea, #eadccf); color: #684936; }
.script-tab.script-section-tab-three { --tab-color: #84634c; border-color: #d2baa6; background: linear-gradient(145deg, #fbf6f1, #eee3d9); color: #76543f; }
.script-tab.active { border-color: #4a2d22; background: linear-gradient(145deg, #3d241b, #6b4632); color: #fff8ef; box-shadow: 0 7px 15px rgba(61,36,27,.2); }
.script-tab:hover { transform: translateY(-1px); }
.script-section-number { display: grid; place-items: center; width: 29px; height: 29px; border: 1px solid currentColor; border-radius: 50%; background: rgba(255,255,255,.78); color: var(--tab-color); font-size: 15px; font-weight: 900; }
.script-tab.active .script-section-number { border-color: #eed4ad; background: #f7e4c4; color: #4b2e22; }
.script-tab > span:last-child { display: block; min-width: 0; }
.script-tab > .script-section-tab-label { display: block; min-width: 0; }
.script-section-open { display: inline-flex; align-items: center; justify-content: center; min-height: 27px; padding: 4px 12px; border: 1px solid #a97949; border-radius: 999px; background: rgba(255,250,240,.88); color: #74482f; font-size: 11px; font-weight: 850; line-height: 1; white-space: nowrap; }
.script-tab.active .script-section-open { border-color: #efc98a; background: #fff0d2; color: #5a3726; }
.script-section-copy { position: absolute; top: 50%; right: 10px; z-index: 2; display: inline-flex; align-items: center; justify-content: center; min-height: 30px; padding: 5px 8px; border: 1px solid #b68a49; border-radius: 7px; background: #fff8ea; color: #70482f; cursor: pointer; font-size: 11px; font-weight: 850; line-height: 1.2; white-space: nowrap; transform: translateY(-50%); }
.script-section-copy:hover, .script-section-copy:focus-visible { border-color: #8f6332; background: #f8ead3; outline: none; }
.script-tab.active .script-section-copy { border-color: #d6b277; background: #fff2d9; color: #633f29; }
.script-section-copy.is-copied { border-color: #4f8b68; background: #e9f6ed; color: #2f7653; }
.script-tab strong { display: block; color: currentColor; font-size: 13px; line-height: 1.35; }
.script-tab small { display: block; margin-top: 3px; color: currentColor; font-size: 10px; line-height: 1.3; opacity: .78; }
.script-meta { margin: 4px 2px 12px; color: var(--muted); font-size: 13px; }
.script-length-warning { margin: 0 2px 12px; padding: 10px 12px; border: 1px solid #cf6d5d; border-radius: 8px; background: #fff1ee; color: #9b3d36; font-size: 13px; font-weight: 750; line-height: 1.6; }
.detail-actions { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 10px; }
.generation-control-card, .publish-control-card, .reopen-control-card { display: flex; align-items: flex-start; justify-content: space-between; gap: 22px; margin: 14px 0 16px; padding: 22px 24px; border: 1px solid #d9bd8c; border-radius: 14px; background: linear-gradient(135deg, #fff8e9, #fffdf9); }
.generation-control-card { display: block; }
.generation-control-heading { display: flex; align-items: baseline; flex-wrap: wrap; gap: 7px 14px; margin-bottom: 14px; padding-bottom: 14px; border-bottom: 1px solid #dfccb0; }
.generation-control-heading .eyebrow { width: 100%; }
.generation-control-heading h3 { margin: 0; }
.generation-control-heading > p:last-child { flex: 1 1 340px; }
.generation-method-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; align-items: stretch; }
.generation-method-card { display: flex; min-width: 0; padding: 17px; border: 1px solid #d8bd91; border-radius: 10px; background: #fffdf8; flex-direction: column; }
.generation-method-head { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 11px; align-items: start; min-height: 66px; padding-bottom: 13px; border-bottom: 1px solid #ead8bb; }
.generation-method-number { display: inline-flex; align-items: center; justify-content: center; min-height: 30px; padding: 6px 9px; border-radius: 7px; background: #9a6125; color: #fff; font-size: 12px; font-weight: 900; white-space: nowrap; }
.generation-method-head h4 { margin: 0; color: var(--brown-dark); font-size: 17px; line-height: 1.35; }
.generation-method-head p { margin-top: 4px; font-size: 11px; line-height: 1.55; }
.generation-control-actions { display: grid; gap: 8px; max-width: 720px; margin-top: 12px; padding-top: 12px; border-top: 1px solid #ead8bb; }
.generation-control-finished { min-width: 0; }
.generation-control-card h3, .publish-control-card h3, .reopen-control-card h3 { margin: 2px 0 7px; font-size: 23px; color: var(--brown-dark); }
.generation-control-card p, .publish-control-card p, .reopen-control-card p { max-width: 920px; margin: 0; color: var(--muted); font-size: 13px; line-height: 1.75; }
.generation-control-card strong { color: #9b3d36; }
.script-md-import { display: grid; grid-template-columns: minmax(210px, 1fr) auto; gap: 8px; align-items: center; max-width: 720px; margin-top: 16px; padding-top: 14px; border-top: 1px solid #ead8bb; }
.script-md-import input[type="file"] { min-width: 0; padding: 8px; border: 1px solid #d6c7b3; border-radius: 7px; background: #fff; color: var(--brown-dark); font: inherit; font-size: 12px; }
.script-md-import button { min-height: 38px; white-space: nowrap; }
.script-md-import small { grid-column: 1 / -1; color: var(--muted); font-size: 11px; line-height: 1.55; }
.script-music-match-control { grid-template-columns: auto minmax(0, 1fr); margin-top: 8px; padding-top: 0; border-top: 0; }
.script-music-match-control small { grid-column: 2; }
.source-md-import { max-width: none; margin-top: 14px; padding-top: 0; border-top: 0; }
.md-import-title { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 8px; }
.md-import-title strong { color: var(--brown-dark); font-size: 14px; }
.md-import-title span { color: var(--muted); font-size: 11px; }
.md-import-fields { display: grid; grid-template-columns: minmax(210px, 1fr) auto; gap: 8px; align-items: center; }
.md-import-fields input[type="file"], .finished-script-md-import input[type="file"] { min-width: 0; width: 100%; padding: 8px; border: 1px solid #d6c7b3; border-radius: 7px; background: #fff; color: var(--brown-dark); font: inherit; font-size: 12px; }
.source-md-import > small, .finished-script-md-import > small { display: block; margin-top: 7px; color: var(--muted); font-size: 11px; line-height: 1.55; }
.source-md-import > .message { display: block; margin-top: 4px; }
.finished-script-md-import { display: grid; gap: 8px; margin-top: 14px; padding: 0; border: 0; background: transparent; }
.finished-script-sync { min-height: 40px; border: 0; border-radius: 7px; background: #9a6125; color: #fff; font-weight: 850; cursor: pointer; }
.finished-script-sync:hover { background: #75491c; }
.finished-script-sync:disabled { cursor: not-allowed; opacity: .5; }
.finished-script-progress { min-height: 80px; padding: 10px 11px; border: 1px solid #d6b57f; border-radius: 7px; background: #fff; color: #654526; }
.finished-script-progress-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; font-size: 12px; }
.finished-script-progress-head span { font-weight: 850; }
.finished-script-progress-head strong { color: #8a5a24; font-size: 12px; white-space: nowrap; }
.finished-script-progress-track { height: 7px; margin-top: 8px; overflow: hidden; border-radius: 999px; background: #eee4d5; }
.finished-script-progress-track i { display: block; width: 34%; height: 100%; border-radius: inherit; background: #9a6125; animation: finished-script-progress-sweep 1.35s ease-in-out infinite; }
.finished-script-progress p { margin: 7px 0 0; color: #746456; font-size: 11px; line-height: 1.5; }
.finished-script-progress.is-done { border-color: #7aaa8a; background: #f1faf4; }
.finished-script-progress.is-done .finished-script-progress-track i { width: 100%; background: #4f8b68; animation: none; transform: none; }
.finished-script-progress.is-error { border-color: #d19086; background: #fff3f1; }
.finished-script-progress.is-error .finished-script-progress-track i { width: 100%; background: #bd5a4e; animation: none; transform: none; }
.script-generation-progress { margin-top: 4px; }
.script-generation-progress .finished-script-progress-track i { animation: none; transition: width .35s ease; }
.material-diagnosis-progress { margin: 12px 0 4px; }
.material-diagnosis-progress .finished-script-progress-track i { animation: none; transition: width .35s ease; }
.script-generation-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; margin-top: 9px; }
.script-generation-steps.material-diagnosis-progress-steps { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.script-generation-steps span { min-width: 0; padding: 5px 4px; border: 1px solid #e1d4c3; border-radius: 6px; background: #f7f2ea; color: #8b7a69; text-align: center; font-size: 10px; font-weight: 800; }
.script-generation-steps span.is-active { border-color: #b68a49; background: #fff0ce; color: #75491c; }
.script-generation-steps span.is-done { border-color: #82aa8f; background: #eaf6ed; color: #397052; }
.script-generation-steps span.is-muted { opacity: .45; }
@keyframes finished-script-progress-sweep {
  0% { transform: translateX(-105%); }
  50% { transform: translateX(95%); }
  100% { transform: translateX(295%); }
}
.generation-method-divider { display: flex; align-items: center; gap: 9px; margin: 2px 0; color: var(--muted); }
.generation-method-divider::before, .generation-method-divider::after { height: 1px; background: #dfccb0; content: ''; flex: 1; }
.generation-method-divider span { color: #8d6b48; font-size: 12px; font-weight: 850; }
.generation-method-divider small { white-space: nowrap; font-size: 10px; }
.file-purpose-tag { display: inline-block; margin-right: 7px; padding: 2px 5px; border: 1px solid #c89a5a; border-radius: 4px; background: #fff5df; color: #81501f; font-size: 10px; }
.generation-primary, .publish-primary { flex: 0 0 auto; min-width: 210px; padding: 15px 20px; border: 0; border-radius: 10px; background: #2d251f; color: #fff8ef; font-size: 16px; font-weight: 900; cursor: pointer; box-shadow: 0 9px 18px rgba(45,37,31,.16); }
.generation-primary:hover, .publish-primary:hover { background: #47372e; transform: translateY(-1px); }
.generation-primary:disabled { cursor: not-allowed; opacity: .48; transform: none; }
.generation-single-actions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; margin-top: 0; }
.generation-secondary { min-width: 104px; padding: 9px 13px; border: 1px solid #b34d43; border-radius: 8px; background: #fff5f1; color: #923d36; font-weight: 800; cursor: pointer; }
.generation-control-actions .generation-primary { width: 100%; min-width: 0; }
.generation-control-actions .generation-secondary { min-width: 0; padding: 8px 6px; font-size: 12px; white-space: nowrap; }
.generation-secondary:hover { background: #fbe1d9; transform: translateY(-1px); }
.generation-secondary:disabled { cursor: not-allowed; opacity: .45; transform: none; }
.ai-adjust-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.ai-adjust-heading h3 { margin: 2px 0 0; font-size: 20px; }
.director-instruction-guide { margin: 12px 0; padding: 13px 15px; border: 1px solid #ead8bb; border-radius: 10px; background: #fff9ef; color: #665444; font-size: 12px; line-height: 1.65; }
.director-instruction-guide strong { color: var(--brown); }
.director-instruction-guide ol { margin: 7px 0 4px; padding-left: 21px; }
.director-instruction-guide li + li { margin-top: 3px; }
.publish-control-card { border-color: #c9b89e; background: #fff; }
.publish-confirm-actions { flex: 0 0 250px; display: grid; gap: 9px; align-self: center; }
.publish-confirm-actions button { width: 100%; min-width: 0; }
.publish-primary { background: #8a4d34; }
.publish-primary:hover { background: #a46143; }
.publish-primary:disabled { cursor: not-allowed; opacity: .72; transform: none; }
.publish-success-note { display: block; color: #3f7a50; font-size: 12px; font-weight: 800; text-align: center; }
.permission-lock { flex: 0 0 auto; padding: 12px 15px; border-radius: 9px; background: #f1ede7; color: #6e6258; font-size: 12px; font-weight: 800; }
.reopen-control-card { margin-top: 18px; border-color: #d28c80; background: #fff3f0; }
.reopen-control-card h3 { color: #9b3d36; }
.reopen-control-card .reopen-source-btn { flex: 0 0 auto; min-width: 210px; padding: 15px 20px; border: 0; border-radius: 10px; background: #b34d43; color: #fff; font-size: 16px; font-weight: 900; box-shadow: 0 9px 18px rgba(155,61,54,.18); }
.reopen-control-card .reopen-source-btn:hover { background: #963d35; transform: translateY(-1px); }
.manual-editor { margin: 20px 0 0; padding: 18px; border: 1px solid #d7bd98; border-radius: 14px; background: linear-gradient(145deg, #fffaf1, #f8eddd); }
.manual-editor.manual-editor-collapsed { display: none; }
.manual-editor-toggle { width: 100%; margin-top: 14px; padding: 13px 16px; border-style: dashed; font-weight: 800; }
.manual-editor-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; margin-bottom: 12px; }
.manual-editor-head h3 { margin: 0; font-size: 18px; }
.manual-editor-meta { display: grid; justify-items: end; gap: 5px; color: var(--muted); font-size: 12px; text-align: right; }
.manual-editor-status { color: #4f8b68; font-weight: 800; }
.manual-editor textarea { width: 100%; min-height: 360px; max-height: min(640px, calc(100dvh - 220px)); margin: 0; padding: 24px 28px; border-color: #d8c8b2; border-radius: 12px; background: #fff; font-family: inherit; font-size: 16px; line-height: 1.95; resize: vertical; overflow: auto; }
.manual-editor .editor-actions { position: sticky; bottom: 10px; z-index: 5; justify-content: flex-end; padding: 10px; border-radius: 12px; background: rgba(255,250,241,.94); box-shadow: 0 8px 24px rgba(61,36,27,.12); backdrop-filter: blur(10px); }
.ai-adjust-panel { margin-top: 18px; padding: 18px; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.ai-adjust-panel > h3 { font-size: 17px; }
.ai-adjust-dock { margin: 12px 0 14px; transition: border-color .18s ease, box-shadow .18s ease; }
.ai-adjust-dock.floating-active { position: sticky; top: 78px; z-index: 14; max-height: calc(100dvh - 96px); overflow: auto; border-color: #b68a49; box-shadow: 0 16px 38px rgba(70,46,30,.16); }
.script-workspace.floating-active { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, 380px); grid-template-areas: "title title" "review review" "generation generation" "tabs tabs" "meta meta" "script dock" "manual-toggle manual-toggle" "manual manual" "publish publish" "reopen-note reopen-note" "reopen reopen"; column-gap: 18px; align-items: start; }
.script-workspace.floating-active > .script-workspace-title { grid-area: title; }
.script-workspace.floating-active > .interview-review-bar { grid-area: review; }
.script-workspace.floating-active > .generation-control-card { grid-area: generation; }
.script-workspace.floating-active > .script-tabs { grid-area: tabs; }
.script-workspace.floating-active > .script-meta { grid-area: meta; }
.script-workspace.floating-active > #drawerScript { grid-area: script; min-width: 0; }
.script-workspace.floating-active > .ai-adjust-dock { grid-area: dock; width: auto; min-width: 0; margin: 0; align-self: start; }
.script-workspace.floating-active > .manual-editor-toggle { grid-area: manual-toggle; }
.script-workspace.floating-active > .manual-editor { grid-area: manual; min-width: 0; }
.script-workspace.floating-active > .publish-control-card { grid-area: publish; }
.script-workspace.floating-active > .reopen-active-note { grid-area: reopen-note; }
.script-workspace.floating-active > .reopen-control-card { grid-area: reopen; }
.ai-adjust-dock.floating-active > textarea { min-height: 92px; max-height: 150px; }
.ai-adjust-dock.annotation-active { position: sticky; top: 78px; z-index: 15; max-height: calc(100dvh - 96px); overflow: auto; border-color: #b68a49; box-shadow: 0 18px 44px rgba(70,46,30,.2); }
.ai-adjust-dock.annotation-active .ai-adjust-heading, .ai-adjust-dock.annotation-active > .muted, .ai-adjust-dock.annotation-active > textarea, .ai-adjust-dock.annotation-active .permission-note { display: none; }
.ai-adjust-dock.annotation-active .annotation-controls { margin-top: 0; }
.ai-adjust-dock.annotation-active .annotation-queue { max-height: 160px; }
.annotation-controls { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 13px 0 10px; padding: 10px 12px; border: 1px solid #e2d4bf; border-radius: 10px; background: #faf7f2; }
.annotation-controls > span { color: var(--muted); font-size: 12px; font-weight: 750; }
.annotation-mode-toggle { flex: 0 0 auto; font-weight: 850; }
.annotation-mode-toggle.active { border-color: #8a4d34; background: #8a4d34; color: #fff; }
.floating-dock-toggle { flex: 0 0 auto; font-weight: 850; }
.floating-dock-toggle.active { border-color: #b68a49; background: #b68a49; color: #fff; }
.annotation-composer { margin: 10px 0; padding: 13px; border: 1px solid #d7bb8e; border-radius: 10px; background: #fff8e9; }
.annotation-composer > span { color: #83683d; font-size: 11px; font-weight: 850; }
.annotation-composer blockquote { max-height: 92px; margin: 7px 0 10px; overflow: auto; border-left: 3px solid #c99a4d; padding: 8px 11px; background: rgba(255,255,255,.72); color: #5c4939; font-size: 12px; line-height: 1.6; }
.annotation-composer textarea, .ai-adjust-dock > textarea { width: 100%; resize: vertical; }
.annotation-queue { display: grid; gap: 7px; max-height: 190px; overflow: auto; margin: 8px 0 10px; }
.annotation-empty { margin: 0; padding: 9px 11px; border: 1px dashed #d9cdbc; border-radius: 8px; color: var(--muted); font-size: 12px; }
.annotation-item { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; padding: 10px 11px; border: 1px solid #e0d4c4; border-radius: 9px; background: #fffdf9; }
.annotation-item strong, .annotation-item span, .annotation-item p { display: block; }
.annotation-item strong { color: var(--brown); font-size: 12px; }
.annotation-item span { margin-top: 3px; overflow: hidden; color: #8a7a6c; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.annotation-item p { margin: 6px 0 0; color: #4f4239; font-size: 12px; line-height: 1.55; }
.annotation-item .annotation-delete { width: 30px; height: 30px; }
.macro-review-card { margin-top: 12px; padding-top: 12px; border-top: 1px solid #e2d4bf; }
.macro-review-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.macro-review-head strong, .macro-review-head span { display: block; }
.macro-review-head strong { color: var(--brown); font-size: 14px; }
.macro-review-head span { margin-top: 3px; color: var(--muted); font-size: 11px; line-height: 1.45; }
.macro-review-status { margin: 8px 0 0; color: #806f61; font-size: 12px; line-height: 1.55; }
.macro-review-result { margin-top: 10px; padding: 12px; border-left: 4px solid #b68a49; background: #fff9ef; }
.macro-review-result > div:first-child { max-height: 260px; overflow: auto; color: #4f4239; font-size: 12px; line-height: 1.7; white-space: pre-wrap; }
.macro-review-result .detail-actions { margin-top: 10px; }
.director-instruction-details { margin: 10px 0; border: 1px solid #ead8bb; border-radius: 10px; background: #fff9ef; }
.director-instruction-details > summary { padding: 10px 13px; color: #735735; cursor: pointer; font-size: 12px; font-weight: 850; }
.director-instruction-details .director-instruction-guide { margin: 0; border: 0; border-top: 1px solid #ead8bb; border-radius: 0; }
.director-script-output.annotation-mode p:not(.empty), .director-script-output.annotation-mode li { cursor: crosshair; transition: border-color .16s ease, background .16s ease, box-shadow .16s ease; }
.director-script-output.annotation-mode p:not(.empty):hover, .director-script-output.annotation-mode li:hover,
.director-script-output.annotation-mode .annotation-selected { border-color: #b3773a; background: #fff4df; box-shadow: 0 0 0 3px rgba(193,142,71,.18); }
.director-script-output .has-annotation { position: relative; border-color: #4f8b68 !important; background: #f1f8f3 !important; padding-right: 72px !important; }
.director-script-output .has-annotation::after { content: '已批注'; position: absolute; top: 8px; right: 8px; padding: 3px 6px; border-radius: 5px; background: #4f8b68; color: #fff; font-size: 10px; font-weight: 850; line-height: 1.2; }
.generated-output { display: grid; gap: 12px; min-height: 260px; margin: 0; padding: 20px; border: 1px solid var(--line); border-radius: 14px; background: #fffdf9; color: var(--brown-dark); font-size: 15px; line-height: 1.78; word-break: break-word; box-shadow: 0 2px 12px rgba(168,135,91,.08); }
.generated-output h3, .generated-output h4, .generated-output p, .generated-output ol { margin: 0; }
.generated-output h3 { display: flex; align-items: center; gap: 12px; width: 100%; border-radius: 10px; background: linear-gradient(135deg, #5c3d2e 0%, #a8875b 100%); color: #fff; padding: 12px 20px; font-size: 17px; line-height: 1.35; box-shadow: 0 10px 22px rgba(168,135,91,.18); }
.generated-output .output-section-heading { align-items: stretch; gap: 0; overflow: hidden; padding: 0; }
.generated-output .output-section-kicker { display: inline-flex; align-items: center; gap: 7px; flex: 0 0 auto; padding: 13px 16px; background: rgba(255,255,255,.14); color: #ffedca; font-size: 13px; font-weight: 900; white-space: nowrap; }
.generated-output .output-section-kicker::before { content: '★'; color: #ffe1a1; font-size: 15px; }
.generated-output .output-section-heading .output-title { display: flex; align-items: center; padding: 13px 18px; font-size: 18px; }
.generated-output .output-icon { display: grid; place-items: center; flex: 0 0 auto; width: 34px; height: 34px; border-radius: 50%; background: #fff8ea; color: var(--brown); font-size: 18px; font-weight: 900; }
.generated-output .output-title { min-width: 0; font-weight: 900; }
.generated-output .script-body-collapse { overflow: hidden; border: 2px solid #8f6534; border-radius: 10px; background: #fffdf9; box-shadow: 0 8px 20px rgba(92,47,35,.15); }
.generated-output .script-body-collapse-summary { position: sticky; top: 0; z-index: 8; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 14px; min-height: 64px; padding: 13px 16px; background: #6a4330; color: #fff9ef; cursor: pointer; list-style: none; }
.generated-output .script-body-collapse-summary::-webkit-details-marker { display: none; }
.generated-output .script-body-collapse-summary strong { min-width: 0; color: inherit; font-size: 17px; line-height: 1.45; }
.generated-output .script-body-collapse-action { padding: 6px 10px; border: 1px solid #e7c98f; border-radius: 6px; background: #fff4da; color: #754d25; font-size: 12px; font-weight: 900; white-space: nowrap; }
.generated-output .script-body-collapse[open] > .script-body-collapse-summary { background: #7a5037; }
.generated-output .script-body-collapse-content { display: grid; gap: 12px; padding: 14px; border-top: 1px solid #e5d3b5; }
.generated-output .output-framework { overflow: hidden; border: 1px solid #ddc49d; border-radius: 8px; background: #fffdf9; }
.generated-output .output-framework summary { display: flex; align-items: center; justify-content: space-between; gap: 14px; min-height: 58px; padding: 11px 14px; background: #fff5e6; color: var(--brown); cursor: pointer; list-style: none; font-weight: 900; }
/* 展开框架时标题栏在当前文案区域内吸顶，滚动内容仍可随时收起。 */
.generated-output .output-framework > summary { position: sticky; top: 0; z-index: 7; box-shadow: 0 5px 14px rgba(92,47,35,.12); }
.generated-output .output-framework summary::-webkit-details-marker { display: none; }
.generated-output .output-framework-title { display: flex; align-items: center; gap: 10px; min-width: 0; }
.generated-output .output-framework-action { flex: 0 0 auto; color: #8a672d; font-size: 12px; font-weight: 800; }
.generated-output .output-framework[open] .output-framework-action::before { content: '点击收起'; }
.generated-output .output-framework[open] .output-framework-action { font-size: 0; }
.generated-output .output-framework[open] .output-framework-action::before { font-size: 12px; }
.generated-output .output-framework-body { display: grid; gap: 10px; padding: 12px; border-top: 1px solid #eadfce; }
.generated-output h4 { margin-top: 4px; border-left: 4px solid var(--gold); border-radius: 8px; background: #fff5e6; padding: 10px 12px; color: var(--brown); font-size: 16px; line-height: 1.45; }
.generated-output .output-subheading { display: flex; align-items: center; gap: 10px; margin-top: 8px; border: 1px solid #ddc49d; border-left: 1px solid #ddc49d; background: linear-gradient(90deg, #fff2dc, #fffaf2); padding: 10px 14px; font-size: 17px; }
.generated-output .output-subheading-number { display: grid; place-items: center; flex: 0 0 auto; width: 30px; height: 30px; border-radius: 50%; background: var(--brown); color: #fff8ea; font-size: 15px; font-weight: 900; }
.generated-output p { border: 1px solid var(--line); border-radius: 10px; background: #fff; padding: 12px 14px; box-shadow: 0 6px 18px rgba(32,35,31,.04); }
.generated-output .script-line { display: grid; grid-template-columns: minmax(92px, .26fr) 1fr; gap: 10px; border-left: 4px solid var(--gold); }
.generated-output strong { color: var(--brown); }
.output-list { display: grid; gap: 7px; list-style: none; counter-reset: output; padding-left: 0; }
.output-list li { position: relative; min-height: 0; display: grid; align-items: start; border: 1px solid #eadfce; border-left: 3px solid #d4aa5d; border-radius: 8px; background: #fffdf9; padding: 11px 14px 11px 42px; box-shadow: 0 3px 10px rgba(109,66,31,.045); }
.output-list li::before { counter-increment: output; content: counter(output); position: absolute; left: 11px; top: 10px; display: grid; place-items: center; min-width: 22px; height: 22px; padding: 0 5px; border-radius: 50%; background: linear-gradient(135deg, #e7b23c, #c4933d); color: #fff; font-size: 12px; font-weight: 900; line-height: 1; box-shadow: 0 3px 8px rgba(168,123,37,.22); }
.framework-list-1 li, .framework-list-2 li, .framework-list-4 li { padding-left: calc(11px + 24px + 1em); }
.framework-list-1 li::before, .framework-list-2 li::before, .framework-list-4 li::before { content: counter(output); top: 10px; width: 24px; min-width: 24px; height: 24px; padding: 0; border-radius: 50%; }
.output-framework[data-framework="4"] summary { background: #fff1ef; color: #872f2a; }
.framework-list-4 li { border-left-color: #c45c50; background: #fffafa; }
.framework-list-4 li::before { background: #ad493f; box-shadow: 0 3px 8px rgba(173,73,63,.2); }
.section-list-2 li, .section-list-3 li, .section-list-4 li { padding-left: calc(11px + 24px + 1em); }
.section-list-2 li::before, .section-list-3 li::before, .section-list-4 li::before { content: counter(output); top: 10px; width: 24px; min-width: 24px; height: 24px; padding: 0; border-radius: 50%; }
/* 框架3每首音乐独占一行，星标和连续编号同时显示。 */
.framework-list-3 { list-style: none; counter-reset: music; padding-left: 0; }
.framework-list-3 li { display: block; padding: 11px 14px 11px 78px; overflow-wrap: anywhere; }
.framework-list-3 li::before { counter-increment: music; content: "🌟 " counter(music) "."; display: grid; place-items: center; left: 14px; top: 11px; width: 48px; min-width: 48px; height: 26px; padding: 0 6px; border-radius: 999px; background: linear-gradient(135deg, #e7b23c, #c4933d); color: #fff; font-size: 12px; font-weight: 900; line-height: 1; text-align: center; box-shadow: 0 3px 8px rgba(168,123,37,.22); }
.framework-list-3 li::marker { content: none; }
.framework-list-3 .music-detail { display: block; margin-top: 5px; padding-left: 0; color: #665449; line-height: 1.65; }
.output-bullet-list { display: grid; gap: 7px; margin: 0; padding: 2px 0 2px 12px; list-style: none; }
.output-bullet-list li { position: relative; border-bottom: 1px solid #eee1d0; padding: 9px 12px 9px 28px; color: #463a32; line-height: 1.7; }
.output-bullet-list li:last-child { border-bottom: 0; }
.output-bullet-list li::before { content: ''; position: absolute; left: 8px; top: 20px; width: 7px; height: 7px; border-radius: 50%; background: var(--gold); box-shadow: 0 0 0 4px #f8ead3; }
.permission-note { margin: 10px 0 0; padding: 10px 12px; border-radius: 9px; background: var(--gold-soft); color: #72551e; font-size: 12px; line-height: 1.6; }
.generation-lock-note { border: 1px solid #d8c39a; background: #fff8e9; color: #5f471d; }
.reopen-active-note { border: 1px solid #a8c9af; background: #eef8f0; color: #35643e; }
.reopen-source-btn { border-color: #bd6b5d; color: #9b3d36; }
.permission-note.error-note { background: #fff0ee; color: #9b3d36; border: 1px solid #e6b1aa; }
.history-list { display: grid; border-top: 1px solid var(--line); }
.history-day-label { padding: 9px 4px 5px; background: #f8f4ed; color: var(--muted); font-size: 11px; font-weight: 800; letter-spacing: .04em; }
.history-row { min-width: 0; border-bottom: 1px solid var(--line); }
.history-row > summary, .history-row-static { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 46px; padding: 10px 4px; color: var(--ink); font-size: 14px; list-style: none; }
.history-row > summary { cursor: pointer; }
.history-row > summary::-webkit-details-marker { display: none; }
.history-row > summary > span:first-child, .history-row-static > span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.history-arrow { flex: 0 0 auto; color: var(--muted); font-size: 24px; line-height: 1; transition: transform .18s ease; }
.history-row[open] .history-arrow { transform: rotate(90deg); }
.history-detail { padding: 0 4px 12px; }
.history-detail > .muted { margin: 0 0 8px; }
.ai-task-panel { margin: 0 0 20px; overflow: hidden; border: 1px solid #d8c39a; border-radius: 14px; background: #fffdf9; box-shadow: 0 9px 25px rgba(109,66,31,.08); }
.ai-task-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 18px; border-bottom: 1px solid #eadcc8; background: #fff8ec; }
.ai-task-head h2 { margin: 0; font-size: 16px; color: var(--brown); }
.ai-task-head span { color: var(--muted); font-size: 12px; }
.ai-task-list { display: grid; gap: 0; }
.ai-task-item { display: grid; grid-template-columns: minmax(170px, .8fr) minmax(280px, 2fr) auto; gap: 16px; align-items: center; padding: 14px 18px; border-bottom: 1px solid #eee4d6; }
.ai-task-item:last-child { border-bottom: 0; }
.ai-task-item strong, .ai-task-item span { display: block; }
.ai-task-item strong { color: var(--brown-dark); font-size: 14px; }
.ai-task-item span { margin-top: 4px; color: var(--muted); font-size: 12px; line-height: 1.55; }
.ai-task-status { min-width: 92px; text-align: right; color: #8a5e20; font-size: 12px; font-weight: 800; }
.ai-task-status.done { color: #2f7653; }
.ai-task-open { justify-self: end; }
.detail-assignment { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; }
.detail-assignment-field { display: grid; gap: 7px; min-width: 0; }
.detail-assignment-field > span { color: var(--ink); font-size: 14px; font-weight: 800; }
.detail-assignment-field select { width: 100%; }
.collaborator-picker { min-width: 190px; color: var(--ink); }
.collaborator-picker > summary { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 42px; padding: 9px 11px; border: 1px solid #d8c8b2; border-radius: 8px; background: #fff; cursor: pointer; list-style: none; }
.collaborator-picker > summary::-webkit-details-marker { display: none; }
.collaborator-picker-label { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; font-weight: 700; }
.collaborator-picker-arrow { flex: 0 0 auto; color: #7c6048; font-size: 18px; line-height: 1; transition: transform .18s ease; }
.collaborator-picker[open] .collaborator-picker-arrow { transform: rotate(180deg); }
.collaborator-picker-options { display: grid; gap: 4px; max-height: 210px; margin-top: 6px; overflow-y: auto; padding: 7px; border: 1px solid #e2d6c5; border-radius: 8px; background: #fffdf9; box-shadow: 0 8px 20px rgba(67, 43, 27, .1); }
.collaborator-picker-options label { display: flex; align-items: center; gap: 8px; min-height: 34px; padding: 6px 7px; border-radius: 6px; cursor: pointer; }
.collaborator-picker-options label:hover { background: #f8f1e7; }
.collaborator-picker-options input { width: 16px; height: 16px; margin: 0; accent-color: #7a4b2b; }
.collaborator-picker-options span { font-size: 13px; line-height: 1.4; }
.assignment-row-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; min-width: 150px; }
.assignment-table-panel .assignment-source { min-width: 180px; }
.assignment-table-panel .assignment-collaborator-picker { min-width: 210px; }
.detail-assignment-readonly { display: grid; gap: 5px; min-width: 0; padding: 10px 12px; border: 1px solid #e2d6c5; border-radius: 8px; background: #f8f3eb; }
.detail-assignment-readonly > span { color: var(--ink); font-size: 14px; font-weight: 800; }
.detail-assignment-readonly > strong { color: #6f4a2d; font-size: 15px; }
.detail-assignment-readonly > small { color: var(--muted); line-height: 1.4; }
.ai-library-shell { display: grid; gap: 14px; }
.ai-library-hero { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; padding: 24px; border: 1px solid #d8c39a; border-radius: 18px; background: linear-gradient(135deg, #34251d, #6b4a35); color: #fff9ef; box-shadow: 0 16px 38px rgba(61,36,27,.16); }
.ai-library-hero h2 { margin: 3px 0 8px; font-size: 25px; }
.ai-library-hero p { max-width: 780px; margin: 0; color: #eadbc9; line-height: 1.7; }
.ai-library-hero-actions { display: grid; justify-items: end; gap: 9px; flex: 0 0 auto; }
.ai-vault-lock { border-color: rgba(255,255,255,.28); background: rgba(255,255,255,.08); color: #fff5e7; }
.ai-vault-lock:hover { border-color: rgba(255,255,255,.5); background: rgba(255,255,255,.14); }
.ai-version { flex: 0 0 auto; padding: 8px 11px; border: 1px solid rgba(255,255,255,.3); border-radius: 999px; color: #ffe9bd; font-size: 12px; font-weight: 800; }
.ai-system-boundary { display: grid; grid-template-columns: auto 1fr; gap: 14px; align-items: start; padding: 18px 20px; border: 1px solid #d8bd91; border-radius: 15px; background: linear-gradient(135deg, #fff9ee, #fffdf9); box-shadow: 0 9px 25px rgba(109,66,31,.08); }
.ai-boundary-mark { display: grid; place-items: center; min-width: 48px; height: 30px; border-radius: 999px; background: #2f7653; color: #fff; font-size: 12px; font-weight: 900; }
.ai-system-boundary h3 { margin: 1px 0 7px; font-size: 16px; color: var(--brown); }
.ai-system-boundary p { margin: 4px 0 0; color: var(--muted); font-size: 13px; line-height: 1.65; }
.ai-principles { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.ai-principle { min-height: 96px; padding: 15px; border: 1px solid var(--line); border-radius: 13px; background: #fffdf9; color: #5f5145; font-size: 13px; line-height: 1.65; }
.ai-library-section { overflow: hidden; border: 1px solid var(--line); border-radius: 16px; background: var(--surface); }
.ai-library-section-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; padding: 18px 20px; border-bottom: 1px solid var(--line); }
.ai-library-section-head h3 { margin: 2px 0 0; font-size: 18px; }
.knowledge-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 11px; padding: 16px; }
.knowledge-card { padding: 15px; border: 1px solid var(--line); border-radius: 13px; background: #fffdf9; }
.knowledge-card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
.knowledge-card h4 { margin: 0; font-size: 14px; }
.knowledge-card p { margin: 9px 0 0; color: var(--muted); font-size: 12px; line-height: 1.65; }
.instruction-list { display: grid; gap: 9px; padding: 16px; }
.instruction-item { overflow: hidden; border: 1px solid var(--line); border-radius: 12px; background: #fffdf9; }
.instruction-item summary { display: grid; grid-template-columns: minmax(170px, .35fr) 1fr auto; align-items: center; gap: 14px; padding: 15px 16px; cursor: pointer; list-style: none; }
.instruction-item summary::-webkit-details-marker { display: none; }
.instruction-item summary strong { font-size: 14px; }
.instruction-item summary span { color: var(--muted); font-size: 12px; }
.instruction-item pre, .ai-context-pre { max-height: 620px; margin: 0; padding: 18px; overflow: auto; border-top: 1px solid var(--line); background: #2d2823; color: #f5eadc; font: 12px/1.75 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; white-space: pre-wrap; word-break: break-word; }
.custom-instruction-form { display: grid; grid-template-columns: minmax(180px, .8fr) minmax(220px, 1fr); gap: 10px; padding: 16px; border-bottom: 1px solid var(--line); background: #fffaf1; }
.custom-instruction-form input, .custom-instruction-form select, .custom-instruction-form textarea { width: 100%; border: 1px solid #d9c7ab; border-radius: 9px; background: #fff; color: var(--ink); font: inherit; padding: 10px 12px; }
.custom-instruction-form textarea { grid-column: 1 / -1; min-height: 118px; resize: vertical; line-height: 1.6; }
.custom-instruction-actions { grid-column: 1 / -1; display: flex; align-items: center; gap: 9px; }
.custom-instruction-list { display: grid; gap: 9px; padding: 16px; }
.custom-instruction-card { padding: 14px 16px; border: 1px solid var(--line); border-radius: 12px; background: #fffdf9; }
.custom-instruction-card.disabled { opacity: .68; }
.custom-instruction-card-head, .custom-instruction-card-actions { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.custom-instruction-card-head > div { display: flex; align-items: center; gap: 9px; min-width: 0; }
.custom-instruction-card p { margin: 10px 0; max-height: 130px; overflow: auto; color: var(--muted); font-size: 12px; line-height: 1.65; white-space: pre-wrap; }
.custom-instruction-card-actions { justify-content: flex-start; }
.reference-library-intro { display: grid; grid-template-columns: minmax(280px, .9fr) minmax(360px, 1.1fr); gap: 18px; padding: 18px 20px; border-bottom: 1px solid var(--line); background: #fffaf1; }
.reference-library-intro strong { color: var(--brown); font-size: 16px; }
.reference-library-intro p { margin: 8px 0 0; color: var(--muted); font-size: 13px; line-height: 1.7; }
.reference-dimensions { display: grid; gap: 7px; }
.reference-dimensions span { padding: 9px 11px; border: 1px solid #ead8b9; border-radius: 9px; background: rgba(255,255,255,.7); color: #654b32; font-size: 12px; font-weight: 750; }
.reference-upload-form { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 11px; padding: 18px 20px; border-bottom: 1px solid var(--line); }
.reference-upload-form label { display: grid; align-content: start; gap: 6px; min-width: 0; }
.reference-upload-form label > span { color: #5c493a; font-size: 12px; font-weight: 800; }
.reference-upload-form input, .reference-upload-form select, .reference-upload-form textarea { min-width: 0; background: #fff; }
.reference-upload-form input[type="file"] { height: auto; min-height: 42px; padding: 8px; }
.reference-file-field { grid-column: span 2; }
.reference-notes-field { grid-column: 1 / -1; }
.reference-notes-field textarea { min-height: 104px; }
.reference-upload-actions { grid-column: 1 / -1; display: flex; align-items: center; gap: 12px; }
.reference-upload-actions button { min-width: 150px; }
.reference-item-list { display: grid; gap: 10px; padding: 16px; }
.reference-item { padding: 15px 16px; border: 1px solid var(--line); border-radius: 12px; background: #fffdf9; }
.reference-item.disabled { opacity: .65; background: #f7f4ef; }
.reference-item-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.reference-item-head strong, .reference-item-head span { display: block; }
.reference-item-head strong { color: var(--brown-dark); font-size: 15px; }
.reference-item-head div > span { margin-top: 4px; color: var(--muted); font-size: 11px; }
.reference-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 11px; }
.reference-tags span { padding: 5px 8px; border-radius: 6px; background: #f0e8db; color: #6c5139; font-size: 11px; font-weight: 750; }
.reference-notes { margin: 11px 0 0; color: #66564a; font-size: 12px; line-height: 1.7; white-space: pre-wrap; }
.reference-preview { margin-top: 11px; overflow: hidden; border: 1px solid #e7ddd0; border-radius: 9px; }
.reference-preview summary { padding: 9px 11px; cursor: pointer; color: #755b42; font-size: 12px; font-weight: 800; }
.reference-preview pre { max-height: 280px; margin: 0; padding: 13px; overflow: auto; border-top: 1px solid #e7ddd0; background: #2d2823; color: #f5eadc; font: 12px/1.7 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; white-space: pre-wrap; word-break: break-word; }
.reference-item-actions { display: flex; align-items: center; gap: 8px; margin-top: 11px; }
.reference-item-actions a { display: inline-flex; align-items: center; justify-content: center; text-decoration: none; }
.reference-item-actions time { margin-left: auto; color: var(--muted); font-size: 11px; }
@media (max-width: 680px) { .custom-instruction-form { grid-template-columns: 1fr; } .custom-instruction-form textarea, .custom-instruction-actions { grid-column: auto; } .custom-instruction-card-head { align-items: flex-start; flex-direction: column; } }
.ai-context-card { border-color: #d8bd91; background: linear-gradient(145deg, #fffdf9, #fff7e9); }
.ai-context-summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 74px; padding: 14px 16px; cursor: pointer; list-style: none; }
.ai-context-summary strong { display: block; margin-top: 5px; font-size: 17px; }
.ai-context-summary-action { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 9px; color: #8a5a24; font-size: 13px; font-weight: 800; }
.ai-context-toggle-label::before { content: '点击展开'; }
.ai-context-card[open] .ai-context-toggle-label::before { content: '点击收起'; }
.ai-context-summary-action i { display: grid; place-items: center; width: 30px; height: 30px; border: 1px solid #d8bd91; border-radius: 50%; background: #fff; font-size: 22px; font-style: normal; line-height: 1; transition: transform .2s ease; }
.ai-context-card[open] .ai-context-summary-action i { transform: rotate(90deg); }
.ai-context-content { padding: 0 16px 16px; border-top: 1px solid #e8d9c3; }
.ai-context-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 13px 0 4px; }
.ai-context-toolbar p { margin: 0; }
.ai-context-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.ai-context-head h3 { margin-bottom: 4px; }
.ai-context-stats { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; margin: 13px 0; }
.ai-context-stat { padding: 10px; border: 1px solid #dfcba9; border-radius: 10px; background: rgba(255,255,255,.74); text-align: center; }
.ai-context-stat strong, .ai-context-stat span { display: block; }
.ai-context-stat strong { color: #60421f; font-size: 19px; }
.ai-context-stat span { margin-top: 3px; color: var(--muted); font-size: 10px; }
.ai-feed-list { display: grid; gap: 8px; }
.ai-feed-item { overflow: hidden; border: 1px solid #e1d5c3; border-radius: 10px; background: #fff; }
.ai-feed-item summary { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 11px 13px; cursor: pointer; font-size: 13px; font-weight: 800; }
.ai-feed-item .content-block { margin: 0; border-radius: 0; border-top: 1px solid var(--line); }
.ai-context-note { margin: 10px 0 0; color: var(--muted); font-size: 12px; line-height: 1.6; }
@media (max-width: 680px) {
  .ai-context-summary { align-items: flex-start; }
  .ai-context-summary-action { padding-top: 3px; }
  .ai-context-toggle-label { display: none; }
  .ai-context-toolbar { align-items: stretch; flex-direction: column; }
  .ai-context-toolbar button { width: 100%; }
}
.generated-output .output-framework summary,
.history-row > summary,
.instruction-item > summary,
.ai-feed-item > summary,
.reference-preview > summary,
.director-instruction-details > summary,
.student-material-section details > summary,
.student-materials-content > .support-records > summary,
.detail-card > details > summary {
  border: 2px solid #e4544d;
  border-radius: 10px;
  background: #fff7f5;
}
.generated-output .output-framework[open] > summary,
.history-row[open] > summary,
.instruction-item[open] > summary,
.ai-feed-item[open] > summary,
.reference-preview[open] > summary,
.director-instruction-details[open] > summary,
.student-material-section details[open] > summary,
.student-materials-content > .support-records[open] > summary,
.detail-card > details[open] > summary { background: #fff2ef; }
/* 置顶文案四个框架使用棕金收拢栏，与内容区的暖调保持一致。 */
.generated-output .output-framework > summary {
  border-color: #b68a49;
  background: #fff8ea;
  color: #70482f;
  box-shadow: 0 5px 14px rgba(182, 138, 73, .14);
}
.generated-output .output-framework[open] > summary {
  border-color: #9a6a36;
  background: #f8ead3;
  color: #633f29;
}
.generated-output .output-framework[data-framework="4"] > summary {
  border-color: #b68a49;
  background: #fff4e2;
  color: #70482f;
}
/* 学员全部资料回归简洁收拢标题，只保留右侧箭头的浅红强调。 */
.student-materials-records > summary,
.student-materials-records[open] > summary {
  position: static;
  border: 1px solid var(--line);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.student-materials-records > summary i {
  width: 36px;
  height: 36px;
  border: 1px solid #efc5c0;
  border-radius: 50%;
  background: #f8d9d5;
  color: #9f302b;
}
.trial-brief-panel { padding: 0; overflow: hidden; }
.trial-brief-panel > summary { min-height: 82px; }
.trial-brief-summary-actions { display: flex; align-items: center; gap: 10px; flex: 0 0 auto; }
.trial-brief-summary-actions button { min-height: 38px; white-space: nowrap; }
.trial-brief-body { padding: 18px 20px 22px; border-top: 1px solid var(--line); background: #fffdf9; }
.trial-brief-toolbar { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; margin-bottom: 16px; }
.trial-brief-toolbar .permission-note { margin: 6px 0 0; }
.trial-brief-toolbar button { flex: 0 0 auto; }
.director-insight-content .material-diagnosis-overview { padding: 0; }
.customer-profile-card { border-color: #d7b98a; background: #fffaf1; }
.customer-profile-summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 74px; }
.customer-profile-summary strong { display: block; margin-top: 5px; color: #5e4029; font-size: 17px; }
.customer-profile-summary > i { display: grid; place-items: center; width: 36px; height: 36px; flex: 0 0 auto; border: 1px solid #dfc59d; border-radius: 50%; background: #f4dfbd; color: #76512f; font-style: normal; font-size: 24px; transition: transform .2s ease; }
.customer-profile-card[open] .customer-profile-summary > i { transform: rotate(90deg); }
.customer-profile-panel { padding: 18px 20px 22px; border-top: 1px solid #ead8bc; background: #fffdf9; }
.customer-profile-content .material-diagnosis-overview { padding: 0; }
.delivery-history-group + .delivery-history-group { margin-top: 20px; }
.delivery-history-group h4 { margin: 0 0 8px; color: var(--brown-dark); font-size: 14px; }
.trial-brief-panel.student-supplement-card { border-color: var(--line); border-radius: 12px; background: white; }
.trial-brief-panel .student-supplement-body { padding: 0; background: transparent; }

@media (max-width: 760px) {
  .trial-brief-panel > summary { align-items: flex-start; }
  .trial-brief-summary-actions { align-items: flex-end; flex-direction: column-reverse; }
  .trial-brief-summary-actions button { max-width: 160px; white-space: normal; }
  .trial-brief-toolbar { align-items: stretch; flex-direction: column; }
  .trial-brief-toolbar button { width: 100%; }
}
.empty { padding: 40px 20px; color: var(--muted); text-align: center; }

.toast { position: fixed; right: 22px; bottom: 22px; z-index: 100; max-width: 360px; padding: 13px 16px; border-radius: 12px; background: var(--ink); color: white; box-shadow: var(--shadow); }

.secure-modal { position: fixed; inset: 0; z-index: 140; display: grid; place-items: center; padding: 22px; }
.secure-modal-backdrop { position: absolute; inset: 0; width: 100%; height: 100%; border-radius: 0; background: rgba(24,17,13,.72); cursor: default; backdrop-filter: blur(8px); }
.secure-modal-card { position: relative; width: min(460px, 100%); padding: 28px; border: 1px solid #d9bd8f; border-radius: 16px; background: #fffdf9; box-shadow: 0 28px 90px rgba(20,13,9,.34); }
.secure-modal-head { display: flex; align-items: center; gap: 13px; }
.secure-modal-mark { display: grid; place-items: center; width: 46px; height: 46px; flex: 0 0 auto; border-radius: 12px; background: #31231c; color: #f3d9a8; font: 700 17px/1 Georgia, "Songti SC", serif; }
.secure-modal-head h2 { margin: 2px 0 0; font-size: 22px; }
.secure-modal-description { margin: 18px 0; color: #6e6056; font-size: 14px; line-height: 1.75; }
.secure-modal-form { display: grid; gap: 8px; }
.secure-modal-form > label { color: #4e3d32; font-size: 13px; font-weight: 800; }
.secure-modal-form input { height: 48px; padding-right: 72px; }
.secure-modal-form .message { margin: 2px 0 0; }
.secure-modal-actions { display: grid; grid-template-columns: .7fr 1.3fr; gap: 10px; margin-top: 4px; }
.secure-modal-actions button { min-height: 46px; }
.secure-modal-note { margin: 16px 0 0; padding-top: 14px; border-top: 1px solid var(--line); color: #94877c; font-size: 11px; line-height: 1.6; }

@media (max-width: 1050px) {
  .generation-method-grid { grid-template-columns: 1fr; }
  .stats-grid { grid-template-columns: repeat(3, 1fr); }
  .toolbar { grid-template-columns: 1fr 1fr; }
  .assignment-layout { grid-template-columns: 1fr; }
  #quotaSummary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .quota-line:nth-child(3) { border-left: 0; border-top: 1px solid #eadfc9; }
  .quota-line:nth-child(4) { border-top: 1px solid #eadfc9; }
  .slot-form { grid-template-columns: minmax(220px, .8fr) minmax(360px, 1.2fr); }
  .slot-submit { grid-column: 1 / -1; justify-self: end; width: min(100%, 320px); }
  .access-scope { align-items: flex-start; flex-direction: column; }
  .access-capabilities { justify-content: flex-start; }
  .login-public-hero { grid-template-columns: 1fr; gap: 36px; }
  .login-public-header { min-height: 78px; }
  .login-hero-copy { max-width: none; }
  .login-card { max-width: 560px; }
  .ai-principles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .knowledge-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 680px) {
  .material-diagnosis-progress .finished-script-progress-head { align-items: flex-start; flex-wrap: wrap; }
  .material-diagnosis-progress .finished-script-progress-head strong { white-space: normal; }
  .script-generation-steps.material-diagnosis-progress-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .generation-control-card, .publish-control-card, .reopen-control-card { padding: 16px 14px; }
  .generation-method-card { padding: 14px 12px; }
  .generation-method-head { min-height: 0; }
  .generation-control-heading { align-items: flex-start; flex-direction: column; }
  .md-import-title { align-items: flex-start; flex-direction: column; gap: 3px; }
  .md-import-fields { grid-template-columns: 1fr; }
  .md-import-fields button, .finished-script-sync { width: 100%; }
  .generation-method-divider { align-items: flex-start; flex-direction: column; gap: 2px; }
  .generation-method-divider::before, .generation-method-divider::after { display: none; }
  .member-quota-grid, .member-quota-list { grid-template-columns: 1fr; }
  body.drawer-open #appView { display: none; }
  .ai-task-head { align-items: flex-start; flex-direction: column; gap: 4px; }
  .ai-task-item { grid-template-columns: 1fr auto; gap: 10px; }
  .ai-task-item > div:nth-child(2) { grid-column: 1 / -1; }
  .ai-task-open { grid-column: 1 / -1; justify-self: stretch; }
  .login-shell { padding: 0 18px; overflow: visible; }
  .login-public-header { min-height: 70px; }
  .login-platform-badge { display: none; }
  .login-public-hero { padding: 36px 0 30px; }
  .login-hero-copy h1 { font-size: 39px; }
  .login-hero-lead { font-size: 15px; }
  .login-value-list { grid-template-columns: 1fr; }
  .login-value-list > div { min-height: auto; }
  .login-founder-sign { align-items: flex-start; }
  .login-card { padding: 28px 22px; }
  .login-public-footer { flex-wrap: wrap; gap: 10px; padding: 17px 0; }
  .topbar { align-items: flex-start; padding: 14px 16px; }
  .top-actions { flex-wrap: wrap; justify-content: flex-end; }
  #lastUpdated { display: none; }
  main { width: min(100% - 20px, 1480px); margin-top: 14px; }
  .stats-grid { grid-template-columns: repeat(2, 1fr); }
  .toolbar { grid-template-columns: 1fr; }
  .bulk-bar { align-items: stretch; flex-direction: column; }
  .bulk-bar select { width: 100%; }
  .slot-form { grid-template-columns: 1fr; }
  .slot-submit { grid-column: auto; }
  .slot-panel { padding: 18px 14px; }
  #quotaSummary { grid-template-columns: 1fr; }
  .quota-line { min-height: 112px; border-top: 1px solid #eadfc9; border-left: 0; }
  .quota-line:first-child { border-top: 0; }
  .quota-line:nth-child(3), .quota-line:nth-child(4) { border-left: 0; }
  .program-checks { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .program-check { min-width: 0; }
  .slot-submit { justify-self: stretch; width: 100%; }
  .detail-grid { grid-template-columns: 1fr; }
  .detail-card.wide { grid-column: auto; }
  .profile-row { grid-template-columns: 1fr; gap: 5px; }
  .detail-assignment { grid-template-columns: 1fr; }
  .file-upload-row { grid-template-columns: 1fr; }
  .support-records-content { grid-template-columns: 1fr; padding: 14px; }
  .student-materials-content { gap: 18px; padding: 14px; }
  .student-material-section + .student-material-section { padding-top: 18px; }
  .student-materials-content > .support-records { margin: 0 -14px -14px; }
  .archive-download-btn { width: 100%; }
  .drawer-head { padding: 13px 16px; }
  .drawer-content { padding: 14px 10px 60px; }
  .script-workspace { padding: 14px 10px; }
  .script-workspace-title, .manual-editor-head { align-items: flex-start; flex-direction: column; }
  .publish-shortcut { width: 100%; margin-left: 0; }
  .publish-shortcut-button, .publish-shortcut-success, .publish-shortcut-locked { width: 100%; justify-content: center; }
  .script-tabs { grid-template-columns: 1fr; gap: 6px; padding: 5px; }
  .script-tab { grid-template-columns: 24px minmax(0, 1fr) auto; gap: 7px; min-height: 56px; padding: 6px 94px 6px 7px; }
  .script-section-number { width: 23px; height: 23px; font-size: 12px; }
  .script-tab strong { font-size: 11px; }
  .script-tab small { display: none; }
  .script-section-open { min-height: 28px; padding: 4px 10px; }
  .generated-output { padding: 12px; }
  .framework-list-3 li { padding-left: 74px; }
  .generated-output .script-line { grid-template-columns: 1fr; }
  .manual-editor { padding: 12px 8px; }
  .manual-editor-meta { justify-items: start; text-align: left; }
  .manual-editor textarea { min-height: 280px; max-height: 55dvh; padding: 18px 14px; font-size: 15px; }
  .generation-control-card, .publish-control-card, .reopen-control-card { align-items: stretch; flex-direction: column; gap: 13px; padding: 17px 15px; }
  .generation-control-card h3, .publish-control-card h3, .reopen-control-card h3 { font-size: 20px; }
  .generation-primary, .publish-primary, .reopen-control-card .reopen-source-btn, .permission-lock { width: 100%; min-width: 0; text-align: center; }
  .publish-confirm-actions { width: 100%; flex-basis: auto; }
  .generation-control-actions { width: 100%; flex-basis: auto; }
  .script-md-import { grid-template-columns: 1fr; max-width: none; }
  .script-md-import small { grid-column: 1; }
  .script-music-match-control small { grid-column: 1; }
  .generation-control-actions .generation-single-actions { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .generation-control-actions .generation-secondary { width: 100%; padding-inline: 4px; font-size: 11px; }
  .ai-adjust-heading { align-items: flex-start; flex-direction: column; }
  .annotation-controls { align-items: stretch; flex-direction: column; }
  .annotation-mode-toggle, .floating-dock-toggle { width: 100%; }
  .script-workspace.floating-active { display: block; padding-bottom: 40dvh; }
  .ai-adjust-dock.floating-active { position: fixed; top: auto; right: max(10px, env(safe-area-inset-right)); bottom: max(10px, env(safe-area-inset-bottom)); left: max(10px, env(safe-area-inset-left)); z-index: 79; max-height: 36dvh; margin: 0; padding: 10px; }
  .ai-adjust-dock.floating-active > textarea { min-height: 72px; max-height: 96px; }
  .ai-adjust-dock.annotation-active { position: fixed; top: auto; right: max(10px, env(safe-area-inset-right)); bottom: max(10px, env(safe-area-inset-bottom)); left: max(10px, env(safe-area-inset-left)); z-index: 80; max-height: 44dvh; margin: 0; padding: 10px; }
  .script-workspace.annotation-active { padding-bottom: 48dvh; }
  .ai-adjust-dock.annotation-active .annotation-controls { align-items: center; flex-direction: row; margin: 0 0 7px; padding: 7px; }
  .ai-adjust-dock.annotation-active .annotation-mode-toggle { width: auto; }
  .ai-adjust-dock.annotation-active .annotation-empty { display: none; }
  .ai-adjust-dock.annotation-active .annotation-queue { max-height: 76px; }
  .ai-adjust-dock.annotation-active .annotation-item { padding: 7px 8px; }
  .ai-adjust-dock.annotation-active .annotation-item span { display: none; }
  .ai-adjust-dock.annotation-active .annotation-item p { margin-top: 2px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .macro-review-head { align-items: stretch; flex-direction: column; }
  .macro-review-head button { width: 100%; }
  .macro-review-result > div:first-child { max-height: 120px; }
  .ai-library-hero, .ai-context-head { flex-direction: column; }
  .ai-library-hero-actions { width: 100%; justify-items: stretch; }
  .secure-modal { padding: 14px; }
  .secure-modal-card { padding: 22px 18px; }
  .ai-adjust-panel .detail-actions > button { width: 100%; }
  .ai-system-boundary { grid-template-columns: 1fr; }
  .ai-principles, .knowledge-grid { grid-template-columns: 1fr; }
  .reference-library-intro, .reference-upload-form { grid-template-columns: 1fr; padding: 15px 13px; }
  .reference-file-field, .reference-notes-field, .reference-upload-actions { grid-column: auto; }
  .reference-upload-actions { align-items: stretch; flex-direction: column; }
  .reference-upload-actions button { width: 100%; }
  .reference-item-list { padding: 12px; }
  .reference-item-head { flex-direction: column; }
  .reference-item-actions { align-items: stretch; flex-wrap: wrap; }
  .reference-item-actions a, .reference-item-actions button { flex: 1 1 130px; }
  .reference-item-actions time { flex: 1 0 100%; margin-left: 0; }
  .ai-context-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .instruction-item summary { grid-template-columns: 1fr auto; }
  .instruction-item summary span { grid-column: 1 / -1; }
}

/* 财富版同款的实体中台工作区，业务数据与接口仍保持实体版独立。 */
.entity-console-shell { min-height: 100vh; display: grid; grid-template-columns: 244px minmax(0, 1fr); background: #f7f3ed; }
.entity-sidebar { position: sticky; top: 0; z-index: 30; height: 100vh; display: flex; flex-direction: column; padding: 24px 16px 18px; background: #241c18; color: #f8eee3; }
.entity-side-brand { display: flex; align-items: center; gap: 12px; padding: 0 8px 28px; }
.entity-side-brand strong, .entity-side-brand span, .entity-side-user strong, .entity-side-user span { display: block; }
.entity-side-brand strong { font-size: 17px; }
.entity-side-brand span, .entity-side-user span { color: #b8aaa0; font-size: 12px; }
.entity-side-mark { width: 42px; height: 42px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 12px; background: #35271f; color: #f6dfb5; font: 700 20px/1 Georgia, "Songti SC", serif; }
.entity-side-nav { display: grid; gap: 6px; }
.entity-side-nav button { display: flex; align-items: center; gap: 11px; width: 100%; padding: 12px 13px; border-radius: 10px; background: transparent; color: #cfc2b7; text-align: left; font-weight: 650; }
.entity-side-nav button > span { width: 22px; color: #e3d1bd; text-align: center; }
.entity-side-nav button.active, .entity-side-nav button:hover { background: rgba(246,223,181,.12); color: #fff4df; }
.entity-side-user { margin-top: auto; display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 16px 8px 0; border-top: 1px solid rgba(255,255,255,.1); }
.entity-side-logout { padding: 5px; background: transparent; color: #cabdb2; }
.entity-workspace { min-width: 0; }
.entity-workspace .topbar { height: 88px; padding: 0 34px; background: rgba(247,243,237,.9); }
.entity-workspace .topbar h1 { font-size: 25px; }
.entity-workspace main { width: min(1560px, 100%); margin: 0; padding: 30px 34px 60px; }
.entity-home-panel { display: grid; gap: 22px; }
.entity-growth-hero { position: relative; overflow: hidden; display: flex; justify-content: space-between; align-items: center; gap: 24px; min-height: 238px; padding: 38px 42px; border-radius: 22px; background: linear-gradient(115deg, #2c211b, #4c3529 68%, #7b4e2f); color: #fff7ec; box-shadow: 0 14px 40px rgba(59,40,24,.08); }
.entity-growth-hero::after { content: "合"; position: absolute; right: 8%; top: -60px; color: rgba(255,255,255,.055); font: 700 235px/1 Georgia, serif; }
.entity-growth-hero > div, .entity-growth-hero button { position: relative; z-index: 1; }
.entity-growth-hero h2 { margin: 12px 0 9px; font: 700 32px/1.25 Georgia, "Songti SC", serif; }
.entity-growth-hero p:last-child { max-width: 760px; margin: 0; color: #d8c9bc; font-size: 16px; }
.entity-hero-action { flex: 0 0 auto; padding: 15px 22px; background: #f4dfbd; color: #3a281d; }
.entity-capabilities { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.entity-capabilities article { min-height: 138px; padding: 22px 24px; border: 1px solid #e7ddd2; border-radius: 18px; background: rgba(255,253,249,.78); }
.entity-capabilities b { display: inline-grid; place-items: center; width: 36px; height: 36px; margin-bottom: 14px; border-radius: 10px; background: #f2e6d5; color: #81501f; font-size: 18px; }
.entity-capabilities strong, .entity-capabilities span { display: block; }
.entity-capabilities strong { font-size: 16px; }
.entity-capabilities span { margin-top: 5px; color: #806f64; font-size: 13px; }
.entity-console-shell .stats-grid { grid-template-columns: repeat(4, minmax(150px, 1fr)); gap: 16px; margin: 22px 0; }
.entity-console-shell .stat-card { min-height: 150px; padding: 22px; border-color: #e7ddd2; border-radius: 18px; background: #fffdf9; }
.entity-console-shell .stat-card strong { margin: 10px 0 4px; font: 700 34px/1.2 Georgia, serif; }
.entity-console-shell .stat-card small { color: #a86f32; }
.entity-console-shell .tabs { display: none; }
.entity-console-shell .panel.home-dashboard { border: 0; background: transparent; box-shadow: none; overflow: visible; }
.entity-recent-panel { overflow: hidden; border: 1px solid #e7ddd2; border-radius: 18px; background: #fffdf9; box-shadow: 0 8px 26px rgba(59,40,24,.035); }
.entity-recent-panel .panel-head p { margin: 4px 0 0; }
.entity-console-shell .access-scope { margin-bottom: 20px; }

.released-slot-ledger { overflow: hidden; margin-bottom: 14px; border: 1px solid #eadbca; border-radius: 16px; background: #fffaf3; }
.released-slot-ledger .panel-head { background: #fff6e9; }
.released-slot-list { display: grid; gap: 1px; background: #eee1d3; }
.released-slot-row { display: grid; grid-template-columns: minmax(150px, .8fr) minmax(0, 2fr) auto; align-items: center; gap: 14px; padding: 13px 18px; background: #fffdf9; }
.released-slot-main { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; min-width: 0; }
.released-slot-main strong { font-size: 15px; }
.released-slot-tags { display: flex; flex-wrap: wrap; gap: 6px; min-width: 0; }
.released-slot-row time { color: #927c6c; font-size: 12px; white-space: nowrap; }
.released-slot-row .tag.accent { border-color: #e8c48e; background: #fff1d7; color: #8c5a1c; }
.assignment-table-panel { overflow: hidden; border: 1px solid var(--line); border-radius: 16px; background: var(--paper, #fff); }

@media (max-width: 760px) {
  .released-slot-row { grid-template-columns: 1fr; gap: 8px; padding: 13px 14px; }
  .released-slot-row time { justify-self: start; }
  .source-group-layout { grid-template-columns: 1fr; }
  .source-group-list { grid-template-columns: repeat(2, minmax(0, 1fr)); border-right: 0; border-bottom: 1px solid var(--line); }
}

@media (max-width: 980px) {
  .entity-console-shell { grid-template-columns: 1fr; }
  .entity-sidebar { position: relative; width: 100%; min-width: 0; height: auto; overflow: hidden; padding: 14px 16px; }
  .entity-side-brand { padding-bottom: 13px; }
  .entity-side-nav { max-width: 100%; min-width: 0; grid-auto-flow: column; grid-auto-columns: max-content; overflow-x: auto; padding-bottom: 4px; }
  .entity-side-nav button { width: auto; }
  .entity-side-user { margin-top: 10px; }
  .entity-workspace .topbar { height: auto; min-height: 76px; }
  .entity-capabilities { grid-template-columns: 1fr; }
}

@media (max-width: 680px) {
  .script-workspace-status { align-items: flex-start; flex-direction: column; }
  .entity-workspace .topbar { padding: 14px 16px; }
  .entity-workspace main { padding: 18px 10px 50px; }
  .entity-growth-hero { align-items: flex-start; flex-direction: column; min-height: 260px; padding: 28px 24px; }
  .entity-growth-hero h2 { font-size: 27px; }
  .entity-console-shell .stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .entity-console-shell .stat-card { min-height: 126px; padding: 16px; }
  .source-group-head { align-items: flex-start; flex-direction: column; padding: 18px 16px; }
  .source-group-list { grid-template-columns: 1fr; }
}
/* 置顶三条正文沿用个人IP定位报告的阅读层级。 */
.generated-output .is-pinned-script-body {
  display: grid;
  gap: 14px;
  min-width: 0;
  max-width: 100%;
  padding: 18px;
  border-top: 1px solid #e5d3b5;
  background: linear-gradient(180deg, #fffdf9, #fffaf2);
  white-space: normal;
}

.generated-output .is-pinned-script-body > * {
  min-width: 0;
  max-width: 100%;
  overflow-wrap: anywhere;
}

.generated-output .is-pinned-script-body .pinned-script-document-title {
  margin: 0;
  padding: 17px 20px;
  border: 1px solid #b98d55;
  border-left: 1px solid #b98d55;
  border-radius: 10px;
  background: linear-gradient(135deg, #5c3d2e, #a8875b);
  color: #fff9ef;
  font-size: 21px;
  font-weight: 900;
  line-height: 1.45;
  text-align: center;
  box-shadow: 0 10px 22px rgba(92, 61, 46, .16);
}

.generated-output .is-pinned-script-body .pinned-script-field,
.generated-output .is-pinned-script-body .script-line {
  display: grid;
  grid-template-columns: minmax(104px, .24fr) minmax(0, 1fr);
  gap: 12px;
  align-items: start;
  margin: 0;
  padding: 12px 14px;
  border: 0;
  border-left: 3px solid #c89a51;
  border-radius: 8px;
  background: #fffaf2;
  line-height: 1.75;
  box-shadow: none;
}

.generated-output .is-pinned-script-body .pinned-script-field strong,
.generated-output .is-pinned-script-body .script-line strong {
  color: #754b22;
  font-weight: 900;
}

.generated-output .is-pinned-script-body .pinned-script-field span,
.generated-output .is-pinned-script-body .script-line span {
  min-width: 0;
  color: #4f392e;
  overflow-wrap: anywhere;
}

.generated-output .is-pinned-script-body > p:not(.pinned-script-field):not(.script-line) {
  margin: 0;
  padding: 14px 16px;
  border: 1px solid #ead8bb;
  border-radius: 9px;
  background: #fff;
  color: #4f392e;
  line-height: 1.9;
  box-shadow: none;
}

.generated-output .is-pinned-script-body .script-body-label {
  margin: 4px 0 0;
  padding: 10px 13px;
  border-left: 4px solid #b98532;
  border-radius: 8px;
  background: linear-gradient(90deg, #fff2dc, #fffaf2);
  color: #5c3d2e;
  font-size: 16px;
}

.generated-output .is-pinned-script-body .script-hook-module-title {
  margin-top: 4px;
  border: 1px solid #ddc49d;
  border-left: 4px solid #b98532;
  background: linear-gradient(90deg, #fff2dc, #fffaf2);
}

@media (max-width: 560px) {
  .generated-output .is-pinned-script-body {
    gap: 10px;
    padding: 12px;
  }

  .generated-output .is-pinned-script-body .pinned-script-document-title {
    padding: 14px 12px;
    font-size: 18px;
    line-height: 1.5;
  }

  .generated-output .is-pinned-script-body .pinned-script-field,
  .generated-output .is-pinned-script-body .script-line {
    grid-template-columns: 1fr;
    gap: 4px;
    padding: 11px 12px;
  }

  .generated-output .is-pinned-script-body > p:not(.pinned-script-field):not(.script-line) {
    padding: 12px 13px;
    font-size: 15px;
    line-height: 1.85;
  }
}
