:root{
  /* Azul de pedra: ardósia, aço e branco gelo, tudo pouco saturado */
  --bg:#121822;
  --bg-2:#161d29;
  --surface:#1a2231;
  --surface-2:#212b3b;
  --surface-3:#2a3548;
  --border:#2e3a4e;
  --border-light:#43526a;
  --text:#e5eaf1;
  --text-muted:#a0abbc;
  --text-dim:#6f7a8c;
  --accent:#9bb5d6;
  --accent-2:#b7cbe4;
  --accent-dim:#3d5271;
  --danger:#c0644f;
  --danger-2:#7f3b2e;
  --success:#78a08c;
  --success-2:#4d6f60;
  --warning:#c9a560;
  --info:#86a8c7;
  --ink:#101722;
  --hover:#34415a;
  --ink-claro:#f4f1ee;
  --accent-suave:rgba(155,181,214,0.12);
  --accent-fraco:rgba(155,181,214,0.08);
  --accent-forte:rgba(155,181,214,0.3);
  --radius:10px;
  --radius-sm:6px;
  --serif:'Alegreya', Georgia, 'Times New Roman', serif;
  --mono:'Alegreya Sans', system-ui, sans-serif;
  --sans:'Alegreya Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
}
:root:not([data-theme="light"]){ }
:root[data-theme="light"]{
  --bg:#e6ebf1; --bg-2:#dde4ec; --surface:#f3f6f9; --surface-2:#e9eef4; --surface-3:#dbe3ec;
  --border:#c3cedb; --border-light:#a9b7c8; --text:#1c2533; --text-muted:#4d5a6d; --text-dim:#778397;
  --accent:#44658c; --accent-2:#35557a; --accent-dim:#b9c9dc; --ink:#f3f6f9;
  --danger:#a34a3a; --danger-2:#86392a; --success:#3f6b58; --success-2:#335746; --warning:#8c6a26; --info:#3f6a8c; --hover:#ccd7e5; --ink-claro:#ffffff; --accent-suave:rgba(68,101,140,0.12); --accent-fraco:rgba(68,101,140,0.07); --accent-forte:rgba(68,101,140,0.25);
}
*{box-sizing:border-box;margin:0;padding:0;}
@keyframes overlayFadeIn{from{opacity:0;}to{opacity:1;}}
@keyframes modalPopIn{from{opacity:0;transform:scale(0.96) translateY(8px);}to{opacity:1;transform:scale(1) translateY(0);}}
body{
  font-family:var(--sans);
  background:
    radial-gradient(circle at 15% 0%, var(--accent-fraco), transparent 45%),
    radial-gradient(circle at 85% 15%, var(--accent-fraco), transparent 40%),
    var(--bg);
  background-attachment:fixed;
  color:var(--text);
  line-height:1.6;
  padding:20px;
  min-height:100vh;
}
.container{max-width:1180px;margin:0 auto;}

header{
  display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;
  padding:18px 24px;border:1px solid var(--border);background:var(--surface);
  margin-bottom:26px;border-radius:var(--radius);box-shadow:0 4px 18px rgba(0,0,0,0.22);
}
h1{
  font-family:var(--serif);
  font-size:1.55rem;font-weight:400;color:var(--accent);letter-spacing:0.5px;
  text-shadow:0 0 24px var(--accent-forte);
}
h1 small{display:block;font-family:var(--mono);font-size:0.65rem;color:var(--text-dim);margin-top:5px;}
h2{
  font-family:var(--serif);font-size:1.12rem;font-weight:400;color:var(--accent);
  margin-bottom:16px;padding-bottom:12px;padding-left:2px;border-bottom:1px solid var(--border);
  letter-spacing:0.3px;position:relative;
}
h2::before{content:'';position:absolute;left:0;bottom:-1px;width:34px;height:2px;background:var(--accent);border-radius:2px;}
h3{font-size:0.95rem;margin:14px 0 8px;color:var(--text);font-weight:600;}
h4{font-size:0.85rem;color:var(--text-muted);font-weight:600;}

button{
  background:var(--surface-3);color:var(--text);border:1px solid var(--border-light);
  padding:9px 17px;border-radius:var(--radius-sm);cursor:pointer;font-weight:500;
  font-size:0.85rem;font-family:var(--sans);transition:background .15s ease, border-color .15s ease, transform .15s ease, box-shadow .15s ease;
}
button:hover{background:var(--border-light);border-color:var(--accent-dim);box-shadow:0 4px 12px rgba(0,0,0,0.28);}
button:active{transform:translateY(1px);box-shadow:none;}
button:focus-visible{outline:2px solid var(--accent);outline-offset:1px;}
button.primary{background:var(--accent-dim);border-color:var(--accent);color:var(--text);box-shadow:0 2px 10px var(--accent-suave);}
button.primary:hover{background:var(--accent-2);box-shadow:0 5px 16px var(--accent-forte);}
button.danger{background:var(--danger-2);border-color:var(--danger);color:var(--text);}
button.danger:hover{background:var(--danger);box-shadow:0 5px 16px rgba(156,69,59,0.3);}
button.success{background:var(--success-2);border-color:var(--success);color:var(--text);}
button.success:hover{background:var(--success);box-shadow:0 5px 16px rgba(63,122,99,0.3);}
button.ghost{background:transparent;border:1px solid var(--accent-dim);color:var(--accent);font-weight:600;}
button.ghost:hover{background:var(--accent-dim);color:var(--text);}
button:disabled{opacity:0.35;cursor:not-allowed;}
button.small{padding:5px 11px;font-size:0.75rem;border-radius:4px;}

.grid{display:grid;gap:16px;}
.grid-2{grid-template-columns:repeat(2,1fr);}
.grid-3{grid-template-columns:repeat(3,1fr);}
.grid-4{grid-template-columns:repeat(4,1fr);}
.grid-5{grid-template-columns:repeat(5,1fr);}
@media (max-width:900px){.grid-3,.grid-4,.grid-5{grid-template-columns:repeat(2,1fr);}}
@media (max-width:600px){.grid-2,.grid-3,.grid-4,.grid-5{grid-template-columns:1fr;}}

.card{
  background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);
  padding:22px;transition:border-color .18s ease, box-shadow .18s ease, transform .18s ease;
  position:relative;overflow:hidden;
}
.card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;
  background:linear-gradient(90deg, transparent, var(--accent-dim) 20%, var(--accent) 50%, var(--accent-dim) 80%, transparent);
  opacity:0;transition:opacity .25s ease;}
.card:hover{border-color:var(--border-light);box-shadow:0 6px 22px rgba(0,0,0,0.28);}
.card:hover::before{opacity:0.55;}
.char-thumbnail{width:96px;height:96px;flex-shrink:0;border-radius:var(--radius);border:1px solid var(--border-light);
  background:var(--surface-2);display:flex;align-items:center;justify-content:center;cursor:pointer;overflow:hidden;
  position:relative;transition:border-color .15s ease, transform .15s ease;}
.catalog-card{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);
  padding:26px 18px;text-align:center;cursor:pointer;transition:border-color .18s ease, transform .18s ease, box-shadow .18s ease;}
.catalog-card:hover{border-color:var(--accent);transform:translateY(-4px);box-shadow:0 10px 26px rgba(0,0,0,0.32);}
.catalog-card .catalog-icon{width:46px;height:46px;border-radius:50%;margin:0 auto 14px;display:flex;align-items:center;justify-content:center;
  background:var(--surface-3);border:1px solid var(--border-light);color:var(--accent);font-family:var(--serif);font-size:1.3rem;}
.catalog-card h4{color:var(--accent);font-size:1.05rem;margin-bottom:6px;}
.catalog-card p{color:var(--text-dim);font-size:0.78rem;}
.hero-card{background:linear-gradient(165deg, var(--surface) 0%, var(--surface-2) 100%);text-align:center;padding:40px 24px;}
.hero-inner{display:flex;flex-direction:column;align-items:center;}
.hero-logo{width:64px;height:64px;object-fit:contain;margin-bottom:16px;filter:drop-shadow(0 0 18px var(--accent-forte));}
.char-list-avatar{width:56px;height:56px;flex-shrink:0;border-radius:var(--radius-sm);object-fit:cover;border:1px solid var(--border-light);}
.char-list-avatar-empty{display:flex;align-items:center;justify-content:center;background:var(--surface-3);color:var(--text-dim);font-size:0.6rem;text-align:center;}
.initiative-token{display:flex;align-items:center;gap:14px;background:var(--surface-2);border:1px solid var(--border);
  border-radius:var(--radius-sm);padding:12px 14px;margin:8px 0;flex-wrap:wrap;transition:border-color .15s ease, opacity .15s ease, background .15s ease;}
.initiative-token:hover{border-color:var(--border-light);}
.initiative-token.dragging{opacity:0.4;}
.initiative-token.drag-over{border-color:var(--accent);background:var(--surface-3);}
.initiative-drag-handle{cursor:grab;color:var(--text-dim);display:flex;align-items:center;}
.initiative-drag-handle:active{cursor:grabbing;}
.initiative-order{font-family:var(--mono);font-weight:700;color:var(--accent);min-width:22px;text-align:center;}
.initiative-avatar{width:52px;height:52px;border-radius:var(--radius-sm);object-fit:cover;border:1px solid var(--border-light);flex-shrink:0;}
.initiative-avatar-empty{display:flex;align-items:center;justify-content:center;background:var(--surface-3);color:var(--text-dim);font-family:var(--mono);font-weight:700;flex-shrink:0;}
.initiative-actions{display:flex;flex-direction:column;gap:6px;}
@keyframes screenFadeIn{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:translateY(0);}}
.top-screen{animation:screenFadeIn .22s ease;}
.char-thumbnail:hover{border-color:var(--accent);transform:translateY(-2px);}
.char-thumbnail span{color:var(--text-dim);font-size:0.72rem;}
.char-thumbnail img{width:100%;height:100%;object-fit:cover;}
.char-portrait-box{width:100%;max-width:320px;border-radius:var(--radius);border:1px solid var(--border-light);
  background:var(--surface-2);overflow:hidden;display:flex;align-items:center;justify-content:center;min-height:200px;}
.char-portrait-box img{width:100%;height:auto;display:block;}
label{display:block;font-size:0.72rem;color:var(--text-muted);margin-bottom:5px;
  font-weight:600;}
input,select,textarea{
  width:100%;background:var(--surface-2);border:1px solid var(--border);color:var(--text);
  padding:9px 12px;border-radius:var(--radius-sm);font-size:0.9rem;font-family:var(--sans);
  transition:border-color .15s ease, box-shadow .15s ease;
}
input:hover,select:hover,textarea:hover{border-color:var(--border-light);}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-suave);}
textarea{min-height:100px;resize:vertical;line-height:1.5;}

.tabs{display:flex;gap:4px;margin-bottom:20px;flex-wrap:wrap;border-bottom:1px solid var(--border);}
.tab, .escudo-tab{padding:11px 18px;background:transparent;border:none;border-radius:6px 6px 0 0;cursor:pointer;
  font-weight:500;color:var(--text-muted);font-size:0.85rem;border-bottom:2px solid transparent;transition:color .15s ease, background .15s ease;}
.tab:hover, .escudo-tab:hover{color:var(--text);background:var(--surface-2);}
.tab.active, .escudo-tab.active{color:var(--accent);border-bottom-color:var(--accent);background:var(--surface-2);}

.section, .escudo-section{display:none;}
.section.active, .escudo-section.active{display:block;}

.resource-bar{height:8px;background:var(--surface-3);border-radius:4px;overflow:hidden;margin-top:8px;border:1px solid var(--border);}
.resource-fill{height:100%;background:linear-gradient(90deg, var(--success-2), var(--success));width:100%;transition:width .25s ease;}
.resource-fill.low{background:linear-gradient(90deg, var(--warning), #b8933d);}
.resource-fill.crit{background:linear-gradient(90deg, var(--danger-2), var(--danger));}
.resource-controls{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap;}
.resource-controls button{padding:6px 12px;font-size:0.8rem;min-width:44px;}

.attr-card{text-align:center;padding:14px;background:var(--surface-2);border:1px solid var(--border);transition:border-color .15s ease, transform .15s ease, box-shadow .15s ease;
  border-radius:var(--radius-sm);cursor:pointer;}
.attr-card:hover{border-color:var(--accent-dim);transform:translateY(-2px);box-shadow:0 4px 14px rgba(0,0,0,0.25);}
.attr-value{font-family:var(--mono);font-size:1.8rem;font-weight:600;color:var(--accent);margin:6px 0;}
.attr-controls{display:flex;justify-content:center;gap:6px;margin-top:10px;}
.attr-info{font-size:0.68rem;color:var(--text-dim);margin-top:5px;}

.skill-row{display:grid;grid-template-columns:1fr 200px 90px auto;align-items:center;padding:10px 14px;transition:border-color .15s ease, background .15s ease;
  margin:6px 0;border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--border);gap:14px;}
.skill-row:hover{border-color:var(--border-light);background:var(--surface-3);}
.skill-name{cursor:pointer;color:var(--text);text-decoration:none;font-weight:600;border-bottom:1px dotted var(--text-dim);}
.skill-name:hover{color:var(--accent);}
.skill-row-info{text-align:right;font-size:0.78rem;color:var(--text-muted);line-height:1.4;}
.skill-row-total{text-align:right;font-family:var(--mono);font-size:1.1rem;font-weight:700;color:var(--accent);white-space:nowrap;display:flex;flex-direction:column;align-items:flex-end;line-height:1.2;}
.skill-row-total::before{content:'Total';font-family:var(--sans);font-size:0.62rem;font-weight:600;color:var(--text-dim);}
.skill-row-controls{display:flex;gap:6px;justify-self:end;}
@media (max-width:760px){
  .skill-row{grid-template-columns:1fr auto;row-gap:8px;}
  .skill-row-info{grid-column:1 / -1;text-align:left;}
  .skill-row-total{order:1;}
}

.skill-input-row{display:flex;align-items:center;gap:10px;padding:10px 14px;margin:6px 0;
  border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--border);}
.skill-input-row input{width:60px;text-align:center;}

