/* ==========================================================================
   关心下一代网主题 —— 覆盖层 + 无障碍辅助样式
   --------------------------------------------------------------------------
   本文件刻意保持"最小":
   · 参考站本来的样式全部来自 css/bootstrap.min.css + css/custom.css（原样搬运），
     这里**不复制、不改写**任何参考站规则；
   · 只放两类内容：
     ① 把参考站写死的版式接到动态数据上必须做的覆盖（导航项数是动态的）；
     ② 参考站没有、但本项目需要保留的「无障碍辅助」样式。
   ========================================================================== */

/* ==========================================================================
   ① 版式覆盖
   ========================================================================== */

/*
 * 参考站主导航写死 .nav ul li { width: 9% } 且正好 11 项（99%）。
 * 本站栏目数是动态的（当前 12 项含首页），9% 会溢出换行，
 * 因此改成 flex 等分：项数变化时仍然一行排满。
 */
.nav ul.nav_pc {
    display: flex;
    flex-wrap: nowrap;
    padding-left: 15px;
    padding-right: 15px;
}

.nav ul.nav_pc > li {
    flex: 1 1 0;
    width: auto;
    min-width: 0;
}

/* 参考站靠浮动换行，容器里的 .clear 提示元素在 flex 下会变成占位项 */
.nav ul.nav_pc > .clear {
    display: none;
}

.nav ul.nav_pc > li > .a1 {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* 参考站下拉是整行通铺（left:0; width:100%），但 .nav 在 992-1600px 被限宽 1200px，
   菜单项与 .container 同宽，这里把下拉的左边界对齐到 wrap 内，避免从 ul 左侧溢出 */
.nav ul.nav_pc > li > .div1 {
    left: 0;
}

/*
 * 参考站只在 ≤992px 时给 .moblie_head 设 display:block，桌面端没有任何规则，
 * 于是 Logo（自然尺寸 456×86）+ 汉堡按钮会在主导航下面又冒出一条橙色栏。
 * 参考站线上效果是桌面端看不到它，这里把缺的那条 display:none 补上。
 */
@media (min-width: 993px) {
    .moblie_head,
    .a_txt {
        display: none;
    }
}

/*
 * 列表页分页的 <select> 参考站没给样式，浏览器默认控件高 24px 左右，
 * 与 Bootstrap 的 .page-link（高 38px）不成一行；补一段与 .page-link 等高的样式。
 */
.pagination select {
    height: 38px;
    padding: 0 8px;
    border: 1px solid #dee2e6;
    border-radius: .25rem;
    color: #ed7201;
    background: #fff;
    font-size: 14px;
    vertical-align: middle;
}

/* 参考站正文图片靠 custom.css 的 max-width 兜底；这里补上 Bootstrap 未覆盖的高度自适应 */
.article-text img {
    height: auto;
}

/* 参考站正文里的 iframe（视频）在窄屏溢出，custom.css 只在移动端处理，这里补齐 */
@media (max-width: 991px) {
    .article-text iframe {
        width: 100% !important;
        height: auto;
        min-height: 200px;
    }
}

/* ==========================================================================
   ③ 次级页面组件（表单 / 标签云 / 会员中心等参考站没有的页面）
   --------------------------------------------------------------------------
   参考站只有首页/列表页/内容页三种版式；本项目还有表单、标签云、会员中心等页面，
   这些页面复用 Bootstrap 控件，这里只补齐它们自带的少量结构样式。
   ========================================================================== */

.form-page {
    max-width: 860px;
    margin: 0 auto;
    padding: 20px 15px 30px;
}

.form-item {
    margin-bottom: 18px;
}

.form-item__label {
    display: block;
    font-weight: bold;
    margin-bottom: 6px;
}

.form-item__required {
    color: #dc3545;
    margin-left: 2px;
}

.form-item__hint {
    color: #999;
    font-size: 12px;
    margin-top: 4px;
}

.form-options {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 18px;
    padding-top: 4px;
}

.form-option {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    cursor: pointer;
}

.form-actions {
    display: flex;
    gap: 10px;
    padding-top: 6px;
}

.form-alert {
    padding: 10px 14px;
    margin-bottom: 16px;
    border-radius: 4px;
    font-size: 14px;
}

.form-alert--error {
    background: #fdecec;
    border: 1px solid #f5c2c7;
    color: #842029;
}

.form-done {
    text-align: center;
    padding: 40px 20px;
    border: 1px solid #e1e1e1;
    background: #fff;
}

.form-done__icon {
    font-size: 46px;
    color: #198754;
    line-height: 1;
    margin: 10px 0;
}

.form-done__text {
    font-size: 18px;
    font-weight: bold;
}

.form-done__tip {
    color: #999;
    font-size: 13px;
    margin-top: 8px;
}

.tag-cloud a {
    display: inline-block;
    margin: 0 8px 8px 0;
    padding: 3px 10px;
    border: 1px solid #e1e1e1;
    background: #fafafa;
    font-size: 13px;
}

.tag-cloud a:hover {
    border-color: #ed7201;
    color: #ed7201;
}

.tag-cloud a em {
    font-style: normal;
    color: #999;
    font-size: 12px;
}

/* —— 盒式版块（举报 / 会员中心等页面复用） —— */
.panel {
    border: 1px solid #e1e1e1;
    background: #fff;
    margin-bottom: 16px;
}

.panel__head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: #f8f8f8;
    border-left: 3px solid #ed7201;
    padding: 0 14px;
}

