.gaokao-advisor {
    display: grid;
    gap: 22px;
}

.advisor-head,
.advisor-panel,
.result-board,
.result-panel {
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface);
    box-shadow: var(--shadow);
}

.advisor-head {
    padding: 30px;
    background: linear-gradient(135deg, #ffffff 0%, #eef7ff 54%, #eafbf5 100%);
}

.advisor-head .eyebrow,
.result-kicker {
    margin: 0 0 8px;
    color: var(--accent-2);
    font-size: 13px;
    font-weight: 900;
}

.advisor-head h2,
.result-summary h3 {
    margin: 0;
    color: var(--ink);
    font-size: 30px;
    line-height: 1.25;
}

.advisor-head p,
.result-summary p,
.advisor-panel p,
.result-panel p {
    margin: 10px 0 0;
    color: #40506c;
}

.advisor-form,
.result-board {
    display: grid;
    gap: 18px;
}

.wizard-progress {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
    max-width: 940px;
    width: 100%;
    margin: 0 auto;
}

.wizard-progress button,
.btn-secondary {
    min-height: 40px;
    border: 1px solid var(--line-strong);
    border-radius: 8px;
    color: var(--accent);
    background: #fff;
    font: inherit;
    font-weight: 900;
    cursor: pointer;
}

.wizard-progress button.active {
    color: #fff;
    background: var(--accent);
    border-color: var(--accent);
}

.wizard-progress button.completed {
    background: var(--mint-soft);
    border-color: #b9ead9;
}

.wizard-progress button:disabled {
    color: #9aa8bd;
    background: #f6f8fb;
    cursor: not-allowed;
}

.wizard-step {
    display: none;
}

.wizard-step.active,
.wizard-step.completed-step {
    display: block;
}

.wizard-step.active {
    border-color: #a8c7ff;
}

.wizard-step.completed-step {
    background: #fbfdff;
    box-shadow: none;
}

.wizard-step.future-step {
    display: none;
}

.wizard-actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 18px;
}

.wizard-step.completed-step .wizard-actions {
    display: none;
}

.idle-panel {
    background: #fff;
}

.advisor-grid,
.result-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.advisor-panel,
.result-panel {
    padding: 22px;
}

.advisor-wizard .advisor-panel {
    max-width: 940px;
    width: 100%;
    margin: 0 auto;
}

.advisor-wizard .field-grid {
    grid-template-columns: repeat(2, minmax(260px, 1fr));
}

.advisor-wizard .field-grid-single {
    grid-template-columns: 1fr;
}

.advisor-panel h3,
.result-panel h3 {
    margin: 0 0 16px;
    font-size: 18px;
    color: var(--ink);
}

.field-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.field-grid-single {
    grid-template-columns: 1fr;
    margin-top: 14px;
}

.field-grid label,
.choice-group,
.switch-row label {
    color: #263556;
    font-weight: 800;
}

.field-grid label {
    display: grid;
    grid-template-columns: minmax(86px, 112px) minmax(0, 1fr);
    gap: 10px;
    align-items: center;
}

.field-grid .field-full {
    grid-column: 1 / -1;
    grid-template-columns: minmax(120px, 170px) minmax(0, 1fr);
}

.field-grid input,
.field-grid select {
    width: 100%;
    min-height: 42px;
    margin-top: 0;
    padding: 8px 10px;
    border: 1px solid var(--line-strong);
    border-radius: 8px;
    color: var(--ink);
    background: #fff;
    font: inherit;
}

.choice-group {
    margin-top: 16px;
}

.choice-group > div,
.switch-row,
.category-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 10px;
}

.choice-group label,
.switch-row label,
.category-grid label {
    max-width: 100%;
    min-height: 38px;
    display: inline-flex;
    align-items: flex-start;
    gap: 8px;
    padding: 7px 11px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface-soft);
    color: #263556;
    font-weight: 800;
}

.category-grid label span {
    line-height: 1.35;
    overflow-wrap: anywhere;
}

.category-grid-muted label {
    background: #fff8ef;
}

.avoid-box {
    margin-top: 14px;
}

.avoid-box summary {
    cursor: pointer;
    color: var(--accent);
    font-weight: 900;
}

.advisor-actions {
    margin-top: 18px;
}

.btn-primary {
    min-height: 44px;
    padding: 0 20px;
    border: 0;
    border-radius: 8px;
    color: #fff;
    background: var(--accent);
    font: inherit;
    font-weight: 900;
    cursor: pointer;
}

.btn-primary:hover {
    background: var(--blue-2);
}

.result-board {
    padding: 0;
    background: transparent;
    border: 0;
    box-shadow: none;
}

.result-summary {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(260px, .8fr);
    gap: 18px;
    padding: 24px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    box-shadow: var(--shadow);
}

.positioning {
    align-self: stretch;
    display: flex;
    align-items: center;
    padding: 16px;
    border-radius: 8px;
    background: #fff9df;
    color: #554414 !important;
    font-weight: 900;
}

.pressure-note {
    display: flex;
    gap: 10px;
    align-items: center;
    padding: 13px 15px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #f5f8ff;
    color: #40506c;
    box-shadow: var(--shadow);
}

.pressure-note strong {
    color: var(--accent);
}

.route-note {
    margin-top: 10px;
    color: #40506c;
}

