/* Original medieval materials and reusable vector layers, one kit per class. */
[data-theme="guerreiro"] {
  --layer-accent: #d5c5a5; --layer-bright: #f5e2ba;
  --layer-panel: #292b2e; --layer-deep: #161b20;
  --class-color: #d5c5a5; --class-background: #292b2e;
  --layer-frame: url('../assets/class-layers/guerreiro/frame.svg');
  --layer-texture: url('../assets/class-layers/guerreiro/texture.svg');
  --layer-badge: url('../assets/class-layers/guerreiro/badge.svg');
}
[data-theme="barbaro"] {
  --layer-accent: #e6ac7f; --layer-bright: #ffe0b0;
  --layer-panel: #382820; --layer-deep: #221713;
  --class-color: #e6ac7f; --class-background: #382820;
  --layer-frame: url('../assets/class-layers/barbaro/frame.svg');
  --layer-texture: url('../assets/class-layers/barbaro/texture.svg');
  --layer-badge: url('../assets/class-layers/barbaro/badge.svg');
}
[data-theme="ladino"] {
  --layer-accent: #b6b4d8; --layer-bright: #e3e0ff;
  --layer-panel: #262333; --layer-deep: #15131e;
  --class-color: #b6b4d8; --class-background: #262333;
  --layer-frame: url('../assets/class-layers/ladino/frame.svg');
  --layer-texture: url('../assets/class-layers/ladino/texture.svg');
  --layer-badge: url('../assets/class-layers/ladino/badge.svg');
}
[data-theme="monge"] {
  --layer-accent: #e7ba7b; --layer-bright: #ffe5b5;
  --layer-panel: #342c22; --layer-deep: #201b15;
  --class-color: #e7ba7b; --class-background: #342c22;
  --layer-frame: url('../assets/class-layers/monge/frame.svg');
  --layer-texture: url('../assets/class-layers/monge/texture.svg');
  --layer-badge: url('../assets/class-layers/monge/badge.svg');
}
[data-theme="mago"] {
  --layer-accent: #9ebeff; --layer-bright: #d8e7ff;
  --layer-panel: #202b43; --layer-deep: #121a2c;
  --class-color: #9ebeff; --class-background: #202b43;
  --layer-frame: url('../assets/class-layers/mago/frame.svg');
  --layer-texture: url('../assets/class-layers/mago/texture.svg');
  --layer-badge: url('../assets/class-layers/mago/badge.svg');
}
[data-theme="feiticeiro"] {
  --layer-accent: #f2a9c3; --layer-bright: #ffe0e8;
  --layer-panel: #382334; --layer-deep: #241421;
  --class-color: #f2a9c3; --class-background: #382334;
  --layer-frame: url('../assets/class-layers/feiticeiro/frame.svg');
  --layer-texture: url('../assets/class-layers/feiticeiro/texture.svg');
  --layer-badge: url('../assets/class-layers/feiticeiro/badge.svg');
}
[data-theme="bruxo"] {
  --layer-accent: #aae2ba; --layer-bright: #ddfce2;
  --layer-panel: #202d28; --layer-deep: #101a16;
  --class-color: #aae2ba; --class-background: #202d28;
  --layer-frame: url('../assets/class-layers/bruxo/frame.svg');
  --layer-texture: url('../assets/class-layers/bruxo/texture.svg');
  --layer-badge: url('../assets/class-layers/bruxo/badge.svg');
}
[data-theme="clerigo"] {
  --layer-accent: #ecd69c; --layer-bright: #fff2c9;
  --layer-panel: #302d26; --layer-deep: #1d1d1a;
  --class-color: #ecd69c; --class-background: #302d26;
  --layer-frame: url('../assets/class-layers/clerigo/frame.svg');
  --layer-texture: url('../assets/class-layers/clerigo/texture.svg');
  --layer-badge: url('../assets/class-layers/clerigo/badge.svg');
}
[data-theme="druida"] {
  --layer-accent: #afe0a0; --layer-bright: #e7f8d2;
  --layer-panel: #273025; --layer-deep: #151e16;
  --class-color: #afe0a0; --class-background: #273025;
  --layer-frame: url('../assets/class-layers/druida/frame.svg');
  --layer-texture: url('../assets/class-layers/druida/texture.svg');
  --layer-badge: url('../assets/class-layers/druida/badge.svg');
}
[data-theme="paladino"] {
  --layer-accent: #aacee7; --layer-bright: #e2f1ff;
  --layer-panel: #263140; --layer-deep: #151e2a;
  --class-color: #aacee7; --class-background: #263140;
  --layer-frame: url('../assets/class-layers/paladino/frame.svg');
  --layer-texture: url('../assets/class-layers/paladino/texture.svg');
  --layer-badge: url('../assets/class-layers/paladino/badge.svg');
}
[data-theme="patrulheiro"] {
  --layer-accent: #d1ce98; --layer-bright: #f3ebbf;
  --layer-panel: #2d3023; --layer-deep: #1b2016;
  --class-color: #d1ce98; --class-background: #2d3023;
  --layer-frame: url('../assets/class-layers/patrulheiro/frame.svg');
  --layer-texture: url('../assets/class-layers/patrulheiro/texture.svg');
  --layer-badge: url('../assets/class-layers/patrulheiro/badge.svg');
}
[data-theme="bardo"] {
  --layer-accent: #ecc29a; --layer-bright: #ffe7ca;
  --layer-panel: #38272f; --layer-deep: #21151f;
  --class-color: #ecc29a; --class-background: #38272f;
  --layer-frame: url('../assets/class-layers/bardo/frame.svg');
  --layer-texture: url('../assets/class-layers/bardo/texture.svg');
  --layer-badge: url('../assets/class-layers/bardo/badge.svg');
}
[data-theme="aventureiro"] {
  --layer-accent: #d5bc92; --layer-bright: #ffe2ac;
  --layer-panel: #302936; --layer-deep: #1e1926;
  --class-color: #d5bc92; --class-background: #302936;
  --layer-frame: url('../assets/class-layers/aventureiro/frame.svg');
  --layer-texture: url('../assets/class-layers/aventureiro/texture.svg');
  --layer-badge: url('../assets/class-layers/aventureiro/badge.svg');
}

