:root {
  --ink: #1b2730;
  --line: #c5cfd2;
  --paper: #f5f7f5;
  --blue: #174b68;
  --blue-dark: #0e3348;
  --blue-pale: #e9f0f2;
  --red: #8d3832;
  --green: #2f6650;
}

* { box-sizing: border-box; }
html { background: #e3e7e7; }
body { margin: 0; background: var(--paper); color: var(--ink); font: 14px "Microsoft YaHei", "PingFang SC", Arial, sans-serif; }
button, input, textarea { font: inherit; }
button { -webkit-tap-highlight-color: transparent; }
noscript { display: block; padding: 30px; text-align: center; }

.portal-shell, .quiz-shell { min-height: 100vh; background: var(--paper); }
.corporate-header { min-height: 76px; padding: 0 clamp(20px, 5vw, 72px); display: flex; align-items: center; justify-content: space-between; color: white; background: var(--blue-dark); border-bottom: 4px solid #9caeb4; }
.brand { display: flex; align-items: center; gap: 13px; }
.brand > div:last-child { display: flex; flex-direction: column; gap: 3px; }
.brand strong { font-size: 15px; letter-spacing: .045em; font-weight: 600; }
.brand span { color: #c6d2d7; font-size: 10px; letter-spacing: .12em; }
.company-mark { width: 41px; height: 41px; display: grid; place-items: center; color: var(--blue-dark); background: #eef2f2; border: 1px solid #b9c6c9; font: bold 22px SimSun, serif; }
.system-code { color: #b7c7ce; font: 11px Consolas, monospace; letter-spacing: .09em; }
.employee-chip { display: flex; flex-direction: column; align-items: flex-end; gap: 2px; }
.employee-chip span { color: #adc0c7; font: 9px Consolas, monospace; letter-spacing: .12em; }
.employee-chip strong { font-size: 13px; font-weight: 500; }

.entry-layout { width: min(1120px, calc(100% - 42px)); margin: 0 auto; padding: clamp(54px, 8vh, 92px) 0 58px; display: grid; grid-template-columns: 1.15fr .85fr; gap: clamp(48px, 8vw, 106px); align-items: start; }
.eyebrow { margin: 0 0 14px; color: var(--blue); font-size: 11px; font-weight: 700; letter-spacing: .22em; }
.entry-copy h1 { margin: 0; font: 500 clamp(36px, 5vw, 57px) SimSun, STSong, serif; letter-spacing: .03em; }
.lead { max-width: 640px; margin: 23px 0 30px; color: #4d5b62; font-size: 16px; line-height: 1.9; }
.notice-box { padding: 21px 23px; background: #eef2f2; border: 1px solid var(--line); border-left: 4px solid var(--blue); }
.notice-box strong { font-size: 14px; }
.notice-box ol { margin: 13px 0 0; padding-left: 20px; color: #4d5a61; line-height: 2; }

.entry-form { background: white; border: 1px solid #b8c3c7; box-shadow: 0 7px 25px rgba(34, 53, 62, .09); }
.form-heading { padding: 17px 21px; display: flex; justify-content: space-between; background: #e6ecee; border-bottom: 1px solid #c2cccf; }
.form-heading span { font-size: 15px; font-weight: 700; }
.form-heading small { color: #748087; font: 10px Consolas, monospace; }
.entry-form > label:not(.consent-row) { display: flex; flex-direction: column; gap: 8px; padding: 16px 21px 0; }
.entry-form label > span { color: #3f4e55; font-size: 12px; font-weight: 600; }
.entry-form input { width: 100%; height: 41px; padding: 0 11px; color: var(--ink); background: white; border: 1px solid #aebbc0; outline: none; }
.entry-form input:focus { border-color: var(--blue); box-shadow: 0 0 0 2px rgba(23,75,104,.1); }
.entry-form input:disabled { color: #68747a; background: #edf0f0; }
.consent-row { margin: 21px; display: grid; grid-template-columns: 17px 1fr; gap: 9px; align-items: start; line-height: 1.55; }
.consent-row input { width: 16px; height: 16px; accent-color: var(--blue); }
.entry-form > .primary-button { width: calc(100% - 42px); margin: 0 21px; }
.form-footnote { margin: 14px 21px 19px; text-align: center; color: #899398; font-size: 10px; }

.primary-button { min-width: 150px; min-height: 43px; padding: 0 23px; color: white; background: var(--blue); border: 1px solid #0a2c3e; cursor: pointer; font-weight: 600; letter-spacing: .025em; }
.primary-button:hover:not(:disabled) { background: #103e58; }
.primary-button:disabled { color: #eef1f1; background: #9ca7ab; border-color: #8d989c; cursor: not-allowed; }
.portal-footer { min-height: 43px; padding: 0 clamp(20px, 5vw, 72px); display: flex; align-items: center; justify-content: space-between; color: #7d878c; background: #ecefef; border-top: 1px solid #c4cccf; font-size: 10px; }

.progress-wrap { width: min(1160px, calc(100% - 42px)); margin: 26px auto 0; }
.progress-label { margin-bottom: 8px; display: flex; justify-content: space-between; color: #56656c; font-size: 11px; }
.progress-label strong { color: var(--blue); font: 11px Consolas, monospace; }
.progress-track { height: 4px; overflow: hidden; background: #d4dbdd; }
.progress-track span { display: block; height: 100%; background: var(--blue); transition: width .45s ease; }

.audit-layout { width: min(1160px, calc(100% - 42px)); margin: 20px auto 38px; display: grid; grid-template-columns: minmax(0, 1fr) 306px; gap: 23px; align-items: start; }
.question-panel, .status-panel { background: white; border: 1px solid #bdc7ca; box-shadow: 0 3px 13px rgba(28,48,58,.055); }
.question-panel { min-height: 625px; padding: clamp(29px, 4vw, 46px); }
.question-number { margin: 0; color: var(--blue); font: 700 10px Consolas, monospace; letter-spacing: .15em; text-transform: uppercase; }
.question-label { display: inline-block; margin-top: 18px; padding: 5px 8px; color: #52636b; background: #ecf0f1; border: 1px solid #d0d7d9; font-size: 10px; }
.question-panel h1 { min-height: 61px; margin: 17px 0 9px; max-width: 760px; font: 500 clamp(22px, 2.5vw, 28px)/1.55 SimSun, STSong, serif; }
.question-note { margin: 0 0 25px; color: #79858a; font-size: 11px; }
.options { display: grid; gap: 9px; }
.option { width: 100%; min-height: 51px; padding: 10px 14px; display: grid; grid-template-columns: 29px 1fr; gap: 10px; align-items: center; text-align: left; color: #2b3940; background: #fbfcfb; border: 1px solid #c4ced1; cursor: pointer; }
.option:hover:not(:disabled) { background: #f3f6f6; border-color: #788f99; }
.option.chosen { background: var(--blue-pale); border-color: var(--blue); box-shadow: inset 3px 0 var(--blue); }
.option:disabled { cursor: default; opacity: 1; }
.option-key { width: 26px; height: 26px; display: grid; place-items: center; color: #52636b; background: white; border: 1px solid #adbbc0; font: 11px Consolas, monospace; }
.option.correct { background: #edf4f0; border-color: #7d9e8d; box-shadow: inset 3px 0 var(--green); }
.option.correct .option-key { color: var(--green); border-color: var(--green); }
.option.wrong { background: #f8eeee; border-color: #bb8d89; box-shadow: inset 3px 0 var(--red); }
.option.wrong .option-key { color: var(--red); border-color: var(--red); }
.question-actions { margin-top: 24px; display: flex; justify-content: flex-end; }

.status-panel { position: sticky; top: 17px; overflow: hidden; }
.status-heading { padding: 14px 15px; display: flex; align-items: center; justify-content: space-between; background: #e6ecee; border-bottom: 1px solid #c2cccf; }
.status-heading strong { font-size: 12px; }
.live-dot { display: flex; align-items: center; gap: 6px; color: var(--green); font-size: 9px; }
.live-dot::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: #4b8167; }
.environment-list { margin: 0; padding: 6px 15px 12px; }
.environment-list > div { min-height: 43px; padding: 8px 0; display: flex; flex-direction: column; gap: 4px; border-bottom: 1px solid #e1e6e7; }
.environment-list > div.active { margin: 0 -15px; padding-left: 15px; padding-right: 15px; background: #f1f5f5; }
.environment-list dt { color: #7a878c; font-size: 9px; }
.environment-list dd { margin: 0; color: #35454d; font-size: 11px; }
.status-note { margin: 0; padding: 13px 15px; color: #8b9498; background: #fafbfa; border-top: 1px solid #d5dcde; font-size: 9px; line-height: 1.6; }
.attention-log { margin: 0; padding: 10px 15px; color: #64747b; background: #eef2f2; border-top: 1px solid #d3dbdd; font: 9px Consolas, "Microsoft YaHei", sans-serif; }

.procedure-heading { display: flex; justify-content: space-between; align-items: center; }
.paired-badge { display: flex; align-items: center; gap: 6px; color: #426b59; font-size: 9px; }
.paired-badge i { width: 6px; height: 6px; border-radius: 50%; background: #4a8065; }
.procedure-panel h1 { margin-top: 24px; margin-bottom: 27px; }
.feedback { margin-top: 19px; padding: 16px 17px; background: #f1f4f4; border: 1px solid #bec9cc; animation: settle .4s ease both; }
@keyframes settle { from { opacity: 0; transform: translateY(3px); } to { opacity: 1; transform: none; } }
.feedback-title { display: flex; gap: 14px; align-items: baseline; }
.feedback-title strong { font-size: 13px; }
.feedback-title span { color: var(--red); font-size: 11px; }
.feedback > p { margin: 9px 0 0; color: #4c5a61; line-height: 1.7; }
.feedback .sync-line { color: #405c68; font: 10px Consolas, "Microsoft YaHei", sans-serif; }
.sync-line span { margin-right: 7px; }

.terminal-row { min-height: 55px; padding: 10px 15px; display: grid; grid-template-columns: 64px 1fr auto; align-items: center; border-bottom: 1px solid #e0e5e6; }
.terminal-row span { color: #718087; font: 9px Consolas, monospace; }
.terminal-row strong { font-size: 11px; font-weight: 500; }
.terminal-row small { color: var(--green); font-size: 9px; }
.terminal-two { background: #f1f5f4; }
.review-location { padding: 14px 15px; display: flex; flex-direction: column; gap: 4px; border-bottom: 1px solid #dce2e4; }
.review-location span { color: #7c888d; font-size: 9px; }
.review-location strong { font: 500 15px SimSun, serif; }
.review-location small { color: #68777e; font-size: 10px; }
.review-steps { list-style: none; margin: 0; padding: 11px 15px; }
.review-steps li { min-height: 31px; display: flex; align-items: center; gap: 8px; color: #949c9f; font-size: 10px; }
.review-steps i { width: 7px; height: 7px; border: 1px solid #aab4b7; border-radius: 50%; }
.review-steps li.current { color: #32464f; font-weight: 600; }
.review-steps li.current i { background: var(--blue); border-color: var(--blue); }
.review-steps li.done { color: #63727a; }
.review-steps li.done i { background: #778a91; border-color: #778a91; }

.statement-area { padding: 19px; background: #f1f4f4; border: 1px solid #c6d0d3; }
.statement-area label { display: block; margin-bottom: 7px; color: #718087; font-size: 9px; font-weight: 700; letter-spacing: .08em; }
.statement-area blockquote { margin: 0 0 20px; padding: 12px 14px; color: #405058; background: white; border-left: 3px solid #889ba3; font-family: SimSun, serif; }
.statement-area textarea { width: 100%; height: 82px; padding: 12px 13px; resize: none; color: var(--ink); background: white; border: 1px solid #aebbc0; outline: none; line-height: 1.7; }
.statement-area textarea:focus { border-color: var(--blue); box-shadow: 0 0 0 2px rgba(23,75,104,.09); }
.statement-area textarea:disabled { color: #273940; background: #fbfcfb; opacity: 1; }
.recording-note { margin: 10px 0 0; display: flex; align-items: center; gap: 7px; color: #63747b; font-size: 9px; }
.recording-note span { width: 5px; height: 5px; border-radius: 50%; background: var(--blue); animation: pulse 1s infinite; }
@keyframes pulse { 50% { opacity: .25; } }

.linking-screen { min-height: 100vh; display: grid; place-items: center; padding: 25px; background: #e7ebea; }
.linking-card { width: min(520px,100%); padding: 48px 54px; text-align: center; background: white; border: 1px solid #bdc7ca; box-shadow: 0 7px 28px rgba(30,48,57,.08); }
.link-symbol { margin: 0 auto 26px; display: flex; justify-content: center; align-items: center; }
.link-symbol span { width: 42px; height: 42px; display: grid; place-items: center; color: var(--blue); background: #eef2f2; border: 1px solid #9aabb1; font: 11px Consolas, monospace; }
.link-symbol i { width: 80px; height: 1px; background: #aab7bb; position: relative; }
.link-symbol i::after { content: ""; position: absolute; right: -1px; top: -3px; width: 6px; height: 6px; border-top: 1px solid #788c94; border-right: 1px solid #788c94; transform: rotate(45deg); }
.complete-kicker { color: #839095; font: 9px Consolas, monospace; letter-spacing: .16em; }
.linking-card h1 { margin: 14px 0 12px; font: 500 27px SimSun, serif; }
.linking-card > p:not(.complete-kicker) { color: #69767c; }
.link-progress { height: 3px; margin: 27px 0 13px; overflow: hidden; background: #d9dfe0; }
.link-progress span { display: block; width: 52%; height: 100%; background: var(--blue); animation: searching 1.4s ease-in-out infinite alternate; }
.link-progress span.ready { width: 100%; animation: none; transition: width .6s ease; }
@keyframes searching { from { transform: translateX(-80%); } to { transform: translateX(150%); } }
.linking-card small { color: #8b9599; font-size: 9px; }

.complete-screen, .closed-screen { min-height: 100vh; display: grid; place-items: center; padding: 28px; background: #e7eae9; }
.complete-card { width: min(590px,100%); padding: 49px 58px 40px; text-align: center; background: white; border: 1px solid #bdc7ca; box-shadow: 0 8px 33px rgba(31,48,55,.1); }
.completion-seal { width: 48px; height: 48px; margin: 20px auto; display: grid; place-items: center; color: var(--blue); border: 1px solid #81959d; border-radius: 50%; font-size: 21px; }
.complete-card h1 { margin: 0 0 12px; font: 500 36px SimSun, serif; letter-spacing: .07em; }
.complete-copy { color: #5e6b70; line-height: 1.8; }
.result-grid { margin: 27px 0 19px; border: 1px solid #cbd3d5; }
.result-grid > div { min-height: 39px; padding: 0 13px; display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid #e0e5e6; }
.result-grid > div:last-child { border-bottom: 0; }
.result-grid span { color: #79868b; font-size: 10px; }
.result-grid strong { color: #3d5149; font-size: 11px; }
.result-grid .difference-row strong { color: var(--red); }
.environment-receipt { padding: 13px 15px; display: grid; grid-template-columns: 1fr 1fr; gap: 11px 20px; text-align: left; background: #f3f5f4; border: 1px solid #d1d8da; animation: fadeIn 1s .4s both; }
.environment-receipt > div { display: flex; flex-direction: column; gap: 3px; }
.environment-receipt span { color: #849095; font-size: 9px; }
.environment-receipt strong { color: #3b4a51; font-size: 10px; font-weight: 500; }
.final-line { margin: 20px 0 0; padding: 17px 14px; color: #253941; background: #e9edec; border-left: 3px solid #72838a; font: 500 15px/1.7 SimSun, serif; animation: fadeIn 1.2s 1.3s both; }
.final-subline { margin: 12px 0 0; color: #808b90; font-size: 10px; animation: fadeIn 1.2s 2.2s both; }
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
.quiet-button { margin-top: 28px; padding: 9px 17px; color: #66747a; background: transparent; border: 1px solid #b8c2c5; cursor: pointer; font-size: 11px; }
.quiet-button:hover { color: var(--ink); border-color: #7c8d93; }
.closed-card { display: flex; flex-direction: column; align-items: center; color: #5f6d73; }
.closed-card .company-mark { margin-bottom: 22px; }
.closed-card p { margin: 0 0 7px; color: #33444b; }
.closed-card span { color: #8b9599; font-size: 10px; }

@media (max-width: 850px) {
  .entry-layout { grid-template-columns: 1fr; gap: 34px; padding-top: 45px; }
  .audit-layout { grid-template-columns: 1fr; }
  .status-panel { position: static; order: -1; }
  .environment-list { display: grid; grid-template-columns: 1fr 1fr; gap: 0 15px; }
  .review-panel { display: grid; grid-template-columns: 1fr 1fr; }
  .review-panel .status-heading, .review-panel .review-location, .review-panel .review-steps, .review-panel .status-note, .review-panel .attention-log { grid-column: 1 / -1; }
  .question-panel { min-height: 0; }
}

@media (max-width: 560px) {
  .corporate-header { min-height: 64px; padding: 0 15px; }
  .brand strong { font-size: 12px; }
  .brand span, .system-code { display: none; }
  .company-mark { width: 35px; height: 35px; font-size: 18px; }
  .entry-layout, .audit-layout, .progress-wrap { width: calc(100% - 24px); }
  .entry-copy h1 { font-size: 35px; }
  .question-panel { padding: 23px 17px; }
  .question-panel h1 { min-height: 0; font-size: 21px; }
  .status-panel { max-height: 235px; overflow-y: auto; }
  .review-steps { display: none; }
  .option { padding: 9px 10px; }
  .linking-card, .complete-card { padding: 39px 23px 32px; }
  .environment-receipt { grid-template-columns: 1fr; }
  .portal-footer span:first-child { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-delay: 0ms !important; transition-duration: .01ms !important; }
}
