/* Compendium sections */
.compendium-tabs{display:inline-flex;gap:4px;margin-top:24px;padding:4px;border:1px solid var(--line);border-radius:var(--radius)}
.compendium-tabs button{border:0;background:transparent;color:var(--muted);font:600 15px var(--sans);padding:9px 16px;border-radius:var(--radius);cursor:pointer}
.compendium-tabs button[aria-selected=true]{background:color-mix(in srgb,var(--vermilion) 12%,transparent);color:var(--ink);box-shadow:inset 0 -2px 0 var(--lime)}
.compendium-tabs button:focus-visible{outline:2px solid var(--lime);outline-offset:2px}
/* Picking for an encounter shows only Creatures and Characters; the reference Compendium hides Characters. */
#compendium-view.picking [data-compendium-tab]:not([data-compendium-tab=creatures],[data-compendium-tab=characters]),#compendium-view:not(.picking) [data-compendium-tab=characters]{display:none}
.spell-check{display:flex!important;align-items:center;gap:8px!important;align-self:end;padding-bottom:10px}
.spell-check input{width:auto!important}

/* Spell text, shared by the compendium and the character sheet */
.spell-meta{font:500 11.5px var(--mono);letter-spacing:.12em;font-variant-caps:all-small-caps;color:var(--violet);margin:0 0 12px}
.spell-meta b{color:var(--gold);font-weight:500}
.spell-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0 0 14px}
.spell-facts div{border:1px solid var(--line);border-radius:var(--radius);padding:8px 10px;min-width:0}
.spell-facts dt{font:500 10.5px var(--mono);letter-spacing:.1em;font-variant-caps:all-small-caps;color:var(--muted)}
.spell-facts dd{margin:3px 0 0;font-weight:600;font-size:15px}
.spell-facts small{font-weight:500;color:var(--muted)}
.spell-desc{white-space:pre-line;line-height:1.7;margin:0 0 10px;color:var(--ink)}
.spell-classes{font-size:12.5px;color:var(--muted);margin:12px 0 0}
@media(max-width:700px){.spell-facts{grid-template-columns:1fr 1fr}}