body[data-theme] .editor { position: relative; padding: 8px; background: var(--layer-texture) repeat; border: 8px solid transparent; border-image: var(--layer-frame) 42 / 20px stretch; box-shadow: 0 0 0 4px #0b0b0ecc, 0 0 0 5px #a38c6040, 0 12px 40px #0004; border-radius: 3px; }
.editor .character-overview { background: var(--layer-texture) repeat; border: 6px solid transparent; border-image: var(--layer-frame) 42 / 22px stretch; border-radius: 2px; padding: 18px; }
.editor .character-overview::after { display: none; }
.editor .character-emblem { width: 72px; height: 78px; background: none; border: 0; border-radius: 0; box-shadow: none; transform: none; }
.editor .character-overview { grid-template-columns: 72px minmax(0,1fr) auto; gap: 16px; }
.character-emblem img { width: 78px; height: 78px; object-fit: contain; filter: drop-shadow(0 4px 3px #0007); }
.editor .character-overview h2 { font-family: Georgia, serif; font-size: 25px; font-weight: 700; color: #fff4df; }
.editor .character-overview .eyebrow { color: var(--layer-bright); }
.editor .character-overview .muted { color: #d6d0c4; }
.class-material { display: inline-flex; align-items: center; color: var(--layer-accent); font-size: 9px; margin-top: 8px; gap: 6px; }
.class-material::before { content: '◆'; font-size: 6px; }
.editor .level-token { width: 48px; height: 56px; display: flex; flex-direction: column; justify-content: center; padding: 0; background: var(--layer-badge) center / contain no-repeat; border: 0; }
.editor .level-token span { font-size: 7px; color: var(--layer-bright); letter-spacing: 1px; }
.editor .level-token strong { font-size: 23px; color: #fff5df; }
.editor .summary-grid { border-color: var(--layer-accent); background: var(--layer-deep); border-radius: 0 0 2px 2px; margin-bottom: 16px; }
.editor .summary-item + .summary-item { border-color: #a3a09830; }
.editor .summary-item span { color: #d0c9bc; }
.editor .editor-tabs { border-color: var(--layer-accent); background: var(--layer-deep); border-radius: 2px; gap: 6px; padding: 6px; margin-bottom: 16px; }
.editor .editor-tabs button { border-radius: 1px; color: #cec8be; border: 1px solid transparent; }
.editor .editor-tabs button:hover { background: #fff3d510; color: var(--layer-bright); }
.editor .editor-tabs button[aria-selected=true] { border-color: var(--layer-accent); background: var(--layer-frame) center / 100% 100% no-repeat, var(--layer-panel); color: var(--layer-bright); box-shadow: 0 2px 0 #0005; }
.editor .card { position: relative; border: 6px solid transparent; border-image: var(--layer-frame) 42 / 22px stretch; border-radius: 2px; padding: 20px; background: linear-gradient(#08090b19,#08090b19), var(--layer-texture) repeat; box-shadow: 0 3px 10px #0002; margin-bottom: 16px; }
.editor .card h3 { color: var(--layer-bright); }
.editor .card-header .muted { color: #c0b8ad; }
.editor label { color: #e0d8ca; }
.editor :is(input, select, textarea) { background: var(--layer-deep); border-color: #a0a09455; color: #f5efe5; border-radius: 2px; }
.editor :is(input,textarea)::placeholder { color: #b7b0a3; }
.editor :is(input, select, textarea):focus { border-color: var(--layer-accent); box-shadow: 0 0 0 2px #eee7d516; }
.editor .points-pill { background: var(--layer-deep); border-color: var(--layer-accent); color: var(--layer-bright); border-radius: 2px; }
.editor .point-meter::-webkit-progress-value { background: linear-gradient(90deg, var(--layer-accent), var(--layer-bright)); }
.editor .point-meter::-moz-progress-bar { background: var(--layer-accent); }
.editor .attribute-grid { gap: 12px; }
.editor .attr { border: 0; border-radius: 0; padding: 12px 8px 10px; background: var(--layer-deep); box-shadow: inset 0 0 0 1px #afa79a30; }
.editor .attr:hover { box-shadow: inset 0 0 0 1px var(--layer-accent), 0 4px 9px #0003; }
.editor .attr-title strong { color: #ded6c8; }
.editor .attr-title small { color: #b7afa2; font-size: 9px; }
.editor .stat-total { display: inline-grid; place-items: center; width: 48px; height: 56px; background: var(--layer-badge) center / contain no-repeat; font-size: 23px; color: var(--layer-bright); font-family: Georgia, serif; }
.editor .attr-controls { gap: 5px; margin-top: 7px; }
.editor .attr-controls .btn { background: var(--layer-panel); border-color: var(--layer-accent); color: var(--layer-bright); border-radius: 1px; box-shadow: 0 2px 0 #0005; }
.editor .attr-controls .btn:hover { background: var(--layer-accent); color: var(--layer-deep); }
.editor .attribute-symbol { color: var(--layer-accent); }
.editor .field-hint { color: #c6bba8; }
.editor .editor-footer { background: var(--layer-deep); border: 5px solid transparent; border-image: var(--layer-frame) 42 / 17px stretch; border-radius: 2px; padding: 10px 14px; margin-top: 18px; }
.editor .save-hint { color: #d9cdb8; }
.editor .editor-footer .btn:not(.btn-danger) { background: linear-gradient(180deg, var(--layer-bright), var(--layer-accent)); color: var(--layer-deep); border-color: var(--layer-bright); border-radius: 3px; box-shadow: 0 3px 0 #0007; }
.editor .editor-footer .btn-danger { color: #ffb3ab; }
.editor :is(.skill,.readonly-card) { border-color: #a5a28b40; background: var(--layer-deep); border-radius: 2px; }
.editor .skill strong { color: var(--layer-bright); }
.editor .skill > div, .editor .skill small { color: #d1c5b6; }
.editor .empty-state { background: var(--layer-deep); border-color: var(--layer-accent); color: #d0c4b2; border-radius: 2px; }
.sheet-avatar { background: none; border: 0; border-radius: 0; transform: none; width: 45px; height: 48px; }
.sheet-avatar img { width: 45px; height: 48px; object-fit: contain; filter: drop-shadow(0 2px 2px #0005); }
body[data-theme] .ficha-item { border-radius: 3px; background: var(--layer-deep); border-color: #99877840; }
body[data-theme] .ficha-item:hover { background: var(--layer-panel); border-color: var(--layer-accent); }
body[data-theme] .ficha-item.active { background: var(--layer-frame) center / 100% 100% no-repeat, var(--layer-panel); border-color: var(--layer-accent); box-shadow: inset 2px 0 var(--layer-accent); }
body[data-theme] .combatente-card, body[data-theme] .combat-ficha, body[data-theme] .catalog-class, .class-layer-card[data-theme] { border-radius: 2px; border: 6px solid transparent; border-image: var(--layer-frame) 42 / 22px stretch; background: var(--layer-texture) repeat; padding: 20px; }
body[data-theme] .combatente-card h4, body[data-theme] .combat-ficha .ficha-heading strong, body[data-theme] .catalog-class > strong { color: var(--layer-bright); }
body[data-theme] .combatente-ativo { border-color: var(--layer-accent); border-left: 3px solid var(--layer-accent); box-shadow: 0 0 14px #fff3dd0b; }
body[data-theme] .combat-ficha .ficha-heading { display: grid; grid-template-columns: 38px minmax(0,1fr); gap: 10px; align-items: center; }
.combat-class-crest { width: 38px; height: 42px; object-fit: contain; }
.catalog-class .catalog-class-header { display: flex; align-items: center; gap: 14px; }
.catalog-class-header img { width: 52px; height: 56px; object-fit: contain; }
.catalog-class-header strong { color: var(--layer-bright); }
.catalog-class-header span { display: block; font-size: 10px; color: #d1c5b8; }
.class-layers-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; }
.class-layer-card { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 14px; }
.class-layer-card img { width: 90px; height: 96px; object-fit: contain; filter: drop-shadow(0 5px 4px #0007); }
.class-layer-card h2 { color: var(--layer-bright); font: 700 22px Georgia,serif; margin: 0; }
.class-layer-card .class-material { color: var(--layer-accent); font-size: 11px; margin: 0; }
.class-layer-card p { color: #d0c5b4; font-size: 11px; min-height: 34px; margin: 0; }
.layer-preview-samples { display: flex; justify-content: center; gap: 8px; border-top: 1px solid #c7b99630; padding-top: 16px; width: 100%; }
.layer-preview-samples span { background: var(--layer-badge) center / contain no-repeat; width: 42px; height: 49px; display: grid; place-items: center; color: var(--layer-bright); font: 700 18px Georgia,serif; }
@media(max-width:1200px) { .editor .attribute-grid { gap: 8px; } .editor .attr { padding: 12px 5px 8px; } .editor .card { padding: 22px; } }
@media(max-width:1000px) { .class-layers-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media(max-width:580px) {
 body[data-theme] .editor { padding: 9px; }
 .editor .character-overview { grid-template-columns: 50px minmax(0,1fr) 39px; gap: 10px; padding: 18px 14px; }
 .editor .character-emblem { width: 50px; height: 56px; }
 .character-emblem img { width: 53px; height: 58px; }
 .editor .character-overview h2 { font-size: 19px; }
 .editor .character-overview .eyebrow { font-size: 6px; }
 .editor .level-token { width: 39px; height: 46px; }
 .editor .level-token strong { font-size: 20px; }
 .editor .level-token span { font-size: 6px; }
 .class-material { font-size: 8px; margin-top: 5px; }
 .editor .card { padding: 20px 16px; }
 .editor .editor-tabs { gap: 3px; padding: 5px; }
 .editor .editor-tabs button { font-size: 9px; padding: 10px 4px; }
 .editor .summary-item { padding: 13px 8px; }
 .editor .summary-item span { font-size: 8px; }
 .editor .summary-item strong { font-size: 22px; }
 .editor .attr-title strong { font-size: 10px; }
 .editor .attr-controls .btn { min-width: 25px; width: 25px; }
 .editor .stat-total { width: 42px; height: 50px; font-size: 23px; }
 .sheet-avatar { width: 32px; height: 37px; }
 .sheet-avatar img { width: 32px; height: 37px; }
 .editor .editor-footer { padding: 12px; }
 .editor .editor-footer .page-actions { gap: 5px; }
 .editor .editor-footer .btn { padding: 10px; font-size: 11px; }
 .editor .editor-footer .btn-danger { font-size: 9px; }
 .class-layers-grid { grid-template-columns: 1fr; gap: 20px; }
 body[data-theme] .combatente-card, body[data-theme] .combat-ficha, body[data-theme] .catalog-class { padding: 20px; }
}
@media(prefers-reduced-motion:reduce) { .editor, .ficha-item { transition: none; } }