.panel__title {
    font-size: 16px;
    line-height: 42px;
    margin: 0;
    font-weight: bold;
}

.panel__extra {
    color: #999;
    font-size: 13px;
}

.panel__empty {
    padding: 20px 14px;
    color: #999;
    text-align: center;
    margin: 0;
}

.panel__desc {
    padding: 12px 14px;
    color: #666;
    margin: 0;
}

.member-page,
.report-page {
    max-width: 860px;
    margin: 0 auto;
    padding: 20px 15px 30px;
}

.member-info,
.report-target {
    padding: 14px;
}

.member-bind {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 14px;
    border-top: 1px dashed #e1e1e1;
}

.member-bind:first-of-type {
    border-top: 0;
}

.member-bind__state--off {
    color: #999;
}

.report-form {
    padding: 14px;
}

.report-form__label {
    display: block;
    font-weight: bold;
    margin: 14px 0 6px;
}

.report-form__control {
    width: 100%;
}

.report-form__note,
.report-form__tip {
    color: #999;
    font-size: 12px;
    margin-top: 4px;
}

.report-form__optional {
    color: #999;
    font-weight: normal;
    font-size: 12px;
}

.report-form__actions,
.report-done__actions {
    padding: 14px 0 4px;
    display: flex;
    gap: 10px;
}

.report-alert {
    padding: 10px 14px;
    margin-bottom: 16px;
    border: 1px solid #f5c2c7;
    background: #fdecec;
    color: #842029;
    border-radius: 4px;
}

.report-alert__list {
    margin: 6px 0 0;
    padding-left: 18px;
}

.report-done,
.form-done {
    text-align: center;
    padding: 34px 20px;
}

.report-done__icon,
.form-done__icon {
    font-size: 44px;
    color: #198754;
    line-height: 1;
    margin: 8px 0;
}

.report-done__text,
.form-done__text {
    font-size: 18px;
    font-weight: bold;
}

.report-done__id {
    color: #ed7201;
    font-weight: bold;
}

.report-done__tip,
.form-done__tip {
    color: #999;
    font-size: 13px;
    margin-top: 8px;
}

.report-btn--primary {
    background: #ed7201;
    border-color: #ed7201;
    color: #fff;
}

.report-btn--primary:hover {
    background: #d66400;
    border-color: #d66400;
    color: #fff;
}

.notice {
    padding: 60px 15px;
    text-align: center;
}

.notice__card {
    display: inline-block;
    min-width: 320px;
    padding: 34px 30px;
    border: 1px solid #e1e1e1;
    background: #fff;
}

.notice__icon {
    font-size: 40px;
    line-height: 1;
    color: #ed7201;
}

.notice h1 {
    font-size: 22px;
    margin: 12px 0;
}

.notice__meta,
.notice__tip {
    color: #999;
    font-size: 13px;
}

/* 广告位（后台可配，参考站没有对应版式，给一个兜底样式） */
.ad-block {
    text-align: center;
    margin: 14px auto;
    max-width: 1240px;
}

.ad-block img {
    max-width: 100%;
    height: auto;
}

/* ==========================================================================
   ② 无障碍辅助（参考常德政府网「无障碍浏览」）
   ========================================================================== */

/* 跳过导航直达正文（仅键盘聚焦时可见） */
.a11y-skip {
    position: absolute;
    left: -9999px;
    top: 0;
    z-index: 4000;
    background: #ed7201;
    color: #fff;
    padding: 6px 14px;
    font-size: 14px;
}

.a11y-skip:focus {
    left: 0;
}