/* Character sheet: spell names open details; "Add" opens a picker of spells the character can take */
.pc-sheet .sh-spell-level li{align-items:center}
.sh-spell-name{flex:1;min-width:0;display:flex;align-items:baseline;gap:8px;border:0;background:transparent;color:var(--ink);font:600 15px var(--sans);text-align:left;padding:6px 8px;border-radius:var(--radius);cursor:pointer}
.sh-spell-name:hover{background:color-mix(in srgb,var(--lapis) 10%,transparent);color:var(--violet)}
.sh-spell-name span{min-width:0;overflow-wrap:anywhere}
.sh-spell-name small{margin-left:auto;font:500 11.5px var(--mono);color:var(--muted);white-space:nowrap}
.pc-sheet .sh-add{display:block;margin-top:6px;color:var(--violet);font-weight:700}
.sh-dialog{width:min(760px,calc(100vw - 32px));max-height:min(86vh,900px);padding:0;border:1px solid color-mix(in srgb,var(--lapis) 30%,transparent);border-radius:var(--radius);background:var(--leaf);color:var(--ink);box-shadow:0 30px 90px color-mix(in srgb,var(--shadow) 80%,transparent)}
.sh-dialog[open]{display:flex;flex-direction:column}
.sh-dialog-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:20px 20px 12px;border-bottom:1px solid var(--line)}
.sh-dialog-head h3{margin:0;font:600 27.5px var(--serif);letter-spacing:0}
.sh-dialog-head .eyebrow{color:var(--violet);margin-bottom:6px}
.sh-dialog-sub{margin:6px 0 0;font-size:14px;color:var(--muted)}
.sh-dialog-foot{display:flex;justify-content:flex-end;padding:12px 20px;border-top:1px solid var(--line)}
.sh-picker-tools{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 20px}
.pc-sheet .sh-picker-tools input[type=search]{flex:1 1 240px}
.sh-picker-all{display:flex;align-items:center;gap:6px;font-size:14px;color:var(--muted);cursor:pointer}
.pc-sheet .sh-picker-all input{width:auto;accent-color:var(--violet)}
.sh-source{font:500 10.5px var(--mono);letter-spacing:.08em;font-variant-caps:all-small-caps;color:var(--violet);border:1px solid color-mix(in srgb,var(--lapis) 30%,transparent);border-radius:var(--radius-tag);padding:2px 7px}
.sh-pview{display:flex;flex-direction:column;min-height:0;flex:1}
.sh-pview[hidden]{display:none}
.sh-picker-list{list-style:none;margin:0;padding:4px 16px 16px;overflow:auto;flex:1;min-height:120px;display:flex;flex-direction:column;gap:6px}
.sh-picker-list .sh-empty{padding:16px 6px}
.sh-pick-item{display:flex;align-items:center;gap:4px;border:1px solid var(--line);border-radius:var(--radius);padding:4px 4px 4px 10px;background:var(--ink-wash);transition:border-color .15s,background .15s}
.sh-pick-item:hover{border-color:color-mix(in srgb,var(--lapis) 35%,transparent)}
.sh-pick-item.is-added{border-color:var(--lime);background:color-mix(in srgb,var(--vermilion) 6%,transparent)}
.sh-pick-row{flex:1;min-width:0;display:flex;align-items:center;gap:10px;border:0;background:transparent;color:var(--ink);text-align:left;padding:8px 6px;border-radius:var(--radius);cursor:pointer}
.sh-pick-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.sh-pick-main b{font:600 16px var(--sans)}
.sh-pick-main small{font-size:12.5px;color:var(--muted)}
.sh-pick-arrow{font-size:23px;color:var(--muted);padding:0 4px}
.sh-pick-row:hover .sh-pick-arrow{color:var(--violet)}
/* Tick circle: empty = not on the sheet, filled green = on the sheet */
.sh-check{flex:none;position:relative;width:24px;height:24px;padding:0;border-radius:50%;border:2px solid var(--rule-strong);background:transparent;cursor:pointer;transition:.15s}
.sh-check:hover{border-color:var(--lime)}
.sh-check[aria-pressed=true],.sh-check-toggle[aria-pressed=true] .sh-check{background:var(--lime);border-color:var(--lime)}
.sh-check[aria-pressed=true]::after,.sh-check-toggle[aria-pressed=true] .sh-check::after{content:"";position:absolute;left:7px;top:3px;width:6px;height:11px;border:solid var(--rule);border-width:0 2.5px 2.5px 0;transform:rotate(45deg)}
.sh-check-toggle{display:flex;align-items:center;gap:10px;border:1px solid var(--line);background:transparent;color:var(--ink);font:700 15px var(--sans);border-radius:var(--radius-tag);padding:6px 16px 6px 6px;cursor:pointer}
.sh-check-toggle[aria-pressed=true]{border-color:var(--lime);color:var(--lime)}
.sh-check-toggle .sh-check{pointer-events:none}
/* One spell's full page */
.sh-spell-view{display:flex;flex-direction:column;min-height:0;flex:1}
.sh-spell-hero{padding:16px 22px 18px;background:var(--paper);border-bottom:1px solid var(--line)}
.sh-hero-bar{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
.sh-back{border:1px solid var(--line);background:transparent;color:var(--muted);font:600 14px var(--sans);border-radius:var(--radius-tag);padding:6px 12px;cursor:pointer}
.sh-back:hover{color:var(--ink);border-color:color-mix(in srgb,var(--lapis) 40%,transparent)}
.sh-spell-hero .eyebrow{color:var(--violet);margin:0 0 6px}
.sh-spell-hero h3{margin:0;font:600 39px var(--serif);letter-spacing:0}
.sh-spell-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.sh-tag{font:500 10.5px var(--mono);letter-spacing:.08em;font-variant-caps:all-small-caps;color:var(--gold);border:1px solid color-mix(in srgb,var(--gold-leaf) 35%,transparent);border-radius:var(--radius-tag);padding:2px 8px}
.sh-spell-view>.sh-spell-body{padding:18px 22px;overflow:auto;flex:1}
.sh-spell-view .spell-desc{font-size:16px;max-width:68ch}
.sh-spell-view .sh-dialog-foot{justify-content:space-between;align-items:center}
.sh-spell-body .spell-desc{font-size:15px}
@media(max-width:640px){.sh-dialog{width:100vw;max-width:100vw;max-height:92dvh;margin:auto 0 0;border-radius:var(--radius) var(--radius) 0 0}}
.creature-toolbar #spell-search{flex:1;min-width:0;margin:0}

/* Compendium: conditions and magic items */
.condition-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;margin-top:20px;align-items:start}
.condition-card{padding:18px 20px}
.condition-card h3{font:600 20.5px var(--serif);margin:0 0 8px;color:var(--gold)}
.condition-card p{margin:0 0 8px;line-height:1.6;font-size:15px}
.condition-card .condition-intro{color:var(--muted);font-size:14px}
.creature-toolbar #condition-search,.creature-toolbar #item-search{flex:1;min-width:0;margin:0}
.item-image{float:right;width:120px;height:120px;object-fit:contain;margin:0 0 12px 16px;border-radius:var(--radius);background:var(--paper)}
.item-table{width:100%;border-collapse:collapse;margin:0 0 14px;font-size:14px}
.item-table th,.item-table td{border-bottom:1px solid var(--line);padding:6px 8px;text-align:left;vertical-align:top}
.item-table th{font:500 11.5px var(--mono);letter-spacing:.08em;font-variant-caps:all-small-caps;color:var(--muted)}