.international-block {
    margin-top: 18px;
}

.international-block h4 {
    margin: 0 0 8px;
    color: var(--ink);
    font-size: 17px;
}

.warning-list {
    display: grid;
    gap: 8px;
}

.warning-list p {
    margin: 0;
    padding: 12px 14px;
    border-left: 4px solid #d97706;
    border-radius: 8px;
    background: #fff7ed;
    color: #7c2d12;
    font-weight: 800;
}

.plan-list,
.major-grid {
    display: grid;
    gap: 12px;
}

.plan-list article,
.major-card {
    padding: 15px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface-soft);
}

.plan-list strong {
    color: var(--accent);
    font-size: 17px;
}

.compact-list {
    margin: 0;
    padding-left: 20px;
    color: #40506c;
}

.compact-list li + li {
    margin-top: 8px;
}

.major-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.major-title {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.major-title h4 {
    margin: 0;
    color: var(--ink);
    font-size: 17px;
}

.major-title span {
    flex: 0 0 auto;
    padding: 4px 8px;
    border-radius: 8px;
    background: var(--mint-soft);
    color: var(--accent-2);
    font-size: 12px;
    font-weight: 900;
}

.decision {
    color: var(--accent) !important;
    font-weight: 900;
}

.tag-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 12px;
}

.tag-row span {
    padding: 3px 8px;
    border-radius: 8px;
    background: #eaf0ff;
    color: var(--accent);
    font-size: 12px;
    font-weight: 900;
}

.major-warning,
.data-notice {
    color: #6b3f08 !important;
}

.school-blocks,
.school-grid,
.path-grid {
    display: grid;
    gap: 12px;
}

.school-block {
    padding: 15px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
}

.school-block-head h4,
.path-card h4 {
    margin: 0;
    color: var(--ink);
    font-size: 17px;
}

.school-block-head p {
    margin-top: 6px;
}

.school-grid,
.path-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: 12px;
}

.school-card,
.path-card {
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface-soft);
}

.school-title {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
}

.school-title strong {
    color: var(--ink);
    font-size: 16px;
}

.school-title span {
    flex: 0 0 auto;
    padding: 3px 7px;
    border-radius: 8px;
    background: var(--mint-soft);
    color: var(--accent-2);
    font-size: 12px;
    font-weight: 900;
}

.school-note {
    color: #6b3f08 !important;
}

.path-best {
    margin: 0 0 14px !important;
    padding: 14px;
    border-radius: 8px;
    background: #e9fbf5;
    color: var(--accent-2) !important;
    font-weight: 900;
}

.best-choice-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 14px;
}

.best-choice-grid p {
    margin: 0 !important;
    padding: 14px;
    border-radius: 8px;
    background: #f5f8ff;
}

.best-choice-grid strong {
    display: block;
    color: var(--accent);
    font-size: 13px;
}

.profile-strip {
    display: grid;
    gap: 10px;
    margin-bottom: 14px;
}

.profile-strip p,
.principle-grid p,
.risk-band-card,
.plan-card {
    margin: 0;
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface-soft);
}

.profile-strip strong {
    display: block;
    color: var(--accent);
    font-size: 13px;
}

.plan-grid,
.principle-grid,
.risk-band-grid {
    display: grid;
    gap: 12px;
}

.plan-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.plan-type {
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: var(--accent);
    color: #fff;
    font-weight: 900;
}

.plan-card h4 {
    margin: 10px 0 8px;
    color: var(--ink);
    font-size: 16px;
}

.risk-band-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin: 12px 0;
}

.risk-band-card strong {
    display: block;
    margin-bottom: 6px;
    color: var(--accent);
}

.guardrail-list {
    margin-bottom: 14px;
}

.warning-list-inner {
    margin-bottom: 14px;
}

.path-card ul {
    margin: 10px 0 0;
    padding-left: 20px;
    color: #40506c;
}

.path-card li + li {
    margin-top: 6px;
}

.policy-source-block {
    margin-top: 14px;
}

.policy-source-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-top: 10px;
}

.policy-source-list a {
    display: grid;
    gap: 4px;
    padding: 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    color: #40506c;
    text-decoration: none;
}

.policy-source-list strong {
    color: var(--accent);
}

.policy-source-list small {
    color: #6b3f08;
    font-weight: 800;
}

.band-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-top: 16px;
}

.band-grid p {
    margin: 0;
    padding: 14px;
    border-radius: 8px;
    background: #f5f8ff;
}

.band-grid strong {
    display: block;
    color: var(--accent);
    font-size: 18px;
}

@media (max-width: 860px) {
    .advisor-grid,
    .result-grid,
    .result-summary,
    .major-grid,
    .school-grid,
    .path-grid,
    .policy-source-list,
    .best-choice-grid,
    .plan-grid,
    .risk-band-grid,
    .band-grid {
        grid-template-columns: 1fr;
    }

    .field-grid {
        grid-template-columns: 1fr;
    }

    .field-grid label {
        grid-template-columns: 1fr;
        gap: 6px;
    }

    .field-grid .field-full {
        grid-template-columns: 1fr;
    }

    .wizard-progress {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .advisor-head,
    .advisor-panel,
    .result-panel,
    .result-summary {
        padding: 18px;
    }

    .advisor-head h2,
    .result-summary h3 {
        font-size: 23px;
    }
}