.hidden{display:none !important;}
.file-input{display:none;}

.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.75);
  display:flex;align-items:center;justify-content:center;z-index:1000;animation:overlayFadeIn .15s ease;}
.modal{background:var(--surface);border:1px solid var(--border-light);border-radius:var(--radius);
  padding:26px;max-width:640px;width:90%;max-height:85vh;overflow-y:auto;position:relative;animation:modalPopIn .18s cubic-bezier(0.16,1,0.3,1);}
.modal h2{margin-top:0;}
.modal-actions{display:flex;gap:10px;margin-top:22px;justify-content:flex-end;padding-top:16px;border-top:1px solid var(--border);}
.modal-close{position:absolute;top:14px;right:14px;z-index:2;background:var(--surface-3);border:1px solid var(--border);
  width:36px;height:36px;padding:0;border-radius:var(--radius-sm);cursor:pointer;color:var(--text-muted);
  transition:background .15s ease, color .15s ease, border-color .15s ease;
  display:flex;align-items:center;justify-content:center;line-height:1;box-sizing:border-box;}
.modal-close svg{pointer-events:none;transition:transform .2s ease;}
.modal-close:hover{background:var(--danger-2);color:var(--text);border-color:var(--danger);box-shadow:none;}
.modal-close:hover svg{transform:rotate(90deg);}
.modal-close:active{transform:none;}
.modal h2{padding-right:44px;}

.progress-item{display:flex;align-items:center;gap:12px;padding:10px 14px;margin:5px 0;
  border-left:2px solid var(--border-light);background:var(--surface-2);}
.progress-item.locked{opacity:0.45;}
.progress-item .lvl-badge{font-family:var(--mono);font-size:0.8rem;color:var(--accent);min-width:60px;}

.origin-selection{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:14px;margin-top:14px;}
.origin-option{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);transition:border-color .15s ease, transform .15s ease;
  padding:18px;cursor:pointer;}
.origin-option:hover{border-color:var(--border-light);transform:translateY(-2px);}
.origin-option.selected{border-color:var(--accent);background:var(--surface-3);}
.origin-option h4{margin:0 0 10px 0;color:var(--text);font-size:1rem;font-weight:700;}
.origin-option p{font-size:0.82rem;color:var(--text-muted);margin:5px 0;line-height:1.5;}
.origin-stats{display:flex;gap:8px;margin-top:10px;padding-top:10px;border-top:1px solid var(--border);flex-wrap:wrap;}
.origin-stat{background:var(--surface-3);padding:4px 9px;border-radius:var(--radius-sm);font-size:0.75rem;
  font-family:var(--mono);font-weight:600;border:1px solid var(--border);}
.origin-stat.pdv{color:var(--danger);}
.origin-stat.san{color:var(--info);}
.origin-stat.pde{color:var(--success);}
.origin-expanded{margin-top:14px;padding-top:14px;border-top:1px solid var(--border);}
.origin-expanded h5{color:var(--accent);margin:10px 0 6px;font-size:0.82rem;}
.origin-expanded p{font-size:0.83rem;color:var(--text-muted);line-height:1.5;margin:5px 0;}

.wizard-step{display:none;}
.wizard-step.active{display:block;}
.wizard-nav{display:flex;justify-content:space-between;margin-top:24px;padding-top:18px;border-top:1px solid var(--border);}

.attribute-values{display:flex;gap:10px;justify-content:center;margin:18px 0;flex-wrap:wrap;}
.attribute-value{width:54px;height:54px;display:flex;align-items:center;justify-content:center;
  background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);
  font-family:var(--mono);font-size:1.3rem;font-weight:600;cursor:pointer;}
.attribute-value:hover{border-color:var(--accent-dim);}
.attribute-value.selected{border-color:var(--accent);background:var(--surface-3);color:var(--accent);}
.attribute-value.used{opacity:0.25;cursor:not-allowed;}

.attribute-distribution{display:grid;grid-template-columns:repeat(auto-fill,minmax(115px,1fr));gap:12px;margin-top:18px;}
.attribute-dist-item{text-align:center;padding:14px;background:var(--surface-2);border:1px solid var(--border);}
.attribute-dist-item h4{margin:0 0 10px 0;font-size:0.78rem;}
.attribute-dist-item .value{font-family:var(--mono);font-size:1.9rem;font-weight:600;color:var(--accent);margin-bottom:10px;}
.btn-redistribute{margin-top:18px;width:100%;}

.overlay-modal{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.8);
  display:flex;align-items:center;justify-content:center;z-index:1000;animation:overlayFadeIn .15s ease;}
.big-modal{background:var(--surface);border:1px solid var(--border-light);border-radius:var(--radius);
  padding:26px;max-width:980px;width:95%;max-height:90vh;overflow-y:auto;position:relative;animation:modalPopIn .18s cubic-bezier(0.16,1,0.3,1);}
.lib-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;flex-wrap:wrap;
  gap:14px;padding-bottom:14px;padding-right:40px;border-bottom:1px solid var(--border);}
.lib-filters{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:18px;padding:10px;background:var(--surface-2);
  border:1px solid var(--border);}
.lib-filters button{padding:6px 13px;font-size:0.78rem;}
.lib-search{width:100%;margin-bottom:18px;}
.lib-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:14px;}

.item-card{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);margin:7px 0;overflow:hidden;transition:border-color .15s ease;}
.item-card:hover{border-color:var(--border-light);}
.item-header{padding:11px 14px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;background:var(--surface-3);}
.item-header:hover{background:var(--surface-2);}
.item-content{padding:14px;display:none;border-top:1px solid var(--border);}
.item-content.expanded{display:block;}
.item-detail{margin:7px 0;font-size:0.85rem;}
.item-detail strong{color:var(--accent);}

.mini-card{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:14px;transition:border-color .15s ease, transform .15s ease;}
.mini-card:hover{border-color:var(--border-light);transform:translateY(-2px);}
.mini-card h4{margin:0 0 8px 0;color:var(--text);font-size:0.98rem;font-weight:700;}
.mini-card p{font-size:0.82rem;color:var(--text-muted);margin:5px 0;}
.mini-card .desc{font-size:0.85rem;color:var(--text);margin:10px 0;line-height:1.5;}
.mini-card .cost{font-size:0.75rem;font-family:var(--mono);padding:3px 7px;border-radius:var(--radius-sm);display:inline-block;border:1px solid var(--border);}
.mini-card .cost.talent{color:var(--success);border-color:var(--success-2);}
.mini-card .cost.defect{color:var(--danger);border-color:var(--danger-2);}

.bonus-badge{display:inline-block;background:var(--surface-3);color:var(--accent);padding:2px 7px;
  border-radius:var(--radius-sm);font-size:0.7rem;margin-left:7px;font-family:var(--mono);border:1px solid var(--border);}
.flag-badge{display:inline-block;background:var(--surface-3);color:var(--danger);padding:2px 7px;
  border-radius:var(--radius-sm);font-size:0.7rem;margin-left:7px;border:1px solid var(--danger-2);}

.popover{position:absolute;background:var(--surface);border:1px solid var(--border-light);border-radius:var(--radius-sm);
  padding:14px;z-index:100;max-width:360px;pointer-events:auto;}
.popover h4{margin:0 0 8px 0;color:var(--accent);font-size:1rem;}
.popover p{font-size:0.83rem;margin:5px 0;color:var(--text-muted);line-height:1.5;}
.popover .value{font-family:var(--mono);font-size:1.1rem;color:var(--text);font-weight:600;
  background:var(--surface-2);padding:5px 10px;display:inline-block;margin:6px 0;border:1px solid var(--border);}

.derived-stat{background:var(--surface-2);padding:10px 14px;border-radius:var(--radius-sm);margin-top:8px;
  font-size:0.85rem;border:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;}
.derived-stat strong{color:var(--accent);}
.unarmed-damage{background:var(--surface-2);border:1px solid var(--border);padding:10px 14px;border-radius:var(--radius-sm);
  margin-top:8px;font-size:0.85rem;display:flex;justify-content:space-between;align-items:center;}

.notification{position:fixed;bottom:18px;right:18px;cursor:pointer;background:var(--surface-3);color:var(--text);
  padding:14px 20px;border-radius:var(--radius-sm);z-index:2000;max-width:380px;border:1px solid var(--accent-dim);
  border-left:3px solid var(--accent);box-shadow:0 10px 30px rgba(0,0,0,0.4);animation:notifyIn .25s cubic-bezier(0.16,1,0.3,1);}
.notification.error{border-left-color:var(--danger);}
.notification h4{margin:0 0 6px 0;font-size:0.9rem;color:var(--text);}
.notification p{margin:0;font-size:0.82rem;color:var(--text-muted);}
@keyframes notifyIn{from{opacity:0;transform:translateX(24px);}to{opacity:1;transform:translateX(0);}}

.ability-category{margin:16px 0;padding:14px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);}
.ability-category h4{color:var(--accent);margin:0 0 10px 0;font-size:0.78rem;
  border-bottom:1px solid var(--border);padding-bottom:8px;}
.ability-category .empty-note{color:var(--text-dim);font-size:0.82rem;font-style:italic;}

.tag{display:inline-block;padding:2px 7px;border-radius:var(--radius-sm);font-size:0.68rem;font-weight:600;
  margin-right:5px;border:1px solid var(--border);}
.tag.origin{color:var(--warning);border-color:var(--warning);}
.tag.passive{color:var(--success);border-color:var(--success);}
.tag.class{color:var(--accent);border-color:var(--accent);}
.tag.subclass{color:var(--info);border-color:var(--info);}
.tag.locked{color:var(--text-dim);border-color:var(--text-dim);}

.ability-item{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:14px;margin:8px 0;transition:border-color .15s ease;}
.ability-item:hover{border-color:var(--border-light);}
.ability-item h5{color:var(--text);font-size:0.95rem;font-weight:700;margin-bottom:6px;}
.ability-item p{font-size:0.85rem;color:var(--text-muted);line-height:1.5;}
.ability-item .ability-meta{margin-top:8px;font-size:0.75rem;color:var(--text-dim);}

.talent-defect-card{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);
  padding:14px;margin:8px 0;border-left:3px solid var(--success);}
.talent-defect-card.defect{border-left-color:var(--danger);}
.talent-defect-card h5{font-size:0.95rem;font-weight:700;margin-bottom:6px;display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;}
.talent-defect-card p{font-size:0.85rem;color:var(--text-muted);line-height:1.5;margin-top:6px;}
.talent-defect-card .choice-note{margin-top:8px;padding:8px 10px;background:var(--surface-3);border:1px solid var(--border);font-size:0.8rem;}
.balance-panel{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:16px;}
@media (max-width:700px){.balance-panel{grid-template-columns:repeat(2,1fr);}}
.balance-item{background:var(--surface-2);border:1px solid var(--border);padding:12px;text-align:center;}
.balance-item .num{font-family:var(--mono);font-size:1.4rem;font-weight:600;}
.balance-item .lbl{font-size:0.68rem;color:var(--text-muted);margin-top:4px;}
.balance-item.ok .num{color:var(--success);}
.balance-item.bad .num{color:var(--danger);}
.session-track{display:flex;align-items:center;gap:10px;margin-top:8px;flex-wrap:wrap;}

.modifier-row{display:flex;justify-content:space-between;align-items:center;padding:7px 10px;
  background:var(--surface-3);border:1px solid var(--border);border-radius:var(--radius-sm);margin-top:6px;font-size:0.82rem;gap:8px;}
.modifier-row .mval{font-family:var(--mono);font-weight:700;}
.modifier-row .mval.pos{color:var(--success);}
.modifier-row .mval.neg{color:var(--danger);}
.modifier-row .mtag{font-size:0.66rem;color:var(--text-dim);margin-left:6px;}
.resource-modlist{margin-top:8px;}
.resource-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:18px;}
.resource-head h3{margin:0;}

footer{margin-top:40px;padding:22px 24px;border-top:1px solid var(--border);}
.footer-inner{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px;}
.footer-credits{display:flex;flex-direction:column;gap:4px;font-size:0.78rem;color:var(--text-dim);}
.footer-credits strong{color:var(--text-muted);font-weight:600;}
.footer-discord{display:flex;align-items:center;gap:8px;color:var(--text-muted);text-decoration:none;
  font-size:0.82rem;font-weight:600;border:1px solid var(--border);padding:8px 14px;border-radius:var(--radius-sm);
  transition:color .15s ease, border-color .15s ease, background .15s ease, transform .15s ease;}
.footer-discord:hover{color:var(--accent);border-color:var(--accent-dim);background:var(--surface-2);transform:translateY(-1px);}

::-webkit-scrollbar{width:9px;height:9px;}
::-webkit-scrollbar-track{background:var(--surface-2);}
::-webkit-scrollbar-thumb{background:var(--border-light);}
::-webkit-scrollbar-thumb:hover{background:var(--accent-dim);}

/* ============================================================
   NUVEM: conta, perfil e campanhas
   ============================================================ */
.nuvem-conta{display:flex;align-items:center;gap:10px;}
.nuvem-conta:empty{display:none;}
header > div:last-child{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}

/* avatares */
.nv-avatar{width:32px;height:32px;border-radius:50%;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;
  background:var(--surface-3);border:1px solid var(--border-light);font-size:1rem;line-height:1;object-fit:cover;color:var(--accent);
  font-family:var(--serif);vertical-align:middle;}
.nv-avatar-sm{width:22px;height:22px;font-size:0.72rem;}
.nv-avatar-lg{width:44px;height:44px;font-size:1.35rem;}

/* botão da conta no topo */
.nv-conta-wrap{position:relative;}
.nv-conta-btn{display:flex;align-items:center;gap:9px;background:var(--surface-2);border:1px solid var(--border);
  padding:5px 12px 5px 6px;border-radius:999px;cursor:pointer;color:var(--text);text-align:left;}