/* Player Spells tab: reference of every spell the character can access */
.spell-ref{display:flex;flex-direction:column;gap:18px}
.spell-ref-head{position:sticky;top:0;z-index:2;display:flex;flex-direction:column;gap:12px;padding:16px 18px;border:1px solid var(--line);border-radius:var(--radius);background:var(--leaf);}
.spell-ref-head .eyebrow{color:var(--violet);margin:0}
.spell-ref-who{margin:0;font-size:15px;line-height:1.7;color:var(--muted)}
.spell-ref-who b{color:var(--ink)}
.spell-ref-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.spell-ref-tools input[type=search]{flex:1 1 260px;min-width:0}

.spell-ref-pill{display:flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:var(--radius-tag);padding:7px 12px;font-size:14px;color:var(--muted);cursor:pointer}
.spell-ref-pill:has(input:checked){border-color:var(--gold);color:var(--gold)}
.spell-ref-pill input{accent-color:var(--gold);margin:0}
.spell-ref-nav{display:flex;gap:4px;overflow-x:auto}
.spell-ref-nav button{border:0;background:transparent;color:var(--muted);font:600 14px var(--sans);padding:6px 10px;border-radius:var(--radius);cursor:pointer;white-space:nowrap}
.spell-ref-nav button:hover{background:color-mix(in srgb,var(--lapis) 10%,transparent);color:var(--ink)}
.spell-ref-nav span,.spell-ref-level h3 span{font:500 11.5px var(--mono);color:var(--violet);margin-left:4px}
.spell-ref-level{scroll-margin-top:200px}
.spell-ref-level h3{margin:0 0 10px;font:600 23px var(--serif);letter-spacing:0}
/* Spell cards use the shared Folio treatment in folio/components.css. */
.spell-ref .sh-spell-view .sh-dialog-foot{justify-content:space-between}
@media(max-width:640px){.spell-ref-head{position:static}.spell-ref-grid{grid-template-columns:1fr}}
.spell-understood{margin:0;font:500 12.5px var(--mono);letter-spacing:.04em;color:var(--violet)}.spell-understood:empty{display:none}
/* Homebrew forms and actions */
.modal.hb-modal{width:min(760px,100%)}
.hb-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px 16px;margin-top:16px}
.hb-field{display:grid;gap:5px;grid-column:span 3;align-content:start;font:italic 14px var(--font-text);color:var(--text-soft)}
.hb-field.wide{grid-column:1/-1}
.hb-field.ability{grid-column:span 1}
.hb-field input:not([type=checkbox]),.hb-field select,.hb-field textarea{width:100%}
.hb-field select:disabled{opacity:.5;cursor:not-allowed}
fieldset.hb-field{border:1px solid var(--rule);border-radius:var(--radius);padding:10px 14px 12px;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px 16px}
.hb-check{display:flex;align-items:center;gap:8px;min-width:0;white-space:nowrap;font:14px var(--font-text);color:var(--text);cursor:pointer}
.hb-check input{width:auto;margin:0;padding:0;flex:none}
.hb-actions{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}
@media(max-width:610px){.hb-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.hb-field.ability{grid-column:span 1}}

.condition-grid{align-items:stretch}.condition-card{display:flex;flex-direction:column;justify-content:flex-start;width:100%;height:150px;overflow:hidden;text-align:left;font:inherit;color:inherit;cursor:pointer}.condition-card:hover{background:var(--foxed)}.condition-card .condition-intro{color:var(--text-soft);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.condition-dialog{max-width:560px}.condition-dialog p{margin:0 0 10px}.condition-dialog .condition-intro{color:var(--muted)}
