.armory-link { flex-shrink:0;min-height:36px;padding:7px 12px;font-size:12px;letter-spacing:.6px; }
.armory-rule { display:inline;padding:2px 0;border:0;border-bottom:1px dotted #80c9dd;background:none;color:inherit;font:inherit;text-align:inherit;cursor:help; }
.armory-rule:hover,.armory-rule:focus-visible { color:#a7eeff;border-bottom-color:currentColor; }
.armory-rule:focus-visible { outline:2px solid #80c9dd;outline-offset:3px; }
.armory-rule-tooltip { position:fixed;inset:auto;margin:0;box-sizing:border-box;width:min(360px,calc(100vw - 16px));max-height:min(360px,calc(100dvh - 16px));overflow:auto;overscroll-behavior:contain;padding:14px;border:1px solid #568da4;border-radius:8px;background:#0b1e2e;color:#e1edf5;box-shadow:0 12px 35px #0009;z-index:10000;font-size:14px;line-height:1.6;overflow-wrap:anywhere; }
.armory-rule-tooltip[hidden] { display:none; }
.armory-rule-tooltip header small { display:block;color:#97bdcc;font-size:10px;letter-spacing:.8px; }
.armory-rule-tooltip header strong { display:block;margin-top:3px;color:#a7eeff;font-size:18px; }
.armory-rule-context { margin-top:7px;color:#c7dce8;font-size:12px; }
.armory-rule-language { margin:10px 0;color:#a0b9c8;font-size:11px; }
.armory-rule-text section+section { margin-top:14px;padding-top:12px;border-top:1px solid #345267; }
.armory-rule-text h3 { margin:0 0 5px;font-size:14px;color:#a7eeff; }
.armory-rule-text table { width:100%;border-collapse:collapse;margin-top:10px;font-size:12px; }
.armory-rule-text td,.armory-rule-text th { padding:5px;border:1px solid #345267; }
.armory-expand-row { cursor:pointer; }
.armory-table-scroll .armory-expand-row.is-open { background:#143044; }
.armory-table-scroll .armory-row-action { min-width:44px;width:44px;padding:5px 8px;vertical-align:middle; }
.armory-row-action .reference-toggle { min-width:32px;min-height:32px; }
.armory-action-heading { width:44px; }
.armory-description-row[hidden] { display:none!important; }
.armory-table-scroll .armory-description-row>td:first-child { max-width:none;padding:20px 24px;border-left:2px solid #65b3d0;background:#091824;color:#d6e6f0;font-weight:400; }
.armory-description { max-width:1100px; }
.armory-description-label { margin:0 0 14px;color:#96b8cd;font-size:11px;letter-spacing:.5px; }
.armory-description-prose { font-size:15px;line-height:1.8;overflow-wrap:anywhere;overflow-x:auto; }
.armory-description-prose h1,.armory-description-prose h2,.armory-description-prose h3,.armory-description-prose h4 { margin:16px 0 8px;font-size:16px;color:#a9ddeb; }
.armory-description-prose p:first-child { margin-top:0; }
.armory-description .armory-description-prose strong,.armory-description .armory-description-prose b { display:inline;font-size:inherit; }
.armory-description-prose table { width:100%;margin-block:12px;border-collapse:collapse;font-size:13px; }
.armory-description .armory-description-prose td,.armory-description .armory-description-prose th { position:static;min-width:0;max-width:none;padding:7px;border:1px solid #345267;background:none;color:inherit;font-weight:400; }
.armory-description .armory-description-prose th,.armory-description .armory-description-prose td:first-child { color:inherit;min-width:0;font-weight:inherit; }
.armory-description footer { margin-top:18px;padding-top:12px;border-top:1px solid #274355;color:#98b2c6;font-size:12px; }
.armory-description-content { padding:18px;border-top:1px solid #274355;background:#091824; }
.armory-description-status { margin:0;padding:10px;color:#a6bdcf; }
.armory-table-scroll tbody .armory-expand-row:nth-child(4n+3) { background:rgba(66,135,173,.07); }
.armory-table-scroll tbody .armory-expand-row:hover { background:rgba(66,135,173,.16); }
.armory-table-scroll tbody .armory-expand-row.is-open { background:#143044; }
.appendix-tabs { display:flex;gap:10px;margin-top:22px;flex-wrap:wrap; }
.appendix-tabs .active { background:#124761;border-color:var(--cyan);color:#effcff;box-shadow:inset 0 -2px var(--cyan); }
.grimoire-filters { grid-template-columns:minmax(180px,2fr) repeat(4,minmax(110px,1fr)) auto; }
.grimoire-table th { padding:14px 12px;color:#dff6ff;font-size:13px; }
.spell-name { display:flex;align-items:center;gap:12px;min-height:44px; }
.spell-name img,.spell-card img,.spell-sheet-head img { flex-shrink:0;border-radius:5px;object-fit:contain;background:#071421; }
.spell-name:hover span { text-decoration:underline;color:var(--cyan); }
.grimoire-mobile { display:none; }
.grimoire-back { margin-bottom:16px; }
.spell-sheet { padding:26px; }
.spell-sheet-head { display:flex;align-items:center;gap:20px;padding-bottom:22px; }
.spell-sheet-head h2 { margin:0;font-size:clamp(24px,3vw,34px);color:#e3f7ff;overflow-wrap:anywhere; }
.spell-sheet-head p { margin:5px 0;color:#a6c3d5; }
.spell-facts { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;margin:0;background:var(--line);border:1px solid var(--line); }
.spell-facts>div { min-width:0;padding:14px;background:#0a1b2b; }
.spell-facts dt { font-size:12px;color:#91b4ca; }
.spell-facts dd { margin:7px 0 0;color:#e2eef5;overflow-wrap:anywhere;font-size:15px; }
.spell-description { margin-top:28px;color:#dae8ef;font-size:17px;line-height:1.8;overflow-wrap:anywhere;overflow-x:auto; }
.spell-description>h3 { color:var(--gold);font-size:19px; }
.spell-description a[href] { color:var(--cyan);text-decoration:underline;text-underline-offset:3px; }
.spell-description table { width:100%;border-collapse:collapse;font-size:15px; }
.spell-description td,.spell-description th { padding:9px;border:1px solid var(--line); }
.spell-description li { margin-block:7px; }
.spell-sheet-note { margin:22px 0 0;color:#99b5c8;font-size:13px; }
@media(max-width:1200px) { .grimoire-filters { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width:820px), (max-width:1100px) and (pointer:coarse) {
  .grimoire-table { display:none; }.grimoire-mobile { display:block; }
  .spell-card { display:flex;align-items:center;gap:12px;padding:16px 12px;border-bottom:1px solid var(--line); }
  .spell-card>span:first-of-type { display:grid;gap:5px;flex:1;min-width:0; }.spell-card strong { color:#dbf2ff;overflow-wrap:anywhere; }
  .spell-card small { color:#a5c2d5;line-height:1.5; }.spell-card>span:last-child { color:var(--cyan); }
  .grimoire-filters { grid-template-columns:repeat(2,minmax(0,1fr)); }.grimoire-filters .armory-query { grid-column:1/-1; }
  .spell-sheet { padding:16px; }.spell-sheet-head { gap:12px;align-items:flex-start; }.spell-sheet-head img { width:48px;height:48px; }
  .spell-facts { grid-template-columns:repeat(2,minmax(0,1fr)); }.spell-facts>div { padding:10px; }.spell-description { font-size:16px; }
}
.armory-filters { display:grid;grid-template-columns:minmax(200px,2fr) minmax(160px,1.3fr) repeat(2,minmax(90px,.6fr)) minmax(120px,.8fr) auto;align-items:end;gap:14px;padding:20px; }
.armory-filters label { display:grid;gap:7px;min-width:0; }
.armory-filters label>span { font-size:12px;color:#a5c2d5;letter-spacing:.6px; }
.armory-filters input,.armory-filters select { width:100%;min-width:0;min-height:44px;padding:9px;border:1px solid var(--line);background:#061526;color:var(--text);font-size:14px; }
.armory-heading { display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 24px; }
.armory-heading h1 { margin:0; }
.armory-heading output { color:var(--cyan);font-size:14px;line-height:1.5; }
.armory-help,.armory-credits { font-size:14px;line-height:1.65;color:#a6bdcf; }
.armory-category { margin:14px 0;min-width:0; }
.armory-tab-panel[hidden] { display:none; }
.armory-tabs { display:flex;flex:1;align-items:stretch;min-width:0;gap:0;overflow-x:auto;padding:0; }
.armory-tabs .armory-tab { flex:0 0 auto;justify-content:space-between;gap:12px;min-height:64px;padding:10px 14px;border:0;border-right:1px solid var(--line);border-radius:0;font-size:14px;letter-spacing:.3px;white-space:nowrap;text-align:left; }
.armory-tab-label { display:grid;gap:2px; }
.armory-tabs .armory-tab-label strong { font-size:15px; }
.armory-tabs .armory-tab-label small { color:#98a6b5;font-weight:400; }
.armory-tabs .armory-tab:not(:disabled):hover,.armory-tabs .armory-tab:not(:disabled):active { transform:none; }
.armory-tabs .armory-tab:focus-visible { outline-offset:-3px; }
.armory-tabs .armory-tab[aria-selected="true"] { border-color:var(--cyan);color:#fff;background:linear-gradient(110deg,#17678c,#103754);box-shadow:inset 0 -3px var(--cyan),0 0 12px rgba(87,221,255,.15); }
.armory-tab-count { padding:2px 6px;border-radius:3px;background:rgba(0,0,0,.25);font-size:12px; }
.armory-category>header { display:flex;align-items:stretch;padding:0;border-left:3px solid var(--cyan); }
.armory-category small { display:block;color:#94b4c9;font-size:12px;letter-spacing:1px; }
.armory-category strong { display:block;font-size:17px;line-height:1.4; }.armory-category em { font-size:14px;font-style:normal;font-weight:400;color:#a4b8ca; }
.armory-category>header>b { color:var(--gold);font-size:18px; }
.armory-table-scroll { max-height:620px;overflow:auto;border-top:1px solid var(--line);scrollbar-gutter:stable; }
.armory-table-scroll table { width:100%;border-collapse:separate;border-spacing:0;font-size:14px;line-height:1.45; }
.armory-table-scroll th { position:sticky;top:0;z-index:2;background:#10283e;text-align:left;border-bottom:1px solid #38708b; }
.armory-table-scroll th button { display:flex;align-items:center;gap:10px;min-height:44px;width:100%;padding:12px;border:0;background:transparent;color:#dff6ff;text-align:left;font-size:12px;cursor:pointer;font-weight:700; }
.armory-table-scroll th button>span { color:var(--cyan); }
.armory-table-scroll td { padding:11px 12px;border-bottom:1px solid rgba(87,221,255,.12);vertical-align:top;min-width:75px;max-width:350px; }
.armory-table-scroll td:first-child { min-width:200px; }.armory-table-scroll tbody tr:nth-child(even) { background:rgba(66,135,173,.07); }
.armory-table-scroll tbody tr:hover { background:rgba(66,135,173,.16); }.armory-table-scroll td:first-child { color:#c2eaff;font-weight:600; }
.armory-table-source { padding:0 20px;font-size:12px;color:#96c8df; }.armory-credits,.armory-empty,.armory-loading { padding:20px; }.armory-credits a { color:var(--cyan);text-decoration:underline; }
@media(max-width:1200px) { .armory-filters { grid-template-columns:repeat(3,minmax(0,1fr)); }.armory-query { grid-column:span 2; }.topbar .breadcrumb { min-width:0; }.topbar .global-search { width:min(240px,22vw); }.topbar .global-search kbd { display:none; } }
@media(max-width:700px) { .armory-filters { grid-template-columns:repeat(2,minmax(0,1fr)); }.armory-filters input,.armory-filters select { font-size:16px; }.topbar { flex-wrap:wrap;height:auto;min-height:66px;padding-block:10px;gap:8px; }.topbar .breadcrumb { flex:1;overflow:hidden; }.topbar .global-search { width:36px; }.armory-link { padding:7px 9px; }.armory-table-scroll { max-height:65vh; }.armory-category>header { padding:14px 12px;gap:12px; } }
@media(max-width:700px) { .armory-category>header { padding:0;gap:0; }.armory-tabs .armory-tab { padding:10px 12px; } }

.grimoire-table th { padding:0; }.grimoire-table th button { justify-content:space-between; }.grimoire-table th button:focus-visible { outline:2px solid var(--cyan);outline-offset:-3px; }

.grimoire-filters>label[hidden] { display:none; }.armory-filters.grimoire-filters { grid-template-columns:minmax(180px,2fr) repeat(3,minmax(110px,1fr)) auto; }
@media(max-width:1200px) { .armory-filters.grimoire-filters { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media(max-width:700px) { .armory-filters.grimoire-filters { grid-template-columns:repeat(2,minmax(0,1fr)); }.grimoire-table { display:block;max-height:none; }.grimoire-table tbody { display:none; }.grimoire-table table,.grimoire-table thead { display:block; }.grimoire-table thead tr { display:flex;flex-wrap:wrap; }.grimoire-table th { position:static;flex:1; }.grimoire-table th button { padding:10px;font-size:10px; } }

@media(min-width:701px) { .grimoire-table .spell-name { min-height:20px;gap:10px;line-height:1.45; }.grimoire-table .spell-name img { width:20px;height:20px; } }

.armory-heading [data-armory-count],.armory-heading [data-spell-count] { display:none; }

.spell-expand-row { cursor:pointer; }.spell-expand-row.is-open { background:#143044; }
.spell-expand-button { width:100%;border:0;background:none;padding:0;color:#c2eaff;text-align:left;font:inherit;font-weight:600;cursor:pointer; }
.spell-expand-button i { font-style:normal;margin-left:auto;padding-left:8px;color:var(--cyan); }
.spell-expand-button:focus-visible,.spell-mobile-detail>summary:focus-visible { outline:2px solid var(--cyan);outline-offset:3px; }
.grimoire-table .spell-inline-row[hidden] { display:none!important; }
.grimoire-table .spell-inline-row>td { padding:22px 26px;background:#091824;border-left:2px solid #65b3d0;color:#d6e6f0;font-weight:400;max-width:none; }
.spell-inline-sheet { min-width:0;max-width:1100px; }
.spell-inline-facts { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:0;gap:0 24px; }
.spell-inline-facts>div { min-width:0;padding:12px 0;border-bottom:1px solid #274355; }
.spell-inline-facts dt { font-size:11px;letter-spacing:.5px;color:#96b8cd; }
.spell-inline-facts dd { margin:5px 0 0;font-size:14px;line-height:1.65;color:#e1edf5;overflow-wrap:anywhere; }
.spell-inline-sheet .spell-description { margin-top:24px;font-size:16px;line-height:1.85;font-weight:400; }
.spell-inline-sheet .spell-description h3 { font-size:16px;color:#a9ddeb; }
.spell-inline-sheet .spell-description p:last-child { margin-bottom:0; }
.spell-inline-sheet .spell-description th { position:static; }
.spell-inline-source { margin-top:24px;padding-top:14px;border-top:1px solid #274355;color:#98b2c6;font-size:12px;line-height:1.7; }
.spell-inline-source small { display:block;margin-top:5px;font-size:11px; }
.spell-mobile-detail { background:#091824; }.spell-mobile-detail>summary { cursor:pointer;list-style:none; }.spell-mobile-detail>summary::-webkit-details-marker { display:none; }
.spell-mobile-marker::before { content:'+'; }.spell-mobile-detail[open] .spell-mobile-marker::before { content:'−'; }
.spell-mobile-detail[open]>summary { background:#143044; }
.spell-mobile-detail>[data-spell-content] { padding:18px;border-left:2px solid #65b3d0; }
@media(max-width:1000px) { .spell-inline-facts { grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px; } }
@media(max-width:440px) { .spell-inline-facts { grid-template-columns:1fr; }.spell-mobile-detail>[data-spell-content] { padding:16px; } }

.reference-toggle { display:inline-grid;place-items:center;width:26px;min-height:20px;padding:0;border:0;background:transparent;color:var(--cyan);font-family:inherit;font-size:20px;line-height:1;cursor:pointer; }.reference-toggle i { font-style:normal; }.reference-toggle:hover { color:#e5faff; }.reference-toggle:focus-visible { outline:2px solid var(--cyan);outline-offset:2px; }.spell-row-action { width:1%;text-align:right;white-space:nowrap; }
@media(max-width:700px) { .grimoire-table .spell-action-heading { display:none; }.reference-toggle { width:40px;min-height:40px; } }

.grimoire-table .spell-row-action { min-width:26px;width:26px; }

/* Compact expanded spell reference; keep every rule visible. */
.grimoire-table .spell-inline-row>td { padding:16px 20px;background:#091824;border-left:2px solid #65b3d0; }
.spell-inline-sheet { max-width:none; }
.spell-inline-facts { grid-template-columns:repeat(auto-fit,minmax(175px,1fr));gap:8px 16px;padding:0 0 12px;border-bottom:1px solid #274355; }
.spell-inline-facts>div { padding:0 0 0 10px;border-bottom:0;border-left:1px solid #315468; }
.spell-inline-facts dt { font-size:10px;letter-spacing:.4px;color:#91b8cb; }
.spell-inline-facts dd { margin-top:3px;font-size:13px;line-height:1.5; }
.spell-inline-tags { display:flex;flex-wrap:wrap;gap:6px 8px;margin:10px 0 0; }
.spell-inline-tags>div { display:flex;align-items:baseline;flex-wrap:wrap;gap:5px;max-width:100%;padding:4px 8px;border:1px solid #284151;border-radius:4px;background:#0c2030;line-height:1.45; }
.spell-inline-tags dt { font-size:11px;color:#94adbf; }.spell-inline-tags dt::after { content:' :'; }
.spell-inline-tags dd { margin:0;font-size:12px;color:#d8e8f2;overflow-wrap:anywhere; }
.spell-inline-sheet .spell-description { margin-top:14px;font-size:15px;line-height:1.7; }
.spell-inline-sheet .spell-description>h3 { margin:0 0 7px;font-size:12px;letter-spacing:.5px;color:#a9ddeb; }
.spell-inline-sheet .spell-description p { margin:0 0 9px; }
.spell-inline-sheet .spell-description ul,.spell-inline-sheet .spell-description ol { margin:8px 0;padding-left:22px; }
.spell-inline-source { display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:4px 20px;height:auto;min-height:0;margin:14px 0 0;padding:9px 0 0;font-size:11px;line-height:1.5;letter-spacing:0; }
.spell-inline-source small { display:inline;margin:0;font-size:10px; }
.spell-mobile-detail>[data-spell-content] { padding:14px; }
@media(max-width:700px) { .spell-inline-facts { grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px; }.spell-inline-source { display:block; }.spell-inline-source small { display:block;margin-top:4px; } }
@media(max-width:380px) { .spell-inline-facts { grid-template-columns:1fr; } }