/* 右侧浮动入口：不占文档流，不影响参考站版式 */
.a11y-fab {
    position: fixed;
    right: 0;
    top: 42%;
    z-index: 3000;
    width: 46px;
    padding: 10px 4px;
    border: 0;
    border-radius: 4px 0 0 4px;
    background: #ed7201;
    color: #fff;
    font-size: 16px;
    line-height: 1.3;
    text-align: center;
    box-shadow: 0 2px 10px rgba(0, 0, 0, .2);
    cursor: pointer;
}

.a11y-fab:hover,
.a11y-fab:focus {
    background: #cc3300;
    color: #fff;
}

.a11y-fab em {
    display: block;
    font-style: normal;
    font-size: 12px;
    margin-top: 2px;
    letter-spacing: 1px;
}

.a11y-panel {
    position: fixed;
    top: 90px;
    right: 56px;
    z-index: 3100;
    width: 340px;
    background: #fff;
    border: 2px solid #ed7201;
    box-shadow: 0 6px 24px rgba(0, 0, 0, .18);
    padding: 10px 12px;
    text-align: left;
}

.a11y-panel__head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 1px solid #e1e1e1;
    padding-bottom: 6px;
    margin-bottom: 8px;
}

.a11y-panel__close {
    border: 0;
    background: none;
    font-size: 20px;
    line-height: 1;
    color: #999;
    cursor: pointer;
}

.a11y-panel__group {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    padding: 6px 0;
}

.a11y-panel__label {
    color: #666;
    min-width: 48px;
    font-size: 13px;
}

.a11y-panel__group button {
    border: 1px solid #e1e1e1;
    background: #fafafa;
    padding: 4px 10px;
    font-size: 13px;
    cursor: pointer;
}

.a11y-panel__group button:hover {
    border-color: #ed7201;
    color: #ed7201;
}

.a11y-panel__group button[aria-pressed="true"] {
    background: #ed7201;
    border-color: #ed7201;
    color: #fff;
}

.a11y-guide {
    position: fixed;
    left: 0;
    right: 0;
    height: 2px;
    background: rgba(237, 114, 1, .75);
    z-index: 2400;
    pointer-events: none;
}

.a11y-guide--v {
    width: 2px;
    height: auto;
    top: 0;
    bottom: 0;
    left: 0;
    right: auto;
}

/* —— 开关态（body 类，JS 控制） —— */
body.a11y-fs-110 { font-size: 110%; }
body.a11y-fs-125 { font-size: 125%; }
body.a11y-fs-140 { font-size: 140%; }

body.a11y-gray { filter: grayscale(1); }

body.a11y-contrast { filter: contrast(1.8) grayscale(.4); }

body.a11y-contrast main,
body.a11y-contrast footer {
    background: #000;
    color: #ff0;
}

body.a11y-contrast main a,
body.a11y-contrast footer a {
    color: #ff0;
}

body.a11y-blue { background: #000c3c; }

body.a11y-blue header,
body.a11y-blue main,
body.a11y-blue footer {
    background: #000c3c;
    color: #ffe100;
}

body.a11y-blue main a,
body.a11y-blue footer a {
    color: #ffe100;
}

body.a11y-blue .head {
    background: #000c3c;
}

body.a11y-blue .right-title,
body.a11y-blue .right-box,
body.a11y-blue .tab-content,
body.a11y-blue .list-unstyled,
body.a11y-blue .list-inline-item a {
    background: #000c3c;
    color: #ffe100;
}

body.a11y-underline a {
    text-decoration: underline !important;
}

body.a11y-cursor,
body.a11y-cursor a,
body.a11y-cursor button,
body.a11y-cursor select {
    cursor: crosshair;
}

/* 小屏时工具栏收窄，避免遮挡内容 */
@media (max-width: 767px) {
    .a11y-panel {
        right: 8px;
        left: 8px;
        width: auto;
        top: 60px;
    }
}

/* ==========================================================================
   ④ 互动页组件（投票 / 问卷 / 在线考试 / 投票主题）
   --------------------------------------------------------------------------
   参考站没有这几种版式，全部走「.panel 盒式版块 + Bootstrap 控件」的组合，
   这里只补结构样式，不引入任何新配色 —— 主色沿用参考站的 #ed7201。
   ========================================================================== */

/* —— 通用提示条（多一个「成功」态，报告/表单页只有 error） —— */
.form-alert--ok {
    background: #eaf7ee;
    border: 1px solid #a3cfbb;
    color: #146c43;
}

/* —— 题干 / 作答控件（问卷与考试共用） —— */
.q-item {
    padding: 16px 0;
    border-bottom: 1px dashed #e1e1e1;
}

.q-item:last-of-type {
    border-bottom: 0;
}

.q-item--invalid {
    background: #fdecec;
    box-shadow: inset 3px 0 0 #dc3545;
}

.q-item__title {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 6px;
    margin-bottom: 10px;
    font-size: 15px;
    font-weight: bold;
    line-height: 1.7;
}

.q-item__index {
    display: inline-block;
    min-width: 22px;
    height: 22px;
    padding: 0 5px;
    font-size: 12px;
    font-weight: normal;
    line-height: 22px;
    text-align: center;
    color: #ed7201;
    background: #fff3e6;
    border-radius: 4px;
}

.q-item__text {
    flex: 1;
    min-width: 0;
}

.q-item__hint,
.q-item__score {
    font-size: 12px;
    font-weight: normal;
    color: #999;
}

.q-item__score {
    color: #ed7201;
}

.q-item__desc {
    margin: -4px 0 10px 28px;
    font-size: 13px;
    color: #999;
}

.q-item__control {
    padding-left: 28px;
}

.q-item__options {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 24px;
}

.q-item__options--rating {
    gap: 8px 18px;
}

.q-item__option {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin: 0;
    font-weight: normal;
    cursor: pointer;
}

/* —— 问卷页 —— */
.survey-page,
.vote-page,
.exam-page,
.vote-topic-page {
    padding-bottom: 10px;
}

.survey-desc {
    margin: 0;
    padding: 12px 14px;
    color: #666;
    line-height: 1.9;
}

.survey-meta,
.exam-meta,
.vote-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 18px;
    padding: 10px 14px;
    margin-bottom: 14px;
    font-size: 13px;
    color: #666;
    background: #f8f8f8;
    border: 1px solid #e1e1e1;
}