.nv-conta-btn:hover{border-color:var(--accent-dim);}
.nv-conta-txt{display:flex;flex-direction:column;line-height:1.15;font-size:0.85rem;}
.nv-conta-txt strong{font-weight:600;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.nv-status{display:flex;align-items:center;gap:5px;font-size:0.7rem;color:var(--text-muted);}
.nv-status i{width:7px;height:7px;border-radius:50%;background:var(--text-dim);display:inline-block;}
.nv-status-ok i{background:var(--success);box-shadow:0 0 6px var(--success);}
.nv-status-saving i,.nv-status-loading i{background:var(--warning);animation:nvPulso 1s ease-in-out infinite;}
.nv-status-error i,.nv-status-offline i{background:var(--danger);}
.nv-status-error,.nv-status-offline{color:var(--danger);}
@keyframes nvPulso{50%{opacity:0.3;}}
.nv-menu{position:absolute;right:0;top:calc(100% + 8px);z-index:900;min-width:210px;background:var(--surface);
  border:1px solid var(--border-light);border-radius:var(--radius);box-shadow:0 12px 32px rgba(0,0,0,0.45);padding:6px;
  display:flex;flex-direction:column;gap:2px;}
.nv-menu button{background:transparent;border:none;text-align:left;padding:9px 12px;border-radius:var(--radius-sm);
  color:var(--text);font-size:0.86rem;box-shadow:none;}
.nv-menu button:hover{background:var(--surface-2);transform:none;}
.nv-menu .nv-menu-sair{color:var(--danger);}
.nv-menu-email{font-size:0.72rem;color:var(--text-dim);padding:6px 12px 8px;border-bottom:1px solid var(--border);margin-bottom:4px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}

/* textos auxiliares */
.nv-nota{color:var(--text-muted);font-size:0.84rem;line-height:1.5;}
.nv-nota-topo{margin:-6px 0 16px;}
.nv-carregando{color:var(--text-muted);text-align:center;padding:30px;font-size:0.9rem;grid-column:1 / -1;}
.nv-carregando::before{content:'';display:inline-block;width:14px;height:14px;margin-right:10px;vertical-align:-2px;
  border:2px solid var(--accent-dim);border-top-color:var(--accent);border-radius:50%;animation:nvGira .8s linear infinite;}
@keyframes nvGira{to{transform:rotate(360deg);}}
.nv-erro{color:var(--danger);font-size:0.82rem;min-height:1.2em;margin-top:10px;}
.nv-contador{font-family:var(--mono);font-size:0.72rem;color:var(--text-muted);background:var(--surface-2);
  border:1px solid var(--border);border-radius:999px;padding:2px 9px;margin-left:8px;vertical-align:middle;letter-spacing:0.04em;}
.nv-contador:empty{display:none;}
.nv-contador.cheio{color:var(--warning);border-color:var(--warning);}
.nv-titulo-linha{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap;}
.nv-titulo-linha h2{flex:1;min-width:220px;}
.nv-codigo-mini{font-family:var(--mono);letter-spacing:0.1em;color:var(--accent);}
.nv-input-codigo{text-transform:uppercase;font-family:var(--mono);letter-spacing:0.12em;}
.nv-acoes{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px;}
.nv-hero{text-align:center;padding:36px 24px;}
.nv-hero h2{border:none;padding:0;}
.nv-hero h2::before{display:none;}
.nv-hero p{color:var(--text-muted);max-width:560px;margin:0 auto;line-height:1.6;}
.nv-hero .nv-acoes{justify-content:center;}
#screenCampanhas .card,#screenCampanhaJogador .card,#escudoJogadores .card{margin-bottom:18px;}

/* cartões de campanha */
.nv-camp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;}
.nv-camp-card{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);padding:0;
  cursor:pointer;position:relative;transition:border-color .18s ease, transform .18s ease, box-shadow .18s ease;
  display:flex;flex-direction:column;min-height:130px;}
.nv-camp-corpo{padding:16px 18px;display:flex;flex-direction:column;gap:6px;flex:1;}
.nv-camp-nova{padding:18px;gap:6px;}
.nv-camp-card:hover,.nv-camp-card:focus-visible{border-color:var(--accent);transform:translateY(-3px);box-shadow:0 10px 24px rgba(0,0,0,0.3);outline:none;}
.nv-camp-card h4{color:var(--text);font-size:1rem;margin:4px 0 2px;overflow-wrap:anywhere;}
.nv-camp-card p{font-size:0.8rem;color:var(--text-muted);margin:0;display:flex;align-items:center;gap:6px;}
.nv-camp-sub{margin-top:auto !important;color:var(--text-dim) !important;}
.nv-camp-tag{align-self:flex-start;font-size:0.62rem;font-weight:700;
  color:var(--text-muted);border:1px solid var(--border-light);border-radius:999px;padding:2px 8px;}
.nv-camp-tag.gm{color:var(--accent);border-color:var(--accent-dim);}
.nv-camp-nova{cursor:default;border-style:dashed;justify-content:center;}
.nv-camp-nova:hover{transform:none;box-shadow:none;border-color:var(--border-light);}
.nv-camp-nova h4{color:var(--accent);}
.nv-camp-nova input{margin:4px 0;}
.nv-camp-nova.desativada{opacity:0.55;}
.nv-camp-mestre{display:flex;align-items:center;gap:6px;}

/* cabeçalho da campanha */
.nuvem-painel{margin-bottom:16px;padding:14px 18px;border-left:3px solid var(--accent-dim);}
.nv-cab{display:flex;align-items:center;gap:18px;flex-wrap:wrap;}
.nv-cab-titulo{flex:1;min-width:180px;}
.nv-cab-titulo h3{margin:2px 0 0;color:var(--text);font-family:var(--serif);font-weight:400;font-size:1.25rem;overflow-wrap:anywhere;}
.nv-cab-titulo .nv-nota{margin-top:2px;}
.nv-cab-rotulo{font-size:0.64rem;color:var(--text-dim);font-weight:700;}
.nv-cab-codigo{display:flex;align-items:center;gap:10px;background:var(--surface-2);border:1px solid var(--border);
  border-radius:var(--radius-sm);padding:6px 8px 6px 12px;}
.nv-cab-codigo span{font-size:0.66rem;color:var(--text-dim);}
.nv-cab-codigo strong{font-family:var(--mono);font-size:1.2rem;letter-spacing:0.16em;color:var(--accent);}
.nv-cab-acoes{display:flex;gap:8px;flex-wrap:wrap;}

/* participantes */
.nv-membros{display:flex;flex-wrap:wrap;gap:10px;}
.nv-membro{display:flex;align-items:center;gap:9px;background:var(--surface-2);border:1px solid var(--border);
  border-radius:999px;padding:5px 8px 5px 5px;}
.nv-membro span{display:flex;flex-direction:column;line-height:1.2;font-size:0.84rem;padding-right:4px;}
.nv-membro small{font-size:0.7rem;color:var(--text-dim);}
.nv-membro-x{background:transparent;border:none;color:var(--text-dim);font-size:1.1rem;padding:0 6px;line-height:1;box-shadow:none;}
.nv-membro-x:hover{color:var(--danger);background:transparent;transform:none;}
.nv-ao-vivo{display:flex;align-items:center;gap:6px;font-size:0.7rem;color:var(--success);}
.nv-ao-vivo i{width:7px;height:7px;border-radius:50%;background:var(--success);box-shadow:0 0 8px var(--success);animation:nvPulso 1.6s ease-in-out infinite;}

/* cartões de ficha */
.nv-fichas-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px;}
.nv-ficha-card{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);padding:14px;
  display:flex;flex-direction:column;gap:8px;transition:border-color .18s ease;}
.nv-ficha-card:hover{border-color:var(--border-light);}
.nv-ficha-topo{display:flex;gap:12px;align-items:center;margin-bottom:4px;}
.nv-ficha-img{width:52px;height:52px;border-radius:var(--radius-sm);object-fit:cover;border:1px solid var(--border-light);flex-shrink:0;}
.nv-ficha-img-vazia{display:flex;align-items:center;justify-content:center;background:var(--surface-3);color:var(--accent);
  font-family:var(--serif);font-size:1.4rem;}
