/* ==========================================================================
   填报管理系统 — 手写样式（零依赖，无框架）
   设计令牌集中在 :root，改主题只改这里。
   ========================================================================== */

:root {
    /* 主色：沿用原系统的青绿主色（#2FAFBC → #1a8a94 渐变） */
    --c-primary: #2FAFBC;
    --c-primary-dark: #1a8a94;
    --c-primary-light: #e6f6f8;
    --c-primary-grad: linear-gradient(135deg, #2FAFBC 0%, #1a8a94 100%);
    --c-primary-grad-hover: linear-gradient(135deg, #36C1CF 0%, #1a8a94 100%);
    --c-primary-bar: linear-gradient(180deg, #2FAFBC 0%, #1a8a94 100%);
    --c-primary-glow: rgba(47, 175, 188, .3);
    --c-success: #2e7d32;
    --c-warning: #e65100;
    --c-danger: #c62828;
    --c-info: #5a6572;

    /* 中性色 */
    --c-text: #333333;
    --c-text-2: #666666;
    --c-text-3: #999999;
    --c-border: #e0e0e0;
    --c-border-2: #eeeeee;
    --c-bg: #f5f5f5;
    --c-bg-card: #ffffff;
    --c-bg-hover: #f8f9fa;
    /* 卡片渐变底：原系统卡片是 #fff → #f8f9fa 的斜向渐变 */
    --c-card-grad: linear-gradient(135deg, #fff 0%, #f8f9fa 100%);

    /* 后台深色外壳 */
    --c-dark: #23262E;
    --c-dark-2: #2b2f39;
    --c-dark-3: #333844;
    --c-dark-text: #c2c8d2;

    /* 尺寸 */
    --radius: 6px;
    --radius-lg: 12px;
    --radius-pill: 22px;
    --gap: 16px;
    --gap-sm: 8px;
    --gap-lg: 24px;
    --header-h: 60px;
    --site-header-h: 72px;
    --sidebar-w: 220px;

    /* 字体 */
    --font: "Helvetica Neue", Helvetica, "PingFang SC", "Hiragino Sans GB",
        "Microsoft YaHei", Arial, sans-serif;
    --fs: 14px;
    --fs-sm: 13px;
    --fs-lg: 16px;

    --shadow: 0 2px 12px rgba(0, 0, 0, .04);
    --shadow-card: 0 4px 15px rgba(0, 0, 0, .08);
    --shadow-lg: 0 8px 25px rgba(0, 0, 0, .15);
    --ease: .25s ease;
}

*, *::before, *::after { box-sizing: border-box; }

/* hidden 属性必须能压过组件自己的 display。
   浏览器内置样式表里有 [hidden] { display: none }，但它属于 UA 层，
   任何作者样式都比它优先 —— .btn { display: inline-flex } 就足以让
   <button hidden> 继续显示出来（填报数据页的按钮曾因此隐藏失败）。
   放在这里加 !important，全站的 hidden 属性才真正可靠。 */
[hidden] { display: none !important; }

html { -webkit-text-size-adjust: 100%; }

body {
    margin: 0;
    font-family: var(--font);
    font-size: var(--fs);
    line-height: 1.6;
    color: var(--c-text);
    background: var(--c-bg);
}

h1, h2, h3, h4, h5, h6, p, ul, ol, dl, figure { margin: 0; }
ul, ol { padding: 0; list-style: none; }

a { color: var(--c-primary); text-decoration: none; }
a:hover { text-decoration: underline; }

img { max-width: 100%; height: auto; vertical-align: middle; }

/* 内联 SVG 图标：跟随文字颜色，尺寸随字号 */
.ico {
    width: 1.15em; height: 1.15em;
    fill: none; stroke: currentColor;
    stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round;
    flex-shrink: 0; vertical-align: -0.18em;
}

/* 可访问性：键盘焦点始终可见 */
:focus-visible {
    outline: 2px solid var(--c-primary);
    outline-offset: 2px;
}

/* 屏幕阅读器专用文本 */
.sr-only {
    position: absolute;
    width: 1px; height: 1px;
    padding: 0; margin: -1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0;
}

/* 跳到主内容链接 */
.skip-link {
    position: absolute;
    left: -9999px;
    z-index: 999;
    padding: 8px 16px;
    background: var(--c-primary);
    color: #fff;
}
.skip-link:focus { left: 8px; top: 8px; }