.survey-form,
.exam-form,
.vote-form {
    padding: 4px 14px 0;
    border: 1px solid #e1e1e1;
    background: #fff;
}

.survey-actions,
.exam-actions,
.vote-actions {
    align-items: center;
    padding: 16px 0 18px;
}

.survey-actions__tip {
    font-size: 12px;
    color: #999;
}

.survey-done__no {
    color: #ed7201;
    font-weight: bold;
    word-break: break-all;
}

/* —— 问卷结果统计 —— */
.survey-stat__list {
    padding: 4px 14px 10px;
}

.survey-stat__item {
    padding: 14px 0;
    border-bottom: 1px dashed #e1e1e1;
}

.survey-stat__item:last-child {
    border-bottom: 0;
}

.survey-stat__title {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 6px;
    margin-bottom: 10px;
    font-weight: bold;
}

.survey-stat__rate {
    margin-left: auto;
    font-size: 12px;
    font-weight: normal;
    color: #999;
}

.survey-stat__average {
    margin-bottom: 10px;
    color: #666;
}

.survey-stat__average b {
    font-size: 20px;
    color: #ed7201;
}

.survey-stat__table {
    width: 100%;
    border-collapse: collapse;
    font-size: 14px;
}

.survey-stat__table th,
.survey-stat__table td {
    padding: 6px 10px;
    border: 1px solid #e1e1e1;
    text-align: left;
    vertical-align: middle;
}

.survey-stat__table th {
    background: #f8f8f8;
    font-weight: normal;
    white-space: nowrap;
}

.survey-stat__table th:nth-child(2),
.survey-stat__table td:nth-child(2) {
    width: 110px;
    text-align: center;
}

.survey-stat__bar {
    display: inline-block;
    width: 120px;
    height: 10px;
    vertical-align: middle;
    background: #f0f0f0;
    border-radius: 5px;
    overflow: hidden;
}

.survey-stat__bar-fill {
    display: block;
    height: 100%;
    background: #ed7201;
}

.survey-stat__percent {
    margin-left: 8px;
    font-size: 13px;
    color: #666;
}

.survey-stat__foot {
    margin: 8px 0 0;
    font-size: 12px;
    color: #999;
}

.survey-stat__texts {
    max-height: 320px;
    margin: 0;
    padding-left: 22px;
    overflow: auto;
    font-size: 14px;
    line-height: 1.9;
    color: #444;
}

/* —— 在线考试：倒计时 —— */
.exam-timer {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 14px;
    margin-bottom: 14px;
    border: 1px solid #ffd8a8;
    background: #fff8ee;
}

.exam-timer__label {
    font-size: 13px;
    color: #666;
}

.exam-timer__clock {
    font-size: 22px;
    font-weight: bold;
    line-height: 1;
    color: #ed7201;
    font-variant-numeric: tabular-nums;
}

.exam-timer--urgent {
    border-color: #f5c2c7;
    background: #fdecec;
}

.exam-timer--urgent .exam-timer__clock {
    color: #dc3545;
}

.exam-name {
    border-top: 0;
    padding-top: 14px;
}