.nv-ficha-info{min-width:0;}
.nv-ficha-info h4{margin:0 0 2px;font-size:0.98rem;color:var(--text);overflow-wrap:anywhere;}
.nv-ficha-info p{margin:0;font-size:0.76rem;color:var(--text-muted);display:flex;align-items:center;gap:5px;}
.nv-ficha-dono{color:var(--text-dim) !important;}
.nv-barra{display:grid;grid-template-columns:36px 1fr auto;align-items:center;gap:8px;font-size:0.72rem;}
.nv-barra-rot{color:var(--text-dim);font-weight:700;letter-spacing:0.06em;}
.nv-barra-num{font-family:var(--mono);color:var(--text-muted);min-width:48px;text-align:right;}
.nv-barra-trilho{height:7px;background:var(--surface-3);border-radius:999px;overflow:hidden;border:1px solid var(--border);}
.nv-barra-trilho div{height:100%;border-radius:999px;transition:width .35s ease;}
.nv-barra.hp .nv-barra-trilho div{background:linear-gradient(90deg,#9c453b,#d0604f);}
.nv-barra.sta .nv-barra-trilho div{background:linear-gradient(90deg,#3f7d4f,#5fb071);}
.nv-barra.san .nv-barra-trilho div{background:linear-gradient(90deg,#3d5f9a,#4a8fe0);}
.nv-ficha-botoes{display:flex;gap:8px;flex-wrap:wrap;margin-top:4px;}
.nv-enviar-linha{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:16px;padding-top:14px;border-top:1px solid var(--border);}
.nv-enviar-linha select{width:auto;min-width:200px;flex:0 1 260px;}

/* painel dentro da ficha */
.nv-linha{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.nv-linha p{margin:0;font-size:0.86rem;flex:1;min-width:200px;display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.nv-linha select,.nv-linha input{width:auto;min-width:150px;flex:0 1 200px;}
.nv-selo{font-size:0.62rem;font-weight:700;color:var(--accent);
  border:1px solid var(--accent-dim);border-radius:999px;padding:3px 9px;white-space:nowrap;}
.nv-selo-apagado{color:var(--text-dim);border-color:var(--border-light);}
.nv-ou{color:var(--text-dim);font-size:0.78rem;}

/* modais de login e perfil */
.nv-modal-login,.nv-modal-perfil{max-width:420px;}
.nv-google{width:100%;display:flex;align-items:center;justify-content:center;gap:10px;background:#fff;color:#1f1f1f;
  border:1px solid #dadce0;font-weight:600;padding:11px;}
.nv-google:hover{background:#f2f2f2;color:#1f1f1f;}
.nv-divisor{display:flex;align-items:center;gap:12px;margin:18px 0 10px;color:var(--text-dim);font-size:0.74rem;}
.nv-divisor::before,.nv-divisor::after{content:'';flex:1;height:1px;background:var(--border);}
.nv-login-abas{margin-bottom:14px;}
.nv-form label{margin-top:10px;}
.nv-form-acoes{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:12px;}
.nv-link{background:transparent;border:none;color:var(--accent);padding:0;font-size:0.8rem;box-shadow:none;}
.nv-link:hover{background:transparent;text-decoration:underline;transform:none;}
.nv-modal-perfil label{margin-top:14px;}

@media (max-width:600px){
  .nv-conta-txt strong{max-width:90px;}
  .nv-cab{gap:12px;}
  .nv-cab-codigo{width:100%;justify-content:space-between;}
  .nv-linha select,.nv-linha input,.nv-enviar-linha select{flex:1 1 100%;}
  .nv-menu{right:auto;left:0;}
}
.nv-camp-grid + .nv-nota{margin-top:12px;}

/* ============================================================
   AJUSTES DE INTERAÇÃO
   ============================================================ */
/* Elementos que "sobem" no hover ganham uma faixa invisível embaixo,
   assim não ficam piscando quando o mouse está bem na borda. */
.catalog-card,.nv-camp-card,.mini-card,.origin-option,.attr-card,.footer-discord{position:relative;}
.catalog-card::after,.nv-camp-card::after,.mini-card::after,.origin-option::after,.attr-card::after,.footer-discord::after{
  content:'';position:absolute;left:0;right:0;top:100%;height:6px;}
/* abas não ganham sombra de botão */
.tab:hover,.escudo-tab:hover,.tab:active,.escudo-tab:active{box-shadow:none;transform:none;}
/* botão de remover participante com área de clique decente */
.nv-membro-x{width:28px;height:28px;padding:0;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.15rem;}
.nv-membro-x:hover{background:var(--danger-2);color:var(--text);box-shadow:none;}
/* foco visível pelo teclado em tudo que é clicável */
.nv-camp-card:focus-visible,.catalog-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
/* notificação */
.notification{animation:nvToastIn .25s cubic-bezier(0.16,1,0.3,1);}
@keyframes nvToastIn{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:translateY(0);}}
@media (max-width:600px){.notification{left:12px;right:12px;bottom:12px;max-width:none;}}
/* avatar com foto: se a imagem falhar, aparece a inicial por baixo */
.nv-avatar{position:relative;overflow:hidden;}
.nv-avatar img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
/* editor de foto do perfil */
.nv-perfil-foto{display:flex;align-items:center;gap:16px;margin-top:6px;}
.nv-avatar-xl{width:84px;height:84px;font-size:2.2rem;border-width:2px;}
.nv-perfil-foto-botoes{display:flex;flex-direction:column;gap:8px;align-items:flex-start;}
.nv-perfil-foto-botoes .nv-nota{margin:0;font-size:0.74rem;}

/* ============================================================
   CAMPANHAS v3: capa, pedidos, NPCs, convite, configurações
   ============================================================ */
.nv-capa{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;background:var(--surface-3);}
.nv-camp-card .nv-capa{border-radius:calc(var(--radius) - 1px) calc(var(--radius) - 1px) 0 0;border-bottom:1px solid var(--border);}
.nv-camp-tags{display:flex;gap:6px;flex-wrap:wrap;}
.nv-camp-tag.alerta{color:var(--warning);border-color:var(--warning);}
.nv-camp-pendente{cursor:default;border-style:dashed;}
.nv-camp-pendente:hover{transform:none;box-shadow:none;border-color:var(--border-light);}
.nv-camp-pendente button{align-self:flex-start;margin-top:6px;}
.nv-cab-foto{width:88px;height:50px;object-fit:cover;border-radius:var(--radius-sm);border:1px solid var(--border-light);}
.nv-descricao{color:var(--text);font-size:0.88rem;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere;
  background:var(--surface-2);border:1px solid var(--border);border-left:3px solid var(--accent-dim);border-radius:var(--radius-sm);
  padding:10px 14px;margin:6px 0 14px;}
.nv-regras{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:14px;}
.nv-pedidos{border-color:var(--warning);}
.nv-pedidos-lista{display:flex;flex-direction:column;gap:8px;}
.nv-pedido{display:flex;align-items:center;gap:10px;background:var(--surface-2);border:1px solid var(--border);
  border-radius:var(--radius-sm);padding:8px 10px;flex-wrap:wrap;}
.nv-pedido strong{flex:1;min-width:120px;}
.nv-acoes-topo{margin:0 0 16px;align-items:center;}
.nv-acoes-topo select{width:auto;min-width:180px;flex:0 1 240px;}
.nv-cab-jogador{padding:0;}
.nv-cab-jogador .nv-cab{padding:18px 22px 0;}
.nv-cab-jogador .nv-descricao{margin:14px 22px 20px;}
.nv-cab-jogador > .nv-cab:last-child{padding-bottom:18px;}
.nv-capa-topo{max-height:260px;border-bottom:1px solid var(--border);}
.nv-convite{max-width:620px;margin:0 auto;padding:0 0 22px;text-align:left;}
.nv-convite > :not(.nv-capa){margin-left:24px;margin-right:24px;}
.nv-convite > .nv-cab-rotulo{display:block;margin-top:22px;}
.nv-convite h2{margin-top:4px;}
.nv-convite .nv-acoes{margin-top:14px;}
.nv-modal-cfg{max-width:560px;}
.nv-modal-cfg > label{margin-top:16px;}
.nv-modal-cfg textarea{resize:vertical;min-height:90px;}
.nv-cfg-capa{display:flex;gap:16px;align-items:center;flex-wrap:wrap;}
.nv-cfg-capa-preview{width:220px;aspect-ratio:16/9;border-radius:var(--radius-sm);border:1px dashed var(--border-light);
  background:var(--surface-2);display:flex;align-items:center;justify-content:center;overflow:hidden;color:var(--text-dim);font-size:0.8rem;}
.nv-cfg-capa-preview img{width:100%;height:100%;object-fit:cover;}
.nv-opcoes{display:flex;flex-direction:column;gap:8px;}
.nv-opcao{display:flex;gap:10px;align-items:flex-start;cursor:pointer;background:var(--surface-2);border:1px solid var(--border);
  border-radius:var(--radius-sm);padding:10px 12px;margin:0;text-transform:none;letter-spacing:normal;font-size:0.86rem;color:var(--text);}
.nv-opcao:hover{border-color:var(--border-light);}
.nv-opcao:has(input:checked){border-color:var(--accent);background:var(--accent-fraco);}
.nv-opcao input{width:auto;margin-top:3px;accent-color:var(--accent);}
.nv-opcao span{display:flex;flex-direction:column;gap:2px;}
.nv-opcao small{color:var(--text-muted);font-size:0.76rem;}
#nvCfgLink{font-family:var(--mono);font-size:0.78rem;}

/* ficha somente leitura */
.nv-somente-leitura .card:not(.nuvem-painel) :is(input,textarea,select,button:not(.tab)){pointer-events:none;}
.nv-somente-leitura .card:not(.nuvem-painel) :is(input,textarea,select):disabled{opacity:0.85;cursor:default;}
.nv-somente-leitura .card:not(.nuvem-painel) button:not(.tab){opacity:0.4;}

/* escudo: grupos recolhíveis e seletor com abas */
.escudo-grupo-cab{display:flex;align-items:center;gap:10px;width:100%;background:transparent;border:none;border-bottom:1px solid var(--border);
  border-radius:0;padding:10px 4px;margin:6px 0 10px;color:var(--text-muted);font-size:0.74rem;font-weight:700;
  box-shadow:none;text-align:left;}
.escudo-grupo-cab:hover{background:transparent;color:var(--text);box-shadow:none;}
.escudo-grupo-seta{width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:6px solid currentColor;transition:transform .15s ease;}
.escudo-grupo-cab.fechado .escudo-grupo-seta{transform:rotate(-90deg);}
.escudo-grupo-n{font-family:var(--mono);font-size:0.68rem;font-weight:400;letter-spacing:0.04em;color:var(--text-dim);
  background:var(--surface-2);border:1px solid var(--border);border-radius:999px;padding:1px 7px;margin-left:auto;}
.tab .escudo-grupo-n{margin-left:6px;}
.escudo-picker-cab{margin-bottom:14px;}
.escudo-picker-abas{margin-bottom:12px;flex-wrap:wrap;}
.escudo-picker-linha{display:flex;gap:10px;align-items:center;flex-wrap:wrap;}
.escudo-picker-busca{flex:1;min-width:180px;}

@media (max-width:600px){
  .nv-cab-foto{display:none;}
  .nv-cfg-capa-preview{width:100%;}
  .nv-convite > :not(.nv-capa){margin-left:16px;margin-right:16px;}
}
.nv-opcao small{font-weight:400;}
.nv-opcao strong{font-weight:600;}
.nv-linha #nvCfgLink{flex:1 1 240px;min-width:0;}

/* ============================================================
   TEMA "AZUL DE PEDRA"
   Ardósia, aço e branco gelo, pouco saturados.
   Regras: menos caixas dentro de caixas, destaque em latão só
   no que é clicável ou importante, ilustração só no topo do Hub.
   ============================================================ */
html{font-size:17px;}
body{
  font-family:var(--sans);
  font-feature-settings:"lnum" 1, "tnum" 1;
  background:var(--bg);
  color:var(--text);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
::selection{background:var(--accent-forte);color:var(--text);}

/* títulos */
h1{font-family:var(--serif);font-weight:700;font-size:1.6rem;color:var(--text);letter-spacing:0;text-shadow:none;line-height:1.1;}
h1 small{font-family:var(--sans);font-size:0.78rem;color:var(--text-dim);letter-spacing:0;margin-top:3px;font-weight:400;}
h2{font-family:var(--serif);font-weight:500;font-size:1.35rem;color:var(--text);letter-spacing:0;
  border-bottom:none;padding:0;margin-bottom:14px;}
h2::before{display:none;}
h3{font-family:var(--serif);font-weight:500;font-size:1.1rem;}
h4{font-size:0.95rem;color:var(--text);font-weight:600;}

/* topo (masthead) */
header{
  background:transparent;border:none;border-bottom:1px solid var(--border);border-radius:0;box-shadow:none;
  padding:6px 2px 18px;margin-bottom:28px;position:relative;
}
header img{filter:none !important;}

/* cartões: um nível só de moldura */
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:26px;box-shadow:none;overflow:visible;}
.card::before{display:none;}
.card:hover{border-color:var(--border);box-shadow:none;}

/* campos */
label{font-size:0.84rem;font-weight:500;color:var(--text-muted);letter-spacing:0;margin-bottom:5px;}
input,select,textarea{background:var(--bg-2);border:1px solid var(--border);font-family:var(--sans);font-size:0.95rem;color:var(--text);}
input:hover,select:hover,textarea:hover{border-color:var(--border-light);}
input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-suave);}
input::placeholder,textarea::placeholder{color:var(--text-dim);}

/* botões */
button{background:var(--surface-3);border:1px solid transparent;color:var(--text);font-family:var(--sans);font-size:0.9rem;font-weight:500;box-shadow:none;}
button:hover{background:var(--hover);border-color:transparent;box-shadow:none;}
button.primary{background:var(--accent);border-color:var(--accent);color:var(--ink);font-weight:700;box-shadow:none;}
button.primary:hover{background:var(--accent-2);border-color:var(--accent-2);box-shadow:none;}
button.ghost{background:transparent;border:1px solid var(--accent-dim);color:var(--accent);font-weight:600;}
button.ghost:hover{background:var(--accent-suave);border-color:var(--accent);color:var(--accent-2);}
button.danger{background:var(--danger-2);border-color:var(--danger-2);color:var(--ink-claro);}
button.danger:hover{background:var(--danger);border-color:var(--danger);box-shadow:none;}
button.success{background:var(--success-2);border-color:var(--success-2);color:var(--ink-claro);}
button.success:hover{background:var(--success);box-shadow:none;}
button.small{font-size:0.82rem;padding:5px 11px;}
button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}

/* abas */
.tabs{border-bottom:1px solid var(--border);gap:2px;}
.tab,.escudo-tab{font-size:0.95rem;color:var(--text-muted);border-radius:0;padding:10px 16px;background:transparent;}
.tab:hover,.escudo-tab:hover{color:var(--text);background:transparent;}
.tab.active,.escudo-tab.active{color:var(--text);background:transparent;border-bottom:2px solid var(--accent);font-weight:600;}

/* ficha: atributos, perícias e derivados sem moldura própria */
.attr-card{background:var(--surface-2);border:none;border-radius:var(--radius-sm);}
.attr-card:hover{border:none;box-shadow:none;}
.attr-value{font-family:var(--serif);color:var(--text);font-weight:700;font-size:2rem;}
.attr-info{color:var(--text-dim);}
.skill-row{background:transparent;border:none;border-bottom:1px solid var(--border);border-radius:0;margin:0;padding:11px 6px;}
.skill-row:last-child{border-bottom:none;}
.skill-row:hover{background:var(--surface-2);border-color:var(--border);}
.skill-name{border-bottom:1px dotted var(--text-dim);}
.skill-name:hover{color:var(--accent-2);}
.skill-row-total{color:var(--text);font-family:var(--serif);font-size:1.25rem;}
.skill-row-total::before{letter-spacing:0;font-size:0.7rem;}
.derived-stat{background:transparent;border:none;border-bottom:1px dashed var(--border);border-radius:0;margin-top:0;padding:9px 2px;font-size:0.92rem;}
.derived-stat:last-child{border-bottom:none;}
.derived-stat strong{color:var(--text);font-weight:600;}
.ability-category{background:transparent;border:none;border-top:1px solid var(--border);border-radius:0;padding:16px 0 4px;margin:0;}
.ability-category:first-of-type{border-top:none;padding-top:4px;}
.ability-category h4{font-family:var(--serif);font-size:1.05rem;color:var(--text);font-weight:500;margin-bottom:8px;}
.ability-item{background:var(--surface-2);border:none;}
.ability-item:hover{border:none;}
.item-card{background:var(--surface-2);border:none;}
.mini-card{background:var(--surface-2);border:1px solid transparent;}
.mini-card:hover{border-color:var(--border-light);transform:none;}
.balance-item{background:var(--surface-2);border:none;border-radius:var(--radius-sm);}
.balance-item .num{font-family:var(--serif);}
.progress-item{border-left-color:var(--accent-dim);}
.tag{letter-spacing:0;font-size:0.75rem;font-weight:600;border-radius:999px;padding:1px 9px;}
.resource-bar{height:7px;border:none;background:var(--bg-2);border-radius:999px;}
.resource-fill{background:var(--success);border-radius:999px;}
.char-thumbnail,.char-portrait-box{border-color:var(--border-light);background:var(--bg-2);}
.origin-option{background:var(--surface-2);border-color:transparent;}
.origin-option:hover{border-color:var(--border-light);transform:none;}
.origin-option.selected{border-color:var(--accent);background:var(--accent-fraco);}
.attribute-value.selected{border-color:var(--accent);}

/* modais e notificações */
.modal,.big-modal{background:var(--surface);border:1px solid var(--border-light);box-shadow:0 24px 60px rgba(0,0,0,0.5);}
.modal-overlay,.overlay-modal{background:rgba(8,11,17,0.8);}
.notification{background:var(--surface-3);border:1px solid var(--border-light);border-left:3px solid var(--accent);color:var(--text);}
.notification.error{border-left-color:var(--danger);}
.popover{background:var(--surface-3);border-color:var(--border-light);}

/* cartões do Hub: sem pulo, ícone de traço */
.catalog-card{background:var(--surface-2);border:1px solid transparent;text-align:left;padding:22px 22px 20px;}
.catalog-card:hover{border-color:var(--accent-dim);transform:none;box-shadow:none;background:var(--hover);}
.catalog-card .catalog-icon{width:auto;height:auto;margin:0 0 14px;background:none;border:none;border-radius:0;justify-content:flex-start;color:var(--accent);}
.catalog-card .catalog-icon svg{width:34px;height:34px;display:block;}
.catalog-card h4{font-family:var(--serif);font-weight:500;font-size:1.25rem;color:var(--text);margin-bottom:4px;}
.catalog-card p{color:var(--text-muted);font-size:0.9rem;}
.catalog-card::after{display:none;}

/* rodapé */
footer{border-top:1px solid var(--border);}
.footer-discord{background:transparent;border-color:var(--border);}

/* barras das campanhas com a paleta nova */
.nv-barra.hp .nv-barra-trilho div{background:var(--danger);}
.nv-barra.sta .nv-barra-trilho div{background:var(--success);}
.nv-barra.san .nv-barra-trilho div{background:var(--info);}
.nv-barra-trilho{background:var(--bg-2);border:none;}
.nv-barra-rot{letter-spacing:0;}

/* partes da nuvem sem maiúsculas e mais leves */
.nv-camp-card{background:var(--surface-2);border-color:transparent;}
.nv-camp-card:hover,.nv-camp-card:focus-visible{transform:none;box-shadow:none;border-color:var(--accent-dim);}
.nv-camp-card::after{display:none;}
.nv-camp-card h4{font-family:var(--serif);font-weight:500;font-size:1.2rem;}
.nv-camp-tag{font-size:0.75rem;font-weight:600;padding:1px 9px;}
.nv-camp-nova{background:transparent;border:1px dashed var(--border-light);}
.nv-selo{font-size:0.75rem;font-weight:600;padding:2px 10px;}
.nv-cab-rotulo{font-size:0.8rem;font-weight:500;color:var(--text-dim);}
.nv-cab-titulo h3{font-family:var(--serif);font-weight:500;font-size:1.4rem;}
.nv-cab-codigo{background:var(--bg-2);border-color:var(--border);}
.nv-cab-codigo span{font-size:0.78rem;}
.nv-cab-codigo strong{font-family:var(--sans);font-weight:700;letter-spacing:0.18em;}
.nv-ao-vivo{font-size:0.8rem;letter-spacing:0;}
.nuvem-painel{border-left:3px solid var(--accent-dim);padding:12px 18px;}
.nv-ficha-card,.nv-membro,.nv-pedido{background:var(--surface-2);border-color:transparent;}
.nv-ficha-info h4{font-family:var(--serif);font-weight:500;font-size:1.1rem;}
.nv-descricao{background:transparent;border:none;border-left:2px solid var(--accent-dim);border-radius:0;padding:4px 0 4px 14px;color:var(--text-muted);font-family:var(--serif);font-size:1rem;}
.nv-conta-btn{background:transparent;border-color:var(--border);}
.nv-conta-btn:hover{background:var(--surface-2);border-color:var(--border-light);}
.nv-contador{font-family:var(--sans);font-size:0.78rem;}
.escudo-grupo-cab{font-family:var(--serif);font-size:1rem;font-weight:500;letter-spacing:0;color:var(--text-muted);}
.escudo-grupo-n{font-family:var(--sans);font-size:0.75rem;}
.nv-avatar{font-family:var(--serif);}
.nv-codigo-mini{font-family:var(--sans);font-weight:700;letter-spacing:0.12em;}

/* rolagem */
::-webkit-scrollbar-thumb{background:var(--border-light);}
::-webkit-scrollbar-track{background:var(--bg);}

/* ============================================================
   HUB: mapa de reconhecimento (única peça decorativa grande)
   ============================================================ */
.hero-card{
  position:relative;overflow:hidden;text-align:left;padding:0;
  background:var(--surface);border:1px solid var(--border);
  display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);min-height:340px;
}
.hero-inner{align-items:flex-start;padding:42px 40px;position:relative;z-index:1;justify-content:center;}
.hero-logo{width:52px;height:52px;margin-bottom:18px;filter:none;}
.hero-titulo{font-family:var(--serif);font-weight:700;font-size:3.1rem;line-height:1;margin:0 0 10px;color:var(--text);}
.hero-sub{font-family:var(--serif);font-style:italic;font-size:1.2rem;color:var(--accent);margin-bottom:18px;}
.hero-texto{color:var(--text-muted);font-size:1rem;line-height:1.7;max-width:34em;}
.hero-mapa{position:relative;border-left:1px solid var(--border);background:var(--bg-2);color:var(--text-dim);min-height:260px;}
.hero-mapa svg{position:absolute;inset:0;width:100%;height:100%;}
.hero-mapa .grade{stroke:var(--border);stroke-width:1;opacity:0.8;}
.hero-mapa text{font-family:var(--sans);font-size:11px;fill:var(--text-dim);}
.hero-mapa .curva{fill:none;stroke:var(--border-light);stroke-width:1.1;opacity:0.7;}
.hero-mapa .campos circle{fill:var(--text-dim);opacity:0.7;}
.hero-mapa .estrada{stroke:var(--border-light);stroke-width:1.2;stroke-dasharray:3 4;}
.hero-mapa .rio{fill:none;stroke:var(--info);stroke-width:2.4;stroke-linecap:round;opacity:0.75;}
.hero-mapa .muro-sombra{fill:none;stroke:var(--bg);stroke-width:9;opacity:0.55;}
.hero-mapa .ameias{fill:none;stroke:var(--text-muted);stroke-width:2.2;stroke-dasharray:1.6 2.6;opacity:0.55;}
.hero-mapa .muro{fill:none;stroke:var(--text);stroke-width:2.6;stroke-linecap:round;}
.hero-mapa .muro-interno{fill:none;stroke:var(--text-muted);stroke-width:0.9;opacity:0.6;}
.hero-mapa .distrito-fundo{fill:var(--surface-2);}
.hero-mapa .casa{fill:var(--text-muted);opacity:0.8;}
.hero-mapa .palacio{fill:var(--surface-2);stroke:var(--text);stroke-width:1.6;}
.hero-mapa .rosa{fill:none;stroke:var(--border-light);}
.hero-mapa .norte{fill:var(--text);}
.hero-mapa .rosa-sul{fill:var(--border-light);}
.hero-mapa .mapa-luz-a{stop-color:var(--surface-3);stop-opacity:0.9;}
.hero-mapa .mapa-luz-b{stop-color:var(--bg-2);stop-opacity:0;}
@media (prefers-reduced-motion:no-preference){
  .hero-mapa .muro{stroke-dasharray:1 1;animation:muroDesenha 1.6s cubic-bezier(.45,.05,.25,1) both;}
  @keyframes muroDesenha{from{stroke-dashoffset:1;}to{stroke-dashoffset:0;}}
}
@media (max-width:820px){
  .hero-card{grid-template-columns:1fr;}
  .hero-mapa{border-left:none;border-top:1px solid var(--border);min-height:200px;}
  .hero-inner{padding:30px 24px;}
  .hero-titulo{font-size:2.4rem;}
}
@media (max-width:600px){
  html{font-size:16px;}
  .card{padding:18px;}
  header{padding-bottom:14px;margin-bottom:20px;}
}
@media (prefers-reduced-motion:reduce){
  *{animation-duration:0.01ms !important;transition-duration:0.01ms !important;}
}
.nv-input-codigo::placeholder{text-transform:none;letter-spacing:0;font-family:var(--sans);}
.card.hero-card{padding:0;}
.empty-note{color:var(--text-muted);font-size:0.95rem;}
.card > h3:first-child{margin-top:0;}
/* ações destrutivas discretas: vermelho só no texto até passar o mouse */
.nv-cab-acoes button.danger,.nv-ficha-botoes button.danger{background:transparent;color:var(--danger);border-color:var(--danger-2);}
.nv-cab-acoes button.danger:hover,.nv-ficha-botoes button.danger:hover{background:var(--danger-2);color:var(--ink-claro);}

/* ============================================================
   LIANDRY
   ============================================================ */
body.no-hub .btn-hub{display:none;}
.liandry-cab{padding:34px 34px 30px;border-top:2px solid var(--accent-dim);}
.liandry-serie{font-family:var(--serif);font-style:italic;color:var(--accent);font-size:1.05rem;margin-bottom:2px;}
.liandry-titulo{font-family:var(--serif);font-weight:700;font-size:2.6rem;line-height:1.05;margin:0 0 12px;}
.liandry-sub{color:var(--text-muted);max-width:38em;font-size:1.02rem;margin-bottom:20px;}
.liandry-playlist{display:inline-flex;align-items:center;gap:8px;color:var(--accent);text-decoration:none;font-weight:600;
  border:1px solid var(--accent-dim);border-radius:var(--radius-sm);padding:8px 14px;transition:background .15s ease,border-color .15s ease;}
.liandry-playlist:hover{background:var(--accent-suave);border-color:var(--accent);color:var(--accent-2);}
.episodios{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px;}
.episodio{background:var(--surface-2);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;}
.episodio-video{position:relative;aspect-ratio:16/9;background:var(--bg-2);}
.episodio-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}
.episodio-play{position:absolute;inset:0;width:100%;height:100%;padding:0;border:0;border-radius:0;background:var(--bg-2);cursor:pointer;display:block;}
.episodio-play:hover{background:var(--bg-2);}
.episodio-play img{width:100%;height:100%;object-fit:cover;display:block;opacity:0.85;transition:opacity .2s ease;}
.episodio-play:hover img{opacity:1;}
.episodio-play-icone{position:absolute;left:50%;top:50%;width:62px;height:62px;margin:-31px 0 0 -31px;border-radius:50%;
  background:rgba(16,23,34,0.78);border:1.5px solid rgba(229,234,241,0.75);display:flex;align-items:center;justify-content:center;transition:background .2s ease;}
.episodio-play-icone svg{width:26px;height:26px;fill:var(--text);margin-left:3px;}
.episodio-play:hover .episodio-play-icone{background:rgba(61,82,113,0.95);}
.episodio-info{padding:14px 18px 18px;}
.episodio-num{font-size:0.85rem;color:var(--text-dim);margin-bottom:2px;}
.episodio-info h3{margin:0 0 8px;font-size:1.25rem;}
.episodio-info a{color:var(--accent);font-size:0.92rem;text-decoration:none;}
.episodio-info a:hover{text-decoration:underline;}
.liandry-ano{font-family:var(--serif);font-style:italic;color:var(--accent);font-size:1.05rem;margin-bottom:0;}
.liandry-texto{max-width:44em;}
.liandry-texto p{font-family:var(--serif);font-size:1.12rem;line-height:1.8;color:var(--text);margin:0 0 1.1em;}
.liandry-texto p:last-child{margin-bottom:0;}
@media (max-width:600px){
  .liandry-cab{padding:24px 20px;}
  .liandry-titulo{font-size:2.1rem;}
  .liandry-texto p{font-size:1.04rem;}
  .episodios{grid-template-columns:1fr;}
}
.top-screen > .card + .card,.top-screen > section.card + section.card{margin-top:18px;}

/* ============================================================
   EXTRAS: dados, DMT, XP, fichas oficiais
   ============================================================ */
/* botão flutuante e painel de rolagens */
#dadosBtn{position:fixed;right:18px;bottom:18px;z-index:850;width:52px;height:52px;border-radius:50%;
  background:var(--surface-3);border:1px solid var(--border-light);color:var(--accent);display:flex;align-items:center;justify-content:center;
  box-shadow:0 10px 26px rgba(0,0,0,0.45);padding:0;}
#dadosBtn:hover{background:var(--surface-2);border-color:var(--accent);}
#dadosBtn svg{width:26px;height:26px;}
#dadosPainel{position:fixed;right:18px;bottom:82px;z-index:860;width:330px;max-width:calc(100vw - 36px);max-height:min(70vh,560px);
  display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border-light);border-radius:var(--radius);
  box-shadow:0 20px 50px rgba(0,0,0,0.5);overflow:hidden;}
#dadosPainel.hidden{display:none;}
.dados-cab{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--border);}
.dados-cab strong{flex:1;font-family:var(--serif);font-size:1.05rem;}
.dados-fechar{background:transparent;border:none;color:var(--text-dim);font-size:1.3rem;line-height:1;padding:0 4px;box-shadow:none;}
.dados-fechar:hover{color:var(--text);background:transparent;}
.dados-historico{flex:1;overflow-y:auto;padding:10px 14px;display:flex;flex-direction:column;gap:10px;}
.dados-vazio{color:var(--text-dim);font-size:0.86rem;line-height:1.5;}
.dados-item{background:var(--surface-2);border-radius:var(--radius-sm);padding:10px 12px;}
.dados-item.novo{animation:dadoEntra .25s ease;}
@keyframes dadoEntra{from{opacity:0;transform:translateY(-6px);}to{opacity:1;transform:none;}}
.dados-topo{display:flex;justify-content:space-between;gap:8px;font-size:0.9rem;}
.dados-hora{color:var(--text-dim);font-size:0.76rem;}
.dados-linha{display:flex;align-items:center;gap:12px;margin-top:4px;}
.dados-total{font-family:var(--serif);font-size:2rem;font-weight:700;color:var(--accent);line-height:1;}
.dados-partes{display:flex;flex-wrap:wrap;gap:6px;font-size:0.78rem;color:var(--text-muted);}
.dados-grupo b{color:var(--text);font-weight:600;}
.dados-selo{font-size:0.7rem;font-weight:700;border-radius:999px;padding:1px 8px;}
.dados-selo.crit{color:var(--success);border:1px solid var(--success-2);}
.dados-selo.falha{color:var(--danger);border:1px solid var(--danger-2);}
.dados-expr{color:var(--text-dim);font-size:0.74rem;margin-top:4px;}
.dados-form{display:flex;gap:8px;padding:12px 14px;border-top:1px solid var(--border);}
.dados-form input{flex:1;}
/* botões de dado na ficha */
.dado-btn{display:inline-flex;align-items:center;gap:5px;background:transparent;border:1px solid var(--border-light);
  color:var(--accent);padding:4px 8px;border-radius:var(--radius-sm);font-size:0.74rem;font-weight:600;box-shadow:none;}
