/* Shared workspace controls. Each divination keeps its cloth, palette and art. */
:root{
  --sidebar-w:240px;
  --control-h:44px;
  --radius-s:8px;
  --radius-m:10px;
  --accent:#2563eb;
  --accent-hover:#1d4ed8;
  --ui-help-size:.8125rem;
  --ui-control-size:.875rem;
  --ui-page-max:1440px;
}
@media(prefers-color-scheme:dark){
  :root{--accent:#60a5fa;--accent-hover:#93c5fd}
}

/* The only fixed header is the site shell, never an explanation/card header. */
body>.site-header{display:flex;justify-content:center;gap:16px;padding:7px 16px}
.site-brand{text-align:center;min-width:0}
.site-brand h1{font-size:1.25rem;line-height:1.25}
.site-brand h3{font-size:.75rem;line-height:1.5;opacity:.8}
.site-current-page{position:absolute;right:20px;max-width:28vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-left:14px;border-left:1px solid #ffffff32;color:#e1e8f2;font-size:.875rem;font-weight:600}
.site-header .menu-toggle{left:12px;display:flex;align-items:center;justify-content:center;gap:9px;min-width:44px;min-height:44px;padding:8px 11px;border:1px solid #ffffff38;border-radius:9px;line-height:1.2}
.menu-toggle-icon{font-size:1.25rem;line-height:1}
.menu-toggle-label{font-size:.8125rem;font-weight:600}
.site-header .menu-toggle:hover{background:#ffffff13;opacity:1}
.site-header .menu-toggle:focus-visible{outline-color:#b9d6ff}

.sidebar{padding:12px;overscroll-behavior:contain;border-right:1px solid #ffffff12;scrollbar-gutter:stable}
.sidebar-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:5px 10px 13px;color:#edf2f9;font-size:.875rem;font-weight:700}
.sidebar-close{display:none}
.sidebar-nav{display:grid;gap:13px}
.nav-group{min-width:0}
.nav-group-title{font-size:.75rem;line-height:1.5;color:#bcc7d7;font-weight:600;letter-spacing:.035em;padding:0 11px;margin:0 0 6px}
.sidebar-nav .tablinks{display:flex;flex-direction:row;align-items:center;min-height:44px;padding:10px 12px;margin:0 0 3px;font-size:.9375rem;line-height:1.4;border-radius:8px;position:relative}
.sidebar-nav .tablinks span{font-weight:600}
.sidebar-nav .tablinks.active::before{content:'';position:absolute;left:3px;top:11px;bottom:11px;width:3px;border-radius:5px;background:#3562bd}
.sidebar-nav .tablinks:focus-visible{outline-color:#b9d6ff;outline-offset:-2px}
.sidebar-backdrop[hidden]{display:none}
.sidebar-backdrop{position:fixed;inset:var(--header-h) 0 0;z-index:998;border:0;background:#0b152a7a;backdrop-filter:blur(2px);cursor:pointer}

.content{padding:24px;min-width:0;scrollbar-gutter:stable}
.tabcontent{max-width:var(--ui-page-max);margin-inline:auto;min-width:0}
.tabcontent:focus-visible{outline-offset:6px}
.tool-page-head{margin:0 0 20px}
.tool-page-head h2{font-size:clamp(1.4rem,2.4vw,1.9rem);line-height:1.4;margin:0 0 7px}
.tool-page-head p{color:var(--muted);font-size:.9375rem}

.button{min-height:44px;border-radius:8px;font-size:var(--ui-control-size);line-height:1.4;padding:10px 15px}
.button:disabled{opacity:.5;cursor:not-allowed}
.FormGroup :is(input,select),.divination-field :is(input,select),#Tarot .tarot-field :is(input,select){min-height:44px;border-radius:8px;font-size:.9375rem}
.divination-actions{flex-wrap:wrap}
.divination-actions .button{min-height:44px;font-size:.875rem}
.divination-field label,.divination-field label span{font-size:.8125rem}
.divination-section-head p{font-size:.8125rem;line-height:1.7}
.rune-reading-card p,.len-reading-card p{font-size:.875rem;line-height:1.8}
.rune-keywords span,.len-keywords span{font-size:.75rem}
.rune-reading-card header small,.len-reading-card header small{font-size:.75rem}
.rune-position,.len-card-pos{font-size:.75rem}

/* Native disclosures keep the same full-row visual target in every log view. */
button.dv-disclosure{display:block;width:100%;min-width:0;min-height:44px;text-align:left;font:inherit;font-weight:600;line-height:1.6;color:var(--text);background:var(--surface-2);padding:12px 14px;border:0;border-radius:8px;cursor:pointer;overflow-wrap:anywhere}
button.dv-disclosure:hover{background:color-mix(in srgb,var(--accent) 7%,var(--surface-2))}
.dv-growth-heading{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.dv-growth-heading>.dv-disclosure{flex:1 1 230px;width:auto}
.dv-growth-copy{flex:0 0 auto;min-height:40px}
.character-content{min-width:0;overflow:auto}
#DataViewer .dv-toolbar{gap:10px}
#DataViewer :is(.dv-toolbar input,.dv-toolbar select,.dv-character-filter){min-height:44px;padding:9px 11px;border-radius:8px;font-size:.875rem}
#DataViewer .data-table{font-size:.875rem}

/* Let the NPC grid shrink instead of inheriting a child's minimum content width. */
#NPCCreater{padding:0 0 28px;max-width:var(--ui-page-max)}
#NPCCreater :is(.npc-page,#NpcForm,.npc-hero,.npc-hero-copy,.npc-section,.npc-template-panel,.npc-template-fields,.npc-profile-row,.npc-field,.npc-progress-card){min-width:0;max-width:100%}
#NPCCreater .npc-page,#NPCCreater #NpcForm{grid-template-columns:minmax(0,1fr)}
#NPCCreater .npc-hero{padding:0 0 4px}
#NPCCreater .npc-eyebrow{font-size:.75rem;overflow-wrap:anywhere;letter-spacing:.06em}
#NPCCreater .npc-hero h2{font-size:clamp(1.4rem,2.4vw,1.9rem);line-height:1.4}
#NPCCreater .npc-progress-card{flex-wrap:wrap}
#NPCCreater .npc-section p,#NPCCreater .npc-template-copy small{font-size:var(--ui-help-size);line-height:1.7}
#NPCCreater .npc-template-actions .button{font-size:.875rem;padding:9px 12px}
#NPCCreater :is(.npc-field input,.npc-template-fields input,.npc-template-fields select,.npc-stat-card input,.npc-vitals-grid input){min-height:44px;border-radius:8px}
#NPCCreater .npc-action-bar{border-radius:10px}

#CharCreater .cc-panel-top{padding:20px;margin-bottom:18px;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-1)}
#CharCreater .cc-title{font-size:clamp(1.4rem,2.4vw,1.9rem);line-height:1.4;margin-bottom:16px}
#CharCreater .cc-mode-row{gap:12px;align-items:center}
#CharCreater .cc-notes{display:grid;gap:5px;margin-top:13px;font-size:.8125rem;line-height:1.8;color:var(--muted)}
#CharCreater .cc-notes span{font-size:inherit;overflow-wrap:anywhere}
#CharCreater .cc-stat-card{border-radius:10px;padding:14px;background:var(--surface)}
#CharCreater .cc-stat-grid{gap:12px}
#CharCreater :is(.cc-mode-fieldset,.cc-stage-wrap,.cc-actions-row){min-width:0;max-width:100%}

#BustTable .bt-hero h2,.bc-hero h2,.tl-hero h2{font-size:clamp(1.4rem,2.4vw,1.9rem);line-height:1.4}
#BustTable .bt-hero p{font-size:.9375rem}
#BustTable .bt-meta-note,#BustTable .bt-card-head p{font-size:.8125rem;line-height:1.7}
#BustTable .bt-card,#BustTable .bt-hero{border-radius:12px}
#BustTable .bt-metric-note{font-size:.8125rem;line-height:1.7;color:var(--muted);max-width:38ch;margin-top:5px}
#BustTable .bt-index-guide,#BustTable .bt-index-scale,#BustTable .bt-metric-help{font-size:.8125rem;line-height:1.7;color:var(--muted);margin:6px 0 0;overflow-wrap:anywhere}
#BustTable .bt-index-guide{max-width:54ch}
#BustTable .bt-index-scale{padding:7px 10px;border:1px solid var(--border);border-radius:8px;background:var(--surface-2)}
#BustTable .bt-actions{gap:8px}
#CharCreater .cc-intro{font-size:.9375rem;line-height:1.7;color:var(--muted);margin:0 0 16px}

.bc-app,.tl-app{max-width:var(--ui-page-max)}
.bc-hero,.tl-hero{padding:22px 24px;border-radius:12px}
.bc-hero p,.tl-hero p{font-size:.9375rem;line-height:1.7}
.bc-btn,.tl-btn{min-height:44px;border-radius:8px;font-size:.875rem!important;line-height:1.4;padding:10px 14px}
.bc-link,.tl-text-btn{min-height:32px;font-size:.8125rem!important}
.bc-person-origin,.bc-profile-note,.bc-reference-info,.bc-appearance p,.bc-age-control p,.bc-board-note,.bc-picker-foot{font-size:.8125rem;line-height:1.8}
.bc-person-origin{overflow-wrap:anywhere}
.bc-shape,.bc-measure-field>label,.bc-paint-colors label,.bc-shape-number>label{font-size:.8125rem}
.bc-number input,.bc-inline-number input[type=number],.bc-paint-mode select,.bc-shape select{min-height:40px;font-size:.9375rem;border-radius:8px}
.bc-range-ends,.bc-chest-hint,.bc-measure-field small{font-size:.75rem;line-height:1.7}
.bc-bottom,.tl-bottom,.tl-board-caption,.tl-pool-head p,.tl-board-footer>span,.tl-picker-footer>span{font-size:.8125rem;line-height:1.8}
.tl-heading-fields label,.tl-option-body>label,.bc-view-options{font-size:.8125rem}
.tl-heading-fields textarea{font-size:.9375rem}
.tl-pool-head h3{font-size:1rem}
.tl-library-card small,.bc-library-person small{font-size:.75rem}
.bc-stats{font-size:.8125rem}

/* A theme-aware library uses the same neutral surfaces as the other tools. */
main.content:has(#CharFinder.is-active){background:var(--surface)}
#charfinder-root{--cf-panel:var(--surface);--cf-line:var(--border);--cf-muted:var(--muted);--cf-accent:var(--accent);--cf-control:var(--surface-2);--cf-ink:var(--text);--cf-hover:color-mix(in srgb,var(--accent) 8%,var(--surface));--cf-danger:#ac233a;background:transparent;color:var(--cf-ink);font:15px/1.7 var(--font-sans);max-width:var(--ui-page-max);padding:0 0 24px}
#charfinder-root h2{font-size:clamp(1.4rem,2.4vw,1.9rem);line-height:1.4;letter-spacing:0}
#charfinder-root :is(button,input,select,textarea){border-radius:8px;background:var(--cf-control);color:var(--cf-ink);min-height:44px;font-size:.875rem}
#charfinder-root button:hover{background:var(--cf-hover)}
#charfinder-root .cf-primary{background:var(--accent);color:var(--accent-on);border-color:var(--accent)}
#charfinder-root .cf-primary:hover{background:var(--accent-hover)}
#charfinder-root label{font-size:.8125rem}
#charfinder-root label :is(input,select,textarea){color:var(--cf-ink);font-size:.9375rem}
#charfinder-root label.cf-check{color:var(--cf-ink)}
#charfinder-root label.cf-check input{min-height:0}
#charfinder-root :is(.cf-card-meta,.cf-results-hint,.cf-combo-note,.cf-badge){font-size:.75rem;color:var(--cf-muted)}
#charfinder-root .cf-owner-filter legend{font-size:.8125rem}
#charfinder-root button.cf-owner-choice,#charfinder-root .cf-owner-tag{color:color-mix(in srgb,var(--cf-owner-color,var(--text)) 42%,#111827)}
#charfinder-root .cf-condition{border-color:var(--cf-line);gap:8px}
#charfinder-root .cf-condition [data-field=kind]{width:auto;min-width:132px}
#charfinder-root .cf-expression{font-size:.875rem;color:var(--cf-ink)}
#charfinder-root .cf-or{background:color-mix(in srgb,#8066ae 6%,var(--surface));border-left-color:#8066ae}
#charfinder-root .cf-results-section{padding:14px;background:var(--surface-2)}
#charfinder-root .cf-card-name{color:var(--cf-ink)}
#charfinder-root .cf-remove{color:var(--cf-danger)}
#charfinder-root .cf-avatar{background:color-mix(in srgb,var(--accent) 9%,var(--surface));color:var(--cf-ink)}
#charfinder-root .cf-tabs button[aria-selected=true]{background:color-mix(in srgb,var(--accent) 12%,var(--surface));border-color:var(--accent)}
#charfinder-root .cf-stat,#charfinder-root pre{background:var(--surface-2);color:var(--cf-ink)}
#charfinder-root :is(tbody tr,tbody tr:nth-child(even),tbody td){background:var(--surface);color:var(--cf-ink)}
#charfinder-root tbody tr:hover td{background:var(--cf-hover)}
#charfinder-root th{background:var(--surface-2);color:var(--cf-ink)}
#charfinder-root dialog{background:var(--surface);color:var(--cf-ink);border-color:var(--cf-line)}
#charfinder-root .cf-modal-head{background:var(--surface-2)}
#charfinder-root :is(.cf-error,.cf-lost,.cf-card.cf-lost .cf-card-name,.cf-card.cf-lost .cf-owner-tag){color:var(--cf-danger)}
#charfinder-root .cf-combo-popup{background:var(--surface);box-shadow:var(--shadow-2)}
#charfinder-root .cf-combo-option:hover,#charfinder-root .cf-combo-option[aria-selected=true]{background:var(--cf-hover);color:var(--cf-ink)}
@media(prefers-color-scheme:dark){
  #charfinder-root{--cf-danger:#ffb8bf}
  #charfinder-root button.cf-owner-choice,#charfinder-root .cf-owner-tag{color:var(--cf-owner-color,var(--text))}
}

@media(max-width:768px){
  .content{padding:16px;scrollbar-gutter:auto}
  .sidebar{width:min(300px,calc(100vw - 48px));padding:12px;box-shadow:0 12px 40px #07101b55}
  .sidebar-head{min-height:44px;padding:0 7px 10px}
  .sidebar-close{display:inline-flex;justify-content:center;align-items:center;gap:6px;min-height:40px;padding:8px 10px;border:1px solid #ffffff40;border-radius:8px;background:transparent;color:inherit;font:inherit;font-size:.8125rem;cursor:pointer}
  .sidebar-nav{gap:14px}
  .sidebar-nav .tablinks{min-height:44px;font-size:1rem}
  .mobile-menu-open main.content{overflow:hidden}
  .site-current-page{right:12px;font-size:.8125rem;max-width:30vw;padding-left:10px}
  .site-brand{margin-left:-12px}
  #NPCCreater{padding-inline:0}
}
@media(max-width:600px){
  .site-header .menu-toggle{left:10px;padding:8px;min-width:44px}
  .menu-toggle-label{display:none}
  .site-brand{position:absolute;left:68px;max-width:calc(100vw - 172px);margin:0;text-align:left}
  .site-brand h1{font-size:.9375rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .site-brand h3{font-size:.6875rem}
  .site-current-page{max-width:28vw;font-size:.8125rem}
  .content{padding:16px 12px}
  .tool-page-head{margin-bottom:16px}
  .button{font-size:.9375rem}
  #CharCreater .cc-panel-top{padding:16px}
  #CharCreater .cc-stat-card{padding:12px}
  #CharCreater .cc-notes{gap:7px}
  #NPCCreater .npc-section{padding:12px}
  #NPCCreater .npc-template-actions{grid-template-columns:repeat(3,minmax(0,1fr))}
  #NPCCreater .npc-template-actions .button{padding:8px 5px;font-size:.8125rem}
  #NPCCreater .npc-progress-card{gap:8px}
  #NPCCreater :is(input:not([type=checkbox]):not([type=radio]),select,textarea),#charfinder-root :is(input:not([type=checkbox]):not([type=radio]),select,textarea){font-size:1rem}
  .bc-hero,.tl-hero{padding:18px 16px;gap:12px}
  .bc-hero p,.tl-hero p{font-size:.875rem}
  .bc-hero-mark{flex-shrink:0}
  .bc-toolbar .bc-btn,.tl-toolbar .tl-btn{padding:9px 11px;font-size:.8125rem!important}
  .bc-view-options{font-size:.75rem;gap:10px}
  .bc-board-note{font-size:.75rem}
  .bc-picker-head,.tl-picker-head{padding-inline:16px}
  .bc-measure-field>label{font-size:.8125rem}
  .bc-person-actions{gap:12px;flex-wrap:wrap}
  .dv-growth-heading{gap:8px}
  .dv-growth-heading>.dv-disclosure{flex-basis:100%;width:100%}
  .dv-growth-copy{margin:0 0 4px 12px}
}
@media(prefers-reduced-motion:reduce){.sidebar,.content{transition:none}}
