/* ═══ CHARACTER SHEET — Brand System 4.0 tokens only ═══ */
.cs-bar{display:flex;gap:9px;flex-wrap:wrap;align-items:center;margin-top:22px}
.cs-bar .btn{padding:11px 16px;font-size:10px;cursor:pointer}
.cs-status{font-family:var(--fm);font-size:10px;letter-spacing:.14em;color:var(--dim2);text-transform:uppercase;margin-left:auto}
.cs-status.ok{color:var(--cyan)}

.cs-panel{position:relative;background:linear-gradient(160deg,var(--panel),var(--panel2));
  border:1px solid var(--bd2);padding:0 0 18px;margin-bottom:16px;
  clip-path:polygon(16px 0,100% 0,100% calc(100% - 16px),calc(100% - 16px) 100%,0 100%,0 16px)}
.cs-h{font-family:var(--fh);font-size:10px;font-weight:700;letter-spacing:.2em;color:var(--warm);
  text-transform:uppercase;padding:13px 18px;border-bottom:1px solid var(--bd2);
  background:rgba(244,0,215,.07);display:flex;gap:12px;align-items:baseline;flex-wrap:wrap}
.cs-sub{font-family:var(--fm);font-size:8.5px;letter-spacing:.14em;color:var(--dim2);font-weight:400}
.cs-panel > *:not(.cs-h){margin:14px 18px 0}
.cs-two{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.cs-two2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.sub-h{font-family:var(--fh);font-size:9px;letter-spacing:.16em;color:var(--cyan);text-transform:uppercase;
  padding-bottom:5px;border-bottom:1px solid rgba(0,231,255,.22);margin-bottom:10px;display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}
.sub-h span{font-family:var(--fm);font-size:8px;letter-spacing:.12em;color:var(--dim2)}

label{display:block;font-family:var(--fm);font-size:8.5px;letter-spacing:.16em;color:var(--dim2);
  text-transform:uppercase;margin-bottom:4px}
label small{text-transform:none;letter-spacing:0;font-size:9px}
.f{width:100%;background:rgba(0,0,0,.35);border:1px solid var(--bd2);color:var(--tx);
  font-family:var(--fb);font-size:15px;font-weight:500;padding:8px 10px;outline:none;transition:border-color .2s,background .2s}
.f:focus{border-color:var(--mag);background:rgba(244,0,215,.08)}
select.f{cursor:pointer}
.f.big{font-family:var(--fh);font-weight:800;font-size:19px;color:var(--warm);letter-spacing:.02em}
.f.ctr{text-align:center;font-family:var(--fh);font-weight:800;font-size:20px;color:var(--warm)}
textarea.f{resize:vertical;line-height:1.5;font-size:14.5px}
.ta{min-height:78px}.ta.tall{min-height:132px}
.fw{min-width:0}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:9px}
.trait{font-size:13.5px;color:var(--dim);line-height:1.55;border-left:2px solid rgba(0,231,255,.3);padding-left:12px}
.trait b{color:var(--tx)}

.idgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.lvgrid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}
.lvbox.calc{background:rgba(0,0,0,.3);border:1px dashed rgba(0,231,255,.25);padding:9px 11px}
.lvbox small{display:block;font-family:var(--fm);font-size:8px;letter-spacing:.1em;color:var(--dim2);margin-top:3px;text-transform:uppercase}
.lvnum{text-align:center;font-family:var(--fh);font-weight:900;font-size:26px;color:var(--pink)}
.bignum{font-family:var(--fh);font-weight:900;font-size:26px;color:var(--cyan);line-height:1.1;
  text-shadow:0 0 16px rgba(0,231,255,.4)}
.xp-track{height:4px;background:rgba(244,0,215,.14);border:1px solid var(--bd2)}
.xp-fill{height:100%;width:0;background:linear-gradient(90deg,var(--mag),var(--pink));box-shadow:0 0 10px rgba(244,0,215,.6);transition:width .35s}

.ab-head,.abs .ab{display:grid;grid-template-columns:1fr 62px 44px 58px;gap:8px;align-items:center}
.ab-head{font-family:var(--fm);font-size:8px;letter-spacing:.14em;color:var(--dim2);
  text-transform:uppercase;padding-bottom:6px;border-bottom:1px solid var(--bd2);margin-bottom:8px}