.dado-btn svg{width:15px;height:15px;}
.dado-btn:hover{background:var(--accent-suave);border-color:var(--accent);color:var(--accent-2);}
.attr-controls .dado-btn{margin-left:4px;}
.skill-row-controls .dado-btn{margin-right:6px;}
.dados-chips{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:10px 0;font-size:0.78rem;color:var(--text-dim);}
.dado-chip{background:var(--surface-3);border:1px solid transparent;color:var(--text);padding:4px 10px;border-radius:999px;font-size:0.8rem;box-shadow:none;}
.dado-chip:hover{border-color:var(--accent-dim);}
.dado-chip.primario{background:var(--accent-dim);color:var(--text);}
/* DMT */
#dmtMelhorias{margin-top:22px;padding-top:18px;border-top:1px solid var(--border);}
#dmtMelhorias h3{margin-bottom:10px;}
.dmt-sub{margin-top:18px;}
.dmt-resumo{display:flex;flex-wrap:wrap;gap:8px 16px;font-size:0.85rem;color:var(--text-muted);margin-bottom:14px;}
.dmt-resumo strong{color:var(--text);}
.dmt-lista{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px;margin:14px 0;}
.dmt-melhoria{display:flex;gap:10px;align-items:flex-start;background:var(--surface-2);border:1px solid transparent;border-radius:var(--radius-sm);
  padding:10px 12px;cursor:pointer;margin:0;text-transform:none;letter-spacing:0;font-size:0.85rem;color:var(--text);}
.dmt-melhoria.ativa{border-color:var(--accent-dim);background:var(--accent-fraco);}
.dmt-melhoria input{width:auto;margin-top:3px;accent-color:var(--accent);}
.dmt-melhoria small,.dmt-custom small{display:block;color:var(--text-muted);font-size:0.78rem;margin-top:2px;font-weight:400;}
.dmt-custom{display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--surface-2);
  border-radius:var(--radius-sm);padding:10px 12px;margin-bottom:8px;}
