:root {
  color-scheme: light;
  --ink: #243448;
  --muted: #6f7d8c;
  --line: #c5d4e4;
  --line-strong: #7299c4;
  --paper: #ffffff;
  --blue: #386fa8;
  --blue-dark: #244d78;
  --red: #b3262e;
  --gold: #a57b2d;
  --shadow: 0 10px 30px rgba(38, 57, 77, 0.08);
  --parchment: #f7f8f6;
  --parchment-deep: #edf0ee;
  --good: #3f765b;
  --caution: #a85a42;
}

* { box-sizing: border-box; }
body {
  margin: 0;
  height: 100dvh;
  min-width: 760px;
  overflow: hidden;
  color: var(--ink);
  font-family: "Noto Sans SC", "Microsoft YaHei", system-ui, sans-serif;
  background: #edf1f4;
}

.app-shell { display: flex; flex-direction: column; width: 100%; height: 100dvh; margin: 0; padding: 0; overflow: hidden; border: 0; border-radius: 0; background: #f8fafb; box-shadow: none; }
h1 { margin: 0; font: 700 18px/1.2 "STHeiti", "SimHei", "Microsoft YaHei", sans-serif; letter-spacing: .07em; }
.app-menu-bar { position: relative; z-index: 20; display: grid; grid-template-rows: 38px 42px; align-items: stretch; flex: 0 0 auto; min-height: 80px; padding: 0; border-radius: 0; background: #315f83; box-shadow: none; -webkit-app-region: drag; app-region: drag; }
.menu-brand { display: flex; align-items: center; min-width: 0; padding: 0 14px; border-bottom: 1px solid rgba(255,255,255,.14); }
.menu-brand h1 { color: #fff; }
.desktop-command-bar { display: flex; align-items: stretch; justify-content: flex-start; gap: 0; min-width: 0; padding-left: 14px; }
.desktop-command-bar button, .desktop-command-bar details, .desktop-command-bar summary, .desktop-command-bar select, .desktop-command-bar input { -webkit-app-region: no-drag; app-region: no-drag; }
.menu-button, .app-menu-bar .install-pwa { position: relative; min-height: 42px; padding: 5px 14px 4px; border: 0; border-radius: 0; color: rgba(255,255,255,.80); background: transparent; box-shadow: none; font-size: 13px; }
.menu-button::after { content: ''; position: absolute; right: 12px; bottom: 3px; left: 12px; height: 2px; background: transparent; }
.menu-button:hover { color: #fff; background: rgba(255,255,255,.09); }
.menu-button.active { color: #fff; background: rgba(13,35,55,.14); }
.menu-button.active::after { background: #f0cf82; }
.menu-button:focus-visible, .professional-menu > summary:focus-visible, .plate-layer-menu > summary:focus-visible, .moving-disk-menu > summary:focus-visible, .dipper-mode-menu > summary:focus-visible, .shensha-library-menu > summary:focus-visible, .page-scale-menu > summary:focus-visible { outline: 2px solid #7ea4c7; outline-offset: -3px; }
.app-menu-bar .plate-layer-menu > summary, .app-menu-bar .moving-disk-menu > summary, .app-menu-bar .dipper-mode-menu > summary, .app-menu-bar .shensha-library-menu > summary, .app-menu-bar .page-scale-menu > summary, .professional-menu > summary { display: grid; place-items: center; min-height: 42px; padding: 5px 14px 4px; border: 0; border-radius: 0; color: rgba(255,255,255,.80); background: transparent; font-size: 13px; }
.professional-menu { position: relative; }
.professional-menu > summary { cursor: pointer; font-weight: 700; list-style: none; }
.professional-menu > summary::-webkit-details-marker { display: none; }
.professional-menu.active > summary, .professional-menu[open] > summary, .plate-layer-menu[open] > summary, .moving-disk-menu[open] > summary, .dipper-mode-menu[open] > summary, .shensha-library-menu[open] > summary, .page-scale-menu[open] > summary { color: #fff; background: rgba(13,35,55,.16); }
.professional-menu-panel { position: absolute; z-index: 14; top: calc(100% + 5px); right: 0; display: grid; width: 280px; padding: 6px 12px; border: 1px solid #d8e1e7; border-radius: 7px; background: #fff; box-shadow: 0 12px 28px rgba(40,60,80,.14); }
.professional-menu-panel button { display: grid; gap: 2px; padding: 10px 2px; border-bottom: 1px solid #e5eaee; border-radius: 0; color: #3e5b72; background: transparent; text-align: left; }
.professional-menu-panel button:last-child { border-bottom: 0; }
.professional-menu-panel button:hover { background: #f7f9fa; }
.professional-menu-panel b { font-size: 11px; }
.professional-menu-panel small { color: #82909a; font-size: 9px; font-weight: 500; }
.app-menu-bar .engine-badge { max-width: 230px; padding: 6px 9px; overflow: hidden; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.app-menu-bar .install-pwa { color: rgba(255,255,255,.82); }
.engine-badge { padding: 9px 14px; border: 1px solid var(--line); border-radius: 999px; background: rgba(255,255,255,.8); color: var(--muted); font-size: 12px; }
.engine-badge.good { color: #256a49; border-color: #9ccbb5; background: #effaf4; }
.engine-badge.warn { color: #8b5a12; border-color: #dbc08e; background: #fff8e8; }

.workspace {
  display: grid;
  grid-template-columns: minmax(720px, 1fr) clamp(390px, 31vw, 500px);
  flex: 1 1 auto;
  gap: 0;
  align-items: stretch;
  min-height: 0;
  background: #fff;
}
.card { background: var(--paper); border: 1px solid #dce3e8; border-radius: 9px; box-shadow: 0 7px 22px rgba(38,57,77,.055); }
.workspace > .chart-card { border: 0; border-right: 1px solid #d5dfe6; border-radius: 0; box-shadow: none; }
.right-rail { position: relative; height: 100%; display: flex; flex-direction: column; gap: 0; min-height: 0; overflow: hidden; }
.right-rail > .card { border: 0; border-radius: 0; box-shadow: none; }
.rail-result-bar { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex: 0 0 auto; min-height: 52px; padding: 8px 13px; border-bottom: 1px solid #dbe3e8 !important; background: #f8fafb; }
.rail-result-bar > div:first-child { display: grid; gap: 3px; min-width: 0; }
.rail-result-bar strong { color: #315674; font-size: 15px; }
.rail-result-bar small { overflow: hidden; color: #768694; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.rail-result-bar #railResultStatus { display: none !important; }
.rail-result-bar small.good { color: #3f765b; }
.rail-result-bar small.caution { color: #a14943; }
.rail-back { flex: 0 0 auto; padding: 7px 10px; color: #315f91; border: 1px solid #c2d6e9; background: #edf5fb; font-size: 11px; }
.console-pane { display: none; min-height: 0; overflow-y: auto; overscroll-behavior: contain; }
.console-pane.active { display: block; flex: 1 1 auto; }
.control-panel, .result-panel { padding: 17px; }
.result-panel { max-height: none; }
.condition-modal-backdrop { position: fixed; z-index: 40; inset: 0; background: rgba(29, 43, 56, .38); }
.condition-editor { position: fixed; z-index: 41; top: 50%; left: 50%; width: min(810px, calc(100vw - 36px)); max-height: calc(100vh - 38px); padding: 0; overflow-y: auto; border-color: #afc3d4; border-radius: 12px; background: #fbfcfd; box-shadow: 0 24px 70px rgba(18, 36, 52,.26); transform: translate(-50%, -50%); scrollbar-color: rgba(82,105,123,.24) transparent; scrollbar-width: thin; }
.condition-editor::-webkit-scrollbar, .result-panel::-webkit-scrollbar { width: 5px; }
.condition-editor::-webkit-scrollbar-track, .result-panel::-webkit-scrollbar-track { background: transparent; }
.condition-editor::-webkit-scrollbar-thumb, .result-panel::-webkit-scrollbar-thumb { border-radius: 999px; background: rgba(82,105,123,.22); }
.condition-editor::-webkit-scrollbar-thumb:hover, .result-panel::-webkit-scrollbar-thumb:hover { background: rgba(82,105,123,.38); }
.result-panel { scrollbar-color: rgba(82,105,123,.24) transparent; scrollbar-width: thin; }
.condition-editor.console-pane.active { display: block; flex: none; }
.condition-modal-head { position: sticky; z-index: 4; top: 0; display: grid; grid-template-columns: max-content minmax(0, 1fr) max-content; align-items: center; gap: 14px; padding: 10px 14px; border-bottom: 1px solid #d8e2e9; background: rgba(255,255,255,.97); }
.condition-modal-head > div { display: grid; gap: 2px; }
.condition-modal-head strong { color: #2f5878; font-size: 15px; }
.condition-modal-head small { color: #7a8995; font-size: 10px; }
.condition-modal-close { min-width: 56px; padding: 5px 9px; border: 1px solid #9db9cf; border-radius: 6px; color: #315f86; background: #edf5fa; }
.condition-editor .workflow-form { grid-template-columns: minmax(340px, 1fr) minmax(380px, .96fr); gap: 10px; padding: 12px 14px 9px; }
.condition-editor.settings-only { width: min(570px, calc(100vw - 32px)); }
.condition-editor.settings-only .workflow-form { display: block; padding: 10px 12px 12px; }
.condition-editor.settings-only .course-mode-picker,
.condition-editor.settings-only #beneficiarySection,
.condition-editor.settings-only #auditTimeFields,
.condition-editor.settings-only #locationPicker > :not(#advancedSettings),
.condition-editor.settings-only #searchBox,
.condition-editor.settings-only .condition-modal-actions { display: none !important; }
.condition-editor.settings-only #timeLocationSection { display: block; padding: 0; border: 0; background: transparent; }
.condition-editor.settings-only #timeLocationSection > legend { display: none; }
.condition-editor.settings-only .time-location-bubble { border: 0; background: transparent; }
.condition-editor.settings-only #locationPicker { display: block; padding: 0; border: 0; }
.condition-editor.settings-only #advancedSettings { display: block; padding: 8px 0 0; border: 0; background: transparent; }
.condition-editor.settings-only #advancedSettings > summary { display: none; }
.settings-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 5px; margin-top: 6px; }
.settings-list-row { display: grid; grid-template-columns: minmax(0, 1fr); align-content: start; gap: 3px; min-height: 0; padding: 6px; border: 1px solid #dde7ee; border-radius: 7px; background: #fff; }
.settings-list-row > span:first-child { display: flex; align-items: baseline; justify-content: space-between; gap: 5px; color: #385b76; }
.settings-list-row > span:first-child b { font-size: 12px; }
.settings-list-row > span:first-child small { color: #84919b; font-size: 9px; font-weight: 500; }
.settings-list-row select, .settings-list-row input[type="number"] { min-height: 31px; padding: 4px 6px; font-size: 11px; }
.settings-list-row.calibration-field { grid-column: 1 / -1; grid-template-columns: minmax(0, 1fr); align-items: stretch; padding: 7px 8px; }
.settings-list-row.calibration-field > span:first-child { justify-content: center; }
.field .settings-range { display: grid; grid-template-columns: minmax(0, 1fr); gap: 3px; width: 100%; }
.settings-range input[type="range"] { width: 100%; min-width: 0; margin: 0; }
.settings-range small { color: #7f8d98; font-size: 9px; }
.course-mode-picker { display: grid; grid-template-columns: max-content 98px 98px minmax(105px, 1fr); align-items: center; justify-content: center; gap: 8px; min-width: 0; padding: 0 10px; }
.course-mode-picker > span { margin-right: 1px; color: #48647a; font-size: 11px; font-weight: 700; white-space: nowrap; }
.mode-choice { display: grid; min-width: 0; min-height: 42px; padding: 4px 8px; border: 1px solid #c6d5e1; border-radius: 8px; color: #536c82; background: #f5f8fa; box-shadow: none; }
.mode-choice b { font-size: 14px; }
.mode-choice small { overflow: hidden; color: #7b8a96; font-size: 9px; font-weight: 500; text-overflow: ellipsis; white-space: nowrap; }
.mode-choice:hover { border-color: #8facbf; background: #edf4f8; }
.mode-choice.active { border-color: #6f98bd; color: #244f76; background: #e5f0f8; box-shadow: inset 0 0 0 1px rgba(75,125,169,.10); }
.course-mode-picker > em { overflow: hidden; max-width: 175px; color: #536b7d; font-size: 11px; font-style: normal; font-weight: 700; line-height: 1.2; text-overflow: ellipsis; white-space: nowrap; }
.condition-editor.mode-pending:not(.settings-only) #beneficiarySection,
.condition-editor.mode-pending:not(.settings-only) #timeLocationSection,
.condition-editor.mode-pending:not(.settings-only) #advancedSettings { opacity: .46; filter: grayscale(.25); }
.condition-editor.mode-pending:not(.settings-only) #beneficiarySection,
.condition-editor.mode-pending:not(.settings-only) #timeLocationSection { background: #f4f6f7; }
.condition-editor .mode-locked { pointer-events: none; }
.condition-editor #advancedSettings { grid-column: 1 / -1; }
.time-location-bubble { display: grid; gap: 0; overflow: hidden; border: 1px solid #dbe6ef; border-radius: 10px; background: #f6f9fc; }
.time-location-bubble #auditTimeFields { display: grid; gap: 7px; padding: 8px 8px 6px; }
.time-location-bubble .pc-time-grid { padding: 0; border: 0; border-radius: 0; background: transparent; }
.condition-editor .search-box { margin: 8px 0 0; padding: 7px; border-color: #dbe5ec; background: #f7fafc; }
.condition-editor .search-box .form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px; padding-top: 6px; }
.condition-editor .search-box .field { gap: 3px; }
.condition-editor .search-box .field span { align-items: center; justify-content: flex-start; gap: 5px; color: #385a75; font-size: 12px; font-weight: 800; }
.condition-editor .search-box input, .condition-editor .search-box select { min-height: 30px; padding: 3px 6px; font-size: 11px; }
.search-date-field span i { display: inline-grid; place-items: center; width: 18px; height: 18px; border: 1px solid #b9ccdc; border-radius: 4px; color: #416886; background: #eef5fa; font-size: 10px; font-style: normal; }
.search-help-field span b { display: inline-grid; place-items: center; width: 15px; height: 15px; border-radius: 50%; color: #fff; background: #789bb8; font-size: 9px; }
.field-tooltip { position: fixed; z-index: 70; width: max-content; max-width: 280px; padding: 7px 9px; border: 1px solid #aec1d0; border-radius: 6px; color: #fff; background: #31546e; box-shadow: 0 7px 20px rgba(28,48,65,.22); font-size: 11px; line-height: 1.45; white-space: pre-line; pointer-events: none; transform: translate(-50%, -100%); }
.condition-modal-actions { position: sticky; z-index: 4; bottom: 0; padding: 8px 14px 10px; border-top: 1px solid #d8e2e9; background: rgba(255,255,255,.97); }
.condition-modal-actions .course-submit { min-height: 46px; border-radius: 7px; }
.condition-modal-actions .course-submit:disabled { cursor: default; color: #5f7180; border: 1px solid #d4dee5; background: #edf2f5; box-shadow: none; filter: none; }
.condition-editor input, .condition-editor select { min-height: 39px; padding: 7px 9px; border-radius: 8px; }
.rail-action-dock { flex: 0 0 auto; display: grid; padding: 10px 11px; border-color: #cbd8e1; background: #fff; box-shadow: 0 -6px 18px rgba(39,64,87,.08); }
.course-launch { display: grid; min-height: 52px; width: 100%; border-radius: 7px; }
.course-launch span { font: 700 18px/1.2 "STKaiti", "KaiTi", serif; letter-spacing: .08em; }
.section-title { display: flex; justify-content: space-between; gap: 10px; align-items: baseline; padding-bottom: 12px; border-bottom: 1px solid #e5edf5; }
.section-title span { font-weight: 700; }
.section-title small { color: var(--muted); font-size: 11px; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; padding-top: 15px; }
.compact-grid { gap: 9px; }
.workflow-form { display: grid; gap: 9px; padding-top: 10px; }
.workflow-step { min-width: 0; margin: 0; padding: 12px; border: 1px solid #dce4ea; border-radius: 10px; background: #fbfcfd; }
.workflow-step:disabled { color: inherit; }
.workflow-step legend { display: flex; align-items: center; gap: 8px; padding: 0 5px; color: #355a78; font-size: 12px; font-weight: 700; white-space: nowrap; }
#beneficiarySection > legend, #timeLocationSection > legend { font-size: 16px; font-weight: 800; }
.step-index { display: inline-grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; color: #fff; background: #477aa8; }
.workflow-step .form-grid { padding-top: 5px; }
.condition-editor .workflow-rule { margin: 6px 1px 0; padding: 2px 0 2px 8px; border-left: 2px solid #89a8c3; border-radius: 0; color: #677b8c; background: transparent; font-size: 10px; line-height: 1.4; }
.workflow-rule.emphasis { border-left-color: #b38a45; color: #755f36; background: #fff9eb; }
.course-submit { display: grid; width: 100%; padding: 9px 16px; }
.field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.field-wide { grid-column: 1 / -1; }
.field span { font-size: 12px; color: #536579; display: flex; justify-content: space-between; }
input, select, button { font: inherit; }
input, select { width: 100%; min-height: 38px; border: 1px solid #cbd8e5; border-radius: 9px; padding: 7px 9px; color: var(--ink); background: #fbfdff; outline: none; }
input:focus, select:focus { border-color: #6f9ccc; box-shadow: 0 0 0 3px rgba(77,132,188,.12); }
input[type="range"] { min-height: auto; padding: 0; }
button { border: 0; border-radius: 10px; padding: 11px 14px; cursor: pointer; font-weight: 700; }
.primary { color: #fff; background: linear-gradient(135deg, #315f91, #4b83b9); box-shadow: 0 8px 18px rgba(49,95,145,.22); }
.secondary { color: #315f91; background: #eaf2fa; border: 1px solid #c2d6e9; }
button:hover { filter: brightness(1.04); }
.advanced, .search-box { border: 1px solid #dfe8f1; border-radius: 10px; padding: 10px; background: rgba(247,250,253,.82); }
.advanced summary, .search-box summary { cursor: pointer; color: #435b73; font-size: 13px; font-weight: 700; }
.search-box { margin-top: 15px; }
.mode-note { margin-top: 9px; padding: 9px 11px; border-left: 3px solid #7c9fc2; background: #f2f7fb; color: #56687b; font-size: 12px; line-height: 1.65; }

.chart-card { position: relative; height: 100%; min-height: 0; display: flex; flex-direction: column; overflow: hidden; min-width: 0; }
.plate-layer-menu { position: relative; }
.plate-layer-menu > summary { padding: 7px 10px; border: 1px solid #ccd7df; border-radius: 8px; color: #536b7e; background: #fff; cursor: pointer; font-weight: 700; list-style: none; }
.plate-layer-menu > summary::-webkit-details-marker { display: none; }
.plate-layer-menu[open] .plate-layer-switches { position: absolute; z-index: 12; top: calc(100% + 5px); left: 0; display: grid; grid-template-columns: 1fr; width: 190px; padding: 5px 9px; border: 1px solid #d6e0e7; border-radius: 7px; background: #fff; box-shadow: 0 12px 28px rgba(40,60,80,.14); }
.plate-layer-switches { display: none; }
.plate-layer-toggle { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 34px; padding: 7px 6px; color: #60768b; border: 0; border-bottom: 1px solid #e5eaee; border-radius: 0; background: transparent; box-shadow: none; text-align: left; }
.plate-layer-toggle:last-child { border-bottom: 0; }
.plate-layer-toggle:hover { color: #244f72; background: #f2f6f9; filter: none; }
.plate-layer-toggle::after { content: '关'; flex: 0 0 auto; min-width: 20px; color: #a34d50; font-size: 12px; font-weight: 900; text-align: center; text-shadow: 0 0 5px rgba(181,65,70,.35); }
.plate-layer-toggle.active { color: #315d82; background: transparent; }
.plate-layer-toggle.active::after { content: '开'; color: #238456; text-shadow: 0 0 5px rgba(36,169,102,.72), 0 0 10px rgba(36,169,102,.28); }
.moving-disk-menu { position: relative; }
.moving-disk-menu > summary { cursor: pointer; font-weight: 700; list-style: none; }
.moving-disk-menu > summary::-webkit-details-marker { display: none; }
.moving-disk-panel { position: absolute; z-index: 15; top: calc(100% + 5px); left: 0; display: grid; gap: 9px; width: 310px; padding: 13px; border: 1px solid #d3dee7; border-radius: 8px; color: #36566f; background: #fff; box-shadow: 0 12px 28px rgba(40,60,80,.18); }
.moving-disk-heading { display: grid; gap: 2px; }
.moving-disk-heading strong { font-size: 14px; }
.moving-disk-heading small, .moving-disk-panel p { color: #788b9a; font-size: 11px; line-height: 1.55; }
.moving-disk-panel output { min-height: 30px; padding: 7px 9px; border: 1px solid #dbe4eb; border-radius: 6px; background: #f6f9fb; font-size: 12px; font-weight: 700; }
.moving-disk-panel label { display: grid; grid-template-columns: 72px 1fr; align-items: center; gap: 8px; font-size: 12px; font-weight: 700; }
.moving-disk-panel select { min-height: 34px; border: 1px solid #cbd8e2; border-radius: 6px; color: #36566f; background: #fff; }
.moving-disk-actions { display: grid; grid-template-columns: .75fr .75fr 1.5fr; gap: 6px; }
.moving-disk-actions button { min-height: 34px; padding: 6px 8px; border: 1px solid #b8ccdc; border-radius: 6px; color: #315f83; background: #edf4f9; font-weight: 800; }
.moving-disk-actions button:first-child { color: #fff; border-color: #315f83; background: #315f83; }
.moving-disk-actions button:disabled { opacity: .42; }
.moving-disk-panel p { margin: 0; }
.moving-disk-demo-active .moving-disk-rotatable { will-change: transform; }
.dipper-mode-menu { position: relative; }
.dipper-mode-menu > summary { grid-template-columns: auto auto !important; gap: 6px; cursor: pointer; font-weight: 700; list-style: none; }
.dipper-mode-menu > summary::-webkit-details-marker { display: none; }
.dipper-mode-menu > summary small { color: #f0cf82; font-size: 10px; font-weight: 800; }
.dipper-mode-panel { position: absolute; z-index: 17; top: calc(100% + 5px); left: 0; display: grid; gap: 10px; width: 330px; padding: 14px; border: 1px solid #cfdae3; border-radius: 9px; color: #34556f; background: #fff; box-shadow: 0 14px 34px rgba(35,58,78,.22); }
.dipper-mode-heading { display: grid; gap: 2px; }
.dipper-mode-heading small, .dipper-mode-panel p { color: #718596; font-size: 11px; }
.dipper-mode-switch { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; }
.dipper-mode-switch button { display: grid; gap: 3px; padding: 10px 8px; border: 1px solid #c9d7e2; color: #45647d; background: #f7fafc; box-shadow: none; text-align: left; }
.dipper-mode-switch button.active { border-color: #b98524; color: #8b4b20; background: #fff8e8; box-shadow: inset 0 0 0 1px rgba(185,133,36,.2); }
.dipper-mode-switch button small { font-size: 10px; line-height: 1.35; }
.dipper-mode-panel p { margin: 0; }
.page-scale-menu { position: relative; margin-left: auto; }
.page-scale-menu > summary { grid-template-columns: auto auto; gap: 7px; cursor: pointer; font-weight: 700; list-style: none; }
.page-scale-menu > summary::-webkit-details-marker { display: none; }
.page-scale-menu > summary small { min-width: 34px; color: #f0cf82; font-size: 10px; font-weight: 800; text-align: right; }
.page-scale-panel { position: absolute; z-index: 18; top: calc(100% + 5px); right: 0; display: grid; gap: 10px; width: 330px; padding: 14px; border: 1px solid #cfdae3; border-radius: 9px; color: #34556f; background: #fff; box-shadow: 0 14px 34px rgba(35,58,78,.22); }
.page-scale-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.page-scale-heading > div { display: grid; gap: 2px; }
.page-scale-heading strong { color: #294e6c; font-size: 14px; }
.page-scale-heading small, .page-scale-panel > p { color: #788b9a; font-size: 10px; line-height: 1.5; }
.page-scale-heading output { min-width: 58px; padding: 5px 8px; border: 1px solid #d5e0e8; border-radius: 7px; color: #315f83; background: #f4f8fb; font-size: 14px; font-weight: 900; text-align: center; }
.page-scale-panel > label { color: #5a7184; font-size: 11px; font-weight: 700; }
.page-scale-panel input[type="range"] { --scale-progress: 66.666%; width: 100%; min-height: 26px; margin: 0; padding: 0; border: 0; outline: 0; background: transparent; cursor: ew-resize; appearance: none; }
.page-scale-panel input[type="range"]::-webkit-slider-runnable-track { height: 7px; border: 1px solid #b7cad8; border-radius: 999px; background: linear-gradient(90deg, #4e82aa 0 var(--scale-progress), #dce6ed var(--scale-progress) 100%); }
.page-scale-panel input[type="range"]::-webkit-slider-thumb { width: 20px; height: 20px; margin-top: -7px; border: 3px solid #fff; border-radius: 50%; background: #315f83; box-shadow: 0 1px 5px rgba(24,58,84,.38); appearance: none; }
.page-scale-panel input[type="range"]:focus-visible::-webkit-slider-thumb { outline: 3px solid rgba(87,137,178,.34); outline-offset: 2px; }
.page-scale-range-labels { display: flex; justify-content: space-between; margin-top: -8px; color: #8495a2; font-size: 9px; font-weight: 700; }
.page-scale-panel > button { min-height: 34px; border: 1px solid #b8ccdc; border-radius: 7px; color: #315f83; background: #edf4f9; font-weight: 800; }
.page-scale-panel > p { margin: 0; padding-top: 2px; text-align: center; }
.shensha-library-menu { position: relative; }
.shensha-library-menu > summary { cursor: pointer; font-weight: 700; list-style: none; }
.shensha-library-menu > summary::-webkit-details-marker { display: none; }
.shensha-library-menu > summary small { margin-left: 4px; color: #d8e9d8; font-size: 9px; }
.shensha-library-panel { position: absolute; z-index: 14; top: calc(100% + 5px); left: 0; display: grid; gap: 8px; width: 440px; max-height: min(640px, calc(100dvh - 105px)); padding: 12px; overflow-y: auto; border: 1px solid #d5e0d8; border-radius: 8px; color: #365645; background: #fff; box-shadow: 0 12px 28px rgba(40,60,80,.18); }
.shensha-library-actions { display: grid; grid-template-columns: repeat(4, 1fr); gap: 5px; }
.shensha-library-actions button { min-height: 34px; padding: 6px 5px; border: 1px solid #c8d9cd; border-radius: 6px; color: #3f6a4c; background: #eef6f0; font-size: 11px; }
.shensha-library-panel input[type="search"] { min-height: 38px; border-color: #cbd9cf; border-radius: 7px; font-size: 12px; }
.shensha-checklist { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 4px; }
.shensha-checklist.empty { display: block; padding: 12px; color: #718378; text-align: center; }
.shensha-choice { display: grid; grid-template-columns: 15px minmax(0, 1fr) auto; align-items: center; gap: 4px; min-width: 0; min-height: 31px; padding: 5px 6px; border: 1px solid #dbe5dd; border-radius: 7px; background: #fbfdfb; font-size: 11px; cursor: pointer; }
.shensha-choice input { width: 14px; min-height: 14px; margin: 0; padding: 0; }
.shensha-choice span { overflow: hidden; color: #21372a; font: 800 13px "STHeiti", "SimHei", "Microsoft YaHei", sans-serif; text-overflow: ellipsis; white-space: nowrap; }
.shensha-choice small { color: #8a978d; font-size: 8.5px; }
.shensha-library-panel > p { margin: 0; padding: 7px 9px; border-left: 3px solid #6b9875; color: #58705e; background: #f0f7f1; font-size: 10px; line-height: 1.5; }
.chart-wrap { position: relative; flex: 1 1 auto; min-width: 0; min-height: 0; width: 100%; display: grid; place-items: stretch; padding: 12px; overflow: hidden; background: radial-gradient(circle at 50% 46%, #ffffff 0%, var(--parchment) 70%, var(--parchment-deep) 100%); }
#doubleDisk { display: block; width: 100%; height: 100%; min-width: 0; min-height: 0; overflow: visible; filter: drop-shadow(0 12px 20px rgba(70,100,130,.09)); }
.geometry-badge { position: absolute; z-index: 2; top: 13px; left: 14px; padding: 6px 9px; border: 1px solid #d4dde4; border-radius: 999px; color: #667685; background: rgba(255,255,255,.88); font-size: 10px; pointer-events: none; }
.geometry-fields { margin-top: 10px; padding: 10px; border: 1px solid #d8e3ea; border-radius: 9px; background: #f6f9fb; }
.geometry-fields-head { display: flex; justify-content: space-between; gap: 10px; color: #47657c; font-size: 11px; }
.geometry-fields-head span { color: #7b8995; }
.geometry-fields .form-grid { grid-template-columns: minmax(0, .76fr) minmax(0, 1.24fr); align-items: end; gap: 5px; }
.geometry-fields .field > span { min-height: 14px; align-items: flex-end; font-size: 10px; white-space: nowrap; }
.geometry-fields select, .geometry-fields input { min-width: 0; min-height: 34px; padding-right: 3px; padding-left: 5px; font-size: 12px; }
.activity-field select { border-color: #92afc7; background: #fff; font-weight: 700; }
.beneficiary-birth-field { margin-top: 8px; border: 1px solid #dce5eb; border-radius: 7px; background: #f8fafb; }
.beneficiary-birth-field > summary { list-style: none; cursor: pointer; }
.beneficiary-birth-field > summary::-webkit-details-marker { display: none; }
.beneficiary-birth-field small { color: #6f8190; font-size: 9px; line-height: 1.4; }
.beneficiary-field-head { display: grid; grid-template-columns: minmax(0, 1fr) max-content; align-items: center; gap: 4px 7px; padding: 7px 8px; }
.beneficiary-field-head::before { content: '›'; grid-column: 1; grid-row: 1; width: 12px; color: #6f879a; font-size: 17px; line-height: 1; transform-origin: center; transition: transform .15s ease; }
.beneficiary-birth-field[open] .beneficiary-field-head::before { transform: rotate(90deg); }
.beneficiary-field-head > span { grid-column: 1; grid-row: 1; padding-left: 15px; color: #526b80; font-size: 11px; font-weight: 700; }
.beneficiary-field-head > b { grid-column: 2; padding: 2px 7px; border: 1px solid #dec993; border-radius: 999px; color: #835e1b; background: #fff8e6; font-size: 10px; }
.beneficiary-field-head > small { grid-column: 1 / -1; padding-left: 15px; color: #84919b; white-space: nowrap; }
.beneficiary-birth-content { display: grid; gap: 6px; padding: 7px 8px 8px; border-top: 1px solid #e2e9ee; }
.beneficiary-options-row { display: flex; align-items: center; justify-content: space-between; gap: 4px; min-width: 0; }
.beneficiary-calendar-switch, .beneficiary-gender-switch { display: flex; min-width: 0; gap: 3px; }
.beneficiary-calendar-switch .calendar-toggle, .beneficiary-gender { min-width: 0; min-height: 28px; padding: 2px 4px; border: 1px solid #c9d8e5; border-radius: 6px; color: #536c82; background: #f6f9fc; font-size: 11px; }
.beneficiary-calendar-switch .calendar-toggle { width: 35px; }
.beneficiary-gender { width: 30px; }
.beneficiary-gender.active { border-color: #6f98bd; color: #244f76; background: #e7f1f9; box-shadow: inset 0 0 0 1px rgba(75,125,169,.12); }
.beneficiary-leap { justify-self: start; min-height: 28px; padding: 0 7px; }
.beneficiary-time-grid { display: grid; grid-template-columns: 1.24fr 1fr 1fr; gap: 3px; width: 100%; min-width: 0; padding: 5px; border: 1px solid #dbe6ef; border-radius: 7px; background: #f6f9fc; }
.beneficiary-time-grid .pc-time-field, .beneficiary-time-grid select { min-width: 0; }
.beneficiary-time-grid .pc-time-field:nth-child(4) { grid-column: 1 / 2; }
.beneficiary-time-grid .pc-time-field:nth-child(5) { grid-column: 2 / 3; }
.beneficiary-time-grid .pc-time-field span { font-size: 10px; }
.beneficiary-time-grid .pc-time-field select { min-height: 29px; padding: 3px 5px; }
.chart-bazi { position: absolute; z-index: 3; top: 54px; left: 22px; color: #334d63; pointer-events: none; }
.chart-bazi { display: grid; gap: 9px; }
.chart-bazi-group { display: grid; gap: 3px; justify-items: start; }
.chart-bazi-group > small { color: #617689; font: 600 11px/1.2 "Microsoft YaHei", sans-serif; }
.beneficiary-bazi-group { padding-top: 7px; border-top: 1px solid rgba(102,130,151,.35); }
.beneficiary-bazi-group .chart-bazi-columns { font-size: clamp(17px, 1.25vw, 21px); }
.chart-bazi-columns { display: grid; grid-template-columns: repeat(4, minmax(32px, 1fr)); gap: 7px; font: 700 clamp(20px, 1.55vw, 25px)/1.25 "STHeiti", "SimHei", "Microsoft YaHei", sans-serif; }
.chart-bazi-pillar { display: flex; flex-direction: column; align-items: center; min-width: 32px; padding: 0 4px; }
.chart-bazi-caption { display: flex; align-items: center; gap: 4px; margin-top: 4px; color: #405c73; font: 700 clamp(18px, 1.35vw, 22px)/1.3 "STHeiti", "SimHei", "Microsoft YaHei", sans-serif; }
.chart-bazi-caption b { color: #9b6c24; font-weight: 700; }
.chart-bazi-empty { color: #777; font-size: 12px; }
.chart-time-meta, .chart-frame-meta, .chart-course-meta, .chart-geo-meta { position: absolute; z-index: 3; display: grid; gap: 5px; max-width: 620px; color: #40586c; font: 600 17px/1.4 "Microsoft YaHei", sans-serif; pointer-events: none; }
.chart-time-meta { top: 20px; left: 22px; font-size: 17px; }
.chart-frame-meta { top: 18px; right: 20px; gap: 2px; width: min(390px, 41%); justify-items: end; color: #405c73; font-size: 19px; line-height: 1.4; text-align: right; }
.chart-frame-meta .frame-meta-line { display: flex; justify-content: flex-end; gap: 18px; width: 100%; white-space: nowrap; text-shadow: 0 1px 0 rgba(255,255,255,.98), 0 0 9px rgba(255,255,255,.96); }
.chart-frame-meta b { flex: 0 0 auto; color: #2f5878; font-weight: 800; }
.chart-frame-meta em { min-width: 0; color: #49657a; font-style: normal; font-weight: 700; }
.chart-frame-meta .frame-meta-line-1 { opacity: 1; }
.chart-frame-meta .frame-meta-line-2 { opacity: .96; }
.chart-frame-meta .frame-meta-line-3 { opacity: .92; }
.chart-frame-meta .frame-meta-line-4 { opacity: .88; }
.chart-frame-meta .frame-meta-line-5 { opacity: .84; }
.course-datetime-line { display: flex; align-items: baseline; gap: 5px; }
.course-datetime-line em { font-style: normal; }
.course-datetime-line b { font-weight: 700; }
.chart-course-meta { bottom: 20px; left: 22px; font-size: 19px; line-height: 1.5; }
.chart-course-meta span:first-child { color: #2f5878; font-weight: 800; }
.chart-geo-meta { right: 20px; bottom: 18px; gap: 2px; max-width: 560px; padding: 0; justify-items: end; color: #496276; background: transparent; font-size: 19px; line-height: 1.4; text-align: right; }
.chart-geo-meta .geo-line { opacity: .84; text-shadow: 0 1px 0 rgba(255,255,255,.96), 0 0 8px rgba(255,255,255,.94); }
.chart-geo-meta .geo-line:nth-child(2) { opacity: .88; }
.chart-geo-meta .geo-line:nth-child(3) { opacity: .92; }
.chart-geo-meta .geo-line:nth-child(4) { opacity: .96; }
.chart-geo-meta .geo-line:nth-child(5) { opacity: 1; }
.chart-geo-meta .geo-line-long { font-weight: 700; }
.chart-time-meta span, .chart-course-meta span, .chart-geo-meta span { white-space: nowrap; }
.chart-time-meta em { font-style: normal; }
#dayCourseClock { font-size: inherit; line-height: inherit; letter-spacing: .01em; }
.loading { position: absolute; inset: 0; display: grid; place-items: center; background: rgba(245,249,253,.7); color: var(--blue); font-weight: 700; }
.hidden { display: none !important; }
.dial-readout { display: flex; justify-content: center; flex-wrap: wrap; gap: 8px 24px; padding: 10px 12px; border-top: 1px solid #e4ecf4; background: #f8fbfe; color: #657487; font-size: 12px; }
.dial-readout b { color: #334d69; }
.result-panel h2 { margin: 19px 0 9px; font-size: 14px; }
.chart-facts-view { display: grid; gap: 0; color: #294760; }
.facts-section { padding: 17px 0 18px; border-bottom: 1px solid #d8e1e8; }
.course-facts-section { padding-top: 3px; }
.facts-section h2 { margin: 0 0 12px; color: #234e70; font-size: 17px; line-height: 1.4; }
.facts-section-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.facts-section-heading small { color: #7f8e99; font-size: 10px; }
.base-course-facts { display: grid; grid-template-columns: 1fr; border-top: 1px solid #d9e3e9; }
.base-course-facts > div { display: grid; grid-template-columns: 64px minmax(0, 1fr); align-items: center; gap: 8px; min-height: 48px; padding: 8px 0; border-bottom: 1px solid #dfe7ec; }
.base-course-facts small { color: #5f7485; font-size: 13px; font-weight: 700; }
.base-course-facts strong { color: #294b64; font-size: 16px; line-height: 1.4; }
.course-geometry-lines { display: grid; justify-items: start; gap: 2px; }
.base-life-facts { display: grid; grid-template-columns: 1.16fr .84fr; gap: 8px; padding: 10px; border: 1px solid #d9e2e8; border-radius: 9px; background: #fbfcfd; }
.base-life-facts article { display: grid; grid-template-columns: 54px minmax(0, 1fr); align-items: center; gap: 5px; min-width: 0; min-height: 44px; padding: 8px; border: 1px solid #dce5eb; border-radius: 7px; background: #f6f9fb; }
.base-life-facts article small { color: #647987; font-size: 11px; font-weight: 700; white-space: nowrap; }
.base-life-facts article strong { color: #294f6c; font-size: 15px; line-height: 1.35; white-space: nowrap; }
.base-life-facts article.life-primary strong { font-size: 15px; }
.base-life-facts article.emphasis strong { color: #a06128; font-size: 16px; }
.base-life-facts article.selected { grid-column: 1 / -1; grid-template-columns: 70px 1fr auto; align-items: center; gap: 8px; min-height: 44px; padding: 8px 10px; border-color: #eadab7; border-left: 3px solid #b38b45; background: #fffaf0; }
.base-life-facts article.selected strong { color: #7c5925; font-size: 18px; }
.base-life-facts article.selected span { color: #8d795c; font-size: 11px; }
.base-body-table-wrap { overflow-x: auto; }
.base-body-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.base-body-table th { padding: 9px 7px; border-top: 1px solid #d9e3ea; border-bottom: 1px solid #cad7e1; color: #72818d; background: #f3f6f8; font-size: 11px; text-align: left; }
.base-body-table td { padding: 10px 7px; border-bottom: 1px solid #e2e8ec; color: #456075; white-space: nowrap; }
.base-body-table td:first-child strong { margin-right: 6px; color: #244d6e; font-size: 16px; }
.base-body-table td b { color: #768b9b; font-size: 12px; font-weight: 600; }
.base-body-table i { display: inline-grid; place-items: center; min-width: 22px; height: 22px; padding: 0 3px; border-radius: 4px; color: #397356; background: #edf7f1; font-size: 12px; font-weight: 700; line-height: 1; font-style: normal; vertical-align: 1px; }
.base-body-table i.motion-reverse { color: #a04e43; background: #fff1ef; }
.base-body-table i.motion-station { color: #8a682d; background: #fff8e9; }
.base-body-table i.motion-concealed { color: #735393; background: #f5effb; }
.base-body-table i.motion-slow { color: #9a6c27; background: #fff7e7; }
.base-body-table i.motion-fast { color: #2f7254; background: #eaf7f0; }
.relationship-basis, .annual-noble-method { margin: -2px 0 11px; color: #536b7d; font-size: 13px; line-height: 1.65; }
.annual-noble-aspect-legend { margin: -5px 0 10px; padding-left: 8px; border-left: 2px solid #8faabd; color: #445d70; font: 700 12px/1.6 "STHeiti", "SimHei", "Microsoft YaHei", sans-serif; }
.base-relationship-groups { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; padding: 10px; border: 1px solid #d9e2e8; border-radius: 9px; background: #fbfcfd; }
.base-relationship-groups article { display: grid; grid-template-columns: 42px minmax(0, 1fr); align-items: center; gap: 8px; min-width: 0; min-height: 43px; padding: 8px 10px; border: 1px solid #dce5eb; border-radius: 7px; background: #f6f9fb; }
.base-relationship-groups article:last-child { grid-column: 1 / -1; }
.base-relationship-groups strong { color: #367152; font-size: 16px; }
.base-relationship-groups .role-caution strong { color: #a25446; }
.base-relationship-groups span { color: #294f6c; font-size: 15px; font-weight: 700; line-height: 1.4; word-break: keep-all; }
.course-review-list { display: grid; gap: 7px; margin-top: 10px; }
.course-review-list h3 { margin: 3px 0 2px; color: #294f6c; font-size: 15px; font-weight: 800; }
.course-review-list article { display: grid; grid-template-columns: 108px 58px minmax(0, 1fr); gap: 7px; align-items: start; padding: 8px 9px; border: 1px solid #dce5eb; border-radius: 7px; background: #f8fafb; color: #4d687d; font-size: 12px; line-height: 1.45; }
.course-review-list article b { color: #294f6c; font-size: 15px; font-weight: 700; }
.course-review-list article strong { color: #397353; font-size: 15px; font-weight: 800; }
.course-review-list article.relation-caution strong { color: #a25446; }
.course-review-cards { display: grid; gap: 9px; }
.course-review-cards article { padding: 11px; border: 1px solid #d9e2e8; border-radius: 8px; background: #f8fafb; }
.course-review-cards h3 { margin: 0 0 6px; color: #315b78; font-size: 14px; }
.course-review-cards strong { color: #294f6c; font-size: 14px; line-height: 1.45; }
.course-review-cards p { margin: 6px 0 0; color: #5b7182; font-size: 12px; line-height: 1.55; }
.annual-noble-table-wrap { overflow-x: auto; border-top: 1px solid #dbe4e9; }
.annual-noble-table { width: 100%; border-collapse: collapse; table-layout: fixed; }
.annual-noble-table th { padding: 8px 5px; color: #647987; background: #f2f6f8; font-size: 12px; font-weight: 700; text-align: left; white-space: nowrap; }
.annual-noble-table th:nth-child(1) { width: 46px; }
.annual-noble-table th:nth-child(2) { width: 132px; }
.annual-noble-table th:nth-child(3) { width: 54px; }
.annual-noble-table th:nth-child(4) { width: 82px; }
.annual-noble-table th:nth-child(5) { width: 116px; text-align: right; }
.annual-noble-table td { padding: 12px 5px; border-bottom: 1px solid #dfe7ec; color: #405f76; font-size: 13.5px; line-height: 1.4; vertical-align: middle; }
.annual-noble-table td:first-child strong { color: #8a6427; font-size: 16px; line-height: 1.35; }
.annual-noble-table td:nth-child(2) { color: #355b78; font-weight: 700; }
.annual-noble-table td:nth-child(2) b, .annual-noble-table td:nth-child(2) small, .annual-noble-table td:nth-child(3) b, .annual-noble-table td:nth-child(4) b, .annual-noble-table td:nth-child(4) small, .annual-noble-table td:last-child b, .annual-noble-table td:last-child small { display: block; }
.annual-noble-table td:nth-child(2) small { margin-top: 3px; color: #637b8d; font-size: 10.5px; font-weight: 500; white-space: nowrap; }
.annual-noble-table td:nth-child(3) b, .annual-noble-table td:nth-child(4) b { color: #315776; font-size: 13.5px; }
.annual-noble-table td:nth-child(4) small, .annual-noble-table td:last-child small { margin-top: 3px; color: #637b8d; font-size: 10.5px; white-space: nowrap; }
.annual-noble-table td:last-child small { white-space: normal; }
.annual-noble-table td:last-child { color: #778795; text-align: right; }
.annual-noble-table td:last-child b { font-size: 13.5px; }
.annual-noble-table tr.reaches td:last-child b { color: #2f7450; }
.chart-facts-view .simple-expert-button { margin-top: 18px; min-height: 42px; color: #29577c; border-color: #aec8dd; background: #edf5fb; font-size: 13px; }
.simple-result-view { display: grid; gap: 18px; }
.simple-verdict { padding: 3px 3px 13px 13px; border-left: 4px solid #5e8bb2; border-bottom: 1px solid #dbe4eb; }
.simple-verdict > small { display: block; color: #7a8996; font-size: 10px; font-weight: 700; }
.simple-verdict > strong { display: block; margin-top: 4px; color: #294f73; font: 700 27px/1.1 "STKaiti", "KaiTi", serif; }
.simple-verdict > p { margin: 7px 0 0; color: #536b7e; font-size: 13px; line-height: 1.6; }
.simple-check-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.simple-check-grid article { min-width: 0; padding: 2px 4px 11px; border-bottom: 1px solid #dbe4eb; }
.simple-check-grid small { display: block; color: #7d8b97; font-size: 9px; }
.simple-check-grid strong { display: block; margin-top: 4px; color: var(--good); font-size: 15px; line-height: 1.35; }
.simple-check-grid strong.caution { color: var(--caution); }
.simple-check-grid p { margin: 6px 0 0; color: #627383; font-size: 12px; line-height: 1.6; }
.simple-life-chain { display: grid; gap: 10px; padding: 14px 3px 16px; border-top: 1px solid #dbe4eb; border-bottom: 1px solid #dbe4eb; }
.simple-life-head { display: grid; gap: 3px; }
.simple-life-head small { color: #7d8b97; font-size: 10px; font-weight: 700; }
.simple-life-head strong { color: #244f73; font-size: 19px; line-height: 1.35; }
.simple-life-chain > p { margin: 0; padding: 8px 10px; border-left: 3px solid #6d98bc; color: #4f687d; background: #f3f7fa; font-size: 12px; line-height: 1.55; }
.simple-life-luminaries { display: grid; grid-template-columns: auto 1fr 1fr auto; align-items: center; gap: 8px 12px; padding: 9px 7px; border-top: 1px solid #dfe7ed; }
.simple-life-luminaries > strong { color: #9a6c26; font-size: 12px; }
.simple-life-luminaries > span { display: grid; gap: 1px; color: #294f6d; font-size: 12px; }
.simple-life-luminaries > span b { font-size: 13px; }
.simple-life-luminaries > span small { color: #718392; font-size: 9px; }
.simple-life-luminaries > em { color: #6f7f8b; font-size: 10px; font-style: normal; }
.simple-life-roles { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); border-top: 1px solid #dfe7ed; border-bottom: 1px solid #dfe7ed; }
.simple-life-roles article { min-width: 0; padding: 9px 7px; border-right: 1px solid #dfe7ed; }
.simple-life-roles article:last-child { border-right: 0; }
.simple-life-roles article > b { display: block; color: #397654; font-size: 13px; }
.simple-life-roles article.caution > b { color: #a15b42; }
.simple-life-roles article div { display: grid; gap: 6px; margin-top: 5px; color: #294f6d; font-size: 12px; font-weight: 700; }
.simple-life-roles article span { display: grid; gap: 1px; }
.simple-life-roles article small { color: #718392; font-size: 9px; font-weight: 500; line-height: 1.35; }
.simple-life-roles article i { color: #9aa5ad; font-style: normal; }
.simple-life-aspects { display: flex; flex-wrap: wrap; gap: 6px 14px; }
.simple-life-aspects span { color: #536d80; font-size: 11px; }
.simple-life-aspects b { margin-right: 4px; color: #397654; }
.simple-life-aspects span.caution b { color: #a15b42; }
.simple-life-chain > small { color: #778995; font-size: 10px; line-height: 1.55; }
.simple-evidence { padding: 0 3px; }
.simple-evidence h3 { margin: 0 0 5px; color: #274f70; font-size: 15px; line-height: 1.4; }
.simple-evidence > div { display: grid; }
.simple-evidence article { position: relative; display: grid; grid-template-columns: minmax(0, 1fr); gap: 5px; padding: 12px 4px 13px 15px; border-bottom: 1px solid #dfe7ed; }
.simple-evidence article::before { content: '●'; position: absolute; top: 17px; left: 2px; color: #4f9470; font-size: 8px; }
.simple-evidence.caution article::before { color: #c17a57; }
.simple-evidence b { color: #294f6d; font-size: 15px; line-height: 1.42; }
.simple-evidence.caution b { color: #8b4c36; }
.simple-evidence span { color: #607382; font-size: 12px; line-height: 1.62; }
.simple-evidence .simple-empty { display: block; padding: 8px 0; color: #84919c; font-size: 10px; }
.simple-expert-button { justify-self: stretch; padding: 9px; font-size: 11px; }
.simple-score-note { color: #89949d; font-size: 9px; text-align: center; }
.four-pillar-grid { display: grid; grid-template-columns: repeat(4, 1fr); margin-top: 8px; border-top: 1px solid #e0e7ec; border-bottom: 1px solid #e0e7ec; }
.four-pillar-column { display: grid; justify-items: center; gap: 1px; padding: 7px 3px; border-right: 1px solid #e0e7ec; }
.four-pillar-column:last-child { border-right: 0; }
.four-pillar-column small { color: #7b8995; font-size: 8px; }
.four-pillar-column b, .four-pillar-column strong { color: #314f69; font: 700 16px/1.15 "STKaiti", "KaiTi", serif; }
.four-pillar-column strong { color: #3d6080; }
.review-head { position: sticky; z-index: 4; top: -17px; margin: -17px -17px 0; padding: 17px 17px 10px; border-bottom: 1px solid #e3eaf0; background: rgba(255,255,255,.97); }
.score-card { display: grid; grid-template-columns: 1fr auto; gap: 3px 14px; padding: 11px 12px; border-left: 4px solid #6f97bb; background: #f5f8fb; }
.review-path { display: grid; grid-template-columns: repeat(5, max-content); gap: 8px; }
.review-path span { position: relative; color: #698092; font-size: 9px; text-align: center; white-space: nowrap; }
.review-path span + span::before { content: '›'; position: absolute; left: -5px; color: #8fa4b5; }
.rail-review-path { margin-left: auto; }
.rail-review-path.hidden { display: none; }
.score-card span { color: var(--muted); font-size: 11px; }
.score-card strong { grid-column: 1; color: #294f70; font: 800 30px "STKaiti", "KaiTi", serif; line-height: 1; }
.score-metric { grid-column: 2; grid-row: 1 / 3; display: grid; align-content: center; justify-items: end; gap: 1px; }
.score-metric small { color: #8493a0; font-size: 8px; }
.score-metric b { color: var(--blue); font-size: 27px; line-height: 1; }
.warning { margin-top: 10px; color: #855b23; font-size: 11px; line-height: 1.55; }
.review-highlights { margin-top: 13px; padding: 0 1px 9px; border-top: 1px solid #cbb77f; border-bottom: 1px solid #dce4ea; }
.review-highlights h2 { margin: 0; padding: 11px 0 5px; color: #2c5372; font-size: 15px; }
.review-highlight-group { display: grid; grid-template-columns: 54px minmax(0, 1fr); gap: 10px; }
.review-highlight-group + .review-highlight-group { margin-top: 3px; }
.review-highlight-group h3 { display: grid; align-content: start; gap: 1px; margin: 0; padding: 9px 0; color: #637888; }
.review-highlight-group h3 span { font-size: 12px; line-height: 1.15; }
.review-highlight-group h3 strong { font-size: 16px; line-height: 1.15; }
.review-highlight-group.caution h3 { color: #9b4d40; }
.review-highlight-group.support h3 { color: #347053; }
.review-highlight-group article { padding: 8px 0; border-bottom: 1px solid #e5ebef; }
.review-highlight-group article:last-child { border-bottom: 0; }
.review-highlight-group article header { display: flex; justify-content: space-between; gap: 8px; }
.review-highlight-group article b { color: #2d506b; font-size: 12px; }
.review-highlight-group article strong { color: #347053; font-size: 11px; }
.review-highlight-group.caution article strong { color: #a1473d; }
.review-highlight-group article p { margin: 3px 0 0; color: #687b8a; font-size: 10px; line-height: 1.5; }
.result-group { margin-top: 13px; padding-top: 2px; border: 0; border-top: 1px solid #d7e1e9; background: transparent; }
.priority-group { border-top-color: #ccb986; }
.result-group > summary { padding: 12px 1px 9px; color: #315674; font-size: 13px; font-weight: 700; cursor: pointer; }
.result-group[open] > summary { background: transparent; }
.result-group-body { padding: 0 1px 11px; }
.course-facts { margin-top: 11px; padding: 11px 1px 12px; border: 0; border-bottom: 1px solid #d7e1e9; background: transparent; }
.course-facts-head { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; color: #365a78; font-size: 13px; font-weight: 700; }
.course-facts-head strong { color: #294d70; font: 700 16px "STKaiti", "KaiTi", serif; letter-spacing: .08em; }
.course-facts > small { display: grid; gap: 4px; margin-top: 9px; color: #718190; font-size: 10px; line-height: 1.5; }
.day-course-card { margin-top: 11px; padding: 11px; border: 1px solid #cbdceb; border-radius: 12px; background: linear-gradient(145deg, #fbfdff, #eef5fb); }
.day-course-head { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.day-course-head span { color: #365a78; font-weight: 700; }
.day-course-head b { color: #244d73; font-size: 12px; }
.day-course-meta { display: flex; justify-content: space-between; gap: 8px; margin-top: 5px; color: #6a7e91; font-size: 9px; }
.day-course-card .pillar-strip { margin-top: 8px; background: rgba(255,255,255,.78); }
.day-course-card .calendar-strip { background: rgba(226,238,248,.72); }
.day-course-term { margin-top: 6px; padding: 6px 8px; border-left: 3px solid #6f9dbf; background: rgba(255,255,255,.7); color: #426681; font-size: 9px; line-height: 1.45; }
.day-course-card > small { display: block; margin-top: 6px; color: #7c8c99; font-size: 8px; line-height: 1.45; }
.pillar-strip { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; margin-top: 9px; padding: 8px 0; border-bottom: 1px solid #e5ebf0; background: transparent; }
.pillar-strip span { color: var(--muted); font-size: 11px; }
.pillar-strip strong { color: #314d68; font: 700 15px "STKaiti", "KaiTi", serif; letter-spacing: .08em; }
.pillar-strength-panel { background: transparent; }
.pillar-strength-rows { display: grid; grid-template-columns: 1fr 1fr; gap: 0 12px; padding: 0 0 8px; }
.pillar-strength-rows section { display: flex; justify-content: space-between; gap: 5px; padding: 7px 1px; border-bottom: 1px solid #e5ebe2; background: transparent; font-size: 10px; }
.pillar-strength-rows section b { color: #455f45; }
.pillar-strength-rows section span { color: #6d7c69; text-align: right; }
.pillar-candidates { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 4px; }
.pillar-candidate { padding: 4px 6px; border: 1px dashed #d6c2a0; border-radius: 7px; background: #fffaf0; color: #806737; font-size: 10px; }
.pillar-candidate.supported { border-style: solid; border-color: #bcd6be; background: #eff8ef; color: #3f6a45; }
.pillar-candidate.neutral { border-color: #d9e1e7; background: #f7f9fb; color: #77848e; }
.pillar-strength-rows small { grid-column: 1 / -1; color: #7d8994; font-size: 10px; line-height: 1.5; }
.pillar-strength-rows small.caution-text { color: #9a6039; }
.calendar-strip { display: flex; justify-content: space-between; gap: 10px; margin-top: 7px; padding: 8px 12px; border-radius: 9px; background: #f2f7fb; color: #526b82; font-size: 11px; }
.calendar-strip strong { color: #385a76; }
.solar-command { margin-top: 7px; padding: 8px 10px; border-left: 3px solid #88adc8; background: #f4f8fb; color: #526b7f; font-size: 11px; line-height: 1.5; }
.lumaguiren-strip { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 7px; }
.lumaguiren-strip span { padding: 2px 7px 2px 0; border-right: 1px solid #d7e2ea; color: #3d607e; font-size: 10px; }
.lumaguiren-strip span:last-child { border-right: 0; }
.lumaguiren-strip span.caution { color: #9b4036; }
.dipper-card { margin-top: 2px; padding: 9px 1px 11px; border-bottom: 1px solid #e4e8e9; background: transparent; }
.dipper-head { display: flex; align-items: baseline; justify-content: space-between; gap: 9px; }
.dipper-head span { color: #7f6732; font: 700 13px "STKaiti", "KaiTi", serif; }
.dipper-head b { color: #3e5f78; font-size: 10px; }
.dipper-values { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 7px; }
.dipper-values span { padding: 2px 7px 2px 0; border-right: 1px solid #d9e3eb; color: #52697d; font-size: 10px; }
.dipper-values span:last-child { border-right: 0; }
.dipper-values i { display: inline-block; width: 6px; height: 6px; margin-right: 3px; border-radius: 50%; }
.dipper-values i.static { background: #a57b2d; }.dipper-values i.dynamic { background: #3a75a8; }.dipper-values i.middle { border-radius: 1px; background: #8a559b; transform: rotate(45deg); }
.dipper-card small { display: block; margin-top: 7px; color: #8a8170; font-size: 10px; line-height: 1.5; }
.huayao-panel { margin-top: 2px; border: 0; border-top: 1px solid #e4eaf0; background: transparent; }
.huayao-panel summary { padding: 9px 1px; color: #3e607b; cursor: pointer; font-size: 12px; font-weight: 700; }
.huayao-strip { padding: 0 1px 10px; }
.huayao-strip section { display: grid; grid-template-columns: 46px 1fr; gap: 5px; align-items: start; margin-top: 5px; }
.huayao-strip section > b { color: #6a7d8d; font-size: 10px; }
.huayao-strip section > div { display: flex; flex-wrap: wrap; gap: 4px; }
.huayao-strip span { padding: 3px 5px; border-radius: 5px; font-size: 10px; }
.huayao-strip span.good { border: 1px solid #c3ddcb; background: #eff9f2; color: #386348; }
.huayao-strip span.caution { border: 1px solid #e3beb8; background: #fff3f1; color: #94483f; }
.huayao-strip small { display: block; margin-top: 7px; color: #7d8994; font-size: 10px; line-height: 1.5; }
.shensha-strip { display: flex; flex-wrap: wrap; gap: 5px; padding: 0 10px 10px; }
.shensha-strip span { padding: 4px 6px; border: 1px solid #d3e0ea; border-radius: 7px; background: #f6f9fc; color: #526c82; font-size: 10px; }
.shensha-strip span.caution { border-color: #e3beb8; background: #fff5f3; color: #8e4a42; }
.shensha-strip span.good { border-color: #c3ddcb; background: #eff9f2; color: #386348; }
.shensha-strip span.neutral { border-style: dashed; }
.shensha-strip span b { font-size: 9px; }
.shensha-strip small { flex-basis: 100%; color: #7d8994; font-size: 10px; line-height: 1.5; }
.life-palace-card { margin-top: 2px; padding: 10px 1px 11px; border-bottom: 1px solid #e4e9ed; background: transparent; color: #3b566d; }
.life-palace-head { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.life-palace-head span { color: #8a5d32; font: 700 13px "STKaiti", "KaiTi", serif; }
.life-palace-head strong { color: #2f536f; font: 700 14px "STKaiti", "KaiTi", serif; }
.life-degree { margin-top: 5px; color: #526d83; font-size: 10px; }
.life-ruler-choice { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 7px; padding: 6px 8px; border-left: 3px solid #c3a45e; color: #6f5a2f; background: #fffaf0; font-size: 10px; }
.life-ruler-choice b { color: #8a5d32; }
.life-ruler-choice span { text-align: right; }
.life-palace-card p { margin: 7px 0; font-size: 10px; line-height: 1.5; }
.life-relations { display: flex; flex-wrap: wrap; gap: 4px; }
.life-relation { padding: 2px 8px 2px 0; border-right: 1px solid #cddfd4; color: #376249; font-size: 10px; }
.life-relation:last-child { border-right: 0; }
.life-relation b { margin-right: 3px; }
.life-relation.caution { color: #9a493e; }
.life-aspects { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 6px; }
.life-aspects span { padding: 2px 8px 2px 0; border-right: 1px solid #c9ddd1; color: #326047; font-size: 10px; }
.life-aspects span:last-child { border-right: 0; }
.life-aspects span.caution { color: #99473e; }
.life-palace-card small { display: block; margin-top: 7px; color: #6c7e8e; font-size: 9px; }
.life-palace-card .caution-text { color: #a05a35; }
.time-refine-card { margin-top: 2px; padding: 10px 1px 3px; background: transparent; color: #51697d; }
.time-refine-head { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.time-refine-head span { color: #806329; font: 700 12px "STKaiti", "KaiTi", serif; }
.time-refine-head b { color: #365a76; font-size: 11px; }
.time-refine-card p { margin: 6px 0; font-size: 9px; line-height: 1.5; }
.time-refine-card small { display: block; color: #7d817d; font-size: 8px; line-height: 1.45; }
.time-refine-actions { display: flex; gap: 6px; margin-top: 7px; }
.time-refine-actions button { flex: 1; padding: 7px 8px; border-radius: 8px; font-size: 9px; }
.time-refine-result { margin-top: 7px; padding: 7px 8px; border-radius: 8px; background: rgba(255,255,255,.8); font-size: 9px; }
.time-refine-result b { color: #315f91; }
.time-refine-result.caution { background: #fff3f0; color: #8b3025; }
.hard-filter { margin-top: 10px; padding: 10px 12px; border: 1px solid #e6b5ac; border-radius: 10px; background: #fff3f0; color: #8b3025; }
.hard-filter strong { font-size: 12px; }
.hard-filter p { margin: 5px 0 0; font-size: 11px; line-height: 1.55; }
.eclipse-risk { margin-top: 10px; padding: 10px 12px; border: 1px solid #e1c27d; border-radius: 10px; background: #fff9e9; color: #785516; }
.eclipse-risk.hard { border-color: #e6b5ac; background: #fff3f0; color: #8b3025; }
.eclipse-risk strong { display: block; font-size: 12px; }
.eclipse-risk p { margin: 5px 0 0; font-size: 11px; line-height: 1.55; }
.eclipse-risk small { display: block; margin-top: 5px; font-size: 9px; opacity: .82; }
.advanced-panel { margin-top: 10px; }
.advanced-evidence-rows { display: grid; gap: 5px; padding-top: 8px; }
.advanced-evidence-rows section { display: grid; grid-template-columns: minmax(110px, 1.25fr) 1fr; align-items: center; gap: 8px; padding: 7px 1px; border-bottom: 1px solid #e7edf1; background: transparent; font-size: 10px; }
.advanced-evidence-rows section b { color: #344f6a; }
.advanced-evidence-rows section span { color: #65798c; text-align: right; }
.advanced-evidence-rows small { display: block; color: #8a6b2f; line-height: 1.45; }
.node-interception-panel { margin-top: 8px; background: transparent; }
.node-interception-rows { display: grid; gap: 0; padding: 0 1px 10px; color: #5f6d77; }
.node-axis { padding: 6px 8px; border-left: 3px solid #9d7d50; background: #faf5ec; color: #765d39; font-size: 9px; }
.node-interception-rows section, .node-targets { display: grid; grid-template-columns: 76px 1fr; gap: 7px; padding: 6px 1px; border-bottom: 1px solid #e7ecef; background: transparent; font-size: 8px; }
.node-interception-rows section b, .node-targets b { color: #4d6070; }
.node-interception-rows section span, .node-targets span { text-align: right; }
.node-interception-rows p { margin: 1px 0; padding: 6px 8px; border: 1px dashed #d8c6ab; border-radius: 7px; color: #856b45; font-size: 9px; line-height: 1.45; }
.node-interception-rows p.candidate { border-style: solid; border-color: #b8d5bd; background: #eff8f1; color: #3d6846; }
.node-interception-rows small { color: #7b8791; font-size: 8px; line-height: 1.45; }
.rule-list { display: flex; flex-direction: column; gap: 0; overflow: visible; }
.rule-hit { padding: 10px 1px; border-bottom: 1px solid #e3e9ee; background: transparent; }
.rule-head { display: flex; justify-content: space-between; gap: 8px; font-size: 12px; font-weight: 700; }
.rule-score.good { color: #287250; }.rule-score.bad { color: #a1373d; }
.rule-hit p { margin: 5px 0 0; color: #68798b; font-size: 11px; line-height: 1.5; }
.rule-hit cite { display: block; margin-top: 5px; color: #8b99a8; font-size: 10px; font-style: normal; }
.empty-state { color: var(--muted); font-size: 12px; line-height: 1.7; }
.body-table-wrap { max-height: none; overflow-x: auto; border: 0; }
.body-table { width: 100%; border-collapse: collapse; font-size: 12px; }
.body-table th { position: sticky; top: 0; background: #edf4fa; color: #526a82; }
.body-table th, .body-table td { padding: 7px 5px; border-bottom: 1px solid #edf1f5; text-align: center; white-space: nowrap; }
.body-table tr:last-child td { border-bottom: 0; }

.search-results { margin-top: 16px; padding: 18px; }
.inline-search-results { margin-top: 11px; padding: 12px; border: 1px solid #cbdceb; border-radius: 12px; background: linear-gradient(145deg, #fbfdff, #eef5fb); }
.inline-search-results .section-title { padding-bottom: 8px; }
.inline-search-results .candidate-grid { grid-template-columns: 1fr 1fr; gap: 7px; margin-top: 9px; }
.inline-search-results .candidate { padding: 9px; }
.candidate-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; margin-top: 13px; }
.candidate { border: 1px solid #dce7f1; border-radius: 12px; padding: 12px; background: #fbfdff; cursor: pointer; }
.candidate:hover { border-color: #7ea6cc; transform: translateY(-1px); }
.candidate time { display: block; color: #49657f; font-size: 12px; }
.candidate strong { display: flex; align-items: baseline; justify-content: space-between; margin-top: 7px; }
.candidate strong b { color: var(--blue); font-size: 22px; }
.candidate p { margin: 6px 0 0; color: var(--muted); font-size: 10px; line-height: 1.5; }
.candidate small { display: block; margin-top: 7px; color: #6f879b; font-size: 9px; }
.candidate.rejected { border-color: #e3b9b2; background: #fff6f4; opacity: .82; }
.candidate.rejected strong b { color: #a43f34; }
.install-pwa { border: 1px solid #8babc6; border-radius: 999px; padding: 9px 14px; color: #285477; background: rgba(255,255,255,.78); cursor: pointer; font-weight: 700; }
.install-pwa:hover { background: #fff; border-color: #5f8daf; }
.calendar-switch { display: grid; grid-template-columns: auto auto auto minmax(0, 1fr) auto; align-items: center; gap: 7px; }
.calendar-toggle { min-height: 31px; padding: 5px 12px; border: 1px solid #c9d8e5; color: #536c82; background: #f6f9fc; }
.calendar-toggle.active { border-color: #6f98bd; color: #244f76; background: #e7f1f9; box-shadow: inset 0 0 0 1px rgba(75,125,169,.12); }
.leap-toggle { display: inline-flex; align-items: center; gap: 5px; min-height: 34px; padding: 0 9px; border: 1px solid #d9c8a9; border-radius: 8px; color: #7e6638; font-size: 11px; background: #fffaf0; }
.leap-toggle input { width: auto; min-height: 0; margin: 0; padding: 0; }
.calendar-switch small { justify-self: end; color: #718394; font-size: 10px; text-align: right; }
.current-time-button { min-height: 31px; padding: 5px 11px; border: 1px solid #94b4cf; border-radius: 7px; color: #315f86; background: #edf5fb; font-size: 11px; font-weight: 800; white-space: nowrap; }
.current-time-button:hover { border-color: #6f98bd; background: #e3eff8; }
.current-time-button:disabled { opacity: .58; cursor: wait; }
.pc-time-grid { display: grid; grid-template-columns: 94px repeat(4, minmax(0, 1fr)); gap: 5px; padding: 7px; border: 1px solid #dbe6ef; border-radius: 8px; background: #f6f9fc; }
.pc-time-field { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.pc-time-field span { color: #536579; font-size: 12px; }
.pc-time-field select { min-height: 33px; padding: 4px 6px; }
.pc-year-parts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 3px; min-width: 0; }
.pc-time-field .pc-year-parts select { width: 100%; min-width: 0; padding: 4px 2px; }
.location-picker { display: grid; grid-template-columns: minmax(88px, .78fr) minmax(112px, .94fr) auto; align-items: end; gap: 5px; padding: 7px 8px 8px; border: 0; border-top: 1px solid #dbe6ef; border-radius: 0; background: transparent; }
.location-picker .field { min-width: 0; }
.location-button { min-height: 34px; padding: 5px 10px; border: 1px solid #94b4cf; color: #315f86; background: #edf5fb; white-space: nowrap; }
.location-picker small { grid-column: 1 / -1; color: #718394; font-size: 10px; }
.location-picker small.good { color: #377050; }
.location-picker small.warning { margin: 0; color: #9a6436; }
.location-advanced { grid-column: 1 / -1; min-width: 0; margin-top: -2px; border-top: 1px solid #dbe6ef; }
.location-advanced summary { display: flex; align-items: center; justify-content: flex-end; gap: 6px; width: max-content; margin: 7px 0 0 auto; color: #376b9c; font-size: 11px; font-weight: 700; cursor: pointer; list-style: none; user-select: none; }
.location-advanced summary::-webkit-details-marker { display: none; }
.advanced-triangle { display: block; width: 10px; height: 10px; flex: 0 0 10px; background: #377fc0; clip-path: polygon(0 0, 100% 50%, 0 100%); transform: rotate(0deg); transform-origin: 50% 50%; transition: transform .18s ease; }
.location-advanced[open] .advanced-triangle { transform: rotate(90deg); }
.location-advanced-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; padding-top: 9px; }
.calculation-settings .mode-note { grid-column: 1 / -1; margin-top: 7px; font-size: 10px; }
.calibration-field small { color: #7b8792; font-size: 9px; line-height: 1.45; }

.plate-foundation { fill: #f8f8f5; stroke: #8ca5b8; stroke-width: 1.1; }
.plate-foundation-inner { fill: rgba(255,255,255,.48); stroke: #9db0bd; stroke-width: .7; }
.plate-palace-boundary { stroke: rgba(42,112,181,.74); stroke-width: .95; vector-effect: non-scaling-stroke; }
.earth-sector { fill: rgba(215,222,218,.14); stroke: none; }
.earth-sector.alt { fill: rgba(255,255,255,.38); }
.earth-ring-boundary { fill: none; stroke: #7b9fc4; stroke-width: .8; vector-effect: non-scaling-stroke; }
.earth-divider { stroke: #7798b6; stroke-width: .8; stroke-dasharray: 3 3; vector-effect: non-scaling-stroke; }
.earth-label { fill: #264a70; font: 700 15.5px "STSong", "SimSun", serif; }
.earth-label.cardinal { fill: #c85a4a; font-weight: 800; }
.dynamic-mountain-sector { fill: rgba(230, 236, 241, .20); stroke: #829eb9; stroke-width: .55; vector-effect: non-scaling-stroke; }
.dynamic-mountain-sector.alt { fill: rgba(255, 255, 255, .18); }
.dynamic-mountain-label { fill: #42647f; font: 700 15.5px "STSong", "SimSun", serif; }
.dynamic-mountain-label.anchor { fill: #b06a1e; font-weight: 800; }
.dynamic-mountain-label.cardinal { fill: #c85a4a; font-weight: 800; }
.dynamic-mountain-scale-baseline { fill: none; stroke: #537b9e; stroke-width: 1; vector-effect: non-scaling-stroke; }
.dynamic-mountain-degree-tick { stroke: #537b9e; vector-effect: non-scaling-stroke; }
.dynamic-mountain-degree-tick.minor { stroke-width: .72; opacity: .78; }
.dynamic-mountain-degree-tick.mid { stroke-width: 1; opacity: .9; }
.dynamic-mountain-degree-tick.major { stroke: #315d82; stroke-width: 1.45; opacity: 1; }
.dipper-mountain-hit { pointer-events: none; }
.dipper-mountain-hit-line { stroke: #c18a27; stroke-width: 7; stroke-linecap: butt; vector-effect: non-scaling-stroke; }
.dipper-mountain-hit.sitting-hit .dipper-mountain-hit-line { stroke: #ad681d; stroke-width: 8; }
.hexagram-sector { fill: rgba(227,233,235,.22); stroke: #9ab0c8; stroke-width: .55; }
.hexagram-label { fill: #526880; font: 700 9px "STSong", "SimSun", serif; }
.heaven-sector { fill: rgba(211,225,237,.18); stroke: #7896b3; stroke-width: .75; }
.heaven-sector.alt { fill: rgba(255,255,255,.18); }
.heaven-sector.mansion-attribute-sector { fill: var(--mansion-fill); fill-opacity: .68; }
.heaven-label { fill: #253e59; font: 700 14px "STSong", "SimSun", serif; }
.degree-ring { fill: none; stroke: #52779b; stroke-width: 1; }
.degree-tick { stroke: #456b91; stroke-width: .9; vector-effect: non-scaling-stroke; }
.degree-tick.mid { stroke-width: 1.25; }
.degree-tick.major { stroke-width: 1.7; }
.degree-label { fill: #647c95; font: 600 7.5px "Microsoft YaHei", sans-serif; }
.horizon-degree-ring { fill: none; stroke: #7598bc; stroke-width: .8; }
.horizon-degree-tick { stroke: #779ac0; stroke-width: .55; vector-effect: non-scaling-stroke; }
.horizon-degree-tick.mid { stroke-width: .8; }
.horizon-degree-tick.major { stroke-width: 1.15; }
.horizon-degree-label { fill: #111; font: 700 12px "SimHei", "Microsoft YaHei", sans-serif; }
.life-degree-marker-box { fill: #d9342b; stroke: none; }
.static-body-band { fill: rgba(225,232,237,.12); stroke: #94abc1; stroke-width: .8; }
.zodiac-sector { fill: rgba(228,232,230,.20); stroke: #8da8c4; stroke-width: .75; }
.zodiac-sector.alt { fill: rgba(255,255,255,.18); }
.lodge-label { fill: #7e6e50; }
.zodiac-label { font: 700 15.5px "STHeiti", "SimHei", "Microsoft YaHei", sans-serif; }
.zodiac-label.trine-blue { fill: #2865a5; }
.zodiac-label.trine-red { fill: #b8493f; }
.zodiac-label.trine-green { fill: #34805b; }
.zodiac-label.trine-yellow { fill: #aa7a18; }
.changsheng-label { fill: #8a692a; font: 800 13px "STHeiti", "SimHei", "Microsoft YaHei", sans-serif; pointer-events: none; }
.changsheng-character { paint-order: stroke fill; stroke: rgba(255,255,255,.82); stroke-width: 1px; }
.life-house-sector { fill: rgba(212,226,237,.22); stroke: #8ca8c0; stroke-width: .65; }
.life-house-sector.alt { fill: rgba(255,255,255,.20); }
.life-house-sector.active {
  fill: transparent;
  stroke: #b33b32;
  stroke-width: 2.25;
  filter: drop-shadow(0 0 2px rgba(179, 59, 50, .24));
}
.life-house-label { fill: #385c79; font: 700 17px "STSong", "SimSun", serif; }
.life-house-label.active {
  fill: #b33b32;
  font-size: 18px;
  font-weight: 900;
  paint-order: normal;
  stroke: none;
}
.shensha-sector { fill: transparent; stroke: rgba(116,137,153,.42); stroke-width: .38; }
.shensha-sector.alt { fill: transparent; }
.shensha-label { fill: #386b96; font: 700 var(--shensha-font-size, 15px) "STHeiti", "SimHei", "Microsoft YaHei", sans-serif; pointer-events: none; }
.shensha-label.ordinary { fill: #386b96; }
.shensha-label.principal,
.shensha-label.caution,
.shensha-label.standard-blue { fill: #386b96; font-weight: 800; }
.shensha-label.lumagui { fill: #287153; font-weight: 800; }
.shensha-character { paint-order: stroke fill; stroke: rgba(255,255,255,.62); stroke-width: .45px; }
.body-guide { stroke-width: .65; }
.body-guide.physical { stroke: #7ea4c7; }
.body-guide.virtual { stroke: #a98ab4; }
.body-marker { stroke: #fff; stroke-width: 1.5; }
.body-marker.physical { fill: #3975ad; }.body-marker.virtual { fill: #875598; }
.body-name { font: 700 13px "Microsoft YaHei", sans-serif; }
.body-name.horizon { font-size: 10px; }
.body-name.static { font-size: 11px; }
.body-name.physical { fill: #225785; }.body-name.virtual { fill: #744184; }
.active-body-band { fill: rgba(214,225,234,.10); stroke: #94abc1; stroke-width: .8; }
.active-body-guide { fill: none; stroke-width: .9; vector-effect: non-scaling-stroke; }
.active-body-guide.physical { stroke: #8aa9c4; }
.active-body-guide.virtual { stroke: #aa8ab4; }
.active-body-glyph { font: 700 17.5px "STHeiti", "SimHei", "Microsoft YaHei", sans-serif; }
.active-body-glyph[data-tooltip] { cursor: help; paint-order: stroke fill; stroke: rgba(255,255,255,.72); stroke-width: 1.4px; }
.active-body-glyph[data-tooltip]:hover, .active-body-glyph[data-tooltip]:focus { stroke: rgba(255,248,207,.96); stroke-width: 2.4px; outline: none; }
.active-body-glyph.physical { fill: #225785; }.active-body-glyph.virtual { fill: #744184; }
.active-body-degree { font: 600 8.25px "Microsoft YaHei", sans-serif; }
.active-body-degree.physical { fill: #5f7690; }.active-body-degree.virtual { fill: #86688f; }
.static-body-guide { fill: none; stroke-width: .9; vector-effect: non-scaling-stroke; }
.static-body-guide.physical { stroke: #8aa9c4; }
.static-body-guide.virtual { stroke: #aa8ab4; }
.static-body-glyph { font: 700 18px "STHeiti", "SimHei", "Microsoft YaHei", sans-serif; }
.static-body-glyph.physical { fill: #225785; }.static-body-glyph.virtual { fill: #744184; }
.static-body-degree { font: 600 8.5px "Microsoft YaHei", sans-serif; }
.static-body-degree.physical { fill: #5f7690; }.static-body-degree.virtual { fill: #86688f; }
.base-body-table td span, .base-body-table td small { display: block; white-space: nowrap; }
.base-body-table td small { margin-top: 2px; color: #718598; font-size: 9px; }
.dipper-guide { stroke-width: 1; stroke-dasharray: 2 2; }
.dipper-guide.static { stroke: #a57b2d; }.dipper-guide.dynamic { stroke: #3a75a8; }
.dipper-marker { stroke: #fff; stroke-width: 1.2; }
.dipper-marker.static { fill: #a57b2d; }.dipper-marker.dynamic { fill: #3a75a8; }
.dipper-label, .middle-star-label { font: 700 8px "Microsoft YaHei", sans-serif; }
.dipper-label.static { fill: #8a6826; }.dipper-label.dynamic { fill: #2f6798; }
.middle-star-marker { fill: #875598; stroke: #fff; stroke-width: 1; }
.middle-star-label { fill: #744184; }
.center-seal { fill: none; stroke: #789abc; stroke-width: 1.4; }
.center-axis-pointer { stroke: var(--red); stroke-width: 1.4; stroke-dasharray: 1.5 3.5; stroke-linecap: round; vector-effect: non-scaling-stroke; }
.center-axis.action_direction .center-axis-pointer, .center-axis.optional_direction .center-axis-pointer { stroke: #3478a7; }
.center-axis.action_direction .center-axis-arrowhead, .center-axis.optional_direction .center-axis-arrowhead { fill: #3478a7; }
.center-axis-mountain-cap { stroke: var(--red); stroke-width: 1.8; stroke-linecap: round; vector-effect: non-scaling-stroke; }
.center-axis-arrowhead { fill: var(--red); stroke: none; }
.center-mountain { fill: #294c70; font: 700 11px "STKaiti", "KaiTi", serif; letter-spacing: .08em; }
.solar-term-sector { fill: transparent; stroke: rgba(103,139,169,.64); stroke-width: .55; vector-effect: non-scaling-stroke; }
.solar-term-sector.active { fill: rgba(202, 165, 74, .10); stroke: #b58a34; stroke-width: .85; }
.solar-term-label { fill: #41627e; font: 700 10.5px "STSong", "SimSun", serif; }
.solar-term-label.active { fill: #9a6d19; font-size: 10.5px; }
.solar-term-label.season-node, .solar-term-label.season-node.active { fill: #b1332f; }
.dipper-constellation { pointer-events: none; }
.dipper-constellation-line { stroke: rgba(76, 132, 182, .88); stroke-width: 1.15; stroke-linecap: round; vector-effect: non-scaling-stroke; }
.dipper-star-halo { opacity: .88; }
.dipper-star-core { fill: #fffdf0; stroke: #eaf6ff; stroke-width: .55; }
.dipper-star-spark { stroke: rgba(255, 255, 255, .9); stroke-width: .65; stroke-linecap: round; vector-effect: non-scaling-stroke; }
.dipper-handle-direction { stroke: #b9913f; stroke-width: .9; stroke-dasharray: 2 2.5; stroke-linecap: round; vector-effect: non-scaling-stroke; }
.dipper-term-ray { stroke: rgba(166, 119, 28, .76); stroke-width: 1.2; stroke-dasharray: 2.5 3.2; stroke-linecap: round; vector-effect: non-scaling-stroke; }
.dipper-handle-arrowhead { fill: #b9913f; stroke: none; }
.dipper-handle-label { fill: #78612c; font: 700 6.5px "Microsoft YaHei", sans-serif; }
.plate-corner-readout rect { fill: rgba(243,239,228,.90); stroke: rgba(126,151,173,.45); stroke-width: .6; }
.plate-corner-readout text { fill: #607186; font: 600 8.5px "Microsoft YaHei", sans-serif; }

#doubleDisk .solar-term-ring, #doubleDisk .earth-disk, #doubleDisk .hexagram-disk,
#doubleDisk .heaven-disk, #doubleDisk .degree-scale, #doubleDisk .zodiac-palace-ring,
#doubleDisk .election-palace-rings, #doubleDisk .shensha-ring, #doubleDisk .hexagram-disk,
#doubleDisk .active-body-ring, #doubleDisk .static-body-ring, #doubleDisk .dipper-markers,
#doubleDisk .dipper-constellation, #doubleDisk .center-axis, #doubleDisk .changsheng-ring { transition: opacity .18s ease; }
#doubleDisk.hide-solar .solar-term-ring { opacity: .08; pointer-events: none; }
#doubleDisk.hide-earth .earth-disk, #doubleDisk.hide-earth .zodiac-palace-ring { opacity: .08; pointer-events: none; }
#doubleDisk.hide-hexagram .hexagram-disk { opacity: .05; pointer-events: none; }
#doubleDisk.hide-mansion .heaven-disk, #doubleDisk.hide-mansion .degree-scale { opacity: .08; pointer-events: none; }
#doubleDisk.hide-bodies .active-body-ring, #doubleDisk.hide-bodies .static-body-ring { opacity: .06; pointer-events: none; }
#doubleDisk.hide-palaces .election-palace-rings { opacity: .05; pointer-events: none; }
#doubleDisk.hide-dynamicMountains .dynamic-mountain-ring { opacity: .05; pointer-events: none; }
#doubleDisk.hide-shensha .shensha-ring { opacity: .04; pointer-events: none; }
#doubleDisk.hide-changsheng .changsheng-ring { opacity: .04; pointer-events: none; }
#doubleDisk.hide-dipper .dipper-markers, #doubleDisk.hide-dipper .dipper-constellation { opacity: .04; pointer-events: none; }

@media (max-width: 1180px) {
  .condition-editor { width: min(680px, calc(100vw - 28px)); }
  .condition-editor .workflow-form { grid-template-columns: minmax(270px, .9fr) minmax(320px, 1.1fr); gap: 9px; }
  .condition-editor:not(.settings-only) .location-picker { grid-template-columns: minmax(0, 1fr) minmax(0, 1.08fr); }
  .condition-editor:not(.settings-only) .location-button { grid-column: 1 / -1; justify-self: end; }
  .simple-life-luminaries { grid-template-columns: 1fr 1fr; }
  .simple-life-luminaries > strong, .simple-life-luminaries > em { grid-column: 1 / -1; }
  .simple-life-roles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .simple-life-roles article:nth-child(2n) { border-right: 0; }
}
@media (max-width: 760px) {
  .condition-editor { width: calc(100vw - 18px); }
  .condition-modal-head { grid-template-columns: 1fr max-content; }
  .condition-modal-head > div:first-child { display: none; }
  .condition-editor .workflow-form { grid-template-columns: 1fr; }
  .condition-editor #advancedSettings { grid-column: 1; }
}
#doubleDisk.hide-axis .center-axis { opacity: .08; pointer-events: none; }

.menu-button:disabled { cursor: default; opacity: .42; }
.print-report { display: none; }

.methodology-panel > summary { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.methodology-panel > summary small { color: #71869a; font-size: 10px; font-weight: 600; }
.methodology-gate { display: grid; gap: 3px; margin-bottom: 9px; padding: 7px 2px 9px 9px; border: 0; border-bottom: 1px solid #dce4e9; border-left: 3px solid #6d8aa1; background: transparent; }
.methodology-gate.ready { border-left-color: #3d8a67; }
.methodology-gate.blocked { border-left-color: #b34a40; }
.methodology-gate strong { color: #284a66; font-size: 13px; }
.methodology-gate span { color: #4f687c; font-size: 11px; }
.methodology-gate small { color: #778894; line-height: 1.45; }
.methodology-source-review { margin-bottom: 6px; border: 0; border-bottom: 1px solid #d5dfe7; background: transparent; }
.methodology-source-review > summary { padding: 8px 1px; color: #49657d; cursor: pointer; font-size: 11px; font-weight: 700; }
.methodology-source-review > div { display: grid; gap: 0; padding: 0 1px 8px; }
.methodology-source-review article { padding: 7px 2px 7px 8px; border-bottom: 1px solid #e4eaee; border-left: 2px solid #b58a34; background: transparent; }
.methodology-source-review article.methodology-conflict { border-left-color: #b34a40; }
.methodology-source-review b { color: #6f5a2d; font-size: 11px; }
.methodology-source-review p { margin: 3px 0; color: #42596c; font-size: 11px; line-height: 1.5; }
.methodology-source-review small { color: #7b8995; line-height: 1.4; }
.methodology-sections { display: grid; gap: 0; }
.methodology-section { overflow: visible; border: 0; border-bottom: 1px solid #cfdae3; background: transparent; }
.methodology-section > summary { display: grid; grid-template-columns: 24px 1fr auto; align-items: center; gap: 7px; padding: 10px 1px; cursor: pointer; background: transparent; }
.methodology-section > summary > b { color: #416f96; font-size: 10px; }
.methodology-section > summary > span { color: #284e6d; font-size: 12px; font-weight: 800; }
.methodology-section > summary > small { color: #758898; font-size: 9px; white-space: nowrap; }
.methodology-section > div { display: grid; gap: 0; padding: 0 1px 7px 25px; }
.methodology-evidence { padding: 8px 1px; border: 0; border-bottom: 1px solid #e4e9ed; background: transparent; }
.methodology-evidence:last-child { border-bottom: 0; }
.methodology-evidence.doctrine-course { box-shadow: inset 2px 0 #b58a34; padding-left: 8px; }
.methodology-evidence.doctrine-shared { box-shadow: inset 2px 0 #4d9272; padding-left: 8px; }
.methodology-evidence header { display: flex; align-items: center; flex-wrap: wrap; gap: 5px; }
.methodology-evidence header b { flex: 1 1 120px; color: #294d69; font-size: 12px; }
.methodology-evidence header span, .methodology-evidence header i, .methodology-score { padding-left: 5px; border-left: 1px solid #d4dee5; font-size: 8.5px; font-style: normal; font-weight: 700; }
.methodology-evidence header i { color: #5f7485; }
.methodology-evidence header .state-成立, .methodology-evidence header .state-事实 { color: #2f7354; }
.methodology-evidence header .state-不成立 { color: #9e4d42; }
.methodology-evidence header .state-待校, .methodology-evidence header .state-不适用 { color: #876a2c; }
.methodology-score.good { color: #2f7354; }
.methodology-score.bad { color: #a44338; }
.methodology-evidence p { margin: 5px 0; color: #40586a; font-size: 11px; line-height: 1.55; }
.methodology-evidence cite { display: block; color: #83919b; font-size: 9px; font-style: normal; line-height: 1.4; }

@page { size: A4 landscape; margin: 7mm; }
@media print {
  html { zoom: 1 !important; }
  html, body { width: auto; min-width: 0 !important; height: auto; margin: 0; background: #fff !important; }
  body > .app-shell, body > .field-tooltip { display: none !important; }
  .print-report { display: block !important; color: #173d5b; font-family: "Microsoft YaHei", sans-serif; }
  .print-sheet { display: grid; grid-template-columns: 52% 48%; gap: 5mm; height: 192mm; overflow: hidden; }
  .print-chart-column, .print-results-column { min-width: 0; min-height: 0; }
  .print-chart-column { position: relative; display: grid; grid-template-rows: auto 1fr auto; border: .3mm solid #a9bfd0; border-radius: 2mm; overflow: hidden; }
  .print-chart-column > header { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 1mm 4mm; padding: 3mm 4mm 1mm; }
  .print-chart-column h1 { grid-column: 1; margin: 0; font-size: 15pt; }
  .print-chart-column header p { grid-column: 1; margin: 0; font-size: 8.5pt; }
  .print-chart-column header strong { grid-column: 2; grid-row: 1 / 3; font-size: 12pt; letter-spacing: 2mm; white-space: nowrap; }
  .print-disk { display: grid; place-items: center; min-height: 0; padding: 0 2mm; }
  #printDisk { display: block; width: 100%; height: 100%; max-height: 153mm; }
  .print-chart-column > footer { display: flex; justify-content: space-between; gap: 3mm; padding: 1.5mm 4mm 3mm; font-size: 8.5pt; font-weight: 700; }
  .print-results-column { display: grid; align-content: start; gap: 2.2mm; }
  .print-results-column article { break-inside: avoid; }
  .print-results-column h2 { margin: 0 0 1.2mm; color: #244f70; font-size: 9.5pt; }
  .print-top-facts { display: grid; grid-template-columns: 1fr 1fr; gap: 2.5mm; }
  .print-top-facts article, .print-block { padding: 2mm 2.5mm; border: .25mm solid #c7d5df; border-radius: 1.5mm; }
  .print-top-facts dl { display: grid; grid-template-columns: 12mm 1fr; gap: .7mm 1mm; margin: 0; font-size: 7.5pt; line-height: 1.3; }
  .print-top-facts dt { color: #6d7f8c; font-weight: 700; }
  .print-top-facts dd { margin: 0; font-weight: 700; }
  .print-selected-ruler { color: #bd352e; font-size: 9pt; }
  .print-relationships { display: grid; grid-template-columns: repeat(5, 1fr); gap: 1mm; }
  .print-relationships div { display: grid; grid-template-columns: auto 1fr; gap: 1mm; padding: 1mm 1.5mm; background: #f3f7f9; font-size: 7.5pt; }
  .print-relationships b { color: #2d7151; font-size: 9pt; }
  .print-results-column table { width: 100%; border-collapse: collapse; table-layout: fixed; font-size: 7pt; }
  .print-results-column th { padding: .8mm 1mm; color: #607685; background: #eef3f6; text-align: left; }
  .print-results-column td { padding: .75mm 1mm; border-bottom: .2mm solid #dce5eb; line-height: 1.25; }
  .print-bodies table { font-size: 6.8pt; }
  .print-bodies tbody { columns: 1; }
}

@media (max-width: 1380px) {
  .workspace { grid-template-columns: minmax(0, 1fr) clamp(330px, 34vw, 380px); }
  .app-menu-bar .engine-badge { max-width: 170px; }
}

@media (display-mode: window-controls-overlay), (display-mode: standalone) {
  .app-shell { width: 100%; height: 100dvh; margin: 0; border: 0; border-radius: 0; }
}