.ab-head span:not(:first-child){text-align:center}
.abs .ab{padding:4px 0}
.ab-name{font-family:var(--fh);font-size:10.5px;letter-spacing:.07em;color:var(--warm)}
.ab-score{text-align:center;background:rgba(0,0,0,.4);border:1px solid var(--bd2);color:var(--warm);
  font-family:var(--fh);font-weight:800;font-size:17px;padding:6px 2px;outline:none;-moz-appearance:textfield}
.ab-score::-webkit-outer-spin-button,.ab-score::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.ab-score:focus{border-color:var(--mag)}
.ab-mod{text-align:center;font-family:var(--fh);font-weight:900;font-size:17px;color:var(--cyan)}
.ab-save{display:flex;align-items:center;justify-content:center;gap:6px;margin:0;cursor:pointer}
.ab-save span{font-family:var(--fm);font-size:12px;color:var(--pink);min-width:22px;text-align:right}

.sks{list-style:none;margin:0 18px;columns:1}
.sk{display:grid;grid-template-columns:14px 1fr 30px 34px;gap:7px;align-items:center;padding:3px 0}
.sk-n{font-size:13.5px;color:var(--tx)}
.sk-ab{font-family:var(--fm);font-size:8.5px;color:var(--dim2);letter-spacing:.08em}
.sk-m{font-family:var(--fm);font-size:12px;color:var(--pink);text-align:right}
input[type=checkbox]{appearance:none;width:13px;height:13px;border:1px solid var(--bd2);background:rgba(0,0,0,.4);
  cursor:pointer;flex:0 0 auto;position:relative;transition:background .15s,border-color .15s}