.dmt-efeito{color:var(--accent) !important;}
/* XP */
.xp-numeros{font-family:var(--serif);font-size:1.6rem;margin-bottom:8px;}
.xp-numeros strong{color:var(--accent);font-size:2.1rem;}
.xp-acoes{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px;}
.xp-conquistas{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:8px;margin-top:10px;}
.xp-conquista{display:flex;justify-content:space-between;align-items:center;gap:10px;text-align:left;
  background:var(--surface-2);border:1px solid transparent;border-radius:var(--radius-sm);padding:9px 12px;font-size:0.84rem;box-shadow:none;}
.xp-conquista:hover{border-color:var(--accent-dim);background:var(--surface-3);}
.xp-conquista strong{color:var(--accent);}
/* fichas oficiais */
.oficial-card .oficial-stats{display:flex;gap:10px;font-size:0.8rem;color:var(--text-muted);margin:8px 0 4px;}
.oficial-card .oficial-attrs{display:flex;flex-wrap:wrap;gap:6px;font-size:0.74rem;color:var(--text-dim);}
.oficial-card .oficial-attrs span{background:var(--surface-3);border-radius:999px;padding:1px 8px;}
.mini-card.nao-elegivel{opacity:0.55;}
@media (max-width:600px){
  #dadosPainel{right:10px;left:10px;width:auto;bottom:76px;}
  #dadosBtn{right:12px;bottom:12px;width:46px;height:46px;}
}
/* engrenagem e modal de configurações */
.btn-config{width:38px;height:38px;padding:0;display:flex;align-items:center;justify-content:center;background:transparent;
  border:1px solid var(--border);border-radius:50%;color:var(--text-muted);}
.btn-config:hover{color:var(--accent);border-color:var(--accent-dim);background:var(--surface-2);}
.btn-config svg{width:20px;height:20px;}
.nv-modal-config{max-width:480px;}
.nv-modal-config h3{font-size:1.05rem;margin:20px 0 10px;padding-top:16px;border-top:1px solid var(--border);}
.nv-modal-config h3:first-child{margin-top:0;padding-top:0;border-top:none;}
.nv-modal-config .nv-opcao{margin-bottom:8px;}
.config-tema{display:flex;gap:8px;}
.config-tema button{flex:1;}
.config-acoes{display:flex;flex-wrap:wrap;gap:8px;}

/* tema claro: mapa e detalhes que usavam cor fixa */
:root[data-theme="light"] .dados-selo.crit{color:#2f6b45;border-color:#7fae92;}
:root[data-theme="light"] .nv-google{border-color:#b9c4d2;}
:root[data-theme="light"] #dadosBtn{box-shadow:0 8px 20px rgba(40,60,90,0.18);}
/* resultado avulso da última rolagem */
#dadosUltima{position:fixed;right:18px;bottom:82px;z-index:855;max-width:min(380px,calc(100vw - 36px));
  display:flex;align-items:stretch;background:var(--surface);border:1px solid var(--border-light);
  border-left:3px solid var(--accent);border-radius:var(--radius);box-shadow:0 16px 36px rgba(0,0,0,0.45);overflow:hidden;}
#dadosUltima.hidden{display:none;}
#dadosUltima.novo{animation:dadoEntra .22s ease;}
.dados-ultima-corpo{display:flex;align-items:center;gap:12px;background:transparent;border:none;border-radius:0;
  padding:12px 6px 12px 14px;text-align:left;box-shadow:none;flex:1;min-width:0;}
.dados-ultima-corpo:hover{background:var(--surface-2);}
.dados-ultima-icone{color:var(--accent);flex-shrink:0;display:flex;}
.dados-ultima-icone svg{width:30px;height:30px;}
.dados-ultima-texto{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1;}
.dados-ultima-texto strong{font-size:0.95rem;color:var(--text);line-height:1.25;overflow-wrap:anywhere;}
.dados-ultima-texto small{font-size:0.78rem;color:var(--text-muted);font-family:var(--mono);}
.dados-ultima-texto small s{color:var(--text-dim);}
.dados-ultima-texto small i{color:var(--text-dim);font-style:normal;}
.dados-ultima-igual{color:var(--text-dim);font-size:1.1rem;}
.dados-ultima-total{font-family:var(--serif);font-size:2.3rem;font-weight:700;color:var(--text);line-height:1;padding-right:6px;}
.dados-ultima-x{background:transparent;border:none;border-left:1px solid var(--border);border-radius:0;color:var(--text-dim);
  font-size:1.2rem;line-height:1;padding:0 12px;box-shadow:none;}
.dados-ultima-x:hover{background:var(--surface-2);color:var(--text);}
.dados-partes s{color:var(--text-dim);text-decoration:line-through;}
.dados-selo.modo{color:var(--warning);border:1px solid var(--warning);}
@media (max-width:600px){#dadosUltima{right:10px;left:10px;max-width:none;bottom:70px;}}
/* histórico de rolagens da campanha */
.nv-modal-rolagens{max-width:520px;}
.rolagens-lista{max-height:min(55vh,460px);overflow-y:auto;display:flex;flex-direction:column;gap:8px;
  background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px;}
.rolagem-item{background:var(--surface-2);border-radius:var(--radius-sm);padding:9px 12px;border-left:3px solid transparent;}
.rolagem-item.minha{border-left-color:var(--accent-dim);}
.rolagem-topo{display:flex;align-items:center;gap:8px;font-size:0.85rem;}
.rolagem-topo strong{color:var(--text);}
.rolagem-ficha{color:var(--text-muted);font-size:0.78rem;}
.rolagem-topo .dados-hora{margin-left:auto;}
.rolagem-linha{display:flex;align-items:center;gap:10px;margin-top:2px;flex-wrap:wrap;}
.rolagem-info{display:flex;flex-direction:column;min-width:0;flex:1;}
.rolagem-info span{font-size:0.86rem;}
.rolagem-info small{color:var(--text-dim);font-size:0.74rem;overflow-wrap:anywhere;}
/* tabela de cores: cada botão mostra a paleta de verdade */
.config-rotulo{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin:16px 0 8px;font-size:0.84rem;color:var(--text-muted);}
.config-cores{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:12px;}
.config-cor{display:flex;flex-direction:column;align-items:stretch;gap:6px;padding:8px;box-shadow:none;
  background:var(--p-bg);border:1px solid var(--p-borda);border-radius:var(--radius-sm);color:var(--p-text);font-size:0.8rem;}
.config-cor:hover{background:var(--p-bg);border-color:var(--p-accent);}
.config-cor-amostra{display:flex;height:22px;border-radius:4px;overflow:hidden;border:1px solid var(--p-borda);}
.config-cor-amostra i{flex:1;display:block;}
.config-cor-amostra .a{background:var(--p-surface);}
.config-cor-amostra .b{background:var(--p-accent);flex:0 0 40%;}
.config-cor-amostra .c{background:var(--p-text);flex:0 0 14%;}
.config-cor-nome{text-align:left;font-weight:600;}
.config-cor-ok{position:absolute;top:6px;right:8px;font-size:0.8rem;color:var(--p-accent);}
.config-cor{position:relative;}
.config-cor.ativa{border-color:var(--p-accent);box-shadow:0 0 0 2px var(--accent-forte);}

/* ============================================================
   CONTROLES NATIVOS NO ESTILO DO SITE
   (caixinhas, rádios, listas de escolha, números, arquivos, rolagem)
   ============================================================ */
:root{color-scheme:dark;}
:root[data-theme="light"]{color-scheme:light;}

/* caixinha de marcar */
input[type="checkbox"]{
  -webkit-appearance:none;appearance:none;flex-shrink:0;
  width:18px !important;height:18px !important;min-width:18px;margin:0;padding:0;cursor:pointer;
  border:1.5px solid var(--border-light);border-radius:5px;background:var(--bg-2);
  display:inline-grid;place-content:center;vertical-align:middle;
  transition:background .15s ease,border-color .15s ease,box-shadow .15s ease;
}
input[type="checkbox"]::before{
  content:'';width:10px;height:10px;transform:scale(0);transition:transform .12s ease;
  background:var(--ink);
  clip-path:polygon(14% 44%,0 65%,50% 100%,100% 16%,80% 0,43% 62%);
}
input[type="checkbox"]:checked{background:var(--accent);border-color:var(--accent);}
input[type="checkbox"]:checked::before{transform:scale(1);}
input[type="checkbox"]:hover{border-color:var(--accent);}
input[type="checkbox"]:focus-visible{outline:none;box-shadow:0 0 0 3px var(--accent-forte);}
input[type="checkbox"]:disabled{opacity:0.5;cursor:default;}

/* bolinha de escolha única */
input[type="radio"]{
  -webkit-appearance:none;appearance:none;flex-shrink:0;
  width:18px !important;height:18px !important;min-width:18px;margin:0;padding:0;cursor:pointer;
  border:1.5px solid var(--border-light);border-radius:50%;background:var(--bg-2);
  display:inline-grid;place-content:center;vertical-align:middle;
  transition:border-color .15s ease,box-shadow .15s ease;
}
input[type="radio"]::before{content:'';width:8px;height:8px;border-radius:50%;background:var(--accent);transform:scale(0);transition:transform .12s ease;}
input[type="radio"]:checked{border-color:var(--accent);}
input[type="radio"]:checked::before{transform:scale(1);}
input[type="radio"]:hover{border-color:var(--accent);}
input[type="radio"]:focus-visible{outline:none;box-shadow:0 0 0 3px var(--accent-forte);}

/* listas de escolha: seta própria e opções com as cores do tema */
select{
  -webkit-appearance:none;appearance:none;cursor:pointer;padding-right:34px;
  background-image:linear-gradient(45deg,transparent 50%,var(--text-muted) 50%),linear-gradient(135deg,var(--text-muted) 50%,transparent 50%);
  background-position:calc(100% - 17px) 52%,calc(100% - 12px) 52%;
  background-size:5px 5px,5px 5px;background-repeat:no-repeat;
}
select:hover{border-color:var(--border-light);}
select option,select optgroup{background:var(--surface);color:var(--text);}
select option:checked{background:var(--accent-dim);color:var(--text);}

/* campos de número sem as setinhas brancas */
input[type="number"]{-moz-appearance:textfield;appearance:textfield;}
input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0;}

/* botão de escolher arquivo */
input[type="file"]::file-selector-button{
  font:inherit;font-size:0.85rem;color:var(--text);background:var(--surface-3);
  border:1px solid var(--border-light);border-radius:var(--radius-sm);padding:6px 12px;margin-right:10px;cursor:pointer;
}
input[type="file"]::file-selector-button:hover{background:var(--hover);}

/* deslizantes */
input[type="range"]{accent-color:var(--accent);}

/* preenchimento automático do navegador (fundo amarelo) */
input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus,textarea:-webkit-autofill,select:-webkit-autofill{
  -webkit-text-fill-color:var(--text);
  -webkit-box-shadow:0 0 0 1000px var(--bg-2) inset;
  transition:background-color 9999s ease-in-out 0s;
}

/* barras de rolagem */
*{scrollbar-width:thin;scrollbar-color:var(--border-light) transparent;}
::-webkit-scrollbar{width:10px;height:10px;}
::-webkit-scrollbar-track{background:transparent;}
::-webkit-scrollbar-thumb{background:var(--border-light);border-radius:999px;border:2px solid var(--bg);}
::-webkit-scrollbar-thumb:hover{background:var(--text-dim);}

/* ============================================================
   CONDIÇÕES
   ============================================================ */
.cond-resumo-card{margin-bottom:18px;}
.cond-resumo-card h2{margin-bottom:10px;}
.cond-resumo{display:flex;flex-wrap:wrap;gap:8px;}
.cond-nada{color:var(--text-muted);font-size:0.92rem;}
.cond-chip{display:inline-flex;align-items:baseline;gap:6px;background:var(--accent-suave);color:var(--text);
  border:1px solid var(--accent-dim);border-radius:999px;padding:5px 12px;font-size:0.86rem;font-weight:600;}
.cond-chip small{color:var(--text-muted);font-weight:400;font-size:0.76rem;}
.cond-chip.grave{background:color-mix(in srgb, var(--danger) 14%, transparent);border-color:var(--danger-2);color:var(--text);}
.cond-chip:hover{border-color:var(--accent);background:var(--accent-suave);}

.cond-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:16px;align-items:start;}
.cond-card{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);
  padding:18px 20px;display:flex;flex-direction:column;gap:10px;transition:border-color .2s ease,background .2s ease,box-shadow .2s ease;}
.cond-card::before{content:'';position:absolute;left:-1px;top:14px;bottom:14px;width:3px;border-radius:0 3px 3px 0;background:transparent;transition:background .2s ease;}
.cond-card:hover{border-color:var(--border-light);}
.cond-card.ativa{border-color:var(--accent-dim);background:linear-gradient(0deg,var(--accent-fraco),var(--accent-fraco)),var(--surface);}
.cond-card.ativa::before{background:var(--accent);}
.cond-card.cond-grave.ativa{border-color:var(--danger-2);background:linear-gradient(0deg,color-mix(in srgb, var(--danger) 8%, transparent),color-mix(in srgb, var(--danger) 8%, transparent)),var(--surface);}
.cond-card.cond-grave.ativa::before{background:var(--danger);}
.cond-largo{grid-column:1 / -1;}
.cond-cab{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;}
.cond-cab h3{margin:0;font-size:1.2rem;}
.cond-quando{margin:2px 0 0;color:var(--text-dim);font-size:0.8rem;}
.cond-desc{margin:0;color:var(--text-muted);font-size:0.9rem;line-height:1.55;}
.cond-nota{margin:0;color:var(--text-dim);font-size:0.8rem;line-height:1.5;}
.cond-card label{margin:4px 0 0;}
.cond-card textarea{min-height:56px;}
.cond-acoes{display:flex;gap:8px;}

