/* learning 90 天方案：参考工作台视觉。仅作用于 .plan90-candidate。 */
.plan90-candidate {
  --p90-ink: #20211f; --p90-muted: #77766f; --p90-line: #e8e1d7; --p90-paper: #fffdfa;
  --p90-canvas: #f4f0e9; --p90-orange: #e55d2d; --p90-orange-soft: #fff0e8;
  box-sizing: border-box; max-width: 1120px; margin: 0 auto; padding: 26px;
  color: var(--p90-ink); background: var(--p90-paper); font: 14px/1.55 -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif;
}
.plan90-candidate *, .plan90-candidate *::before, .plan90-candidate *::after { box-sizing: inherit; }
.plan90-candidate h2, .plan90-candidate h3, .plan90-candidate h4, .plan90-candidate p { margin-top: 0; }
.plan90-candidate__header { position: sticky; top: 0; z-index: 8; margin: -8px -8px 20px; padding: 8px; border-bottom: 1px solid rgba(232, 225, 215, .88); background: rgba(255, 253, 250, .96); backdrop-filter: blur(10px); }
.plan90-candidate__header h2 { margin: 0; font: 700 28px/1.28 "Songti SC", "SimSun", serif; letter-spacing: .02em; }
.plan90-candidate__eyebrow { margin-bottom: 5px; color: #a16a53; font-size: 10px; font-weight: 800; letter-spacing: .15em; }
.plan90-candidate__workflow { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); overflow: hidden; margin-bottom: 18px; border: 1px solid #d9d1c6; border-radius: 14px; background: #f9f6f0; }
.plan90-candidate__step { min-height: 75px; display: flex; align-items: center; gap: 10px; padding: 12px 15px; border: 0; border-right: 1px solid #e3ddd4; color: #69665e; background: transparent; text-align: left; cursor: pointer; transition: color .18s ease, background .18s ease; }
.plan90-candidate__step:last-child { border-right: 0; }
.plan90-candidate__step:hover { color: #302e29; background: #fffaf5; }
.plan90-candidate__step[aria-disabled="true"] { color: #aaa49b; background: #f6f2ec; cursor: default; opacity: .72; }
.plan90-candidate__step[aria-disabled="true"]:hover { color: #aaa49b; background: #f6f2ec; }
.plan90-candidate__step[aria-current="step"] { color: #302e29; background: var(--p90-paper); box-shadow: inset 0 -3px 0 var(--p90-orange); }
.plan90-candidate__step-no { width: 25px; height: 25px; flex: 0 0 25px; display: grid; place-items: center; border: 1px solid #c9c2b9; border-radius: 50%; color: #827d74; font: 700 11px/1 Georgia, serif; }
.plan90-candidate__step[aria-current="step"] .plan90-candidate__step-no { border-color: var(--p90-orange); color: #fff; background: var(--p90-orange); }
.plan90-candidate__step b, .plan90-candidate__step small { display: block; }
.plan90-candidate__step b { font-size: 13px; }
.plan90-candidate__step small { margin-top: 2px; color: #9c968b; font-size: 10px; }
.plan90-candidate__progress { margin: 0 0 18px; padding: 15px 16px 13px; border: 1px solid #e5ddd2; border-radius: 10px; background: #fffdfa; }
.plan90-candidate__progress-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; color: #5f574e; font-size: 12px; }
.plan90-candidate__progress-heading b { color: #403b35; font-size: 13px; }
.plan90-candidate__progress-heading span { color: #9b9288; font-size: 11px; }
.plan90-candidate__progress-track { height: 8px; margin-top: 11px; overflow: hidden; border-radius: 99px; background: #eee7dd; }
.plan90-candidate__progress-bar { position: relative; height: 100%; min-width: 2px; border-radius: inherit; background: var(--p90-orange); transition: width .25s ease, background .2s ease; }
.plan90-candidate__progress-bar[data-indeterminate="true"]::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, transparent 0%, rgba(255, 255, 255, .6) 45%, transparent 90%); animation: plan90-progress-sweep 1.25s linear infinite; }
@keyframes plan90-progress-sweep { from { transform: translateX(-100%); } to { transform: translateX(100%); } }
.plan90-candidate__progress--failed .plan90-candidate__progress-bar { background: #c75a3d; }
.plan90-candidate__progress-label { margin: 8px 0 10px; color: #766b60; font-size: 12px; }
.plan90-candidate__progress-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.plan90-candidate__progress-step { position: relative; color: #aaa197; font-size: 10px; }
.plan90-candidate__progress-step::before { content: ""; display: inline-block; width: 7px; height: 7px; margin-right: 5px; border: 1px solid #cfc6bb; border-radius: 50%; vertical-align: 1px; background: #fffdfa; }
.plan90-candidate__progress-step--active::before { border-color: var(--p90-orange); background: var(--p90-orange); }
.plan90-candidate__progress-step--completed { color: #806b5e; }
.plan90-candidate__progress-step--completed::before { border-color: #b7866d; background: #b7866d; }
.plan90-candidate__progress-step--failed { color: #a24d37; }
.plan90-candidate__progress-step--failed::before { border-color: #c75a3d; background: #c75a3d; }
.plan90-candidate__notice, .plan90-candidate__loading, .plan90-candidate__empty { margin: 0 0 16px; padding: 12px 14px; border-left: 3px solid var(--p90-orange); color: #6f6258; background: #fff8f2; }
.plan90-candidate__notice--warning { color: #7a5318; border-color: #dca23d; background: #fff8e9; }
.plan90-candidate__notice--error { color: #873e2a; border-color: #cf6444; background: #fff5f0; }
.plan90-candidate__notice--preview { color: #7a5318; border-color: #dca23d; background: #fff8e9; }
.plan90-candidate__loading, .plan90-candidate__empty { border-color: #d8d0c5; color: #746d63; background: #faf7f1; }
.plan90-candidate__muted { color: #867e74; font-size: 12px; }
.plan90-candidate__handoff { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 8px 18px; margin: 14px 0; padding: 15px 16px; border: 1px solid #d8dfd0; border-radius: 10px; color: #3f493b; background: #f7faf4; }
.plan90-candidate__handoff b { font-size: 14px; }
.plan90-candidate__handoff p { grid-column: 1; margin: 0; color: #687063; font-size: 12px; }
.plan90-candidate__handoff .plan90-candidate__button { grid-column: 2; grid-row: 1 / span 2; }
.plan90-candidate__next-task { position: sticky; z-index: 9; bottom: 12px; display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 20px; padding: 14px 16px; border: 1px solid #ddd4c8; border-radius: 12px; background: rgba(255, 253, 250, .97); box-shadow: 0 12px 34px rgba(63, 54, 40, .14); backdrop-filter: blur(12px); }
.plan90-candidate__next-task-copy { min-width: 0; display: grid; gap: 2px; }
.plan90-candidate__next-task-copy > span { color: #9a705b; font-size: 10px; font-weight: 800; letter-spacing: .08em; }
.plan90-candidate__next-task-copy > b { color: #403b35; font-size: 14px; }
.plan90-candidate__next-task-copy > small { overflow: hidden; color: #7b746b; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.plan90-candidate__next-task--working { border-color: #e3c7b8; }
.plan90-candidate__next-task--warning { border-color: #dfbd75; }
.plan90-candidate__next-task--error { border-color: #cf876f; background: rgba(255, 248, 244, .98); }
.plan90-candidate__focus-pulse { animation: plan90-focus-pulse 1.35s ease both; outline: 3px solid rgba(229, 93, 45, .22); outline-offset: 5px; }
[data-plan90-target][tabindex="-1"]:focus:not(.plan90-candidate__focus-pulse) { outline: none; }
@keyframes plan90-focus-pulse { 0%, 100% { outline-color: rgba(229, 93, 45, 0); } 28%, 72% { outline-color: rgba(229, 93, 45, .34); } }
.plan90-candidate__editor, .plan90-candidate__versions, .plan90-candidate__output { padding: 28px; border: 1px solid var(--p90-line); background: var(--p90-paper); box-shadow: 0 9px 24px rgba(63, 54, 40, .045); animation: plan90-fade .22s ease both; }
.plan90-candidate__editor h3, .plan90-candidate__versions h3 { margin-bottom: 8px; font: 700 23px "Songti SC", "SimSun", serif; }
@keyframes plan90-fade { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } }
.plan90-candidate__form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 20px; border-top: 1px solid var(--p90-line); border-left: 1px solid var(--p90-line); }
.plan90-candidate__field { min-height: 88px; display: block; padding: 14px 16px; border-right: 1px solid var(--p90-line); border-bottom: 1px solid var(--p90-line); }
.plan90-candidate__field span { display: block; margin-bottom: 7px; color: #8d867c; font-size: 10px; font-weight: 800; letter-spacing: .08em; }
.plan90-candidate__field input, .plan90-candidate__field textarea { width: 100%; padding: 0; border: 0; outline: 0; color: #403e38; background: transparent; font: inherit; }
.plan90-candidate__field textarea { min-height: 42px; resize: vertical; }
.plan90-candidate__field input:disabled, .plan90-candidate__field textarea:disabled { -webkit-text-fill-color: #403e38; opacity: 1; }
.plan90-candidate__transcript { margin: 18px 0 22px; padding: 16px; border: 1px solid #eadfd2; background: #fffaf4; }
.plan90-candidate__transcript h4 { margin: 0 0 6px; font: 700 17px "Songti SC", "SimSun", serif; }
.plan90-candidate__transcript h5 { margin: 18px 0 8px; color: #5e554c; font-size: 13px; }
.plan90-candidate__transcript-controls { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; }
.plan90-candidate__transcript-controls input[type="file"] { max-width: 250px; color: #6f665d; font-size: 12px; }
.plan90-candidate__consent { display: inline-flex; align-items: center; gap: 6px; color: #746d63; font-size: 12px; }
.plan90-candidate__transcript-status { margin: 12px 0 0; color: #8b5b3f; font-size: 12px; }
.plan90-candidate__evidence-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.plan90-candidate__evidence-card { padding: 11px 12px; border: 1px solid #e8ded3; background: #fffdfa; }
.plan90-candidate__evidence-card--warning { border-color: #dca23d; background: #fff8e9; }
.plan90-candidate__evidence-card--needs_review, .plan90-candidate__evidence-card--missing { border-color: #dca23d; background: #fff8e9; }
.plan90-candidate__evidence-card--conflict { border-color: #cf6444; background: #fff5f0; }
.plan90-candidate__evidence-card b { color: #6f5a4a; font-size: 12px; }
.plan90-candidate__evidence-card p { margin: 6px 0; color: #403e38; font-size: 13px; line-height: 1.55; }
.plan90-candidate__evidence-card small { color: #938c81; font-size: 10px; }
.plan90-candidate__evidence-card blockquote { margin: 8px 0 0; padding-left: 8px; border-left: 2px solid #e4c3af; color: #85776c; font-size: 11px; line-height: 1.5; }
.plan90-candidate__actions { grid-column: 1 / -1; display: flex; align-items: center; justify-content: end; gap: 10px; padding-top: 18px; }
.plan90-candidate__actions--plan { margin: 0 0 16px; padding: 0; }
.plan90-candidate__actions .plan90-candidate__muted { margin-right: auto; }
.plan90-candidate__button { min-height: 44px; border: 1px solid var(--p90-orange); border-radius: 8px; padding: 10px 15px; color: #fff; background: var(--p90-orange); font: inherit; font-weight: 750; cursor: pointer; }
.plan90-candidate__button:hover:not(:disabled) { background: #bd461f; }
.plan90-candidate__button--secondary { border-color: #ddd5ca; color: #675f55; background: #fffdf9; }
.plan90-candidate__button--secondary:hover:not(:disabled) { color: #403b35; background: #f7f1e9; }
.plan90-candidate__button:disabled { cursor: not-allowed; opacity: .5; }
.plan90-candidate__output { padding: 0; overflow: hidden; }
.plan90-candidate__cover { position: relative; min-height: 242px; padding: 36px 39px; overflow: hidden; color: #fffaf3; background: radial-gradient(circle at 86% 12%, rgba(238, 139, 101, .52), transparent 30%), linear-gradient(125deg, #292a24 0%, #3b3930 70%, #66513f 100%); }
.plan90-candidate__cover::after { content: "90"; position: absolute; right: 28px; bottom: -43px; color: rgba(255, 255, 255, .08); font: 175px/1 Georgia, serif; }
.plan90-candidate__cover-mark { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 13px; color: #fff; background: var(--p90-orange); font: 800 20px/1 Georgia, serif; }
.plan90-candidate__cover p { position: relative; z-index: 1; margin: 23px 0 7px; color: #e9b19b; font-size: 10px; font-weight: 800; letter-spacing: .2em; }
.plan90-candidate__cover h3 { position: relative; z-index: 1; max-width: 680px; margin: 0; font: 700 33px/1.3 "Songti SC", "SimSun", serif; letter-spacing: .02em; }
.plan90-candidate__cover small { position: absolute; z-index: 1; bottom: 22px; color: #c9c4b8; font-size: 11px; }
.plan90-candidate__report-section { padding: 28px; border-top: 1px solid #eee7dd; }
.plan90-candidate__section-title { display: flex; align-items: center; gap: 10px; margin-bottom: 18px; font: 700 20px "Songti SC", "SimSun", serif; }
.plan90-candidate__section-title::before { content: ""; width: 29px; height: 29px; border-radius: 9px; background: var(--p90-orange); }
.plan90-candidate__conclusion { display: grid; grid-template-columns: minmax(0, 1fr) 200px; gap: 15px; }
.plan90-candidate__conclusion-main { padding: 20px; background: #f8f0e6; }
.plan90-candidate__label { display: block; color: #9a705b; font-size: 10px; font-weight: 800; letter-spacing: .09em; }
.plan90-candidate__conclusion-main h4 { margin: 8px 0; font: 700 21px/1.4 "Songti SC", "SimSun", serif; }
.plan90-candidate__conclusion-main p { margin-bottom: 0; color: #6e675e; font-size: 12px; line-height: 1.8; white-space: pre-wrap; }
.plan90-candidate__duration { padding: 18px; color: #fff; background: #34342d; }
.plan90-candidate__duration b { display: block; margin: 7px 0 3px; color: #f1a27f; font: 54px/1 Georgia, serif; }
.plan90-candidate__duration small { color: #d5d0c4; font-size: 11px; white-space: pre-line; }
.plan90-candidate__phases { position: relative; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.plan90-candidate__phases::before { content: ""; position: absolute; top: 30px; left: 12%; right: 12%; height: 1px; background: #e6c4b6; }
.plan90-candidate__phase { position: relative; min-height: 188px; padding: 17px; border: 1px solid #e9e3d9; background: linear-gradient(155deg, #fff, #fbf7f0); }
.plan90-candidate__phase:nth-child(2) { background: linear-gradient(155deg, #fff, #f5f8f2); }
.plan90-candidate__phase:nth-child(3) { background: linear-gradient(155deg, #fff, #f1f5f8); }
.plan90-candidate__phase-index { width: 25px; height: 25px; display: grid; place-items: center; margin-bottom: 15px; border-radius: 50%; color: #fff; background: var(--p90-orange); font: 700 11px/1 Georgia, serif; }
.plan90-candidate__phase small { color: #9a9288; font-size: 10px; }
.plan90-candidate__phase h4 { margin: 7px 0; font: 700 17px "Songti SC", "SimSun", serif; }
.plan90-candidate__phase p { margin-bottom: 0; color: #706960; font-size: 11px; line-height: 1.75; white-space: pre-wrap; }
.plan90-candidate__week-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid #e9e3d9; border-left: 1px solid #e9e3d9; }
.plan90-candidate__week { min-height: 185px; padding: 14px; border-right: 1px solid #e9e3d9; border-bottom: 1px solid #e9e3d9; background: #fff; }
.plan90-candidate__week > strong { color: var(--p90-orange); font: 700 13px/1 Georgia, serif; }
.plan90-candidate__week h4 { margin: 8px 0 12px; font: 700 14px/1.45 "Songti SC", "SimSun", serif; }
.plan90-candidate__week-list-block { margin-top: 8px; color: #6c645b; font-size: 11px; }
.plan90-candidate__week-list-block b { color: #a16a53; font-size: 10px; }
.plan90-candidate__week-list-block ul { margin: 2px 0 0; padding-left: 16px; }
.plan90-candidate__week-list-block li::marker { color: var(--p90-orange); }
.plan90-candidate__activities, .plan90-candidate__details { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.plan90-candidate__activity { min-height: 136px; padding: 16px; border: 1px solid #e8dfd2; background: #fff8f3; }
.plan90-candidate__activity:nth-child(2) { background: #f6faf4; }
.plan90-candidate__activity:nth-child(3) { background: #f4f7fa; }
.plan90-candidate__activity span { color: #9a9288; font-size: 10px; }
.plan90-candidate__activity h4 { margin: 9px 0 7px; font: 700 15px "Songti SC", "SimSun", serif; }
.plan90-candidate__activity p, .plan90-candidate__detail p { margin-bottom: 0; color: #71695f; font-size: 12px; white-space: pre-wrap; }
.plan90-candidate__details { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.plan90-candidate__detail { padding: 16px; border: 1px solid #e8dfd4; background: #fffdfa; }
.plan90-candidate__detail h4 { margin-bottom: 8px; font: 700 15px "Songti SC", "SimSun", serif; }
.plan90-candidate__detail--risk { border-left: 3px solid var(--p90-orange); background: #fff8f3; }
.plan90-candidate__versions { display: grid; gap: 9px; }
.plan90-candidate__version { display: grid; grid-template-columns: 94px minmax(0, 1fr) auto; align-items: center; gap: 13px; padding: 14px 16px; border: 1px solid #e8e1d7; color: #625c53; background: #fffdfa; text-align: left; cursor: pointer; }
.plan90-candidate__version:hover { border-color: #d9967a; background: #fff8f3; }
.plan90-candidate__version b { color: #a04728; font: 700 13px/1 Georgia, serif; }
.plan90-candidate__version small { color: #938c81; font-size: 11px; }
.plan90-candidate__boundary { margin-top: 10px; padding: 15px; border-top: 1px solid #e8e1d7; color: #706960; background: #faf6ef; font-size: 12px; }
.plan90-candidate__primary-action, .plan90-candidate__generation-card, .plan90-candidate__edit-workbench { margin-top: 16px; padding: 22px; border: 1px solid var(--p90-line); border-radius: 12px; background: var(--p90-paper); box-shadow: 0 9px 24px rgba(63, 54, 40, .045); }
.plan90-candidate__primary-action { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.plan90-candidate__primary-action p { margin: 0; }
.plan90-candidate__generation-card > b { display: block; margin: 12px 0 6px; font-size: 16px; }
.plan90-candidate__edit-choices { display: flex; flex-wrap: wrap; gap: 8px; }
.plan90-candidate__edit-panel { margin-top: 16px; padding: 18px; border: 1px solid #e6d7ca; border-radius: 10px; background: #fffaf4; }
.plan90-candidate__edit-panel textarea { width: 100%; min-height: 110px; margin: 8px 0 14px; padding: 12px; border: 1px solid #d9d1c6; border-radius: 8px; color: var(--p90-ink); background: #fff; font: inherit; resize: vertical; }
.plan90-candidate__edit-compare { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.plan90-candidate__edit-compare article { min-width: 0; padding: 14px; border: 1px solid #e1d9ce; background: #fff; }
.plan90-candidate__edit-compare pre { max-height: 360px; overflow: auto; white-space: pre-wrap; word-break: break-word; color: #5f574e; font: 12px/1.65 ui-monospace, SFMono-Regular, Menlo, monospace; }
.plan90-candidate__more-actions { margin-top: 14px; color: #756d63; }
.plan90-candidate__more-actions summary { margin-bottom: 10px; cursor: pointer; font-weight: 700; }

.plan90-candidate__studio { display: grid; grid-template-columns: 132px minmax(0, 1fr); gap: 18px; align-items: start; }
.plan90-candidate__report-toolbar { position: sticky; z-index: 12; top: 62px; grid-column: 1 / -1; display: flex; align-items: center; justify-content: flex-end; gap: 9px; padding: 10px 12px; border: 1px solid #e5ddd2; border-radius: 10px; background: rgba(255,253,250,.97); box-shadow: 0 8px 24px rgba(63,54,40,.08); backdrop-filter: blur(12px); }
.plan90-candidate__save-state { margin-right: auto; color: #6f7668; font-size: 12px; }
.plan90-candidate__save-state--dirty, .plan90-candidate__save-state--saving { color: #a06034; }
.plan90-candidate__outline { position: sticky; top: 130px; display: grid; gap: 4px; padding: 13px 0; border-top: 1px solid #ddd4c8; border-bottom: 1px solid #ddd4c8; }
.plan90-candidate__outline b { margin-bottom: 6px; color: #837b71; font-size: 11px; letter-spacing: .08em; }
.plan90-candidate__outline a { padding: 7px 9px; border-radius: 6px; color: #686158; font-size: 12px; text-decoration: none; }
.plan90-candidate__outline a:hover { color: #9d4628; background: #fff5ee; }
.plan90-candidate__paper { min-width: 0; overflow: hidden; border: 1px solid var(--p90-line); background: var(--p90-paper); box-shadow: 0 14px 38px rgba(63,54,40,.08); }
.plan90-candidate__paper .plan90-candidate__cover h2 { position: relative; z-index: 1; max-width: 680px; margin: 0; color: #fffaf3; font: 700 33px/1.3 "Songti SC", "SimSun", serif; }
.plan90-candidate__report-block { position: relative; padding: 28px; border-top: 1px solid #eee7dd; scroll-margin-top: 140px; }
.plan90-candidate__report-block > p { color: #696158; line-height: 1.75; white-space: pre-wrap; }
.plan90-candidate__editable-lead { margin: 10px 0 8px; font: 700 22px/1.45 "Songti SC", "SimSun", serif; }
[contenteditable="true"] { border-radius: 4px; outline: 1px dashed transparent; transition: outline-color .15s ease, background .15s ease; }
[contenteditable="true"]:hover { outline-color: #d8b9a7; background: #fffaf5; }
[contenteditable="true"]:focus { outline: 2px solid rgba(229,93,45,.35); background: #fff; }
.plan90-candidate__annotation-trigger { position: absolute; top: 22px; right: 22px; min-height: 30px; padding: 5px 10px; border: 1px solid #decfc3; border-radius: 99px; color: #8b5b42; background: #fffdfa; font: 700 11px/1 inherit; cursor: pointer; }
.plan90-candidate__annotation-trigger:hover { border-color: var(--p90-orange); color: var(--p90-orange); }
.plan90-candidate__section-intro { margin: -4px 0 16px; color: #81786e; font-size: 12px; }
.plan90-candidate__week-report-list { display: grid; gap: 14px; }
.plan90-candidate__week-report-card { overflow: hidden; border: 1px solid #e5ddd2; border-radius: 9px; background: #fff; }
.plan90-candidate__week-report-head { display: flex; align-items: center; gap: 10px; min-height: 48px; padding: 9px 14px; border-bottom: 1px solid #e9e1d7; background: #f8f3ec; }
.plan90-candidate__week-report-head > b { color: var(--p90-orange); font-size: 14px; letter-spacing: .05em; }
.plan90-candidate__week-report-head > span { color: #756c62; font-size: 12px; }
.plan90-candidate__week-report-head .plan90-candidate__annotation-trigger { position: static; margin-left: auto; }
.plan90-candidate__week-report-field { display: grid; grid-template-columns: 104px minmax(0,1fr); gap: 16px; padding: 14px; border-bottom: 1px solid #eee7dd; }
.plan90-candidate__week-report-field:last-child { border-bottom: 0; }
.plan90-candidate__week-report-field > b { color: #887d70; font-size: 11px; letter-spacing: .04em; }
.plan90-candidate__week-report-field > div { min-width: 0; color: #554e47; font-size: 13px; line-height: 1.75; white-space: pre-line; overflow-wrap: anywhere; }
.plan90-candidate__calendar-week-nav { display: grid; grid-template-columns: repeat(13, minmax(52px, 1fr)); gap: 6px; margin: 18px 0 14px; }
.plan90-candidate__calendar-week-button { min-width: 58px; padding: 9px 6px 8px; border: 1px solid #e4dbcf; border-radius: 8px; color: #756d63; background: #fff; cursor: pointer; transition: border-color .16s ease, color .16s ease, background .16s ease, transform .16s ease; }
.plan90-candidate__calendar-week-button:hover { border-color: #d6b39d; color: #9d4628; transform: translateY(-1px); }
.plan90-candidate__calendar-week-button.is-active { border-color: var(--p90-orange); color: #9d4628; background: #fff4ec; box-shadow: inset 0 -2px 0 var(--p90-orange); }
.plan90-candidate__calendar-week-button b, .plan90-candidate__calendar-week-button small { display: block; }
.plan90-candidate__calendar-week-button b { font-size: 12px; letter-spacing: .05em; }
.plan90-candidate__calendar-week-button small { margin-top: 3px; overflow: hidden; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.plan90-candidate__calendar-week-panel { overflow: hidden; border: 1px solid #e7ded3; border-radius: 12px; background: #fff; }
.plan90-candidate__calendar-week-panel--phase-1 { --calendar-tint: #fff7ee; --calendar-accent: #d9753f; }
.plan90-candidate__calendar-week-panel--phase-2 { --calendar-tint: #f5f8f0; --calendar-accent: #7a8d65; }
.plan90-candidate__calendar-week-panel--phase-3 { --calendar-tint: #f3f5f7; --calendar-accent: #66798a; }
.plan90-candidate__calendar-week-head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(210px, .46fr); gap: 18px; padding: 20px 22px; background: var(--calendar-tint); }
.plan90-candidate__calendar-week-head h4 { margin: 6px 0; font: 700 22px/1.35 "Songti SC", "SimSun", serif; }
.plan90-candidate__calendar-week-head p { margin: 0; color: #6f675e; font-size: 13px; line-height: 1.7; }
.plan90-candidate__calendar-week-proof { align-self: center; padding-left: 18px; border-left: 2px solid var(--calendar-accent); }
.plan90-candidate__calendar-week-proof small, .plan90-candidate__calendar-week-proof b { display: block; }
.plan90-candidate__calendar-week-proof small { margin-bottom: 5px; color: #8b8177; font-size: 10px; letter-spacing: .08em; }
.plan90-candidate__calendar-week-proof b { color: #574f47; font-size: 12px; line-height: 1.6; }
.plan90-candidate__calendar-rhythm { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); border-top: 1px solid #ebe3d9; border-bottom: 1px solid #ebe3d9; background: #fcfaf7; }
.plan90-candidate__calendar-rhythm span { min-width: 0; padding: 10px 8px; border-right: 1px solid #eee7de; text-align: center; }
.plan90-candidate__calendar-rhythm span:last-child { border-right: 0; }
.plan90-candidate__calendar-rhythm b, .plan90-candidate__calendar-rhythm small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.plan90-candidate__calendar-rhythm b { color: var(--calendar-accent); font-size: 10px; }
.plan90-candidate__calendar-rhythm small { margin-top: 3px; color: #756e66; font-size: 10px; }
.plan90-candidate__calendar-timeline { padding: 4px 22px 18px; }
.plan90-candidate__calendar-day { position: relative; margin: 0; border: 0; border-bottom: 1px solid #eee7de; background: #fff; }
.plan90-candidate__calendar-day:last-child { border-bottom: 0; }
.plan90-candidate__calendar-day::before { position: absolute; top: 29px; bottom: -29px; left: 19px; width: 1px; background: #ded6cc; content: ""; }
.plan90-candidate__calendar-day:last-child::before { display: none; }
.plan90-candidate__calendar-day summary { display: grid; grid-template-columns: 42px minmax(0, 1fr) minmax(180px, .45fr) 18px; gap: 14px; align-items: center; min-height: 72px; padding: 11px 0; list-style: none; cursor: pointer; }
.plan90-candidate__calendar-day summary::-webkit-details-marker { display: none; }
.plan90-candidate__calendar-day-index { position: relative; z-index: 1; display: grid; width: 38px; height: 38px; place-items: center; border: 1px solid #ded4c8; border-radius: 50%; color: var(--calendar-accent); background: #fff; font-size: 10px; font-weight: 800; }
.plan90-candidate__calendar-day-index { grid-row: 1 / span 2; }
.plan90-candidate__calendar-day-main { grid-column: 2; }
.plan90-candidate__calendar-day-proof { grid-column: 3; }
.plan90-candidate__calendar-day-main, .plan90-candidate__calendar-day-proof { min-width: 0; }
.plan90-candidate__calendar-day-main small, .plan90-candidate__calendar-day-main b, .plan90-candidate__calendar-day-proof small, .plan90-candidate__calendar-day-proof b { display: block; }
.plan90-candidate__calendar-day-main small, .plan90-candidate__calendar-day-proof small { margin-bottom: 4px; color: #94897e; font-size: 9px; letter-spacing: .07em; }
.plan90-candidate__calendar-day-main b { color: #554d45; font-size: 13px; }
.plan90-candidate__calendar-day-proof b { color: #70675f; font-size: 11px; font-weight: 600; }
.plan90-candidate__calendar-day summary::after { grid-column: 4; grid-row: 1; color: #a59588; content: "＋"; font-size: 16px; }
.plan90-candidate__calendar-day[open] summary::after { content: "－"; }
.plan90-candidate__calendar-day-body { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin: 0 0 16px 56px; padding: 15px 16px; border-left: 2px solid var(--calendar-accent); background: var(--calendar-tint); }
.plan90-candidate__calendar-day-body > div { min-width: 0; }
.plan90-candidate__calendar-day-body b { color: #7c7167; font-size: 10px; letter-spacing: .06em; }
.plan90-candidate__calendar-day-body p { margin: 6px 0 0; color: #5e574f; font-size: 12px; line-height: 1.7; white-space: pre-wrap; overflow-wrap: anywhere; }
.plan90-candidate__inspector { position: fixed; z-index: 45; top: 126px; right: 24px; width: min(360px, calc(100vw - 48px)); max-height: calc(100vh - 150px); overflow: auto; padding: 17px; border: 1px solid #e4d9ce; border-radius: 10px; background: #fffaf4; box-shadow: 0 18px 54px rgba(63,54,40,.18); }
.plan90-candidate__inspector h3 { margin: 5px 28px 12px 0; font: 700 18px "Songti SC", "SimSun", serif; }
.plan90-candidate__inspector textarea { width: 100%; min-height: 132px; padding: 11px; border: 1px solid #d9d1c6; border-radius: 8px; color: var(--p90-ink); background: #fff; font: inherit; resize: vertical; }
.plan90-candidate__inspector > .plan90-candidate__button { width: 100%; margin-top: 10px; }
.plan90-candidate__inspector-close { position: absolute; top: 14px; right: 14px; border: 0; color: #877d73; background: transparent; cursor: pointer; }
.plan90-candidate__annotation-save { display: block; margin: 5px 34px 0 0; color: #6f7668; font-size: 11px; }
.plan90-candidate__annotation-save--saving { color: #a06034; }
.plan90-candidate__annotation-save--failed { color: #a74634; }
.plan90-candidate__suggestion { margin-top: 13px; padding: 12px; border: 1px solid #dfe3d8; background: #f8faf5; }
.plan90-candidate__suggestion p { max-height: 330px; overflow: auto; margin: 7px 0 0; color: #5f655a; font-size: 12px; line-height: 1.7; white-space: pre-wrap; }
.plan90-candidate__inspector-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 10px; }
.plan90-candidate__annotation-list { display: grid; gap: 8px; margin: 14px 0 0; padding: 0; list-style: none; counter-reset: annotation; }
.plan90-candidate__annotation-list li { position: relative; padding: 11px 12px; border: 1px solid #e4d9ce; border-radius: 8px; background: #fff; counter-increment: annotation; }
.plan90-candidate__annotation-list li b::before { margin-right: 6px; color: var(--p90-orange); content: counter(annotation) "."; }
.plan90-candidate__annotation-list li p { margin: 5px 0 0; color: #6f675f; font-size: 12px; line-height: 1.55; }
.plan90-candidate__annotation-actions { display: flex; gap: 12px; margin-top: 8px; }
.plan90-candidate__annotation-actions button { padding: 0; border: 0; color: #8b5b42; background: transparent; cursor: pointer; font: 700 11px inherit; }
.plan90-candidate__annotation-actions button:last-child { color: #9e4e43; }
.plan90-candidate__edit-progress { margin-top: 14px; padding: 13px; border: 1px solid #e4d9ce; border-radius: 9px; background: #fff; }
.plan90-candidate__edit-progress b { color: #5b534b; font-size: 13px; }
.plan90-candidate__edit-progress p { margin: 6px 0 10px; color: #7c736a; font-size: 11px; line-height: 1.6; }
.plan90-candidate__edit-progress-track { display: block; height: 6px; overflow: hidden; border-radius: 99px; background: #eee5dc; }
.plan90-candidate__edit-progress-track i { display: block; width: 30%; height: 100%; border-radius: inherit; background: var(--p90-orange); }
.plan90-candidate__edit-progress--running .plan90-candidate__edit-progress-track i { width: 68%; animation: plan90-edit-progress 1.5s ease-in-out infinite alternate; }
.plan90-candidate__quality-details { margin-top: 10px; color: #746b62; font-size: 11px; }
.plan90-candidate__quality-details summary { cursor: pointer; font-weight: 700; }
.plan90-candidate__quality-details p { white-space: pre-line; line-height: 1.7; }
@keyframes plan90-edit-progress { from { opacity: .55; transform: translateX(-8%); } to { opacity: 1; transform: translateX(35%); } }
.plan90-candidate__candidate-preview { margin: 12px 0; max-height: 420px; overflow: auto; border: 1px solid #e4d9ce; border-radius: 10px; background: #fff; padding: 10px 12px; }
.plan90-candidate__candidate-preview summary { cursor: pointer; font-weight: 700; }
.plan90-candidate__candidate-preview section { padding: 10px 0; border-top: 1px solid #eee5dc; }
.plan90-candidate__candidate-preview p { margin: 6px 0; white-space: pre-line; color: #6f675f; }

@media (max-width: 800px) {
  .plan90-candidate { padding: 16px; }
  .plan90-candidate__workflow { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .plan90-candidate__phases, .plan90-candidate__activities { grid-template-columns: 1fr; }
  .plan90-candidate__phases::before { display: none; }
  .plan90-candidate__studio { grid-template-columns: 1fr; }
  .plan90-candidate__outline { position: static; grid-auto-flow: column; grid-template-columns: repeat(4,max-content); overflow-x: auto; }
  .plan90-candidate__outline b { display: none; }
  .plan90-candidate__paper { grid-column: 1; }
  .plan90-candidate__calendar-week-nav { grid-template-columns: repeat(7, minmax(42px, 1fr)); }
  .plan90-candidate__calendar-week-button { min-width: 0; }
  .plan90-candidate__calendar-week-head { grid-template-columns: 1fr; }
  .plan90-candidate__calendar-week-proof { padding: 10px 0 0; border-top: 1px solid #ddd5ca; border-left: 0; }
  .plan90-candidate__calendar-day summary { grid-template-columns: 38px minmax(0, 1fr) 18px; gap: 10px; }
  .plan90-candidate__calendar-day-proof { grid-column: 2; }
  .plan90-candidate__calendar-day summary::after { grid-column: 3; grid-row: 1 / span 2; }
  .plan90-candidate__inspector { position: fixed; z-index: 30; top: auto; right: 12px; bottom: 12px; left: 12px; max-height: 72vh; overflow: auto; }
}
@media (max-width: 600px) {
  .plan90-candidate__header h2 { font-size: 24px; }
  .plan90-candidate__editor, .plan90-candidate__versions, .plan90-candidate__report-section { padding: 18px; }
  .plan90-candidate__form, .plan90-candidate__conclusion, .plan90-candidate__details, .plan90-candidate__week-list { grid-template-columns: 1fr; }
  .plan90-candidate__cover { min-height: 222px; padding: 28px 22px; }
  .plan90-candidate__cover h3 { font-size: 27px; }
  .plan90-candidate__actions { align-items: stretch; flex-direction: column-reverse; }
  .plan90-candidate__actions .plan90-candidate__muted { margin-right: 0; }
  .plan90-candidate__button { width: 100%; }
  .plan90-candidate__handoff { grid-template-columns: 1fr; }
  .plan90-candidate__handoff p, .plan90-candidate__handoff .plan90-candidate__button { grid-column: 1; grid-row: auto; }
  .plan90-candidate__next-task { bottom: 8px; align-items: stretch; flex-direction: column; gap: 10px; }
  .plan90-candidate__next-task-copy > small { white-space: normal; }
  .plan90-candidate__evidence-cards { grid-template-columns: 1fr; }
  .plan90-candidate__version { grid-template-columns: 70px minmax(0, 1fr); }
  .plan90-candidate__version small { grid-column: 2; }
  .plan90-candidate__primary-action { align-items: stretch; flex-direction: column; }
  .plan90-candidate__edit-compare { grid-template-columns: 1fr; }
  .plan90-candidate__report-toolbar { top: 54px; flex-wrap: wrap; }
  .plan90-candidate__report-toolbar .plan90-candidate__button { width: auto; }
  .plan90-candidate__report-block { padding: 20px 16px; }
  .plan90-candidate__calendar-week-nav { grid-template-columns: repeat(4, minmax(42px, 1fr)); }
  .plan90-candidate__paper .plan90-candidate__cover h2 { font-size: 27px; }
  .plan90-candidate__calendar-rhythm { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .plan90-candidate__calendar-timeline { padding: 4px 14px 14px; }
  .plan90-candidate__calendar-day summary { grid-template-columns: 38px minmax(0, 1fr) 18px; gap: 10px; }
  .plan90-candidate__calendar-day-proof { grid-column: 2; }
  .plan90-candidate__calendar-day-body { grid-template-columns: 1fr; margin-left: 48px; }
  .plan90-candidate__week-report-field { grid-template-columns: 1fr; gap: 6px; }
}