input[type=checkbox]:checked{background:var(--mag);border-color:var(--mag)}
input[type=checkbox]:checked::after{content:"";position:absolute;left:3.5px;top:.5px;width:4px;height:8px;
  border:solid #fff;border-width:0 1.8px 1.8px 0;transform:rotate(42deg)}
.passive-row{display:flex;align-items:center;gap:12px;border-top:1px solid var(--bd2);padding-top:11px;
  font-family:var(--fm);font-size:10px;letter-spacing:.12em;color:var(--dim);text-transform:uppercase}
.passive-row b{font-family:var(--fh);font-size:18px;color:var(--cyan)}
.passive-row small{margin-left:auto;font-size:8.5px;color:var(--dim2)}

.combat{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}
.cbox small{display:block;font-family:var(--fm);font-size:7.5px;letter-spacing:.08em;color:var(--dim2);margin-top:4px;text-transform:uppercase;line-height:1.3}
.calcv{font-family:var(--fh);font-weight:800;font-size:20px;color:var(--cyan);background:rgba(0,0,0,.3);
  border:1px dashed rgba(0,231,255,.25);padding:8px 2px}
.hd-boxes{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:10px}
.hd-box{width:30px;height:34px;border:1px solid var(--bd2);background:rgba(0,0,0,.35);cursor:pointer;
  font-family:var(--fm);font-size:9px;color:var(--dim2);display:flex;align-items:center;justify-content:center;transition:.2s}
.hd-box.used{background:rgba(244,0,215,.25);border-color:var(--mag);color:var(--warm)}
.ds-line{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.ds-line span{font-family:var(--fm);font-size:9.5px;letter-spacing:.12em;color:var(--dim);text-transform:uppercase;width:78px}
.ds{width:16px;height:16px;border-radius:50%}
.ds:checked{background:var(--cyan);border-color:var(--cyan)}
.ds.f:checked{background:var(--red);border-color:var(--red)}
.ds:checked::after{display:none}
.conc{display:inline-flex;align-items:center;gap:8px;margin-top:12px;cursor:pointer}
.conc span{font-family:var(--fm);font-size:9.5px;letter-spacing:.14em;color:var(--org)}

.ringpick{display:grid;grid-template-columns:1.4fr .7fr 1.4fr .7fr 1.4fr;gap:11px}
.ring-out{display:grid;gap:9px}
.ring-item{border:1px solid var(--bd2);background:rgba(0,0,0,.3);padding:11px 13px}
.ring-item.locked{opacity:.4}
.ring-top{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.ring-lv{font-family:var(--fm);font-size:9px;letter-spacing:.14em;color:var(--mag);flex:0 0 auto}
.ring-name{font-family:var(--fh);font-size:11.5px;letter-spacing:.06em;color:var(--warm);text-transform:uppercase}
.ring-kind{font-family:var(--fm);font-size:8px;letter-spacing:.12em;padding:2px 7px;border:1px solid;margin-left:auto}
.ring-kind.passive{color:var(--cyan);border-color:rgba(0,231,255,.4)}
.ring-kind.active{color:var(--org);border-color:rgba(255,90,0,.5)}
.ring-kind.unlimited{color:var(--pink);border-color:rgba(255,25,183,.5)}
.ring-desc{font-size:13.5px;color:var(--dim);line-height:1.5;margin-top:6px}
.ring-limit{font-family:var(--fm);font-size:9px;color:var(--org);letter-spacing:.08em;margin-top:5px}
.ring-uses{display:flex;gap:6px;align-items:center;margin-top:9px}
.ring-uses span{font-family:var(--fm);font-size:8.5px;letter-spacing:.12em;color:var(--dim2);text-transform:uppercase}
.use-box{width:15px;height:15px;border:1px solid var(--bd2);background:rgba(0,0,0,.4);cursor:pointer;transition:.15s}
.use-box.spent{background:var(--org);border-color:var(--org)}
.ring-empty{font-size:14px;color:var(--dim2);font-style:italic}

.geargrid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.gear-cat .gear-lbl{font-family:var(--fm);font-size:8.5px;letter-spacing:.14em;color:var(--cyan);
  text-transform:uppercase;margin-bottom:5px}
.gear-cat .f{margin-bottom:6px;font-size:14px}
.gear-count{font-family:var(--fm);font-size:10px;letter-spacing:.12em;color:var(--dim);text-transform:uppercase}
.gear-count b{color:var(--cyan);font-size:14px}
.gear-count span{color:var(--red);margin-left:10px}

.wpn-head{display:grid;grid-template-columns:1.3fr .8fr 1fr .8fr 1.1fr;gap:8px;
  font-family:var(--fm);font-size:8px;letter-spacing:.12em;color:var(--dim2);text-transform:uppercase;
  padding-bottom:6px;border-bottom:1px solid var(--bd2)}
.wpn{display:grid;grid-template-columns:1.3fr .8fr 1fr .8fr 1.1fr;gap:8px;margin-top:8px}
.wpn .f{font-size:13.5px;padding:7px 8px}
.wpn-n{font-weight:700;color:var(--pink)}

.conds{display:grid;grid-template-columns:repeat(2,1fr);gap:5px 12px}
.cond{display:flex;align-items:center;gap:8px;margin:0;cursor:pointer;
  font-family:var(--fb);font-size:13px;color:var(--tx);text-transform:none;letter-spacing:0}
.exh{display:flex;gap:8px}
.exh-box{flex:1;height:30px;border:1px solid var(--bd2);background:rgba(0,0,0,.35);cursor:pointer;
  display:flex;align-items:center;justify-content:center;font-family:var(--fm);font-size:10px;color:var(--dim2);transition:.2s}
.exh-box.on{background:rgba(255,23,72,.3);border-color:var(--red);color:var(--warm)}

.cs-foot{font-family:var(--fm);font-size:9px;letter-spacing:.1em;color:var(--dim2);
  text-transform:uppercase;text-align:center;padding:16px 0 10px;line-height:1.7}

@media(max-width:1100px){
  .lvgrid{grid-template-columns:repeat(3,1fr)}
  .combat{grid-template-columns:repeat(3,1fr)}
  .ringpick{grid-template-columns:1fr 1fr}
  .idgrid{grid-template-columns:1fr 1fr}
}
@media(max-width:860px){
  .cs-two,.cs-two2{grid-template-columns:1fr}
  .geargrid{grid-template-columns:1fr 1fr}
  .wpn-head{display:none}
  .wpn{grid-template-columns:1fr 1fr;gap:7px;padding-bottom:10px;border-bottom:1px solid rgba(0,231,255,.15)}
}
@media(max-width:560px){
  .lvgrid,.combat,.geargrid,.idgrid{grid-template-columns:1fr 1fr}
  .conds{grid-template-columns:1fr}
  .cs-panel > *:not(.cs-h){margin:12px 13px 0}
  .sks{margin:12px 13px 0}
  .cs-status{margin-left:0;width:100%}
}

/* ═══ PRINT ═══ */
@media print{
  .top,.mob,.railspine,footer,.cookie,.cs-bar,.skip,.sec-rule,.kicker,.sec-note,h1.sec-title{display:none!important}
  body{background:#fff!important;color:#000!important}
  body::before,body::after{display:none!important}
  .wrap{max-width:100%;padding:0}
  section{padding:0!important}
  .cs-panel{background:#fff!important;border:1px solid #999!important;clip-path:none!important;
    page-break-inside:avoid;margin-bottom:10px}
  .cs-h{background:#f0f0f0!important;color:#000!important;border-bottom:1px solid #999!important}
  .cs-sub,.sub-h span,label,small,.gear-count,.cs-foot{color:#555!important}
  .f,.ab-score,.calcv,.lvbox.calc{background:#fff!important;border:1px solid #999!important;color:#000!important}
  .ab-mod,.bignum,.passive-row b,.sk-m,.ab-save span,.ring-name,.sub-h,.wpn-n{color:#000!important;text-shadow:none!important}
  .trait{color:#333!important;border-left:2px solid #bbb!important}
  .ring-item{background:#fff!important;border:1px solid #bbb!important}
  .ring-item.locked{display:none!important}
  .ring-kind{color:#333!important;border-color:#999!important}
  input[type=checkbox]{border:1px solid #666!important;background:#fff!important}
  input[type=checkbox]:checked{background:#333!important}
  .hd-box,.use-box,.exh-box{background:#fff!important;border:1px solid #777!important;color:#333!important}
  .hd-box.used,.use-box.spent,.exh-box.on{background:#444!important;color:#fff!important}
  .xp-track{background:#eee!important}.xp-fill{background:#555!important;box-shadow:none!important}
  @page{size:Letter;margin:10mm}
}

/* ═══ E1 additions ═══ */
.dcrow{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;margin-top:12px}
.dcbox{background:rgba(0,0,0,.3);border:1px dashed rgba(244,0,215,.3);padding:9px 12px}
.dc-cls{display:block;font-family:var(--fm);font-size:8px;letter-spacing:.14em;color:var(--mag);text-transform:uppercase}
.dcbox b{display:block;font-family:var(--fh);font-weight:900;font-size:24px;color:var(--cyan);line-height:1.15;
  text-shadow:0 0 14px rgba(0,231,255,.4)}
.dcbox small{display:block;font-family:var(--fm);font-size:8px;letter-spacing:.07em;color:var(--dim2);text-transform:uppercase}
.dc-empty{font-size:13.5px;color:var(--dim2);font-style:italic}
.ring-blurb{font-size:13.5px;color:var(--dim);line-height:1.55;margin-bottom:10px;font-style:italic}
.ring-kind.profday{color:var(--org);border-color:rgba(255,90,0,.5)}
.ring-kind.perday{color:var(--red);border-color:rgba(255,23,72,.5)}
.ring-kind.perturn{color:var(--pink);border-color:rgba(255,25,183,.5)}
.ring-next{margin-top:10px;border:1px solid rgba(244,0,215,.35);background:rgba(244,0,215,.07);
  padding:10px 13px;font-size:13px;color:var(--dim);line-height:1.55}
.ring-next b{font-family:var(--fh);font-size:9.5px;letter-spacing:.14em;color:var(--pink);display:block;margin-bottom:4px}
.ring-rules{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:14px}
.rr{background:rgba(0,0,0,.3);border-left:2px solid var(--cyan);padding:9px 12px}
.rr b{display:block;font-family:var(--fh);font-size:9px;letter-spacing:.14em;color:var(--cyan);margin-bottom:4px}
.rr span{font-size:12.5px;color:var(--dim);line-height:1.5}
.feats{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}
.featrow{display:grid;grid-template-columns:62px 1fr;gap:9px;align-items:center}
.featrow.locked{opacity:.4}
.featlv{font-family:var(--fm);font-size:9px;letter-spacing:.12em;color:var(--mag)}
@media(max-width:900px){.ring-rules,.feats{grid-template-columns:1fr}}
@media print{
  .dcbox,.rr,.ring-next{background:#fff!important;border-color:#999!important}
  .dcbox b{color:#000!important;text-shadow:none!important}
  .dc-cls,.rr b,.ring-next b{color:#000!important}
  .featrow.locked{display:none!important}
}
.ring-kind.atwill{color:var(--warm);border-color:rgba(255,246,232,.35)}