/* interruptor */
.cond-switch{display:inline-flex;align-items:center;gap:8px;cursor:pointer;margin:0;flex-shrink:0;
  font-size:0.82rem;font-weight:600;color:var(--text-dim);user-select:none;}
.cond-switch input{position:absolute;opacity:0;width:1px !important;height:1px !important;min-width:0;pointer-events:none;}
.cond-switch-trilho{position:relative;width:40px;height:22px;border-radius:999px;background:var(--surface-3);
  border:1px solid var(--border-light);transition:background .18s ease,border-color .18s ease;}
.cond-switch-trilho::after{content:'';position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;
  background:var(--text-muted);transition:transform .18s ease,background .18s ease;}
.cond-switch input:checked + .cond-switch-trilho{background:var(--accent);border-color:var(--accent);}
.cond-switch input:checked + .cond-switch-trilho::after{transform:translateX(18px);background:var(--ink);}
.cond-switch input:checked ~ .cond-switch-txt{color:var(--text);}
.cond-switch input:focus-visible + .cond-switch-trilho{box-shadow:0 0 0 3px var(--accent-forte);}
.cond-switch:hover .cond-switch-trilho{border-color:var(--accent);}
.cond-grave .cond-switch input:checked + .cond-switch-trilho{background:var(--danger);border-color:var(--danger);}

/* faixas da adrenalina */
.cond-faixas{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;}
.cond-faixas button{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;
  background:var(--surface-2);border:1px solid transparent;border-radius:var(--radius-sm);padding:9px 11px;box-shadow:none;}
.cond-faixas button strong{font-size:0.9rem;}
.cond-faixas button span{font-size:0.76rem;color:var(--text-muted);font-weight:400;}
.cond-faixas button:hover{border-color:var(--border-light);background:var(--surface-2);}
.cond-faixas button.ativa{border-color:var(--accent);background:var(--accent-suave);}
.cond-faixas button.ativa span{color:var(--text);}

/* morrendo */
.cond-morte{display:grid;grid-template-columns:1fr auto;gap:14px;align-items:end;}
.cond-dificuldade{display:flex;flex-direction:column;align-items:center;background:var(--surface-2);border-radius:var(--radius-sm);padding:6px 16px;}
.cond-dificuldade span{font-size:0.74rem;color:var(--text-dim);}
.cond-dificuldade strong{font-family:var(--serif);font-size:1.7rem;line-height:1.1;color:var(--text);}
.cond-grave.ativa .cond-dificuldade strong{color:var(--danger);}

/* perda de membros */
.cond-membros{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.cond-membro{background:var(--surface-2);border:1px solid transparent;border-radius:var(--radius-sm);padding:10px 12px;display:flex;flex-direction:column;gap:6px;}
.cond-membro p{margin:0;font-size:0.8rem;color:var(--text-muted);line-height:1.45;}
.cond-membro.ativa{border-color:var(--accent-dim);background:var(--accent-fraco);}

/* fadiga */
.cond-fadiga-num{display:flex;align-items:baseline;gap:4px;font-family:var(--serif);}
.cond-fadiga-num span{font-size:2rem;font-weight:700;color:var(--text);line-height:1;}
.cond-fadiga-num small{color:var(--text-dim);font-size:0.9rem;}
.cond-fadiga-controle{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.cond-pips{display:flex;gap:5px;flex:1;min-width:180px;}
.cond-pips span{flex:1;height:8px;border-radius:999px;background:var(--surface-3);transition:background .2s ease;}
.cond-pips span.cheio{background:var(--accent);}
.cond-pips span.cheio:nth-child(n+6){background:var(--warning);}
.cond-pips span.cheio:nth-child(8){background:var(--danger);}
.cond-fadiga-lista{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:6px 12px;}
.cond-fadiga-item{display:flex;align-items:center;gap:10px;padding:6px 4px;opacity:0.45;transition:opacity .2s ease;}
.cond-fadiga-item span{width:24px;height:24px;flex-shrink:0;border-radius:50%;display:grid;place-content:center;
  font-size:0.76rem;font-weight:700;background:var(--surface-3);color:var(--text-muted);}
.cond-fadiga-item p{margin:0;font-size:0.84rem;}
.cond-fadiga-item.ativo{opacity:1;}
.cond-fadiga-item.ativo span{background:var(--accent);color:var(--ink);}

@media (max-width:600px){
  .cond-grid{grid-template-columns:1fr;}
  .cond-faixas{grid-template-columns:1fr;}
  .cond-membros{grid-template-columns:1fr;}
}

/* ============================================================
   REFINOS DE INTERAÇÃO (sutis)
   ============================================================ */
button{transition:background .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease;}
button:active:not(:disabled){transform:translateY(1px);}
button:disabled{cursor:not-allowed;opacity:0.5;}
a{text-underline-offset:3px;}
.tab,.escudo-tab{position:relative;}
.tab::after,.escudo-tab::after{content:'';position:absolute;left:14px;right:14px;bottom:-1px;height:2px;border-radius:2px;
  background:var(--accent);transform:scaleX(0);transition:transform .2s ease;}
.tab:hover::after,.escudo-tab:hover::after{transform:scaleX(0.4);opacity:0.5;}
.tab.active,.escudo-tab.active{border-bottom-color:transparent;}
.tab.active::after,.escudo-tab.active::after{transform:scaleX(1);opacity:1;}
.mini-card,.nv-ficha-card,.catalog-card,.nv-camp-card{transition:border-color .18s ease,background .18s ease;}
.nv-ficha-card:hover{border-color:var(--border-light);}
input,select,textarea{transition:border-color .15s ease,box-shadow .15s ease,background .15s ease;}
.skill-row{transition:background .15s ease;}
.dado-btn,.dado-chip{transition:background .15s ease,border-color .15s ease,color .15s ease;}
/* o estilo do topo do site não vaza para cabeçalhos internos */
.cond-cab,.dados-cab{border-bottom:none;border-radius:0;box-shadow:none;margin-bottom:0;background:transparent;}
.cond-cab{padding:0;flex-wrap:nowrap;}
.dados-cab{border-bottom:1px solid var(--border);}
/* faixas da adrenalina em lista, mais legível */
.cond-faixas{grid-template-columns:1fr;gap:6px;}
.cond-faixas button{flex-direction:row;align-items:center;justify-content:space-between;gap:12px;padding:8px 12px;}
.cond-faixas button strong{min-width:84px;}
.cond-faixas button span{text-align:right;}
/* ============================================================
   CONDIÇÕES: grade alinhada
   Cartões da mesma linha têm a mesma altura; rodapés encostam embaixo.
   ============================================================ */
.cond-secao{font-size:0.95rem;font-weight:500;color:var(--text-muted);margin:22px 2px 10px;}
.cond-resumo-card + .cond-secao{margin-top:4px;}
.cond-grid{display:grid;gap:14px;align-items:stretch;}
.cond-grid-3{grid-template-columns:repeat(3,minmax(0,1fr));}
.cond-grid-4{grid-template-columns:repeat(4,minmax(0,1fr));}
.cond-grid-2{grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);}
.cond-card{height:100%;padding:16px 18px;gap:10px;}
.cond-cab{align-items:flex-start;gap:12px;min-height:44px;}
.cond-cab > div{min-width:0;}
.cond-cab h3{font-size:1.12rem;line-height:1.2;}
.cond-quando{font-size:0.78rem;line-height:1.35;}
.cond-desc{font-size:0.87rem;line-height:1.5;}
.cond-nota,.cond-acoes,.cond-morte{margin-top:auto;}
.cond-card > label{margin-top:auto;}
.cond-card textarea{min-height:48px;resize:vertical;}
.cond-switch{padding-top:2px;}
.cond-switch-txt{min-width:34px;}
/* estados: cartões compactos e do mesmo tamanho */
.cond-grid-4 .cond-card{gap:8px;}
.cond-grid-4 .cond-desc{font-size:0.84rem;}
/* membros: os dois lado a lado, mesma altura */
.cond-membros{align-items:stretch;margin-top:auto;}
.cond-membro{height:100%;}
/* fadiga ocupa bem a coluna larga */
#condCardFadiga .cond-fadiga-lista{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 16px;margin-top:auto;}
#condCardFadiga .cond-cab{min-height:0;}
@media (max-width:1100px){
  .cond-grid-4{grid-template-columns:repeat(2,minmax(0,1fr));}
  .cond-grid-2{grid-template-columns:minmax(0,1fr);}
}
@media (max-width:900px){
  .cond-grid-3{grid-template-columns:minmax(0,1fr);}
}
@media (max-width:560px){
  .cond-grid-4{grid-template-columns:minmax(0,1fr);}
  #condCardFadiga .cond-fadiga-lista{grid-template-columns:minmax(0,1fr);}
  .cond-cab{min-height:0;}
}
/* título e interruptor na mesma linha; subtítulo embaixo, na largura toda */
.cond-cab{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:12px;row-gap:3px;min-height:0;}
.cond-cab > div{display:contents;}
.cond-cab h3{grid-column:1;grid-row:1;}
.cond-cab .cond-switch,.cond-cab .cond-fadiga-num{grid-column:2;grid-row:1;padding-top:0;}
.cond-cab .cond-quando{grid-column:1 / -1;grid-row:2;margin:0;}
/* membros ocupam o espaço do cartão, sem vão no meio */
#condCardMembros .cond-membros{flex:1;margin-top:4px;}
#condCardMembros .cond-membro{justify-content:flex-start;}
.cond-resumo-card .nv-titulo-linha{flex-wrap:nowrap;align-items:center;}
.cond-resumo-card .nv-titulo-linha h2{min-width:0;margin-bottom:0;}
.cond-resumo-card .cond-resumo{margin-top:12px;}

/* ============================================================
   ASSISTENTE DE CRIAÇÃO: instruções mais claras
   ============================================================ */
.wizard-passos{margin:0 0 18px;padding-left:22px;color:var(--text-muted);font-size:0.92rem;line-height:1.7;}
.wizard-passos strong{color:var(--text);}
.wizard-rotulo{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:10px;}
.wizard-dica{font-weight:400;font-size:0.82rem;color:var(--accent);}
.attribute-values{gap:10px;}
.attribute-value{position:relative;transition:transform .15s ease,border-color .15s ease,background .15s ease;}
.attribute-value:not(.used):hover{border-color:var(--accent);background:var(--accent-suave);}
.attribute-value.selected{border-color:var(--accent);background:var(--accent-suave);box-shadow:0 0 0 3px var(--accent-forte);}
.attribute-value.selected::after{content:'escolhido';position:absolute;left:0;right:0;bottom:-18px;text-align:center;
  font-size:0.68rem;color:var(--accent);}
.attribute-distribution{gap:12px;}
.attribute-distribution.aguardando .attribute-dist-item{opacity:0.75;}
.attribute-dist-item{transition:border-color .15s ease,background .15s ease,transform .15s ease;}
.attribute-dist-item.vazio .value{color:var(--text-dim);}
.attribute-dist-item.pode-receber{border-color:var(--accent-dim);background:var(--accent-fraco);cursor:pointer;}
.attribute-dist-item.pode-receber:hover{border-color:var(--accent);background:var(--accent-suave);}
.attr-dica{font-size:0.7rem;color:var(--text-dim);margin-bottom:8px;min-height:1.1em;}
.attribute-dist-item.pode-receber .attr-dica{color:var(--accent);}
.wizard-pontos{display:flex;align-items:center;gap:16px;flex-wrap:wrap;background:var(--surface-2);
  border-radius:var(--radius-sm);padding:12px 16px;margin-bottom:16px;}
.wizard-pontos > div{display:flex;align-items:baseline;gap:8px;}
.wizard-pontos span{font-family:var(--serif);font-size:2.1rem;font-weight:700;color:var(--accent);line-height:1;}
.wizard-pontos small{color:var(--text-muted);font-size:0.86rem;}
.wizard-pontos p{margin:0;color:var(--text-muted);}
.wizard-pontos strong{color:var(--text);}
.skill-input-row{transition:background .15s ease;}
.skill-input-row:hover{background:var(--surface-2);}
/* painel de rolagens com abas (minhas / da mesa) */
#dadosPainel{width:360px;}
.dados-abas{padding:0 10px;margin:0;border-bottom:1px solid var(--border);}
.dados-abas .tab{padding:8px 12px;font-size:0.88rem;}
.dados-abas .tab.hidden{display:none;}
#dadosMesa{padding:10px 12px;}
#dadosMesa .rolagens-lista{max-height:none;background:transparent;border:none;padding:0;}
.dados-rodape{display:flex;justify-content:flex-end;padding:6px 14px 0;}
.dados-rodape .nv-link{font-size:0.78rem;}
.dados-rodape .nv-link.hidden{display:none;}

/* ============================================================
   HARMONIA
   Uma escala só de espaço, canto e tamanho de texto, aplicada
   em tudo que antes tinha valores soltos.
   ============================================================ */
:root{
  --esp-1:6px; --esp-2:10px; --esp-3:14px; --esp-4:18px; --esp-5:26px;
  --txt-mini:0.76rem; --txt-peq:0.86rem; --txt-normal:0.95rem; --txt-med:1.12rem;
}
/* cartões e seções com o mesmo respiro */
.card{padding:var(--esp-5);}
.card h2{margin-bottom:var(--esp-3);}
.grid{gap:var(--esp-3);}
.section > .card + .card,.top-screen > .card + .card{margin-top:var(--esp-4);}
.cond-grid,.nv-camp-grid,.nv-fichas-grid,.episodios,.dmt-lista,.xp-conquistas{gap:var(--esp-3);}
.cond-card,.nv-ficha-card,.nv-camp-corpo,.episodio-info,.mini-card{padding:var(--esp-3) var(--esp-4);}
.nv-camp-nova{padding:var(--esp-4);}

/* etiquetas: tag, selo, chip e contador agora seguem o mesmo molde */
.tag,.nv-selo,.nv-camp-tag,.cond-chip,.nv-contador,.escudo-grupo-n,.dados-selo{
  font-size:var(--txt-mini);line-height:1.5;border-radius:999px;padding:2px 10px;letter-spacing:0;font-weight:600;}
.nv-contador,.escudo-grupo-n{font-weight:500;}
.cond-chip{padding:4px 12px;}

/* botões: duas alturas só */
button{min-height:36px;padding:8px 16px;font-size:var(--txt-peq);border-radius:var(--radius-sm);}
button.small,.dado-chip,.nv-link{min-height:30px;padding:5px 12px;font-size:var(--txt-mini);}
.nv-link{min-height:0;padding:0;}
.dado-btn{min-height:28px;padding:4px 9px;}
.modal-close{min-height:36px;padding:0;}
.cond-faixas button{min-height:0;}
.attribute-dist-item button,.resource-controls button,.skill-row-controls button{min-height:30px;}

/* títulos com uma escala só */
h2{font-size:1.35rem;} h3{font-size:var(--txt-med);} h4{font-size:var(--txt-normal);}
.card > h3:first-child,.card > h2:first-child{margin-top:0;}
p{line-height:1.6;}
.nv-nota,.cond-nota,.empty-note,.desc{font-size:var(--txt-peq);}

/* linhas de ação (botões lado a lado) com o mesmo espaçamento */
.nv-acoes,.nv-ficha-botoes,.nv-cab-acoes,.cond-acoes,.xp-acoes,.dados-chips,.config-acoes,.modal-actions{gap:var(--esp-2);}

/* campos: mesma altura dos botões */
input,select,textarea{padding:9px 12px;font-size:var(--txt-peq);border-radius:var(--radius-sm);}
textarea{line-height:1.55;}
label{font-size:var(--txt-peq);}

/* foco visível igual em tudo que é clicável */
button:focus-visible,a:focus-visible,select:focus-visible,[tabindex]:focus-visible,.cond-switch:focus-within .cond-switch-trilho{
  outline:2px solid var(--accent);outline-offset:2px;}
/* nomes muito longos quebram em vez de esticar a página */
h1,h2,h3,h4,h5,td,th,li,p,strong,.skill-name,.item-header strong,
.char-list-avatar + div h3,.nv-ficha-info h4,.cond-cab h3,.mini-card h4,
.ability-item h5,.episodio-info h3,.nv-camp-card h4,.dados-ultima-texto strong{overflow-wrap:anywhere;}
/* Só impedir que o conteúdo estique a caixa. As larguras máximas de cada uma
   (container 1180px, modal 640px, big-modal 980px) continuam valendo. */
.container,.top-screen,.card,.modal,.big-modal{min-width:0;}
.top-screen,.card{max-width:100%;}
.grid > *,.cond-grid > *,.nv-camp-grid > *,.nv-fichas-grid > *{min-width:0;}

/* ============================================================
   DETALHES
   ============================================================ */
/* barras de recurso com cor própria, iguais às dos cartões de campanha */
.resource-bar{height:9px;background:var(--bg-2);border-radius:999px;overflow:hidden;border:none;margin-top:8px;}
.resource-fill{border-radius:999px;transition:width .3s cubic-bezier(.4,0,.2,1),background .2s ease;}
.resource-fill.res-hp{background:linear-gradient(90deg,var(--danger-2),var(--danger));}
.resource-fill.res-sta{background:linear-gradient(90deg,var(--success-2),var(--success));}
.resource-fill.res-san{background:linear-gradient(90deg,var(--accent-dim),var(--info));}
/* as faixas de aviso valem para qualquer barra, inclusive a de espaços do inventário */
.resource-fill.low{background:linear-gradient(90deg,var(--warning),var(--danger-2));}
.resource-fill.crit{background:linear-gradient(90deg,var(--danger-2),var(--danger));animation:pulsoCritico 1.6s ease-in-out infinite;}
@keyframes pulsoCritico{50%{opacity:0.55;}}
@media (prefers-reduced-motion:reduce){.resource-fill.crit{animation:none;}}

/* números dos recursos com mais presença */
.resource-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap;}
.resource-head h3{margin:0;}