/* —— 在线考试：成绩单 —— */
.exam-score__body {
    padding: 18px 14px;
}

.exam-score__main {
    display: flex;
    align-items: baseline;
    gap: 6px;
}

.exam-score__num {
    font-size: 42px;
    font-weight: bold;
    line-height: 1;
    color: #ed7201;
}

.exam-score--fail .exam-score__num {
    color: #dc3545;
}

.exam-score__unit {
    font-size: 14px;
    color: #999;
}

.exam-score__tag {
    display: inline-block;
    padding: 1px 10px;
    margin-left: 12px;
    font-size: 13px;
    color: #fff;
    background: #198754;
    border-radius: 3px;
    vertical-align: middle;
}

.exam-score--fail .exam-score__tag {
    background: #dc3545;
}

.exam-score__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 34px;
    margin: 16px 0 0;
}

.exam-score__meta div {
    display: flex;
    gap: 8px;
    font-size: 13px;
}

.exam-score__meta dt {
    color: #999;
    font-weight: normal;
}

.exam-score__meta dd {
    margin: 0;
    color: #333;
}

.exam-review {
    padding: 4px 14px 10px;
}

.exam-review__item {
    padding: 14px 0;
    border-bottom: 1px dashed #e1e1e1;
}

.exam-review__item:last-child {
    border-bottom: 0;
}

.exam-review__title {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 6px;
    margin-bottom: 10px;
    font-weight: bold;
}

.exam-review__index {
    display: inline-block;
    min-width: 22px;
    height: 22px;
    padding: 0 5px;
    font-size: 12px;
    font-weight: normal;
    line-height: 22px;
    text-align: center;
    border-radius: 4px;
    background: #f0f0f0;
    color: #666;
}

.exam-review__index.is-right {
    background: #eaf7ee;
    color: #146c43;
}

.exam-review__index.is-wrong {
    background: #fdecec;
    color: #842029;
}

.exam-review__score {
    margin-left: auto;
    font-size: 13px;
    font-weight: normal;
    color: #999;
}

.exam-review__score.is-right {
    color: #198754;
    font-weight: bold;
}

.exam-review__score.is-wrong {
    color: #dc3545;
    font-weight: bold;
}

.exam-review__lines {
    margin: 0;
    padding: 10px 12px;
    background: #fafafa;
    border-radius: 4px;
}

.exam-review__lines div {
    display: flex;
    gap: 10px;
    font-size: 13px;
    line-height: 1.9;
}

.exam-review__lines dt {
    flex: 0 0 66px;
    font-weight: normal;
    color: #999;
}

.exam-review__lines dd {
    flex: 1;
    margin: 0;
    word-break: break-word;
}

/* —— 投票选择与结果 —— */
.vote-options {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 16px 0 4px;
}

.vote-option {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 14px;
    margin: 0;
    font-weight: normal;
    border: 1px solid #e1e1e1;
    cursor: pointer;
}

.vote-option:hover {
    border-color: #ed7201;
}

.vote-option__img {
    width: 54px;
    height: 54px;
    object-fit: cover;
    border-radius: 3px;
}

.vote-option__body {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.vote-option__title {
    font-weight: bold;
}

.vote-option__desc {
    font-size: 12px;
    color: #999;
}

.vote-result__list {
    padding: 12px 14px 16px;
}

.vote-result__item + .vote-result__item {
    margin-top: 12px;
}

.vote-result__head {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 10px;
    margin-bottom: 4px;
    font-size: 14px;
}

.vote-result__num {
    font-size: 12px;
    color: #999;
    white-space: nowrap;
}

/* —— 投票主题聚合页 —— */
.vote-topic-summary {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 14px;
}

.vote-topic-summary__item {
    flex: 1 1 120px;
    padding: 14px;
    text-align: center;
    border: 1px solid #e1e1e1;
    background: #fff;
}

.vote-topic-summary__num {
    display: block;
    font-size: 26px;
    font-weight: bold;
    line-height: 1.2;
    color: #ed7201;
}

.vote-topic-summary__label {
    font-size: 13px;
    color: #999;
}

.vote-topic-window {
    padding: 8px 14px;
    margin-bottom: 14px;
    font-size: 12px;
    color: #999;
    background: #f8f8f8;
    border: 1px solid #e1e1e1;
}

.vote-topic-card__result {
    border-top: 1px dashed #e1e1e1;
}

.vote-topic-card__foot {
    padding: 0 14px 16px;
}

@media (max-width: 767px) {
    .q-item__control {
        padding-left: 0;
    }

    .survey-stat__bar {
        width: 70px;
    }
}

