    :root {
      --bg-1: #f3f7f9;
      --bg-2: #eaf5f3;
      --ink: #0b1f33;
      --sub: #536475;
      --line: #d7e2e8;
      --line-soft: #e8eef2;
      --accent: #0f766e;
      --accent-2: #0b5d57;
      --accent-soft: rgba(20, 184, 166, 0.11);
      --sidebar: #e7f0f2;
      --sidebar-accent: rgba(255, 255, 255, 0.58);
      --danger: #b42318;
      --canvas: #ffffff;
      --surface-soft: #fbfcff;
    }
    * { box-sizing: border-box; }
    body {
      margin: 0;
      font-family: Inter, "Microsoft YaHei", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
      color: var(--ink);
      background: var(--bg-1);
      min-height: 100vh;
    }
    .shell {
      display: grid;
      grid-template-columns: 252px 1fr;
      min-height: 100vh;
    }

    /* ---------- Sidebar ---------- */
    .sidebar {
      background: linear-gradient(180deg, #edf5f5 0%, var(--sidebar) 58%, #ddebee 100%);
      color: #315364;
      padding: 20px 14px;
      display: flex;
      flex-direction: column;
      gap: 8px;
      border-right: 1px solid rgba(83, 117, 131, 0.12);
      box-shadow: 8px 0 28px rgba(58, 84, 100, 0.045);
    }
    .brand {
      font-weight: 600;
      font-size: 16px;
      letter-spacing: 0.2px;
      color: #17394a;
      padding: 6px 10px 16px;
      margin-bottom: 8px;
      border-bottom: 1px solid rgba(65,101,116,0.15);
    }
    .nav-btn {
      border: 1px solid rgba(89, 123, 136, 0.12);
      background: var(--sidebar-accent);
      color: #365666;
      padding: 11px 12px;
      border-radius: 8px;
      text-align: left;
      cursor: pointer;
      font-size: 14px;
      font-weight: 500;
      box-shadow: inset 0 1px 0 rgba(255,255,255,.7);
      transition: background 0.15s ease, color 0.15s ease, transform .15s ease;
    }
    .nav-btn:hover {
      color: #173e4d;
      background: rgba(255,255,255,0.86);
      transform: translateX(2px);
    }
    .nav-btn.active {
      border-color: rgba(15,118,110,.25);
      background: var(--accent);
      color: #fff;
      box-shadow: 0 7px 18px rgba(15,118,110,.16);
    }
    .nav-btn.exit {
      background: rgba(255,255,255,.42);
      border-color: rgba(192, 57, 43, 0.22);
      color: var(--danger);
    }
    .nav-btn.exit:hover {
      background: rgba(255,235,232,.86);
    }
    .nav-btn.admin {
      background: rgba(215, 237, 248, 0.7);
    }
    .sidebar-status {
      border-radius: 8px;
      background: var(--surface-soft);
      border: 1px solid var(--line);
      padding: 10px 12px;
      font-size: 12px;
      color: #476675;
      background: rgba(255,255,255,0.52);
      border-color: rgba(83,117,131,0.13);
    }
    .sidebar-spacer {
      margin-top: 64px;
    }
    .sidebar-footer {
      margin-top: 4px;
      font-size: 12px;
      color: #617a86;
      font-weight: 500;
      padding: 10px;
      line-height: 1.6;
      opacity: 0.85;
    }
    .theme-palette {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 3px;
      width: 100%;
      min-height: 32px;
      margin-bottom: 4px;
      padding: 4px;
      border: 1px solid rgba(89,123,136,.16);
      border-radius: 999px;
      background: rgba(255,255,255,.5);
      box-shadow: inset 0 1px 0 rgba(255,255,255,.9), 0 5px 14px rgba(49,71,103,.06);
    }
    .theme-option {
      position: relative;
      flex: 0 0 27px;
      width: 27px;
      min-width: 27px;
      min-height: 18px;
      height: 18px;
      padding: 0;
      overflow: visible;
      border: 1px solid rgba(255,255,255,.82);
      border-radius: 999px;
      box-shadow: inset 0 1px 0 rgba(255,255,255,.42), 0 3px 8px rgba(37,60,74,.12);
      cursor: pointer;
      transition: transform .15s ease, box-shadow .15s ease;
    }
    .theme-option:hover,
    .theme-option:focus-visible {
      transform: translateY(-1px);
      outline: none;
      box-shadow: inset 0 1px 0 rgba(255,255,255,.5), 0 5px 12px rgba(37,60,74,.2);
    }
    .theme-option span {
      position: absolute;
      z-index: 30;
      top: calc(100% + 7px);
      left: 50%;
      display: block;
      width: max-content;
      padding: 4px 7px;
      border: 1px solid rgba(255,255,255,.18);
      border-radius: 7px;
      color: #fff;
      background: #17313d;
      box-shadow: 0 6px 16px rgba(20,37,47,.22);
      pointer-events: none;
      font-size: 11px;
      font-weight: 700;
      line-height: 1.2;
      text-align: center;
      white-space: nowrap;
      opacity: 0;
      transform: translate(-50%, -3px);
      transition: opacity .12s ease .04s, transform .16s ease;
    }
    .theme-option:first-child span { left: 0; transform: translate(0, -3px); }
    .theme-option:last-child span { right: 0; left: auto; transform: translate(0, -3px); }
    .theme-option:hover span,
    .theme-option:focus-visible span { opacity: 1; transform: translate(-50%, 0); }
    .theme-option:first-child:hover span,
    .theme-option:first-child:focus-visible span,
    .theme-option:last-child:hover span,
    .theme-option:last-child:focus-visible span { transform: translate(0, 0); }
    .theme-option.active { border-color: #fff; outline: 2px solid rgba(15,118,110,.48); outline-offset: 1px; }
    .theme-classic { color: #17394a; background: linear-gradient(135deg, #bfeeda, #c8dfff); }
    .theme-paper { color: #33240f; background: linear-gradient(135deg, #f4dfaa, #cda35b); }
    .theme-dream { color: #fff; background: linear-gradient(135deg, #6bb8ff, #696ee8); }
    .theme-red { color: #fff; background: linear-gradient(135deg, #ff766f, #bd3449); }
    .theme-mint { color: #0d302b; background: linear-gradient(135deg, #9ce8d4, #31ad91); }
    .theme-lilac { color: #fff; background: linear-gradient(135deg, #bd9cf2, #7653ad); }
    .theme-dark { color: #fff; background: linear-gradient(135deg, #344b56, #101b22); }
    @media (prefers-reduced-motion: reduce) {
      .theme-option,
      .theme-option span { transition: none; }
    }

    /* ---------- Content shell ---------- */
    .content {
      padding: 40px clamp(24px, 4vw, 64px) 72px;
    }
    h1 {
      margin: 0;
      font-family: Inter, "Microsoft YaHei", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
      font-weight: 650;
      font-size: 26px;
      line-height: 1.3;
      letter-spacing: -0.2px;
      color: var(--ink);
    }
    .sub {
      color: var(--sub);
      font-size: 14px;
      line-height: 1.6;
      margin: 8px 0 28px;
      max-width: 720px;
    }
    .welcome-hint {
      color: var(--accent-2);
    }

    /* Section eyebrow badge, mirrors the invoice module's hero badge */
    .eyebrow {
      display: inline-flex;
      padding: 5px 12px;
      border-radius: 999px;
      background: var(--accent-soft);
      color: var(--accent-2);
      font-size: 12px;
      font-weight: 600;
      letter-spacing: 0.4px;
      margin-bottom: 14px;
    }

    .card {
      background: var(--canvas);
      border: 1px solid var(--line);
      border-radius: 16px;
      padding: 32px;
      box-shadow: 0 8px 30px rgba(11, 31, 51, 0.055);
    }
    .grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
      gap: 16px;
    }
    label {
      font-size: 13px;
      color: var(--sub);
      font-weight: 500;
      display: block;
      margin-bottom: 7px;
    }
    input, select, button, textarea {
      width: 100%;
      border: 1px solid var(--line);
      border-radius: 8px;
      padding: 10px 14px;
      font-size: 14px;
      font-family: inherit;
      background: var(--canvas);
      color: var(--ink);
    }
    input, select {
      min-height: 42px;
    }
    input:focus, select:focus, textarea:focus {
      outline: none;
      border-color: var(--accent);
      box-shadow: 0 0 0 3px var(--accent-soft);
    }
    textarea {
      min-height: 160px;
      font-family: "JetBrains Mono", Consolas, ui-monospace, monospace;
      font-size: 13px;
      resize: vertical;
      color: var(--ink);
      background: var(--surface-soft);
    }
    /* Read-only run logs get the invoice module's dark console treatment */
    textarea.log-output {
      background: #181f2b;
      color: #b7c2d6;
      border-color: #181f2b;
      line-height: 1.65;
    }
    .actions {
      display: flex;
      flex-wrap: wrap;
      gap: 12px;
      margin-top: 20px;
    }
    .actions button {
      flex: 1;
      min-width: 160px;
    }
    button {
      width: auto;
      min-height: 42px;
      padding: 11px 22px;
      background: var(--accent);
      color: #fff;
      border: 1px solid transparent;
      border-radius: 8px;
      font-weight: 500;
      font-size: 14px;
      cursor: pointer;
      transition: background .15s ease;
    }
    button:hover { background: var(--accent-2); }
    input[type="file"] { padding: 8px 12px; }
    .status {
      margin-top: 20px;
      padding: 12px 14px;
      border-radius: 8px;
      background: var(--surface-soft);
      border: 1px dashed var(--line);
      color: var(--sub);
      font-size: 13px;
    }
    .download a {
      display: inline-block;
      margin-top: 10px;
      color: var(--accent-2);
      font-weight: 600;
      text-decoration: none;
    }
    .download-btn {
      display: inline-block;
      padding: 9px 16px;
      border-radius: 8px;
      background: var(--accent);
      color: #fff;
      font-weight: 500;
      text-decoration: none;
    }
    .download-btn:hover { background: var(--accent-2); }
    .download a:hover { text-decoration: underline; }
    .section { display: none; }
    .section.active { display: block; }
    .panel {
      border: 1px solid var(--line);
      border-radius: 8px;
      padding: 18px;
      background: var(--surface-soft);
    }
    .panel-title {
      font-size: 13px;
      color: var(--sub);
      margin: 0 0 12px;
      font-weight: 600;
      text-transform: uppercase;
      letter-spacing: 0.4px;
    }
    .panel.disabled {
      opacity: 0.55;
      filter: grayscale(0.25);
    }
    .panel.disabled select,
    .panel.disabled input {
      background: var(--line-soft);
      cursor: not-allowed;
    }

    /* ---------- Auth card (welcome page) ---------- */
    .auth-card {
      border: 1px solid var(--line);
      border-radius: 12px;
      padding: 24px;
      background: var(--canvas);
      margin-bottom: 28px;
    }
    .auth-row {
      display: grid;
      grid-template-columns: 1.1fr 1fr;
      gap: 20px;
    }
    .auth-tabs {
      display: flex;
      gap: 8px;
      margin-bottom: 14px;
    }
    .auth-tab {
      width: auto;
      border: 1px solid var(--line);
      background: var(--canvas);
      color: var(--ink);
      padding: 9px 14px;
      border-radius: 8px;
      cursor: pointer;
      font-weight: 500;
      font-size: 13px;
    }
    .auth-tab.active {
      background: var(--accent);
      color: #fff;
      border-color: var(--accent);
    }
    .auth-tab.admin.active {
      background: #1e4fa3;
      border-color: #1e4fa3;
    }
    .auth-form {
      display: none;
    }
    .auth-form.active {
      display: block;
    }
    .auth-form.login-box {
      background: var(--canvas);
      border: 1px solid var(--line);
      border-radius: 8px;
      padding: 18px;
    }
    .auth-form.register-box {
      background: var(--canvas);
      border: 1px solid var(--line);
      border-radius: 8px;
      padding: 18px;
    }
    .auth-title {
      margin: 0 0 8px;
      font-size: 15px;
      font-weight: 600;
      color: var(--ink);
    }
    .auth-title.admin {
      color: #1f4d4c;
    }
    .auth-hint {
      font-size: 13px;
      color: var(--sub);
      margin-bottom: 10px;
    }
    .auth-inline {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 12px;
    }
    .auth-message {
      margin-top: 10px;
      font-size: 13px;
      color: var(--accent-2);
    }
    .auth-message.error {
      color: var(--danger);
    }
    .auth-user {
      padding: 10px 12px;
      border-radius: 8px;
      background: var(--accent-soft);
      color: var(--ink);
      font-size: 13px;
    }
    .auth-user strong {
      color: var(--accent-2);
    }
    .auth-actions {
      display: flex;
      gap: 10px;
      margin-top: 14px;
    }
    .auth-actions button {
      width: auto;
      padding: 9px 16px;
    }
    .section-locked {
      opacity: 0.6;
      filter: grayscale(0.2);
      pointer-events: none;
    }
    .admin-panel {
      margin-top: 16px;
      padding: 18px;
      border-radius: 8px;
      border: 1px solid var(--line);
      background: var(--surface-soft);
    }
    .tips-panel {
      border: 1px solid var(--line);
      border-radius: 8px;
      padding: 18px;
      background: var(--surface-soft);
      color: var(--sub);
      line-height: 1.7;
      font-size: 13px;
    }
    .tips-panel h3 {
      margin: 0 0 8px;
      font-size: 14px;
      font-weight: 600;
      color: var(--accent-2);
    }

    /* ---------- Welcome page service panels ---------- */
    .panel-title.service {
      font-size: 17px;
      font-weight: 600;
      text-transform: none;
      letter-spacing: normal;
      color: var(--ink);
      margin-bottom: 12px;
    }

    .user-table {
      width: 100%;
      border-collapse: collapse;
      font-size: 12px;
    }
    .user-table th,
    .user-table td {
      border-bottom: 1px solid var(--line-soft);
      padding: 9px 8px;
      text-align: left;
    }
    .user-table th {
      color: var(--sub);
      font-weight: 600;
      background: var(--surface-soft);
    }
    .user-table button {
      width: auto;
      padding: 5px 10px;
      font-size: 12px;
      min-height: auto;
    }
    .admin-reset-box {
      display: none;
      margin-top: 10px;
    }
    .tag {
      display: inline-block;
      padding: 5px 12px;
      border-radius: 999px;
      background: var(--accent-soft);
      color: var(--accent-2);
      font-size: 12px;
      font-weight: 500;
      margin-right: 6px;
    }
    .summary-grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
      gap: 14px;
      margin: 20px 0;
    }
    .summary-card {
      border: 1px solid var(--line);
      border-radius: 8px;
      background: var(--canvas);
      padding: 16px;
    }
    .summary-card .label {
      color: var(--sub);
      font-size: 12px;
      font-weight: 500;
    }
    .summary-card .value {
      margin-top: 8px;
      color: var(--accent-2);
      font-family: "Noto Serif SC", Georgia, serif;
      font-size: 26px;
      font-weight: 500;
    }
    .detail-table {
      width: 100%;
      border-collapse: collapse;
      font-size: 13px;
      background: var(--canvas);
    }
    .detail-table th,
    .detail-table td {
      border-bottom: 1px solid var(--line-soft);
      padding: 10px 12px;
      text-align: left;
    }
    .detail-table th {
      color: var(--sub);
      font-weight: 600;
      background: var(--surface-soft);
    }
    .listbox {
      height: 180px;
      overflow: auto;
      border: 1px solid var(--line);
      border-radius: 8px;
      padding: 8px;
      background: var(--canvas);
      text-align: left;
      direction: ltr;
    }
    .listbox label {
      display: flex;
      gap: 8px;
      align-items: flex-start;
      margin: 4px 0;
      color: var(--ink);
      font-size: 13px;
      font-weight: 400;
      justify-content: flex-start;
      width: 100%;
      text-align: left;
      flex-wrap: nowrap;
    }
    .listbox label span {
      flex: 1;
      text-align: left;
      min-width: 0;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }
    .listbox-item {
      display: grid;
      grid-template-columns: auto 120px 1fr;
      align-items: center;
      gap: 12px;
      padding: 8px;
      border-bottom: 1px solid var(--line-soft);
    }
    .listbox-item:last-child {
      border-bottom: none;
    }
    .listbox-item input {
      width: auto;
      min-height: auto;
      margin: 0;
    }
    .listbox-item span {
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
      text-align: left;
    }
    .listbox-item .ann-date {
      color: var(--sub);
      font-weight: 600;
    }
    .listbox-item .ann-title {
      min-width: 0;
    }
    .pc-tight {
      margin-top: 12px;
    }
    #pcAnnouncements {
      text-align: left;
      direction: ltr;
    }
    #pcAnnouncements .listbox-empty {
      display: grid;
      min-height: 150px;
      place-items: center;
      padding: 20px;
      color: var(--sub);
      text-align: center;
      line-height: 1.7;
    }
    .header-row {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: 16px;
    }
    .header-row h1 {
      margin: 0;
    }
    .help-btn {
      width: auto;
      padding: 9px 16px;
      border-radius: 8px;
      background: var(--canvas);
      color: var(--accent-2);
      font-weight: 500;
      font-size: 13px;
      border: 1px solid var(--line);
      min-height: auto;
    }
    .help-btn:hover { background: var(--surface-soft); }
    .secondary-btn {
      width: auto;
      min-height: auto;
      padding: 8px 14px;
      border-radius: 8px;
      background: var(--canvas);
      color: var(--accent-2);
      border: 1px solid var(--line);
      font-weight: 500;
      font-size: 13px;
    }
    .secondary-btn:hover { background: var(--surface-soft); }
    .modal {
      position: fixed;
      inset: 0;
      display: none;
      align-items: center;
      justify-content: center;
      background: rgba(15, 18, 26, 0.45);
      z-index: 1000;
      padding: 20px;
    }
    .modal.show { display: flex; }
    .modal-content {
      width: min(920px, 95vw);
      max-height: 88vh;
      overflow: auto;
      background: var(--canvas);
      border-radius: 12px;
      border: 1px solid var(--line);
      box-shadow: 0 18px 40px rgba(20, 30, 60, 0.2);
    }
    .modal-content.resizable {
      resize: both;
      overflow: auto;
      min-width: 520px;
      min-height: 360px;
    }
    .modal-content.maximized {
      width: 96vw;
      height: 92vh;
      max-height: 92vh;
      max-width: 96vw;
      resize: none;
    }
    .modal-header .modal-actions {
      display: flex;
      gap: 8px;
      align-items: center;
    }
    .modal-header {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 18px 22px;
      background: var(--surface-soft);
      border-bottom: 1px solid var(--line);
    }
    .modal-title {
      font-weight: 600;
      font-size: 15px;
      color: var(--ink);
    }
    .activity-list {
      margin: 8px 0 0;
      padding-left: 16px;
    }
    .activity-list li {
      margin: 4px 0;
      font-size: 13px;
    }
    .activity-table {
      width: 100%;
      border-collapse: collapse;
      margin-top: 10px;
      font-size: 12px;
    }
    .activity-table th,
    .activity-table td {
      border-bottom: 1px solid var(--line-soft);
      padding: 8px;
      text-align: left;
    }
    .activity-table th {
      color: var(--sub);
      font-weight: 600;
    }
    .pagination {
      display: flex;
      gap: 8px;
      align-items: center;
      margin-top: 12px;
    }
    .pagination button {
      width: auto;
      min-height: auto;
      padding: 7px 12px;
    }
    .modal-body {
      padding: 22px;
      color: var(--ink);
      line-height: 1.75;
      font-size: 14px;
    }
    .modal-body h3 {
      margin: 16px 0 6px;
      font-size: 15px;
      font-weight: 600;
      color: var(--accent-2);
    }
    .modal-body ul { margin: 6px 0 12px 18px; }
    .modal-body li { margin: 2px 0; }
    .danger-line {
      color: var(--danger);
      font-weight: 600;
    }
    .form-label {
      color: var(--sub);
      font-weight: 500;
    }
    #fuzhu input[type="file"]::file-selector-button,
    #fuzhu input[type="file"]::-webkit-file-upload-button,
    #hanzheng input[type="file"]::file-selector-button,
    #hanzheng input[type="file"]::-webkit-file-upload-button,
    #workday input[type="file"]::file-selector-button,
    #workday input[type="file"]::-webkit-file-upload-button {
      background: var(--accent);
      color: #fff;
      border: none;
      padding: 7px 12px;
      border-radius: 8px;
      margin-right: 10px;
      cursor: pointer;
      font-weight: 500;
    }
    .message-layout {
      display: grid;
      grid-template-columns: 280px 1fr;
      gap: 16px;
      min-height: 520px;
    }
    .message-layout.user-only {
      grid-template-columns: 1fr;
    }
    .message-user-list {
      border: 1px solid var(--line);
      border-radius: 8px;
      background: var(--canvas);
      overflow: auto;
      max-height: 520px;
    }
    .message-user-item {
      display: flex;
      justify-content: space-between;
      gap: 8px;
      align-items: center;
      width: 100%;
      border: none;
      border-bottom: 1px solid var(--line-soft);
      border-radius: 0;
      background: var(--canvas);
      color: var(--ink);
      padding: 11px 12px;
      font-weight: 400;
      min-height: auto;
    }
    .message-user-item.active {
      background: var(--accent-soft);
      color: var(--accent-2);
      font-weight: 600;
    }
    .message-badge {
      background: var(--danger);
      color: #fff;
      border-radius: 999px;
      padding: 1px 7px;
      font-size: 12px;
    }
    .message-chat-box {
      border: 1px solid var(--line);
      border-radius: 8px;
      background: var(--canvas);
      display: flex;
      flex-direction: column;
      height: 520px;
      overflow: hidden;
    }
    .message-chat-header {
      padding: 14px;
      border-bottom: 1px solid var(--line);
      color: var(--ink);
      font-weight: 600;
      font-size: 14px;
    }
    .message-chat-window {
      flex: 1;
      overflow-y: auto;
      padding: 14px;
      background: var(--surface-soft);
      display: flex;
      flex-direction: column;
      gap: 8px;
    }
    .message-item {
      max-width: 78%;
      padding: 9px 12px;
      border-radius: 8px;
      line-height: 1.55;
      font-size: 13px;
      border: 1px solid var(--line);
      background: var(--canvas);
      align-self: flex-start;
    }
    .message-item.self {
      background: var(--accent-soft);
      border-color: rgba(43, 122, 120, 0.25);
      align-self: flex-end;
    }
    .message-meta {
      margin-top: 5px;
      color: var(--sub);
      font-size: 12px;
      display: flex;
      align-items: center;
      gap: 6px;
      flex-wrap: wrap;
    }
    .message-read-mark {
      font-weight: 600;
      font-size: 12px;
      line-height: 1;
    }
    .message-read-mark.read {
      color: var(--accent);
    }
    .message-read-mark.unread {
      color: var(--sub);
    }
    .message-input-row {
      display: grid;
      grid-template-columns: 120px 1fr auto;
      gap: 8px;
      padding: 14px;
      border-top: 1px solid var(--line);
      background: var(--canvas);
    }
    .message-input-row.user {
      grid-template-columns: 120px auto 1fr auto;
    }
    .message-input-row.admin {
      grid-template-columns: auto 1fr auto;
    }
    .message-input-row textarea {
      min-height: 74px;
      resize: vertical;
      overflow-y: auto;
      font-family: inherit;
      font-size: 14px;
      background: var(--canvas);
      color: var(--ink);
    }
    .message-input-row button {
      width: auto;
      min-height: 42px;
    }
    .message-tip {
      color: var(--sub);
      font-size: 12px;
      padding: 12px 14px;
      border-top: 1px dashed var(--line);
      background: var(--surface-soft);
    }
    .message-upload-row {
      display: flex;
      gap: 8px;
      align-items: center;
      padding: 0 14px 12px;
      background: var(--canvas);
    }
    .message-upload-row input[type="file"] {
      flex: 1;
      min-height: auto;
      padding: 7px 10px;
      font-size: 12px;
    }
    .message-attach-btn {
      width: auto;
      min-height: auto;
      padding: 8px 14px;
      background: var(--accent);
    }
    .message-attach-btn:hover {
      background: var(--accent-2);
    }
    .message-attach-btn:disabled {
      background: var(--line);
      color: var(--sub);
      cursor: not-allowed;
    }
    .emoji-btn {
      width: auto;
      min-height: auto;
      padding: 8px 12px;
      border-radius: 8px;
      background: var(--surface-soft);
      color: var(--accent-2);
      border: 1px solid var(--line);
      font-weight: 500;
    }
    .emoji-btn:hover {
      background: var(--line-soft);
    }
    .emoji-panel {
      display: none;
      flex-wrap: wrap;
      gap: 6px;
      padding: 10px 14px 12px;
      background: var(--canvas);
      border-top: 1px dashed var(--line);
      max-height: 160px;
      overflow-y: auto;
    }
    .emoji-panel.show {
      display: flex;
    }
    .emoji-item {
      width: auto;
      min-height: auto;
      min-width: 34px;
      padding: 6px 8px;
      border-radius: 8px;
      background: var(--surface-soft);
      border: 1px solid var(--line);
      font-size: 16px;
      line-height: 1;
    }
    .emoji-item:hover {
      background: var(--line-soft);
    }
    @media (max-width: 860px) {
      .shell { grid-template-columns: 1fr; }
      .sidebar { flex-direction: row; flex-wrap: wrap; }
      .sidebar-footer { display: none; }
      .content { padding: 24px 20px 48px; }
      .message-layout {
        grid-template-columns: 1fr;
      }
    }

    /* ---------- 2026-08 welcome refresh: candy acrylic ---------- */
    #welcome {
      --candy-mint: rgba(199, 244, 225, 0.72);
      --candy-sky: rgba(203, 230, 255, 0.74);
      --candy-peach: rgba(255, 218, 205, 0.72);
      --candy-lemon: rgba(255, 240, 184, 0.68);
      --candy-lilac: rgba(228, 214, 255, 0.72);
      max-width: 1440px;
      margin: 0 auto;
    }
    .welcome-hero {
      position: relative;
      display: grid;
      grid-template-areas: "copy account";
      grid-template-columns: minmax(0, 1fr) minmax(360px, 430px);
      gap: clamp(28px, 4vw, 60px);
      align-items: start;
      min-height: 410px;
      padding: clamp(30px, 4vw, 56px);
      border: 1px solid rgba(255, 255, 255, 0.86);
      border-radius: 26px;
      overflow: hidden;
      isolation: isolate;
      background:
        radial-gradient(circle at 7% 12%, rgba(169, 240, 218, 0.72), transparent 28%),
        radial-gradient(circle at 52% 105%, rgba(255, 222, 166, 0.55), transparent 34%),
        radial-gradient(circle at 92% 8%, rgba(207, 221, 255, 0.75), transparent 30%),
        linear-gradient(135deg, rgba(247, 255, 253, 0.94), rgba(247, 246, 255, 0.91));
      box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.96),
        0 24px 70px rgba(59, 83, 116, 0.11);
      backdrop-filter: blur(22px) saturate(135%);
    }
    .welcome-hero::before,
    .welcome-hero::after {
      content: "";
      position: absolute;
      z-index: -1;
      border-radius: 50%;
      pointer-events: none;
      filter: blur(2px);
    }
    .welcome-hero::before {
      right: 31%;
      top: -108px;
      width: 250px;
      height: 250px;
      background: rgba(255, 203, 218, 0.35);
    }
    .welcome-hero::after {
      left: 43%;
      bottom: -155px;
      width: 330px;
      height: 330px;
      background: rgba(185, 229, 255, 0.3);
      border: 1px solid rgba(255, 255, 255, 0.75);
    }
    .welcome-copy {
      grid-area: copy;
      position: relative;
      z-index: 1;
      max-width: 760px;
      padding-top: 8px;
    }
    .welcome-copy h1,
    .welcome-copy .sub {
      font-family: Inter, "Microsoft YaHei", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
      font-style: normal;
    }
    .welcome-copy h1 {
      max-width: 680px;
      font-size: clamp(36px, 3.7vw, 56px);
      font-weight: 680;
      line-height: 1.2;
      letter-spacing: -1.2px;
      color: #10243a;
    }
    .welcome-copy .sub {
      max-width: 690px;
      margin: 20px 0 0;
      color: #40566b;
      font-size: clamp(15px, 1.15vw, 17px);
      font-weight: 450;
      line-height: 1.82;
      letter-spacing: 0;
    }
    .welcome-proof {
      display: flex;
      flex-wrap: wrap;
      gap: 12px;
      margin-top: 32px;
    }
    .welcome-proof > div {
      display: flex;
      align-items: baseline;
      gap: 7px;
      min-width: 138px;
      padding: 10px 14px;
      border: 1px solid rgba(255, 255, 255, 0.78);
      border-radius: 14px;
      background: rgba(255, 255, 255, 0.46);
      box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.9);
      backdrop-filter: blur(12px);
    }
    .welcome-proof > div:nth-child(1) { background: var(--candy-mint); }
    .welcome-proof > div:nth-child(2) { background: var(--candy-sky); }
    .welcome-proof > div:nth-child(3) { background: var(--candy-lemon); }
    .welcome-proof strong {
      color: #0c6f67;
      font-size: 24px;
      line-height: 1;
    }
    .welcome-proof span {
      color: #3f5669;
      font-size: 12px;
    }
    .welcome-auth-card {
      grid-area: account;
      position: relative;
      z-index: 2;
      align-self: start;
      justify-self: end;
      width: 100%;
      margin: 0;
      padding: 18px;
      border: 1px solid rgba(255, 255, 255, 0.88);
      border-radius: 20px;
      box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.96),
        0 18px 45px rgba(49, 71, 103, 0.14);
      background:
        linear-gradient(145deg, rgba(255, 255, 255, 0.78), rgba(228, 240, 255, 0.58)),
        var(--candy-sky);
      backdrop-filter: blur(24px) saturate(145%);
    }
    .auth-card-head {
      display: flex;
      align-items: center;
      gap: 12px;
      padding-bottom: 12px;
      margin-bottom: 12px;
      border-bottom: 1px solid rgba(95, 119, 145, 0.16);
    }
    .auth-card-head > div {
      display: grid;
      gap: 3px;
    }
    .auth-card-head strong { font-size: 16px; }
    .auth-card-head small { color: var(--sub); }
    .auth-status-dot {
      width: 10px;
      height: 10px;
      border-radius: 50%;
      background: #14b8a6;
      box-shadow: 0 0 0 5px rgba(20,184,166,.12);
    }
    .welcome-auth-card .auth-row { grid-template-columns: 1fr; gap: 0; }
    .welcome-auth-card .auth-form.login-box,
    .welcome-auth-card .auth-form.register-box {
      padding: 0;
      border: 0;
    }
    .welcome-auth-card .auth-tabs {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      padding: 4px;
      border: 1px solid rgba(255, 255, 255, 0.72);
      border-radius: 12px;
      background: rgba(226, 235, 248, 0.64);
    }
    .welcome-auth-card .auth-tab {
      width: 100%;
      padding: 8px 6px;
      border: 0;
      background: transparent;
    }
    .welcome-auth-card .auth-tab.active {
      background: rgba(255, 255, 255, 0.92);
      color: var(--accent-2);
      box-shadow: 0 2px 10px rgba(11,31,51,.08);
    }
    .welcome-auth-card .auth-tab.admin.active {
      background: #19334d;
      color: #fff;
    }
    .welcome-auth-card .grid {
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 10px;
    }
    .welcome-auth-card input {
      min-height: 40px;
      padding: 9px 11px;
      border-color: rgba(92, 119, 148, 0.2);
      background: rgba(255, 255, 255, 0.62);
      box-shadow: inset 0 1px 2px rgba(53, 73, 96, 0.04);
    }
    .welcome-auth-card input:focus {
      background: rgba(255, 255, 255, 0.9);
    }
    .auth-session {
      flex-direction: column;
      align-items: stretch;
    }
    .auth-session .auth-user { line-height: 1.6; }
    .welcome-services,
    .welcome-updates {
      margin-top: 24px;
      border: 1px solid rgba(255, 255, 255, 0.86);
      border-radius: 24px;
      background: rgba(255, 255, 255, 0.55);
      box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.96),
        0 18px 54px rgba(49, 71, 103, 0.08);
      backdrop-filter: blur(20px) saturate(135%);
    }
    .welcome-services > .grid {
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 18px;
    }
    .welcome-services .panel {
      position: relative;
      min-height: 260px;
      padding: 24px;
      overflow: hidden;
      border: 1px solid rgba(255, 255, 255, 0.88);
      border-radius: 18px;
      background: linear-gradient(145deg, rgba(255,255,255,.72), rgba(199,244,225,.54));
      box-shadow: inset 0 1px 0 rgba(255,255,255,.95), 0 10px 25px rgba(52,73,95,.07);
      backdrop-filter: blur(16px) saturate(140%);
      transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
    }
    .welcome-services .panel:nth-child(2) { background: linear-gradient(145deg, rgba(255,255,255,.75), var(--candy-sky)); }
    .welcome-services .panel:nth-child(3) { background: linear-gradient(145deg, rgba(255,255,255,.76), var(--candy-peach)); }
    .welcome-services .panel:nth-child(4) { background: linear-gradient(145deg, rgba(255,255,255,.7), var(--candy-lilac)); }
    .welcome-services .panel:nth-child(5) { background: linear-gradient(145deg, rgba(255,255,255,.76), var(--candy-lemon)); }
    .welcome-services .panel:nth-child(6) { background: linear-gradient(145deg, rgba(255,255,255,.76), rgba(210,235,255,.72)); }
    .welcome-services .panel:nth-child(7) { background: linear-gradient(145deg, rgba(255,255,255,.76), rgba(255,215,232,.68)); }
    .welcome-services .panel:hover {
      transform: translateY(-3px);
      border-color: rgba(99, 126, 154, .28);
      box-shadow: 0 16px 38px rgba(11,31,51,.08);
    }
    .welcome-services .panel::before {
      content: "";
      display: block;
      width: 34px;
      height: 4px;
      margin-bottom: 18px;
      border-radius: 999px;
      background: linear-gradient(90deg, #39bfa8, #79aef7);
    }
    .welcome-services .service-featured {
      color: var(--ink);
      border-color: rgba(155, 124, 211, 0.2);
      background: linear-gradient(145deg, rgba(255,255,255,.72), var(--candy-lilac));
    }
    .welcome-services .service-featured .panel-title,
    .welcome-services .service-featured .sub { color: inherit; }
    .welcome-services .service-featured .tag {
      color: #594279;
      background: rgba(255,255,255,.58);
    }
    .welcome-services .sub {
      margin: 0 0 20px;
      font-size: 13px;
      line-height: 1.75;
    }
    .welcome-services .tag {
      margin: 4px 4px 0 0;
      padding: 5px 9px;
      border: 1px solid rgba(255,255,255,.68);
      background: rgba(255,255,255,.52);
    }
    .welcome-updates {
      background:
        radial-gradient(circle at 100% 0, rgba(221, 210, 255, .44), transparent 31%),
        rgba(255, 255, 255, .56);
    }
    .update-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 18px;
    }
    .update-panel {
      min-height: 220px;
      padding: 24px;
      border: 1px solid rgba(255,255,255,.86);
      border-radius: 18px;
      box-shadow: inset 0 1px 0 rgba(255,255,255,.92), 0 12px 28px rgba(52,73,95,.07);
      backdrop-filter: blur(18px) saturate(140%);
    }
    .update-mint { background: linear-gradient(145deg, rgba(255,255,255,.74), var(--candy-mint)); }
    .update-sky { background: linear-gradient(145deg, rgba(255,255,255,.74), var(--candy-sky)); }
    .update-peach { background: linear-gradient(145deg, rgba(255,255,255,.74), var(--candy-peach)); }
    .update-lilac { background: linear-gradient(145deg, rgba(255,255,255,.74), var(--candy-lilac)); }
    .update-kicker {
      display: inline-flex;
      padding: 5px 9px;
      border: 1px solid rgba(255,255,255,.72);
      border-radius: 999px;
      color: #486078;
      background: rgba(255,255,255,.48);
      font-size: 11px;
      font-weight: 650;
      letter-spacing: .5px;
    }
    .update-panel h3 {
      margin: 16px 0 9px;
      color: #142a41;
      font-size: 18px;
      line-height: 1.4;
    }
    .update-panel p {
      margin: 0;
      color: #486078;
      font-size: 13px;
      line-height: 1.75;
    }
    .update-meta {
      display: flex;
      flex-wrap: wrap;
      gap: 7px;
      margin-top: 18px;
    }
    .update-meta span {
      padding: 5px 8px;
      border-radius: 8px;
      color: #486078;
      background: rgba(255,255,255,.54);
      font-size: 11px;
      font-weight: 600;
    }

    /* ---------- 财务报表附注转换：糖果色亚克力工作流 ---------- */
    #fuzhu {
      --fuzhu-mint: rgba(199, 244, 225, 0.72);
      --fuzhu-sky: rgba(203, 230, 255, 0.74);
      --fuzhu-peach: rgba(255, 218, 205, 0.72);
      --fuzhu-lemon: rgba(255, 240, 184, 0.68);
      --fuzhu-lilac: rgba(228, 214, 255, 0.72);
      max-width: 1440px;
      margin: 0 auto;
    }
    #fuzhu .fuzhu-hero {
      position: relative;
      display: grid;
      grid-template-columns: minmax(0, 1fr) minmax(350px, 420px);
      align-items: stretch;
      gap: clamp(28px, 4vw, 58px);
      margin-bottom: 24px;
      padding: clamp(30px, 4vw, 52px);
      overflow: hidden;
      isolation: isolate;
      border: 1px solid rgba(255, 255, 255, .88);
      border-radius: 26px;
      background:
        radial-gradient(circle at 7% 12%, rgba(169, 240, 218, .72), transparent 29%),
        radial-gradient(circle at 52% 112%, rgba(255, 222, 166, .5), transparent 35%),
        radial-gradient(circle at 94% 7%, rgba(207, 221, 255, .76), transparent 30%),
        linear-gradient(135deg, rgba(247,255,253,.94), rgba(247,246,255,.91));
      box-shadow: inset 0 1px 0 rgba(255,255,255,.96), 0 24px 70px rgba(59,83,116,.11);
      backdrop-filter: blur(22px) saturate(135%);
    }
    #fuzhu .fuzhu-hero::before,
    #fuzhu .fuzhu-hero::after {
      content: "";
      position: absolute;
      z-index: -1;
      border-radius: 50%;
      pointer-events: none;
    }
    #fuzhu .fuzhu-hero::before {
      top: -125px;
      right: 31%;
      width: 250px;
      height: 250px;
      background: rgba(255,203,218,.34);
    }
    #fuzhu .fuzhu-hero::after {
      bottom: -150px;
      left: 42%;
      width: 320px;
      height: 320px;
      background: rgba(185,229,255,.3);
      border: 1px solid rgba(255,255,255,.75);
    }
    #fuzhu .fuzhu-hero-copy {
      align-self: center;
      position: relative;
      z-index: 1;
    }
    #fuzhu .fuzhu-hero h1,
    #fuzhu .fuzhu-hero .sub {
      font-family: Inter, "Microsoft YaHei", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
      font-style: normal;
    }
    #fuzhu .fuzhu-hero h1 {
      max-width: 660px;
      font-size: clamp(32px, 3.4vw, 50px);
      font-weight: 680;
      line-height: 1.2;
      letter-spacing: -1px;
      color: #10243a;
    }
    #fuzhu .fuzhu-hero .sub {
      max-width: 680px;
      margin: 18px 0 0;
      color: #40566b;
      font-size: clamp(14px, 1.1vw, 16px);
      line-height: 1.8;
    }
    #fuzhu .fuzhu-proof {
      display: flex;
      flex-wrap: wrap;
      gap: 10px;
      margin-top: 28px;
    }
    #fuzhu .fuzhu-proof > div {
      display: flex;
      align-items: baseline;
      gap: 7px;
      min-width: 126px;
      padding: 10px 13px;
      border: 1px solid rgba(255,255,255,.8);
      border-radius: 14px;
      background: rgba(255,255,255,.48);
      box-shadow: inset 0 1px 0 rgba(255,255,255,.9);
      backdrop-filter: blur(12px);
    }
    #fuzhu .fuzhu-proof > div:nth-child(1) { background: var(--fuzhu-mint); }
    #fuzhu .fuzhu-proof > div:nth-child(2) { background: var(--fuzhu-sky); }
    #fuzhu .fuzhu-proof > div:nth-child(3) { background: var(--fuzhu-lemon); }
    #fuzhu .fuzhu-proof strong {
      color: #0c6f67;
      font-size: 23px;
      line-height: 1;
    }
    #fuzhu .fuzhu-proof span {
      color: #3f5669;
      font-size: 12px;
    }
    #fuzhu .fuzhu-hero-aside {
      align-self: center;
      position: relative;
      z-index: 1;
      padding: 20px;
      border: 1px solid rgba(255,255,255,.9);
      border-radius: 20px;
      background: linear-gradient(145deg, rgba(255,255,255,.8), rgba(228,240,255,.58)), var(--fuzhu-sky);
      box-shadow: inset 0 1px 0 rgba(255,255,255,.96), 0 18px 44px rgba(49,71,103,.13);
      backdrop-filter: blur(24px) saturate(145%);
    }
    #fuzhu .fuzhu-aside-head {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 14px;
      padding-bottom: 14px;
      border-bottom: 1px solid rgba(95,119,145,.16);
    }
    #fuzhu .fuzhu-aside-head > div {
      display: flex;
      align-items: center;
      gap: 10px;
      color: #142a41;
      font-size: 14px;
    }
    #fuzhu .fuzhu-status-dot {
      width: 9px;
      height: 9px;
      flex: 0 0 auto;
      border-radius: 50%;
      background: #20b8a4;
      box-shadow: 0 0 0 5px rgba(32,184,164,.12);
    }
    #fuzhu .help-btn {
      min-height: 36px;
      padding: 8px 13px;
      border: 1px solid rgba(255,255,255,.88);
      border-radius: 10px;
      color: #315069;
      background: rgba(255,255,255,.72);
      box-shadow: 0 5px 14px rgba(57,79,103,.07);
      white-space: nowrap;
    }
    #fuzhu .help-btn:hover {
      color: #0b5d57;
      background: rgba(255,255,255,.95);
    }
    #fuzhu .fuzhu-flow {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 7px;
      margin-top: 18px;
    }
    #fuzhu .fuzhu-flow span {
      flex: 1;
      padding: 9px 8px;
      border: 1px solid rgba(255,255,255,.78);
      border-radius: 10px;
      color: #315069;
      background: rgba(255,255,255,.55);
      font-size: 11px;
      font-weight: 650;
      text-align: center;
      white-space: nowrap;
    }
    #fuzhu .fuzhu-flow i {
      color: #5590a0;
      font-size: 13px;
      font-style: normal;
    }
    #fuzhu .fuzhu-hero-aside > p {
      margin: 15px 0 0;
      color: #526a80;
      font-size: 12px;
      line-height: 1.7;
    }
    #fuzhu .fuzhu-workflow { gap: 20px; }
    #fuzhu .card {
      border: 1px solid rgba(255,255,255,.88);
      border-radius: 22px;
      box-shadow: inset 0 1px 0 rgba(255,255,255,.96), 0 16px 45px rgba(49,71,103,.08);
      backdrop-filter: blur(20px) saturate(135%);
    }
    #fuzhu .fuzhu-input-card {
      background: linear-gradient(145deg, rgba(255,255,255,.76), var(--fuzhu-mint));
    }
    #fuzhu .fuzhu-settings-card {
      background: linear-gradient(145deg, rgba(255,255,255,.76), var(--fuzhu-lilac));
    }
    #fuzhu .fuzhu-progress-card {
      background: linear-gradient(145deg, rgba(255,255,255,.76), var(--fuzhu-peach));
    }
    #fuzhu .fuzhu-results-card {
      background: linear-gradient(145deg, rgba(255,255,255,.78), var(--fuzhu-lemon));
    }
    #fuzhu .fuzhu-log-card {
      color: var(--ink);
      background: linear-gradient(145deg, rgba(255,255,255,.78), var(--fuzhu-sky));
    }
    #fuzhu .fuzhu-log-card .section-heading h2 { color: #142a41; }
    #fuzhu .fuzhu-log-card .section-heading p { color: #526a80; }
    #fuzhu .section-heading .step,
    #fuzhu .settings-card > summary .eyebrow {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-width: 38px;
      min-height: 28px;
      padding: 5px 9px;
      border: 1px solid rgba(255,255,255,.78);
      border-radius: 999px;
      color: #0c6f67;
      background: rgba(255,255,255,.55);
      font-weight: 700;
      letter-spacing: 1px;
    }
    #fuzhu .section-heading h2 { color: #142a41; }
    #fuzhu .section-heading p { color: #526a80; }
    #fuzhu .field-grid { gap: 14px; }
    #fuzhu .field label { color: #40566b; }
    #fuzhu input,
    #fuzhu select {
      border-color: rgba(91,118,146,.19);
      border-radius: 11px;
      background: rgba(255,255,255,.64);
      box-shadow: inset 0 1px 2px rgba(53,73,96,.035);
    }
    #fuzhu input:focus,
    #fuzhu select:focus {
      border-color: rgba(15,118,110,.52);
      background: rgba(255,255,255,.92);
      box-shadow: 0 0 0 3px rgba(20,184,166,.12);
    }
    #fuzhu input[type="file"]::file-selector-button,
    #fuzhu input[type="file"]::-webkit-file-upload-button {
      background: linear-gradient(135deg, #129688, #4aa8b3);
    }
    #fuzhu .settings-card > summary {
      padding: 2px;
      color: #243d55;
      font-size: 15px;
    }
    #fuzhu .settings-card > summary::before { color: #4d7c79; }
    #fuzhu .settings-card .panel {
      border: 1px solid rgba(255,255,255,.78);
      border-radius: 16px;
      background: rgba(255,255,255,.46);
      box-shadow: inset 0 1px 0 rgba(255,255,255,.84);
    }
    #fuzhu .settings-card .panel-title {
      color: #40566b;
      text-transform: none;
      letter-spacing: 0;
    }
    #fuzhu .settings-card .panel.disabled {
      opacity: .54;
      filter: saturate(.55);
    }
    #fuzhu .actions { align-items: center; }
    #fuzhu .actions button { flex: 0 1 auto; min-width: 150px; }
    #fuzhu #fuzhuRun {
      border: 0;
      background: linear-gradient(135deg, #0f8076, #2d9ba7);
      box-shadow: 0 8px 20px rgba(15,128,118,.2);
    }
    #fuzhu #fuzhuRun:hover { background: linear-gradient(135deg, #0d6f66, #258893); }
    #fuzhu #fuzhuReset {
      border-color: rgba(87,112,139,.2);
      color: #40566b;
      background: rgba(255,255,255,.64);
    }
    #fuzhu #fuzhuReset:hover { background: rgba(255,255,255,.92); }
    #fuzhu .status {
      border: 1px solid rgba(255,255,255,.8);
      border-radius: 12px;
      color: #40566b;
      background: rgba(255,255,255,.52);
    }
    #fuzhu .fuzhu-output-grid {
      display: grid;
      grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr);
      gap: 20px;
      margin-top: 20px;
    }
    #fuzhu .fuzhu-output-grid > .card {
      min-width: 0;
      min-height: 292px;
    }
    #fuzhu #fuzhuDownload:empty::before {
      content: "等待转换完成后生成 Word 下载链接";
      display: flex;
      align-items: center;
      justify-content: center;
      min-height: 132px;
      padding: 22px;
      border: 1px dashed rgba(93,117,139,.24);
      border-radius: 14px;
      color: #64788a;
      background: rgba(255,255,255,.38);
      font-size: 13px;
      text-align: center;
    }
    #fuzhu textarea.log-output {
      min-height: 150px;
      margin: 0;
      border: 1px solid rgba(255,255,255,.12);
      border-radius: 14px;
      color: #d7e9ed;
      background: linear-gradient(145deg, #10283a, #18394b);
      box-shadow: inset 0 8px 24px rgba(0,0,0,.12);
    }

    /* ---------- 全模块共享：糖果色亚克力业务页面 ---------- */
    .candy-module {
      --candy-mint: rgba(199, 244, 225, .72);
      --candy-sky: rgba(203, 230, 255, .74);
      --candy-peach: rgba(255, 218, 205, .72);
      --candy-lemon: rgba(255, 240, 184, .68);
      --candy-lilac: rgba(228, 214, 255, .72);
      --candy-rose: rgba(255, 215, 232, .68);
      --candy-aside: var(--candy-sky);
      max-width: 1440px;
      margin: 0 auto;
    }
    .candy-module.candy-peach { --candy-aside: var(--candy-peach); }
    .candy-module.candy-lemon { --candy-aside: var(--candy-lemon); }
    .candy-module.candy-lilac { --candy-aside: var(--candy-lilac); }
    .candy-module.candy-mint { --candy-aside: var(--candy-mint); }
    .candy-module .candy-hero {
      position: relative;
      display: grid;
      grid-template-columns: minmax(0, 1fr) minmax(350px, 420px);
      align-items: stretch;
      gap: clamp(28px, 4vw, 58px);
      margin-bottom: 24px;
      padding: clamp(30px, 4vw, 52px);
      overflow: hidden;
      isolation: isolate;
      border: 1px solid rgba(255,255,255,.88);
      border-radius: 26px;
      background:
        radial-gradient(circle at 7% 12%, rgba(169,240,218,.72), transparent 29%),
        radial-gradient(circle at 52% 112%, rgba(255,222,166,.5), transparent 35%),
        radial-gradient(circle at 94% 7%, rgba(207,221,255,.76), transparent 30%),
        linear-gradient(135deg, rgba(247,255,253,.94), rgba(247,246,255,.91));
      box-shadow: inset 0 1px 0 rgba(255,255,255,.96), 0 24px 70px rgba(59,83,116,.11);
      backdrop-filter: blur(22px) saturate(135%);
    }
    .candy-module .candy-hero::before,
    .candy-module .candy-hero::after {
      content: "";
      position: absolute;
      z-index: -1;
      border-radius: 50%;
      pointer-events: none;
    }
    .candy-module .candy-hero::before {
      top: -125px;
      right: 31%;
      width: 250px;
      height: 250px;
      background: rgba(255,203,218,.34);
    }
    .candy-module .candy-hero::after {
      bottom: -150px;
      left: 42%;
      width: 320px;
      height: 320px;
      background: rgba(185,229,255,.3);
      border: 1px solid rgba(255,255,255,.75);
    }
    .candy-module .candy-hero-copy {
      position: relative;
      z-index: 1;
      align-self: center;
    }
    .candy-module .candy-hero h1,
    .candy-module .candy-hero .sub {
      font-family: Inter, "Microsoft YaHei", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
      font-style: normal;
    }
    .candy-module .candy-hero h1 {
      max-width: 660px;
      font-size: clamp(32px, 3.4vw, 50px);
      font-weight: 680;
      line-height: 1.2;
      letter-spacing: -1px;
      color: #10243a;
    }
    .candy-module .candy-hero h1 span { display: block; }
    .candy-module .candy-hero .sub {
      max-width: 680px;
      margin: 18px 0 0;
      color: #40566b;
      font-size: clamp(14px, 1.1vw, 16px);
      line-height: 1.8;
    }
    .candy-module .candy-proof {
      display: flex;
      flex-wrap: wrap;
      gap: 10px;
      margin-top: 28px;
    }
    .candy-module .candy-proof > div {
      display: flex;
      align-items: baseline;
      gap: 7px;
      min-width: 126px;
      padding: 10px 13px;
      border: 1px solid rgba(255,255,255,.8);
      border-radius: 14px;
      box-shadow: inset 0 1px 0 rgba(255,255,255,.9);
      backdrop-filter: blur(12px);
    }
    .candy-module .candy-proof > div:nth-child(1) { background: var(--candy-mint); }
    .candy-module .candy-proof > div:nth-child(2) { background: var(--candy-sky); }
    .candy-module .candy-proof > div:nth-child(3) { background: var(--candy-lemon); }
    .candy-module .candy-proof strong {
      color: #0c6f67;
      font-size: 23px;
      line-height: 1;
    }
    .candy-module .candy-proof span {
      color: #3f5669;
      font-size: 12px;
    }
    .candy-module .candy-hero-aside {
      position: relative;
      z-index: 1;
      align-self: center;
      padding: 20px;
      border: 1px solid rgba(255,255,255,.9);
      border-radius: 20px;
      background: linear-gradient(145deg, rgba(255,255,255,.8), rgba(255,255,255,.34)), var(--candy-aside);
      box-shadow: inset 0 1px 0 rgba(255,255,255,.96), 0 18px 44px rgba(49,71,103,.13);
      backdrop-filter: blur(24px) saturate(145%);
    }
    .candy-module .candy-aside-head {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 14px;
      padding-bottom: 14px;
      border-bottom: 1px solid rgba(95,119,145,.16);
    }
    .candy-module .candy-aside-head > div,
    .candy-module .candy-aside-head > .message-conn-status {
      display: flex;
      align-items: center;
      gap: 10px;
      color: #142a41;
      font-size: 14px;
    }
    .candy-module .candy-status-dot {
      width: 9px;
      height: 9px;
      flex: 0 0 auto;
      border-radius: 50%;
      background: #20b8a4;
      box-shadow: 0 0 0 5px rgba(32,184,164,.12);
    }
    .candy-module .help-btn,
    .candy-module .candy-mini-badge {
      min-height: 36px;
      padding: 8px 13px;
      border: 1px solid rgba(255,255,255,.88);
      border-radius: 10px;
      color: #315069;
      background: rgba(255,255,255,.72);
      box-shadow: 0 5px 14px rgba(57,79,103,.07);
      white-space: nowrap;
    }
    .candy-module .candy-mini-badge {
      display: inline-flex;
      align-items: center;
      min-height: 32px;
      font-size: 11px;
      font-weight: 650;
    }
    .candy-module .help-btn:hover {
      color: #0b5d57;
      background: rgba(255,255,255,.95);
    }
    .candy-module .candy-flow {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 7px;
      margin-top: 18px;
    }
    .candy-module .candy-flow span {
      flex: 1;
      padding: 9px 7px;
      border: 1px solid rgba(255,255,255,.78);
      border-radius: 10px;
      color: #315069;
      background: rgba(255,255,255,.55);
      font-size: 11px;
      font-weight: 650;
      text-align: center;
      white-space: nowrap;
    }
    .candy-module .candy-flow i {
      color: #5590a0;
      font-size: 13px;
      font-style: normal;
    }
    .candy-module .candy-hero-aside > p {
      margin: 15px 0 0;
      color: #526a80;
      font-size: 12px;
      line-height: 1.7;
    }
    .candy-module .candy-workflow { gap: 20px; }
    .candy-module .card {
      border: 1px solid rgba(255,255,255,.88);
      border-radius: 22px;
      box-shadow: inset 0 1px 0 rgba(255,255,255,.96), 0 16px 45px rgba(49,71,103,.08);
      backdrop-filter: blur(20px) saturate(135%);
    }
    .candy-module .input-card { background: linear-gradient(145deg, rgba(255,255,255,.76), var(--candy-mint)); }
    .candy-module .settings-card { background: linear-gradient(145deg, rgba(255,255,255,.76), var(--candy-lilac)); }
    .candy-module .progress-card { background: linear-gradient(145deg, rgba(255,255,255,.76), var(--candy-peach)); }
    .candy-module .results-card { background: linear-gradient(145deg, rgba(255,255,255,.78), var(--candy-lemon)); }
    .candy-module .log-card {
      color: var(--ink);
      background: linear-gradient(145deg, rgba(255,255,255,.78), var(--candy-sky));
    }
    .candy-module .candy-main-card { background: linear-gradient(145deg, rgba(255,255,255,.76), var(--candy-lilac)); }
    .candy-module .card-columns .input-card:nth-child(2) {
      background: linear-gradient(145deg, rgba(255,255,255,.76), var(--candy-sky));
    }
    .candy-module .section-heading .step,
    .candy-module .settings-card > summary .eyebrow {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-width: 38px;
      min-height: 28px;
      padding: 5px 9px;
      border: 1px solid rgba(255,255,255,.78);
      border-radius: 999px;
      color: #0c6f67;
      background: rgba(255,255,255,.55);
      font-weight: 700;
      letter-spacing: 1px;
    }
    .candy-module .section-heading h2,
    .candy-module .log-card .section-heading h2 { color: #142a41; }
    .candy-module .section-heading p,
    .candy-module .log-card .section-heading p { color: #526a80; }
    .candy-module input,
    .candy-module select,
    .candy-module textarea:not(.log-output) {
      border-color: rgba(91,118,146,.19);
      border-radius: 11px;
      background: rgba(255,255,255,.64);
      box-shadow: inset 0 1px 2px rgba(53,73,96,.035);
    }
    .candy-module input:focus,
    .candy-module select:focus,
    .candy-module textarea:not(.log-output):focus {
      border-color: rgba(15,118,110,.52);
      background: rgba(255,255,255,.92);
      box-shadow: 0 0 0 3px rgba(20,184,166,.12);
    }
    .candy-module input[type="checkbox"],
    .candy-module input[type="radio"] {
      width: auto;
      min-height: auto;
      accent-color: var(--accent);
      box-shadow: none;
    }
    .deepseek-key-field {
      padding: 12px;
      border: 1px solid rgba(104, 125, 151, .15);
      border-radius: 14px;
      background: rgba(255,255,255,.34);
      transition: border-color .18s ease, background .18s ease, box-shadow .18s ease;
    }
    .deepseek-key-field.is-required {
      border-color: rgba(124, 58, 237, .34);
      background: linear-gradient(145deg, rgba(245, 235, 255, .82), rgba(225, 242, 255, .72));
      box-shadow: 0 8px 20px rgba(103, 80, 164, .10), inset 0 1px 0 rgba(255,255,255,.88);
    }
    .deepseek-key-field.has-error {
      border-color: rgba(220, 38, 38, .58);
      box-shadow: 0 0 0 3px rgba(220, 38, 38, .10);
    }
    .required-hint {
      display: inline-flex;
      margin-left: 6px;
      padding: 2px 7px;
      border-radius: 999px;
      color: #6d28d9;
      background: rgba(237, 233, 254, .9);
      font-size: 11px;
      font-weight: 700;
    }
    .secret-input-row {
      display: grid;
      grid-template-columns: minmax(0, 1fr) auto;
      gap: 8px;
      align-items: center;
    }
    .secret-input-row .secret-toggle {
      min-width: 58px;
      min-height: 42px;
      padding-inline: 12px;
    }
    #hzHelp .modal-body { font-family: SimSun, '宋体', serif; }
    .candy-module .settings-card .panel,
    .candy-module .results-card .panel,
    .candy-module .candy-main-card .panel {
      border: 1px solid rgba(255,255,255,.78);
      border-radius: 16px;
      background: rgba(255,255,255,.46);
      box-shadow: inset 0 1px 0 rgba(255,255,255,.84);
    }
    .candy-module .mode-option {
      border-color: rgba(255,255,255,.78);
      border-radius: 14px;
      background: rgba(255,255,255,.48);
    }
    .candy-module .mode-option:has(input:checked) {
      border-color: rgba(15,118,110,.32);
      background: rgba(199,244,225,.68);
    }
    .candy-module .actions button,
    .candy-module .auth-actions button { flex: 0 1 auto; min-width: 145px; }
    .candy-module .actions button:first-child,
    .candy-module .auth-actions button:first-child {
      border: 0;
      background: linear-gradient(135deg, #0f8076, #2d9ba7);
      box-shadow: 0 8px 20px rgba(15,128,118,.18);
    }
    .candy-module .actions button:not(:first-child),
    .candy-module .secondary-btn {
      border-color: rgba(87,112,139,.2);
      color: #40566b;
      background: rgba(255,255,255,.64);
    }
    #workday #wdThisMonth,
    #workday #wdThisYear,
    #workday #wdLast30 {
      border: 1px solid rgba(87,112,139,.2);
      color: #40566b;
      background: rgba(255,255,255,.64);
      box-shadow: none;
    }
    #workday #wdCalculate,
    #workday #wdExcelRun {
      border: 0;
      color: #fff;
      background: linear-gradient(135deg, #0f8076, #2d9ba7);
      box-shadow: 0 8px 20px rgba(15,128,118,.18);
    }
    .candy-module .status {
      border: 1px solid rgba(255,255,255,.8);
      border-radius: 12px;
      color: #40566b;
      background: rgba(255,255,255,.52);
    }
    .candy-module .candy-output-grid {
      display: grid;
      grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr);
      gap: 20px;
      margin-top: 20px;
    }
    .candy-module .candy-output-grid.wide-result {
      grid-template-columns: minmax(0, 1.35fr) minmax(320px, .65fr);
    }
    .candy-module .candy-output-grid > .card { min-width: 0; min-height: 292px; }
    .candy-module .download:empty::before {
      content: "任务完成后，下载链接将在这里显示";
      display: flex;
      align-items: center;
      justify-content: center;
      min-height: 132px;
      padding: 22px;
      border: 1px dashed rgba(93,117,139,.24);
      border-radius: 14px;
      color: #64788a;
      background: rgba(255,255,255,.38);
      font-size: 13px;
      text-align: center;
    }
    .candy-module textarea.log-output {
      min-height: 150px;
      margin: 0;
      border: 1px solid rgba(255,255,255,.12);
      border-radius: 14px;
      color: #d7e9ed;
      background: linear-gradient(145deg, #10283a, #18394b);
      box-shadow: inset 0 8px 24px rgba(0,0,0,.12);
    }
    .candy-module .summary-card {
      border: 1px solid rgba(255,255,255,.8);
      border-radius: 15px;
      background: rgba(255,255,255,.54);
      box-shadow: inset 0 1px 0 rgba(255,255,255,.86);
    }
    .candy-module .detail-table th { background: rgba(255,255,255,.62); }
    #message-board .message-user-list,
    #message-board .message-chat-box {
      border-color: rgba(255,255,255,.82);
      border-radius: 16px;
      background: rgba(255,255,255,.5);
      box-shadow: inset 0 1px 0 rgba(255,255,255,.86);
    }
    #message-board .message-chat-header {
      border-color: rgba(112,128,150,.14);
      background: rgba(255,255,255,.48);
    }
    #message-board .message-chat-window {
      background: rgba(247,250,255,.42);
    }
    #message-board .message-item { border-color: rgba(255,255,255,.82); background: rgba(255,255,255,.7); }
    #message-board .message-item.self { background: rgba(199,244,225,.72); }
    #user-admin .candy-main-card > .panel { overflow-x: auto; }

    .embedded-candy-section {
      max-width: 1440px;
      min-height: calc(100vh - 80px);
      margin: 0 auto;
      padding: 10px;
      border: 1px solid rgba(255,255,255,.88);
      border-radius: 24px;
      background:
        radial-gradient(circle at 7% 8%, rgba(199,244,225,.66), transparent 26%),
        radial-gradient(circle at 96% 5%, rgba(203,230,255,.72), transparent 28%),
        rgba(255,255,255,.48);
      box-shadow: inset 0 1px 0 rgba(255,255,255,.96), 0 20px 58px rgba(49,71,103,.09);
    }
    .candy-frame {
      display: block;
      width: 100%;
      height: calc(100vh - 80px);
      min-height: 660px;
      border: 0;
      border-radius: 18px;
      background: rgba(255,255,255,.65);
    }
    /* 发票页与宿主内容区无缝衔接：不再套用独立窗口容器。 */
    #fapiao.embedded-inline-section,
    #finworkbench.embedded-inline-section {
      max-width: 1440px;
      min-height: calc(100vh - 80px);
      margin: 0 auto;
      padding: 0;
      border: 0;
      border-radius: 0;
      background: transparent;
      box-shadow: none;
    }
    #fapiao .candy-frame,
    #finworkbench .candy-frame {
      min-height: 720px;
      height: calc(100vh - 80px);
      border-radius: 0;
      background: transparent;
      overflow: hidden;
    }

    /* ---------- 欢迎页能力标签同款按钮配色 ---------- */
    #fuzhu button:not(.nav-btn),
    .candy-module button:not(.nav-btn) {
      border: 1px solid rgba(255,255,255,.88);
      color: #245d57;
      background: var(--candy-mint, var(--fuzhu-mint));
      box-shadow: inset 0 1px 0 rgba(255,255,255,.9), 0 7px 18px rgba(60,91,106,.09);
    }
    #fuzhu button:not(.nav-btn):hover,
    .candy-module button:not(.nav-btn):hover {
      color: #174d48;
      background: rgba(178, 238, 215, .88);
      transform: translateY(-1px);
    }
    #fuzhu button.help-btn,
    #fuzhu button#fuzhuReset,
    .candy-module button.help-btn,
    .candy-module button.secondary-btn,
    .candy-module .actions button:not(:first-child),
    .candy-module .auth-actions button:not(:first-child),
    .candy-module button#hzReset,
    .candy-module button#pcReset,
    .candy-module button#wdReset,
    .candy-module button#messageRefreshBtn,
    .candy-module button#refreshUsers,
    .candy-module button#userResetBtn {
      border-color: rgba(255,255,255,.88);
      color: #315f7c;
      background: var(--candy-sky, var(--fuzhu-sky));
      box-shadow: inset 0 1px 0 rgba(255,255,255,.9), 0 7px 18px rgba(60,91,106,.08);
    }
    #fuzhu button.help-btn:hover,
    #fuzhu button#fuzhuReset:hover,
    .candy-module button.help-btn:hover,
    .candy-module button.secondary-btn:hover,
    .candy-module .actions button:not(:first-child):hover,
    .candy-module .auth-actions button:not(:first-child):hover {
      color: #244f6b;
      background: rgba(183, 220, 255, .9);
    }
    #fuzhu input[type="file"]::file-selector-button,
    #fuzhu input[type="file"]::-webkit-file-upload-button,
    .candy-module input[type="file"]::file-selector-button,
    .candy-module input[type="file"]::-webkit-file-upload-button {
      border: 1px solid rgba(255,255,255,.9);
      color: #6b5622;
      background: var(--candy-lemon, var(--fuzhu-lemon));
      box-shadow: inset 0 1px 0 rgba(255,255,255,.88);
    }
    #fuzhu #fuzhuRun,
    .candy-module #hzRun,
    .candy-module #pcMatch,
    .candy-module #wdCalculate,
    .candy-module #wdExcelRun,
    .candy-module #messageSendBtn,
    .candy-module #messageReplyBtn,
    .candy-module #adminResetBtn,
    .candy-module #changePasswordSubmit {
      border: 1px solid rgba(255,255,255,.88);
      color: #245d57;
      background: var(--candy-mint, var(--fuzhu-mint));
      box-shadow: inset 0 1px 0 rgba(255,255,255,.9), 0 8px 20px rgba(60,91,106,.1);
    }
    .candy-module #pcList,
    .candy-module #wdThisMonth,
    .candy-module #wdThisYear,
    .candy-module #wdLast30,
    .candy-module button.emoji-btn,
    .candy-module button.message-attach-btn {
      border: 1px solid rgba(255,255,255,.88);
      color: #6b5622;
      background: var(--candy-lemon);
      box-shadow: inset 0 1px 0 rgba(255,255,255,.9), 0 7px 18px rgba(92,82,48,.07);
    }
    #fuzhu button:disabled,
    .candy-module button:disabled {
      opacity: .55;
      transform: none;
      cursor: not-allowed;
    }
    #fuzhuHelp button.secondary-btn,
    #hzHelp button.secondary-btn,
    #pcHelp button.secondary-btn,
    #pcAnnouncementsModal button.secondary-btn,
    #userActivityModal button.secondary-btn {
      border: 1px solid rgba(255,255,255,.88);
      color: #315f7c;
      background: rgba(203,230,255,.9);
      box-shadow: inset 0 1px 0 rgba(255,255,255,.92), 0 7px 18px rgba(60,91,106,.08);
    }
    #pcAnnouncementsModal button#pcSelectAllModal,
    #pcAnnouncementsModal button#pcInvertModal {
      color: #6b5622;
      background: rgba(255,240,184,.9);
    }
    #pcAnnouncementsModal button#pcModalDownload {
      color: #245d57;
      background: rgba(199,244,225,.9);
    }

    /* 精确覆盖旧 ID 规则：函证文件按钮与工作日全部操作按钮 */
    #hanzheng input#hzFile[type="file"]::file-selector-button,
    #hanzheng input#hzFile[type="file"]::-webkit-file-upload-button,
    #workday input#wdExcelFile[type="file"]::file-selector-button,
    #workday input#wdExcelFile[type="file"]::-webkit-file-upload-button {
      border: 1px solid rgba(255,255,255,.92);
      color: #6b5622;
      background: rgba(255,240,184,.92);
      box-shadow: inset 0 1px 0 rgba(255,255,255,.94), 0 5px 13px rgba(92,82,48,.08);
    }
    #workday button#wdThisMonth,
    #workday button#wdThisYear,
    #workday button#wdLast30 {
      border: 1px solid rgba(255,255,255,.9);
      color: #6b5622;
      background: var(--candy-lemon);
      box-shadow: inset 0 1px 0 rgba(255,255,255,.92), 0 7px 18px rgba(92,82,48,.07);
    }
    #workday button#wdCalculate,
    #workday button#wdExcelRun {
      border: 1px solid rgba(255,255,255,.9);
      color: #245d57;
      background: var(--candy-mint);
      box-shadow: inset 0 1px 0 rgba(255,255,255,.92), 0 8px 20px rgba(60,91,106,.1);
    }
    #workday button#wdReset {
      border: 1px solid rgba(255,255,255,.9);
      color: #315f7c;
      background: var(--candy-sky);
      box-shadow: inset 0 1px 0 rgba(255,255,255,.92), 0 7px 18px rgba(60,91,106,.08);
    }

    /* 能力摘要信息牌：比按钮略深、略隆起，保持同色系但层级更清楚 */
    .welcome-proof > div,
    #fuzhu .fuzhu-proof > div,
    .candy-module .candy-proof > div {
      position: relative;
      border-color: rgba(255,255,255,.94);
      box-shadow:
        inset 0 1px 0 rgba(255,255,255,.98),
        inset 0 -5px 12px rgba(80,104,124,.045),
        0 8px 0 rgba(80,104,124,.035),
        0 13px 24px rgba(49,71,103,.1);
      transform: translateY(-2px);
    }
    .welcome-proof > div::after,
    #fuzhu .fuzhu-proof > div::after,
    .candy-module .candy-proof > div::after {
      content: "";
      position: absolute;
      inset: 2px 9px auto;
      height: 1px;
      border-radius: 999px;
      background: rgba(255,255,255,.78);
      pointer-events: none;
    }
    .welcome-proof > div:nth-child(1),
    #fuzhu .fuzhu-proof > div:nth-child(1),
    .candy-module .candy-proof > div:nth-child(1) {
      background: linear-gradient(145deg, rgba(225,255,243,.94), rgba(165,231,205,.86));
    }
    .welcome-proof > div:nth-child(2),
    #fuzhu .fuzhu-proof > div:nth-child(2),
    .candy-module .candy-proof > div:nth-child(2) {
      background: linear-gradient(145deg, rgba(232,245,255,.95), rgba(173,215,250,.88));
    }
    .welcome-proof > div:nth-child(3),
    #fuzhu .fuzhu-proof > div:nth-child(3),
    .candy-module .candy-proof > div:nth-child(3) {
      background: linear-gradient(145deg, rgba(255,249,219,.96), rgba(247,220,139,.86));
    }

    /* 左侧业务入口恢复统一配色，选中项延续原来的品牌青色。 */
    .sidebar .nav-btn[data-target] {
      border-color: rgba(89,123,136,.12);
      color: #365666;
      background: rgba(255,255,255,.58);
      box-shadow: inset 0 1px 0 rgba(255,255,255,.76);
    }
    .sidebar .nav-btn[data-target]:hover {
      color: #173e4d;
      background: rgba(255,255,255,.88);
      filter: none;
      transform: translateX(2px);
    }
    .sidebar .nav-btn[data-target].active {
      color: #fff;
      border-color: rgba(15,118,110,.28);
      outline: 0;
      background: var(--accent);
      box-shadow: 0 7px 18px rgba(15,118,110,.17);
    }

    /* 函证双模式选择 */
    .field-span-2 { grid-column: 1 / -1; }
    .field-help { color: var(--sub); line-height: 1.5; }
    .mode-selector {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 12px;
    }
    .mode-option {
      display: flex;
      align-items: flex-start;
      gap: 10px;
      margin: 0;
      padding: 14px;
      border: 1px solid var(--line);
      border-radius: 12px;
      background: var(--canvas);
      cursor: pointer;
    }
    .mode-option:has(input:checked) {
      border-color: var(--accent);
      background: var(--accent-soft);
      box-shadow: 0 0 0 2px rgba(15,118,110,.08);
    }
    .mode-option input {
      width: auto;
      min-height: auto;
      margin: 3px 0 0;
      accent-color: var(--accent);
    }
    .mode-option span { display: grid; gap: 4px; }
    .mode-option strong { color: var(--ink); font-size: 14px; }
    .mode-option small { color: var(--sub); font-weight: 400; line-height: 1.45; }

    @media (max-width: 1180px) {
      .welcome-hero { grid-template-columns: minmax(0, 1fr) 410px; padding: 38px; gap: 32px; }
      .welcome-copy h1 { font-size: 42px; }
      .welcome-services > .grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
      #fuzhu .fuzhu-hero { grid-template-columns: minmax(0, 1fr) 360px; padding: 38px; gap: 30px; }
      #fuzhu .fuzhu-hero h1 { font-size: 40px; }
      .candy-module .candy-hero { grid-template-columns: minmax(0, 1fr) 360px; padding: 38px; gap: 30px; }
      .candy-module .candy-hero h1 { font-size: 40px; }
    }
    @media (max-width: 980px) {
      .welcome-hero {
        grid-template-areas: "copy" "account";
        grid-template-columns: 1fr;
      }
      .welcome-copy { padding-top: 0; }
      .welcome-auth-card { width: min(100%, 560px); justify-self: end; }
      #fuzhu .fuzhu-hero { grid-template-columns: 1fr; }
      #fuzhu .fuzhu-hero-aside { width: min(100%, 620px); justify-self: end; }
      #fuzhu .fuzhu-output-grid { grid-template-columns: 1fr; }
      .candy-module .candy-hero { grid-template-columns: 1fr; }
      .candy-module .candy-hero-aside { width: min(100%, 620px); justify-self: end; }
      .candy-module .candy-output-grid,
      .candy-module .candy-output-grid.wide-result { grid-template-columns: 1fr; }
    }
    @media (max-width: 700px) {
      .welcome-hero { padding: 24px; border-radius: 18px; }
      .welcome-copy h1 { font-size: 34px; letter-spacing: -1px; }
      .welcome-proof { gap: 16px; margin-top: 28px; }
      .welcome-services,
      .welcome-updates { padding: 22px; border-radius: 18px; }
      .welcome-services > .grid { grid-template-columns: 1fr; }
      .welcome-services .panel { min-height: auto; }
      .update-grid { grid-template-columns: 1fr; }
      .update-panel { min-height: auto; }
      .welcome-auth-card .grid { grid-template-columns: 1fr; }
      #fuzhu .fuzhu-hero { padding: 24px; border-radius: 18px; }
      #fuzhu .fuzhu-hero h1 { font-size: 32px; letter-spacing: -.7px; }
      #fuzhu .fuzhu-hero h1 span { display: block; }
      #fuzhu .fuzhu-hero-aside { padding: 17px; border-radius: 16px; }
      #fuzhu .fuzhu-aside-head { align-items: flex-start; }
      #fuzhu .fuzhu-flow { gap: 5px; }
      #fuzhu .fuzhu-flow span { padding: 8px 5px; font-size: 10px; }
      #fuzhu .card { border-radius: 18px; }
      #fuzhu .fuzhu-output-grid > .card { min-height: auto; }
      #fuzhu .actions button { width: 100%; }
      .candy-module .candy-hero { padding: 24px; border-radius: 18px; }
      .candy-module .candy-hero h1 { font-size: 32px; letter-spacing: -.7px; }
      .candy-module .candy-hero-aside { padding: 17px; border-radius: 16px; }
      .candy-module .candy-aside-head { align-items: flex-start; }
      .candy-module .candy-flow { gap: 5px; }
      .candy-module .candy-flow span { padding: 8px 5px; font-size: 10px; }
      .candy-module .card { border-radius: 18px; }
      .candy-module .candy-output-grid > .card { min-height: auto; }
      .candy-module .actions button,
      .candy-module .auth-actions button { width: 100%; }
      .embedded-candy-section { padding: 5px; border-radius: 18px; }
      #fapiao.embedded-inline-section,
      #finworkbench.embedded-inline-section { padding: 0; }
      .candy-frame { height: calc(100vh - 24px); border-radius: 14px; }
      #fapiao .candy-frame,
      #finworkbench .candy-frame { border-radius: 0; }
      .mode-selector { grid-template-columns: 1fr; }
    }

    /* ---------- 全局日间 / 夜间模式 ---------- */
    :root[data-theme="dark"] {
      color-scheme: dark;
      --bg-1: #101b22;
      --bg-2: #15262d;
      --ink: #e8f2f3;
      --sub: #a7bbc4;
      --line: #334852;
      --line-soft: #293b44;
      --accent: #4fb8ac;
      --accent-2: #78d2c7;
      --accent-soft: rgba(79,184,172,.18);
      --sidebar: #17272e;
      --sidebar-accent: rgba(255,255,255,.055);
      --canvas: #17262e;
      --surface-soft: #1c3039;
    }
    :root[data-theme="dark"] body {
      color: var(--ink);
      background:
        radial-gradient(circle at 8% 5%, rgba(48,123,112,.2), transparent 29%),
        radial-gradient(circle at 94% 4%, rgba(66,98,147,.18), transparent 31%),
        #101b22;
    }
    :root[data-theme="dark"] .sidebar {
      color: #d5e5e8;
      border-right-color: rgba(145,184,194,.12);
      background: linear-gradient(180deg, #1d3037 0%, #17272e 58%, #132229 100%);
      box-shadow: 8px 0 30px rgba(0,0,0,.12);
    }
    :root[data-theme="dark"] .brand { color: #f0f7f7; border-bottom-color: rgba(197,225,230,.14); }
    :root[data-theme="dark"] .theme-toggle {
      color: #d8e8ea;
      border-color: rgba(177,211,217,.14);
      background: rgba(255,255,255,.07);
      box-shadow: inset 0 1px 0 rgba(255,255,255,.08);
    }
    :root[data-theme="dark"] .theme-toggle:hover { color: #fff; background: rgba(255,255,255,.12); }
    :root[data-theme="dark"] .theme-toggle-icon { color: #4a4024; background: #f6d879; }
    :root[data-theme="dark"] .sidebar .nav-btn[data-target] {
      color: #c4d7dc;
      border-color: rgba(177,211,217,.11);
      background: rgba(255,255,255,.055);
      box-shadow: inset 0 1px 0 rgba(255,255,255,.06);
    }
    :root[data-theme="dark"] .sidebar .nav-btn[data-target]:hover { color: #fff; background: rgba(255,255,255,.11); }
    :root[data-theme="dark"] .sidebar .nav-btn[data-target].active { color: #fff; background: #287f77; }
    :root[data-theme="dark"] .nav-btn.exit { background: rgba(179,78,70,.08); border-color: rgba(240,137,128,.2); color: #f29b93; }
    :root[data-theme="dark"] .nav-btn.admin { background: rgba(72,144,181,.12); }
    :root[data-theme="dark"] .sidebar-status { color: #b8cdd2; background: rgba(255,255,255,.055); border-color: rgba(177,211,217,.11); }
    :root[data-theme="dark"] .sidebar-footer { color: #8fa9b0; }

    :root[data-theme="dark"] .welcome-hero,
    :root[data-theme="dark"] #fuzhu .fuzhu-hero,
    :root[data-theme="dark"] .candy-module .candy-hero {
      border-color: rgba(199,225,230,.13);
      background:
        radial-gradient(circle at 7% 12%, rgba(51,138,119,.2), transparent 30%),
        radial-gradient(circle at 94% 7%, rgba(64,94,148,.2), transparent 31%),
        linear-gradient(135deg, rgba(27,47,55,.97), rgba(25,35,53,.96));
      box-shadow: inset 0 1px 0 rgba(255,255,255,.06), 0 24px 70px rgba(0,0,0,.2);
    }
    :root[data-theme="dark"] .welcome-hero h1,
    :root[data-theme="dark"] #fuzhu .fuzhu-hero h1,
    :root[data-theme="dark"] .candy-module .candy-hero h1,
    :root[data-theme="dark"] .section-heading h2,
    :root[data-theme="dark"] .panel-title,
    :root[data-theme="dark"] .modal-title,
    :root[data-theme="dark"] .auth-title { color: #edf6f6; }
    :root[data-theme="dark"] .welcome-hint,
    :root[data-theme="dark"] #fuzhu .fuzhu-hero .sub,
    :root[data-theme="dark"] .candy-module .candy-hero .sub,
    :root[data-theme="dark"] .section-heading p,
    :root[data-theme="dark"] label,
    :root[data-theme="dark"] .form-label { color: #a7bbc4; }

    :root[data-theme="dark"] .welcome-auth-card,
    :root[data-theme="dark"] .welcome-services,
    :root[data-theme="dark"] .welcome-updates,
    :root[data-theme="dark"] .welcome-services .panel,
    :root[data-theme="dark"] .update-panel,
    :root[data-theme="dark"] #fuzhu .card,
    :root[data-theme="dark"] .candy-module .card,
    :root[data-theme="dark"] .candy-module .panel,
    :root[data-theme="dark"] .auth-card,
    :root[data-theme="dark"] .tips-panel,
    :root[data-theme="dark"] .summary-card,
    :root[data-theme="dark"] .modal-content,
    :root[data-theme="dark"] .message-user-list,
    :root[data-theme="dark"] .message-chat-box {
      color: var(--ink);
      border-color: rgba(199,225,230,.13);
      background: linear-gradient(145deg, rgba(31,50,59,.96), rgba(24,38,48,.94));
      box-shadow: inset 0 1px 0 rgba(255,255,255,.055), 0 16px 45px rgba(0,0,0,.16);
    }
    :root[data-theme="dark"] .welcome-auth-card .auth-tabs,
    :root[data-theme="dark"] .welcome-auth-card .auth-tab.active,
    :root[data-theme="dark"] .candy-module .status,
    :root[data-theme="dark"] .candy-module .summary-card,
    :root[data-theme="dark"] .message-chat-header,
    :root[data-theme="dark"] .message-chat-window,
    :root[data-theme="dark"] .message-item,
    :root[data-theme="dark"] .mode-option,
    :root[data-theme="dark"] .modal-header {
      color: var(--ink);
      border-color: rgba(199,225,230,.12);
      background: rgba(255,255,255,.055);
    }
    :root[data-theme="dark"] input,
    :root[data-theme="dark"] select,
    :root[data-theme="dark"] textarea:not(.log-output),
    :root[data-theme="dark"] #fuzhu input,
    :root[data-theme="dark"] #fuzhu select,
    :root[data-theme="dark"] .candy-module input,
    :root[data-theme="dark"] .candy-module select,
    :root[data-theme="dark"] .candy-module textarea:not(.log-output) {
      color: #e6f0f2;
      border-color: rgba(176,206,213,.16);
      background: rgba(10,23,30,.58);
    }
    :root[data-theme="dark"] input:focus,
    :root[data-theme="dark"] select:focus,
    :root[data-theme="dark"] textarea:not(.log-output):focus { background: rgba(12,27,35,.88); }
    :root[data-theme="dark"] .detail-table th,
    :root[data-theme="dark"] .user-table th,
    :root[data-theme="dark"] .activity-table th { color: #bed0d5; background: rgba(255,255,255,.06); }
    :root[data-theme="dark"] .detail-table td,
    :root[data-theme="dark"] .user-table td,
    :root[data-theme="dark"] .activity-table td { border-color: rgba(188,216,222,.1); }
    :root[data-theme="dark"] .welcome-proof > div,
    :root[data-theme="dark"] #fuzhu .fuzhu-proof > div,
    :root[data-theme="dark"] .candy-module .candy-proof > div {
      border-color: rgba(205,230,234,.16);
      background: linear-gradient(145deg, rgba(56,91,94,.72), rgba(31,56,66,.86));
      box-shadow: inset 0 1px 0 rgba(255,255,255,.09), 0 10px 24px rgba(0,0,0,.16);
    }
    :root[data-theme="dark"] .welcome-proof strong,
    :root[data-theme="dark"] #fuzhu .fuzhu-proof strong,
    :root[data-theme="dark"] .candy-module .candy-proof strong { color: #79d6ca; }
    :root[data-theme="dark"] .welcome-proof span,
    :root[data-theme="dark"] #fuzhu .fuzhu-proof span,
    :root[data-theme="dark"] .candy-module .candy-proof span { color: #c0d2d7; }
    :root[data-theme="dark"] #fuzhu .fuzhu-hero-aside,
    :root[data-theme="dark"] .candy-module .candy-hero-aside { color: var(--ink); border-color: rgba(199,225,230,.14); background: rgba(29,48,58,.88); }
    :root[data-theme="dark"] #fuzhu .fuzhu-aside-head > div,
    :root[data-theme="dark"] .candy-module .candy-aside-head,
    :root[data-theme="dark"] .candy-module .section-heading h2,
    :root[data-theme="dark"] .candy-module .log-card .section-heading h2 { color: #e8f2f3; }
    :root[data-theme="dark"] #fuzhu .fuzhu-flow span,
    :root[data-theme="dark"] .candy-module .candy-flow span { color: #c4d7dc; border-color: rgba(199,225,230,.13); background: rgba(255,255,255,.055); }
    :root[data-theme="dark"] .embedded-candy-section { border-color: rgba(199,225,230,.12); background: rgba(23,38,46,.65); }

    /* ---------- 六套清新糖果配色（经典配色沿用默认值） ---------- */
    :root[data-theme="paper"] {
      --bg-1: #f6efdf; --bg-2: #eee1c7; --ink: #3d3022; --sub: #74634e;
      --line: #d9c9aa; --line-soft: #eadfc9; --accent: #9b6a2f; --accent-2: #774c1e;
      --accent-soft: rgba(183,132,61,.14); --canvas: #fffaf0; --surface-soft: #f8f0df;
      --theme-body-a: rgba(234,197,126,.34); --theme-body-b: rgba(207,176,123,.25);
      --theme-side-a: #fbf5e8; --theme-side-b: #ead9b8;
      --theme-hero-a: rgba(245,205,126,.67); --theme-hero-b: rgba(226,194,137,.48); --theme-hero-c: rgba(255,248,226,.97);
      --palette-mint: rgba(221,235,201,.78); --palette-sky: rgba(217,229,235,.78); --palette-peach: rgba(244,211,181,.78);
      --palette-lemon: rgba(246,224,163,.8); --palette-lilac: rgba(228,211,217,.76);
    }
    :root[data-theme="dream"] {
      --bg-1: #eef5ff; --bg-2: #e6ecff; --ink: #172b53; --sub: #526887;
      --line: #cbd8ee; --line-soft: #e1e9f7; --accent: #386fc9; --accent-2: #28529d;
      --accent-soft: rgba(72,119,204,.14); --canvas: #fafdff; --surface-soft: #f2f6ff;
      --theme-body-a: rgba(121,190,255,.29); --theme-body-b: rgba(145,126,244,.2);
      --theme-side-a: #f0f7ff; --theme-side-b: #dce8ff;
      --theme-hero-a: rgba(127,199,255,.55); --theme-hero-b: rgba(169,143,255,.35); --theme-hero-c: rgba(247,250,255,.97);
      --palette-mint: rgba(194,237,232,.74); --palette-sky: rgba(183,218,255,.8); --palette-peach: rgba(241,207,228,.74);
      --palette-lemon: rgba(245,231,181,.72); --palette-lilac: rgba(211,197,255,.8);
    }
    :root[data-theme="red"] {
      --bg-1: #fff3f3; --bg-2: #fbe7e8; --ink: #43232a; --sub: #79555b;
      --line: #e8c9cc; --line-soft: #f2dfe1; --accent: #bd4250; --accent-2: #8f2e39;
      --accent-soft: rgba(210,74,89,.13); --canvas: #fffafa; --surface-soft: #fff2f3;
      --theme-body-a: rgba(255,124,116,.25); --theme-body-b: rgba(239,171,108,.19);
      --theme-side-a: #fff6f5; --theme-side-b: #f5dfe1;
      --theme-hero-a: rgba(255,132,124,.48); --theme-hero-b: rgba(255,194,124,.34); --theme-hero-c: rgba(255,249,248,.97);
      --palette-mint: rgba(205,239,218,.72); --palette-sky: rgba(211,228,248,.72); --palette-peach: rgba(255,187,183,.78);
      --palette-lemon: rgba(255,229,172,.74); --palette-lilac: rgba(235,207,231,.72);
    }
    :root[data-theme="mint"] {
      --bg-1: #edf9f5; --bg-2: #ddf2eb; --ink: #173a35; --sub: #55746e;
      --line: #c6ded7; --line-soft: #dcece7; --accent: #1e7666; --accent-2: #14594d;
      --accent-soft: rgba(49,164,140,.14); --canvas: #fbfffd; --surface-soft: #eff9f6;
      --theme-body-a: rgba(98,216,183,.3); --theme-body-b: rgba(103,192,208,.2);
      --theme-side-a: #effbf7; --theme-side-b: #d6eee7;
      --theme-hero-a: rgba(108,225,192,.55); --theme-hero-b: rgba(129,205,218,.33); --theme-hero-c: rgba(247,255,252,.97);
      --palette-mint: rgba(169,235,215,.8); --palette-sky: rgba(196,231,239,.76); --palette-peach: rgba(248,213,192,.72);
      --palette-lemon: rgba(241,232,176,.72); --palette-lilac: rgba(218,211,241,.7);
    }
    :root[data-theme="lilac"] {
      --bg-1: #f7f2ff; --bg-2: #ede5f8; --ink: #34264c; --sub: #6c5b80;
      --line: #d8cae8; --line-soft: #e9e0f2; --accent: #7957ac; --accent-2: #593b84;
      --accent-soft: rgba(132,91,184,.14); --canvas: #fefbff; --surface-soft: #f7f1fc;
      --theme-body-a: rgba(183,143,235,.28); --theme-body-b: rgba(242,164,204,.18);
      --theme-side-a: #faf5ff; --theme-side-b: #e8dcf4;
      --theme-hero-a: rgba(191,154,241,.5); --theme-hero-b: rgba(246,173,212,.31); --theme-hero-c: rgba(252,248,255,.97);
      --palette-mint: rgba(205,235,221,.72); --palette-sky: rgba(205,222,248,.74); --palette-peach: rgba(248,210,214,.72);
      --palette-lemon: rgba(245,228,179,.7); --palette-lilac: rgba(213,191,246,.8);
    }
    :is(:root[data-theme="paper"], :root[data-theme="dream"], :root[data-theme="red"], :root[data-theme="mint"], :root[data-theme="lilac"]) body {
      color-scheme: light;
      background:
        radial-gradient(circle at 6% 6%, var(--theme-body-a), transparent 28%),
        radial-gradient(circle at 95% 4%, var(--theme-body-b), transparent 30%),
        var(--bg-1);
    }
    :is(:root[data-theme="paper"], :root[data-theme="dream"], :root[data-theme="red"], :root[data-theme="mint"], :root[data-theme="lilac"]) .sidebar {
      color: var(--ink);
      background: linear-gradient(180deg, var(--theme-side-a), var(--theme-side-b));
      border-right-color: color-mix(in srgb, var(--accent) 15%, transparent);
    }
    :is(:root[data-theme="paper"], :root[data-theme="dream"], :root[data-theme="red"], :root[data-theme="mint"], :root[data-theme="lilac"]) .brand { color: var(--ink); }
    :is(:root[data-theme="paper"], :root[data-theme="dream"], :root[data-theme="red"], :root[data-theme="mint"], :root[data-theme="lilac"]) #welcome,
    :is(:root[data-theme="paper"], :root[data-theme="dream"], :root[data-theme="red"], :root[data-theme="mint"], :root[data-theme="lilac"]) .candy-module {
      --candy-mint: var(--palette-mint); --candy-sky: var(--palette-sky); --candy-peach: var(--palette-peach);
      --candy-lemon: var(--palette-lemon); --candy-lilac: var(--palette-lilac);
    }
    :is(:root[data-theme="paper"], :root[data-theme="dream"], :root[data-theme="red"], :root[data-theme="mint"], :root[data-theme="lilac"]) #fuzhu {
      --fuzhu-mint: var(--palette-mint); --fuzhu-sky: var(--palette-sky); --fuzhu-peach: var(--palette-peach);
      --fuzhu-lemon: var(--palette-lemon); --fuzhu-lilac: var(--palette-lilac);
    }
    :is(:root[data-theme="paper"], :root[data-theme="dream"], :root[data-theme="red"], :root[data-theme="mint"], :root[data-theme="lilac"]) .welcome-hero,
    :is(:root[data-theme="paper"], :root[data-theme="dream"], :root[data-theme="red"], :root[data-theme="mint"], :root[data-theme="lilac"]) #fuzhu .fuzhu-hero,
    :is(:root[data-theme="paper"], :root[data-theme="dream"], :root[data-theme="red"], :root[data-theme="mint"], :root[data-theme="lilac"]) .candy-module .candy-hero {
      background:
        radial-gradient(circle at 7% 12%, var(--theme-hero-a), transparent 29%),
        radial-gradient(circle at 94% 7%, var(--theme-hero-b), transparent 31%),
        linear-gradient(135deg, var(--theme-hero-c), color-mix(in srgb, var(--theme-hero-c) 80%, var(--palette-lilac)));
    }
    :is(:root[data-theme="paper"], :root[data-theme="dream"], :root[data-theme="red"], :root[data-theme="mint"], :root[data-theme="lilac"]) .sidebar .nav-btn[data-target].active,
    :is(:root[data-theme="paper"], :root[data-theme="dream"], :root[data-theme="red"], :root[data-theme="mint"], :root[data-theme="lilac"]) #fuzhu .actions button:first-child,
    :is(:root[data-theme="paper"], :root[data-theme="dream"], :root[data-theme="red"], :root[data-theme="mint"], :root[data-theme="lilac"]) .candy-module .actions button:first-child {
      color: #fff;
      background: linear-gradient(135deg, var(--accent), var(--accent-2));
    }
    :root[data-theme="dark"] .theme-palette { border-color: rgba(177,211,217,.14); background: rgba(255,255,255,.045); box-shadow: inset 0 1px 0 rgba(255,255,255,.06); }
    :root[data-theme="dark"] .theme-option.active { outline-color: rgba(118,211,199,.7); }