/* botão de dado das perícias com rótulo, igual ao dos atributos */
.skill-row-controls .dado-btn{margin-right:8px;}
.dado-btn span{font-family:var(--sans);letter-spacing:0.02em;}

/* o dado flutuante não fica mais por cima do conteúdo do fim da página.
   Nas telas sem rolagem (menu, catálogos, Liandry, contatos) ele some e o espaço volta. */
body{padding-bottom:84px;}
@media (max-width:600px){body{padding-bottom:76px;}}
body.sem-dado{padding-bottom:24px;}
body.sem-dado .footer-inner{padding-right:0;}
@media (max-width:600px){body.sem-dado .footer-discord{margin-bottom:0;}}

/* linhas de perícia: alvo maior e realce mais suave */
.skill-row{border-radius:var(--radius-sm);padding-left:10px;padding-right:10px;}
.skill-row:hover{background:var(--accent-fraco);}
.skill-name{text-decoration:none;border-bottom:1px dotted var(--border-light);transition:color .15s ease,border-color .15s ease;}
.skill-name:hover{color:var(--accent);border-bottom-color:var(--accent);}
.skill-row-total{transition:color .2s ease;}

/* cartões do encontro e listas: hover discreto */
.mini-card{transition:border-color .18s ease,background .18s ease;}
.item-card{transition:border-color .18s ease;}
.item-header{transition:background .15s ease;}
.item-header:hover{background:var(--surface-3);}

/* campos vazios ficam menos "buraco" */
input:placeholder-shown,textarea:placeholder-shown{background:var(--bg-2);}
input:not(:placeholder-shown),textarea:not(:placeholder-shown){background:var(--surface-2);}
select{background-color:var(--surface-2);}

/* etiqueta de bônus nas perícias */
.bonus-badge{background:var(--accent-fraco);border:1px solid var(--accent-dim);color:var(--accent);
  border-radius:999px;padding:1px 9px;font-size:var(--txt-mini);font-weight:500;margin-left:8px;}

/* cabeçalho fixo? não — mas o topo ganha um respiro melhor */
header{padding-top:10px;}
h1{letter-spacing:-0.01em;}

/* estados vazios mais convidativos */
.empty-note,#charList > p{color:var(--text-muted);font-style:normal;text-align:center;padding:22px 16px;
  border:1px dashed var(--border);border-radius:var(--radius-sm);background:var(--bg-2);}
.ability-category .empty-note{padding:12px;}

/* modais entram mais suave */
.modal,.big-modal{animation:modalPopIn .2s cubic-bezier(.16,1,.3,1);}
.modal-overlay,.overlay-modal{backdrop-filter:blur(2px);}
@media (prefers-reduced-motion:reduce){.modal,.big-modal{animation:none;}}

/* notificação alinhada com o dado flutuante */
.notification{bottom:84px;}
@media (max-width:600px){.notification{bottom:74px;}}

/* o dado flutuante não fica mais em cima do botão do Discord no rodapé */
.footer-inner{padding-right:64px;}
@media (max-width:600px){.footer-inner{padding-right:0;}
  .footer-discord{margin-bottom:56px;}}

/* cartões da lista de fichas: botões sempre alinhados, sem sobrar um sozinho */
.char-card-acoes{margin-top:14px;display:grid;grid-template-columns:repeat(2,1fr);gap:8px;}
.char-card-acoes button{width:100%;padding:8px 10px;font-size:var(--txt-peq);}
.char-list-avatar,.char-list-avatar-empty{flex-shrink:0;}

/* ------------------------------------------------------------
   ACABAMENTO
   Detalhes pequenos que aparecem no site inteiro.
   ------------------------------------------------------------ */
/* texto selecionado segue a cor do tema */
::selection{background:var(--accent-forte);color:var(--text);}

/* quem navega pelo teclado enxerga onde está */
:where(button,a,input,select,textarea,[tabindex]):focus-visible{
  outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm);}
button:focus:not(:focus-visible){outline:none;}

/* rolagem suave ao pular para uma seção, respeitando quem prefere sem animação */
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;}}

/* cartões respondem de leve ao passar o mouse */
.card{transition:border-color .2s ease,box-shadow .2s ease;}
.mini-card:hover,.oficial-card:hover{border-color:var(--accent-dim);}

/* barras de rolagem no tom do site */
*{scrollbar-color:var(--border-light) transparent;scrollbar-width:thin;}
::-webkit-scrollbar{width:10px;height:10px;}
::-webkit-scrollbar-track{background:transparent;}
::-webkit-scrollbar-thumb{background:var(--border-light);border-radius:999px;
  border:2px solid var(--bg);}
::-webkit-scrollbar-thumb:hover{background:var(--accent-dim);}

/* cartões de atributo: os botões ficam na mesma altura mesmo quando a
   legenda ("Deslocamento, Iniciativa") ocupa duas linhas */
.attr-card{display:flex;flex-direction:column;}
.attr-card .attr-controls{margin-top:auto;padding-top:10px;}

/* linhas de valores derivados: o rótulo e o número ficam na mesma base */
.derived-stat{align-items:baseline;transition:border-color .15s ease;}
.derived-stat:hover{border-bottom-color:var(--accent-dim);}

/* o botão de dado flutuante ganha um leve destaque ao passar o mouse */
#dadosBtn{transition:transform .18s cubic-bezier(.16,1,.3,1),background .18s ease,border-color .18s ease;}
#dadosBtn:hover{transform:translateY(-2px);}
@media (prefers-reduced-motion:reduce){#dadosBtn:hover{transform:none;}}

/* ------------------------------------------------------------
   CONTATOS
   ------------------------------------------------------------ */
.contatos-grid{margin-top:18px;align-items:start;}
.contato-card{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);
  padding:18px;display:flex;flex-direction:column;gap:14px;transition:border-color .18s ease;}
.contato-card:hover{border-color:var(--border-light);}
.contato-largo{margin-top:16px;}
.contato-cab{display:flex;align-items:center;gap:12px;}
.contato-cab h3{margin:0;font-size:1.05rem;}
.contato-cab p{margin:2px 0 0;color:var(--text-muted);font-size:var(--txt-peq);}
.contato-inicial{flex-shrink:0;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;
  background:var(--accent-suave);border:1px solid var(--accent-dim);color:var(--accent);
  font-family:var(--serif);font-size:1.15rem;font-weight:600;}
.redes{display:flex;flex-direction:column;gap:8px;}
.redes-linha{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));}
.rede{display:flex;align-items:center;gap:12px;width:100%;text-align:left;
  background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);
  padding:10px 12px;color:var(--text);text-decoration:none;cursor:pointer;
  transition:border-color .16s ease,background .16s ease,color .16s ease;}
.rede:hover{border-color:var(--accent-dim);background:var(--hover);color:var(--text);}
.rede svg{width:20px;height:20px;flex-shrink:0;color:var(--text-muted);transition:color .16s ease;}
.rede:hover svg{color:var(--accent);}
.rede-txt{display:flex;flex-direction:column;min-width:0;flex:1;}
.rede-txt small{color:var(--text-dim);font-size:var(--txt-mini);line-height:1.3;}
.rede-txt strong{font-weight:600;font-size:var(--txt-peq);overflow-wrap:anywhere;}
.rede-acao{flex-shrink:0;color:var(--text-dim);font-size:var(--txt-mini);
  border:1px solid var(--border);border-radius:999px;padding:2px 10px;transition:color .16s ease,border-color .16s ease;}
.rede:hover .rede-acao{color:var(--accent);border-color:var(--accent-dim);}
.rede.copiado .rede-acao{color:var(--success);border-color:var(--success);}
@media (max-width:600px){.contatos-grid{grid-template-columns:1fr;}}

/* ------------------------------------------------------------
   HABILIDADES AUTOMATIZADAS
   ------------------------------------------------------------ */
.hab-auto{margin-top:12px;padding:12px;border:1px solid var(--accent-dim);border-radius:var(--radius-sm);
  background:var(--accent-fraco);display:flex;flex-direction:column;gap:10px;}
.hab-auto-lista{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:5px;}
.hab-auto-lista li{font-size:var(--txt-peq);color:var(--text-muted);line-height:1.5;}
.hab-auto-lista strong{color:var(--text);}
.hab-auto-lista em{color:var(--accent);font-style:italic;}
.hab-switch{display:flex;align-items:center;gap:10px;cursor:pointer;text-transform:none;
  font-size:var(--txt-peq);color:var(--text);margin:0;letter-spacing:0;}
.hab-switch input{width:auto;flex-shrink:0;margin:0;}
.hab-pilha{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:var(--txt-peq);color:var(--text-muted);}
.hab-pilha strong{min-width:24px;text-align:center;color:var(--accent);font-family:var(--mono);font-size:1rem;}
.hab-auto-botoes{display:flex;gap:8px;flex-wrap:wrap;align-items:center;}
.nota-dmt{margin-top:12px;padding:8px 10px;border-left:2px solid var(--accent-dim);
  background:var(--accent-fraco);border-radius:0 var(--radius-sm) var(--radius-sm) 0;
  color:var(--text-muted);font-size:var(--txt-mini);line-height:1.5;}

/* ------------------------------------------------------------
   ATRIBUTOS DO TITÃ (escudo do mestre)
   ------------------------------------------------------------ */
.tita-atributos{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin-top:10px;max-width:420px;}
.tita-atributo{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 2px;
  background:var(--surface-3);border:1px solid var(--border);border-radius:var(--radius-sm);min-width:0;}
.tita-atributo span{font-size:var(--txt-mini);color:var(--text-dim);letter-spacing:0.04em;}
.tita-atributo strong{font-family:var(--mono);font-size:1.05rem;color:var(--accent);line-height:1.1;}
.tita-editada{margin-top:6px;font-size:var(--txt-mini);color:var(--text-dim);font-style:italic;}
.tita-resumo{margin-top:6px;font-size:var(--txt-mini);color:var(--text-dim);font-family:var(--mono);}
@media (max-width:420px){.tita-atributos{grid-template-columns:repeat(3,1fr);}}
.tita-ficha-campos{margin-top:16px;}
.tita-ficha-campos .grid > div > label{text-transform:none;font-weight:400;}
.tita-ficha-cab{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;}
@media (max-width:600px){.tita-ficha-campos .grid-5,.tita-ficha-campos .grid-3{grid-template-columns:repeat(2,1fr);}}
