/* Shared paper and cycle accents; printed tree coordinates stay in their canvas. */
body { --accent-2: var(--accent-strong); --surface: var(--bg); background: var(--bg); line-height: 1.6; }
.page-heading { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 16px 40px 14px; }
.page-heading h1 { display: flex; align-items: center; gap: 12px; margin: 0; font: 600 32px/1.3 "Songti SC", "Noto Serif CJK SC", SimSun, Georgia, serif; letter-spacing: .06em; color: var(--accent-strong); }
.page-heading .cycle-symbol { width: 30px; height: 34px; object-fit: contain; }
.topbar { height: auto; min-height: 56px; display: flex; flex-wrap: nowrap; align-items: center; justify-content: flex-start; gap: 16px; margin: 0 40px; padding: 12px 0 16px; border-top: 1px solid var(--line); background: var(--bg); position: static; overflow-x: auto; }
.topbar .campaign-save-status { flex-shrink: 0; min-width: 0; text-align: left; }
body[data-theme-module="technology"] .topbar { background: var(--bg); }
body[data-theme-module="technology"] :is(.tab, .tool-check) { background: transparent; }
body[data-theme-module="technology"] .tree-wrap { background: #fff; }
body[data-theme-module="technology"] .tab.active { background: transparent; color: var(--accent-strong); border-color: var(--accent); }
.tabs { display: flex; flex: 0 0 auto; flex-wrap: nowrap; width: auto; gap: 8px; }
.tab { border: 0; border-bottom: 2px solid transparent; border-radius: 0; padding: 8px 0; background: transparent; color: var(--muted); font-size: 13px; white-space: nowrap; }
.tab.active { background: transparent; color: var(--accent-strong); border-color: var(--accent); }
.tools { display: flex; flex: 0 0 auto; flex-wrap: nowrap; justify-content: flex-start; width: auto; margin-left: auto; gap: 6px; font-size: 12px; }
.tools > * { flex-shrink: 0; }
.tools :is(.tool-btn, .cycle-select, .search) { padding: 7px 8px; }
.tools :is(.tool-btn, .cycle-select, .account-select, .search, #cycleBadge) { height: 36px; }
.tools #cycleBadge { justify-content: center; padding: 7px 8px; border: 1px solid transparent; font: inherit; font-weight: 700; cursor: pointer; }
.tools #cycleBadge:hover { background: var(--accent-strong); color: #fff; }
#cycleMenu { position: fixed; inset: auto; margin: 0; width: 140px; padding: 4px; border: 1px solid var(--line); background: var(--panel); color: var(--ink); }
#cycleMenu button { display: block; width: 100%; padding: 9px 12px; border: 0; border-radius: 0; background: transparent; color: inherit; text-align: left; font: inherit; cursor: pointer; }
#cycleMenu button:hover, #cycleMenu button[aria-pressed="true"] { background: var(--accent-soft); color: var(--accent-strong); }
.tools .tool-check { font-size: 12px; padding: 7px 0; }
.tools .search { margin: 0; width: 120px; }
.tools #count { white-space: nowrap; }
body :is(.tool-btn, .search, .cycle-select, .account-select, .modal-btn, .gear-resource-btn) { border-radius: 0; background: var(--panel); color: var(--ink); border-color: var(--line); }
.tool-btn.active, .tool-btn.return-main, .modal-btn.primary { background: var(--accent-strong); color: #fff; border-color: var(--accent-strong); }
.tool-btn.return-main:hover, .modal-btn.primary:hover { background: var(--accent); color: #fff; }
.page-heading .return-main { min-height: 38px; padding: 8px 16px; }
.tool-check { border: 0; background: transparent; border-radius: 0; padding: 7px 4px; color: var(--muted); }
.tool-check input, .gear-filter-option input { accent-color: var(--accent); }
.badge, .tag, .category-pill, .gear-item-titan-label, .gear-cost-chip { border-radius: 0; }
.badge { background: var(--accent-soft); color: var(--accent-strong); }
.viewport { padding: 24px 40px 40px; }
.tree-wrap { border: 0; box-shadow: none; background: #fff; }
.unlocked-column { border: 0; border-top: 1px solid var(--line); border-radius: 0; padding: 14px 0 22px; background: transparent; }
.unlocked-column > summary, .gear-group-name, .gear-resource-title, .card-name, .unlocked-modal-title { font-family: "Songti SC", SimSun, Georgia, serif; color: var(--accent-strong); }
.unlocked-column > summary { font-size: 20px; padding-bottom: 14px; }
.unlocked-item, .unlocked-thumb, .unlocked-thumb-img, .unlocked-thumb-rotated, .unlocked-thumb-missing { border-radius: 0; box-shadow: none; }
.unlocked-thumb-missing, .card-image-missing { background: var(--panel); border-color: var(--line); }
.unlocked-item:hover { color: var(--accent-strong); }
.gear-page { height: auto; min-height: 0; width: min(1400px, 100%); }
.gear-filter-bar { background: transparent; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; padding: 0 0 14px; gap: 12px 24px; }
.gear-content { overflow: visible; }
.gear-resource-sidebar { position: sticky; top: 20px; max-height: calc(100dvh - 40px); border-radius: 0; background: var(--panel); border-color: var(--line); padding: 18px; }
.gear-resource-title { font-size: 20px; }
.gear-resource-list { gap: 0; }
.gear-resource-row { border-radius: 0; background: transparent; border-bottom: 1px solid var(--line); padding: 10px 0; }
.gear-resource-value { color: var(--accent-strong); }
.gear-group { border: 0; border-radius: 0; background: transparent; margin-bottom: 20px; }
.gear-group-header { padding: 12px 14px; border-left: 3px solid var(--accent); border-bottom: 1px solid var(--line); background: var(--accent-soft); margin-bottom: 18px; }
.gear-group-label { flex-shrink: 0; padding-right: 10px; border-right: 1px solid var(--line); color: var(--accent); font-size: 12px; font-weight: 700; }
.gear-group-name, button.gear-group-name { font: 600 20px/1.4 "Songti SC", SimSun, Georgia, serif; color: var(--accent-strong); }
button.gear-group-name:hover { color: var(--accent); }
.gear-group-header:hover { background: var(--accent-soft); }
.gear-items { padding: 0 0 16px; gap: 18px; }
.gear-item { border: 0; background: transparent; border-radius: 0; padding: 14px; }
.gear-item:hover { background: transparent; }
.gear-card-thumb { border: 0; border-radius: 0; background: transparent; }
.gear-card-thumb img { background: transparent; }
.gear-card-thumb.empty .empty-tag { border-radius: 0; }
.gear-resource-icon { background: transparent; border: 0; border-radius: 0; }
.gear-craft-btn { border-radius: 0; background: var(--accent-soft); border-color: var(--line); color: var(--accent-strong); min-height: 34px; }
.gear-craft-btn:hover:not(:disabled) { background: var(--accent-strong); border-color: var(--accent-strong); color: #fff; }
.gear-cost-chip { background: var(--bg); }
.unlocked-modal, .modal-card-img, .modal-card-crop, .modal-card-rotated, .card-preview, .card-preview-img, .card-preview-rotated, .card-image-missing, .preview-frame, .gear-image-modal-content img { border-radius: 0; box-shadow: none; }
.unlocked-modal { background: var(--panel); border-color: var(--line); overflow: auto; }
.unlocked-modal-panel, .unlocked-modal-image, .modal-tech-column, .preview-frame { background: var(--panel); border-color: var(--line); }
.modal-tech-column { border: 0; border-top: 1px solid var(--line); border-radius: 0; }
.modal-tech-item, .modal-card-list { border-radius: 0; }
button.modal-tech-item:hover { box-shadow: none; }
.modal-backdrop { background: rgb(36 33 29 / 45%); }
:is(button, input, select, summary):focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
@media (max-width: 980px) {
  .page-heading { padding: 14px 20px 12px; }
  .topbar { margin: 0 20px; padding: 10px 0 14px; }
  .viewport { padding: 20px; }
  .gear-resource-sidebar { position: static; max-height: none; }
}
@media (max-width: 600px) {
  .page-heading { flex-wrap: wrap; gap: 14px; }
  .page-heading h1 { font-size: 28px; }
  .page-heading .cycle-symbol { width: 28px; height: 32px; }
  .page-heading .return-main { margin-left: auto; font-size: 13px; }
  .unlocked-list, .unlocked-list.mixed { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .unlocked-list.big { grid-template-columns: minmax(0, 1fr); }
  .unlocked-page { --unlocked-card-short-edge: 128px; }
}
