/* ============================================================
   tor-sheet.css — playable One Ring 2e character/band sheets
   Loaded after hearth.css; reuses its custom properties.
   ============================================================ */
.play-body{margin:0;background:
   radial-gradient(1200px 600px at 50% -10%, rgba(154,125,63,.10), transparent 60%),
   var(--parchment);color:var(--ink);font-family:var(--serif);}
.play-bar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:1rem;
   padding:.55rem 1.1rem;background:rgba(62,47,47,.94);color:var(--parchment);
   font-family:var(--caps);font-size:.82rem;letter-spacing:.04em;box-shadow:var(--shadow-soft);}
.play-bar a{color:var(--parchment);text-decoration:none;opacity:.85;}
.play-bar a:hover{opacity:1;color:#f1e4c4;}
.play-bar .brand{font-family:var(--title);letter-spacing:.02em;color:#e9d9b3;}
.play-bar .spacer{flex:1;}

#sheet{max-width:1180px;margin:0 auto;padding:1.4rem 1.1rem 5rem;}

.sheet-head{text-align:center;margin:.4rem 0 1.3rem;}
.sh-name{font-family:var(--title);font-size:2.1rem;color:var(--blood);line-height:1.05;}
.sh-sub{font-family:var(--caps);text-transform:uppercase;letter-spacing:.13em;
   font-size:.78rem;color:var(--ink-soft);margin-top:.45rem;}
.sh-line{font-family:var(--fell);font-style:italic;font-size:1.02rem;color:var(--ink-2);margin-top:.3rem;}
.flourish-line{height:1px;max-width:220px;margin:.9rem auto 0;
   background:linear-gradient(90deg,transparent,var(--tan),transparent);}

.sheet-grid{display:grid;grid-template-columns:1fr 1.05fr 1.15fr;gap:1rem;align-items:start;}
@media(max-width:940px){.sheet-grid{grid-template-columns:1fr;}}

.col{background:linear-gradient(180deg,var(--panel),var(--vellum-2));
   border:1px solid var(--tan-hair);border-radius:9px;padding:1rem 1rem 1.15rem;
   box-shadow:var(--shadow-soft);}
.col + .col{margin-top:0;}
.col-h{font-family:var(--caps);text-transform:uppercase;letter-spacing:.11em;font-size:.74rem;
   color:var(--gold);border-bottom:1px solid var(--tan-hair);padding-bottom:.35rem;margin:0 0 .7rem;}
.col-h:not(:first-child){margin-top:1.25rem;}

/* stat tiles */
.statline{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;}
.stat{background:var(--vellum);border:1px solid var(--tan-hair);border-radius:7px;
   padding:.5rem .3rem;text-align:center;}
.stat .v{display:block;font-family:var(--caps);font-size:1.5rem;color:var(--blood);line-height:1;}
.stat .v small{font-size:.85rem;color:var(--ink-dim);}
.stat .k{display:block;font-family:var(--caps);text-transform:uppercase;letter-spacing:.06em;
   font-size:.6rem;color:var(--ink-soft);margin-top:.3rem;}

/* attribute diamonds */
.attrs{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin-bottom:.3rem;}
.attr{text-align:center;}
.attr .an{font-family:var(--caps);text-transform:uppercase;letter-spacing:.05em;
   font-size:.62rem;color:var(--ink-soft);margin-bottom:.32rem;}
.diamond{position:relative;width:58px;height:58px;margin:0 auto;transform:rotate(45deg);
   background:var(--vellum);border:2px solid var(--gold);border-radius:9px;
   display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-soft);}
.diamond>span{transform:rotate(-45deg);font-family:var(--caps);}
.diamond .rank{font-size:1.4rem;color:var(--blood);}
.diamond .tn{position:absolute;top:-9px;left:-9px;transform:rotate(-45deg);
   background:var(--blood);color:var(--parchment);font-size:.62rem;border-radius:50%;
   width:22px;height:22px;display:flex;align-items:center;justify-content:center;}

/* trackers */
.track{margin:.55rem 0;}
.track-top{display:flex;justify-content:space-between;align-items:baseline;
   font-family:var(--caps);text-transform:uppercase;letter-spacing:.05em;font-size:.66rem;color:var(--ink-soft);}
.track-top .n{font-size:.92rem;color:var(--ink);letter-spacing:0;}
.track-boxes{display:flex;flex-wrap:wrap;gap:4px;margin-top:.35rem;}
.pip{width:15px;height:15px;border-radius:50%;border:1.5px solid var(--tan);
   background:transparent;cursor:pointer;transition:transform .08s;}
.pip:hover{transform:scale(1.18);}
.pip.on{background:var(--forest);border-color:var(--forest);}
.track.hope .pip.on{background:var(--gold);border-color:var(--gold);}
.track.shadow .pip.on{background:#3a2b42;border-color:#3a2b42;}
.track.shadow .pip.scar{background:var(--blood);border-color:var(--blood);cursor:default;}
.stepper{display:inline-flex;align-items:center;gap:.5rem;}
.stepper button{width:24px;height:24px;border-radius:6px;border:1px solid var(--tan);
   background:var(--vellum);color:var(--blood);font-size:1rem;line-height:1;cursor:pointer;font-family:var(--caps);}
.stepper button:hover{background:var(--parchment-2);}
.stepper .cur{min-width:2.4rem;text-align:center;font-family:var(--caps);font-size:1.05rem;color:var(--ink);}

/* conditions */
.conds{display:flex;flex-wrap:wrap;gap:.4rem;}
.cond{flex:1;min-width:5rem;font-family:var(--caps);text-transform:uppercase;letter-spacing:.05em;
   font-size:.66rem;padding:.4rem .3rem;text-align:center;border-radius:6px;cursor:pointer;
   border:1px solid var(--tan);background:var(--vellum);color:var(--ink-soft);}
.cond.on{background:var(--blood);border-color:var(--blood);color:var(--parchment);}

/* rollables (skills / proficiencies / dispositions) */
.rolls{display:flex;flex-direction:column;gap:.22rem;}
.roll-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem;
   padding:.3rem .5rem;border-radius:6px;border:1px solid transparent;cursor:pointer;background:var(--vellum);}
.roll-row:hover{border-color:var(--gold);background:var(--parchment-2);}
.roll-row .nm{font-family:var(--fell);font-size:1rem;}
.roll-row .nm .fav{color:var(--gold);}
.roll-row .rk{font-family:var(--caps);font-size:.8rem;color:var(--ink-soft);}
.roll-row .rk .tn{color:var(--ink-dim);font-size:.7rem;margin-left:.4rem;}
.skill-cols{display:grid;grid-template-columns:1fr;gap:.9rem;}
.skill-cols h5{font-family:var(--caps);text-transform:uppercase;letter-spacing:.07em;font-size:.64rem;
   color:var(--gold);margin:.2rem 0 .35rem;}

/* dice tray */
.tray-ctl{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-bottom:.7rem;}
.seg{display:inline-flex;border:1px solid var(--tan);border-radius:7px;overflow:hidden;}
.seg button{border:0;background:var(--vellum);color:var(--ink-soft);font-family:var(--caps);
   font-size:.66rem;text-transform:uppercase;letter-spacing:.05em;padding:.35rem .55rem;cursor:pointer;}
.seg button.on{background:var(--gold);color:#fff;}
.tn-in{width:3.2rem;padding:.3rem;border:1px solid var(--tan);border-radius:6px;
   font-family:var(--caps);text-align:center;background:var(--vellum);color:var(--ink);}
.big-roll{width:100%;padding:.7rem;border:0;border-radius:8px;cursor:pointer;margin-top:.2rem;
   background:linear-gradient(180deg,var(--blood-lit),var(--blood));color:#fbeecb;
   font-family:var(--caps);text-transform:uppercase;letter-spacing:.1em;font-size:.82rem;box-shadow:var(--shadow-soft);}
.big-roll:hover{filter:brightness(1.07);}
.dice{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;min-height:52px;align-items:center;margin:.6rem 0;}
.die{position:relative;box-sizing:border-box;width:46px;height:46px;border-radius:8px;display:flex;align-items:center;justify-content:center;
   font-family:var(--caps);font-size:1.25rem;border:1.5px solid var(--tan);background:var(--vellum);color:var(--ink);}
/* Feat die = one face of a d12 → a pentagon (gold rim + face fill via 2 layers) */
.die.feat{border:none;background:transparent;isolation:isolate;padding-top:5px;}   /* nudge content to the pentagon's visual centre */
.die.feat::before{content:"";position:absolute;inset:0;z-index:-2;background:var(--gold);
   clip-path:polygon(50% 1%,97% 37%,79% 99%,21% 99%,3% 37%);}
.die.feat::after{content:"";position:absolute;inset:2.4px;z-index:-1;background:#faf3df;
   clip-path:polygon(50% 1%,97% 37%,79% 99%,21% 99%,3% 37%);}
.die.feat.gandalf{color:var(--gold);}
.die.feat.gandalf::after{background:#f3ecd6;}
.die.feat.eye{color:#e0b3b3;}
.die.feat.eye::before{background:#7a3b3b;}
.die.feat.eye::after{background:#2b2230;}
.die.feat.discarded{opacity:.38;}   /* the die set aside by favoured/ill-favoured */
.die.tengwar{background:#faf3df;color:var(--ink);border-color:var(--gold);}
.die.zero{opacity:.45;}
.die>svg{height:66%;width:auto;display:block;}
.die.feat>svg{height:72%;}
.die.feat.eye>svg{height:52%;}   /* the Eye glyph is wide */
/* Tengwar rune (Harma) superimposed on the 6, top-right quadrant */
.teng-mark{position:absolute;top:2px;right:3px;width:33%;height:33%;color:var(--gold);pointer-events:none;}
.teng-mark svg{width:100%;height:100%;display:block;}
.gi{display:inline-flex;align-items:center;height:1em;width:auto;vertical-align:-0.16em;}
.gi svg{height:1em;width:auto;}
.roll-result .quality .gi{height:.92em;}
.roll-result{text-align:center;font-family:var(--caps);min-height:1.4rem;}
.roll-result .total{font-size:1.6rem;color:var(--blood);}
.roll-result .verdict{display:block;text-transform:uppercase;letter-spacing:.1em;font-size:.8rem;margin-top:.2rem;}
.roll-result .verdict.ok{color:var(--forest);}
.roll-result .verdict.no{color:var(--ink-dim);}
.roll-result .quality{color:var(--gold);}
.roll-log{margin-top:.8rem;max-height:230px;overflow:auto;font-family:var(--fell);font-size:.9rem;
   border-top:1px solid var(--tan-hair);padding-top:.5rem;}
.log-line{padding:.18rem 0;border-bottom:1px dotted var(--tan-hair);color:var(--ink-2);}
.log-line .lbl{color:var(--ink);}
.log-line .ok{color:var(--forest);}
.log-line .no{color:var(--ink-dim);}
.log-line .g{color:var(--gold);}

/* gear tables + cards */
.gtable{width:100%;border-collapse:collapse;font-size:.9rem;margin:.3rem 0 .2rem;}
.gtable th{font-family:var(--caps);text-transform:uppercase;letter-spacing:.05em;font-size:.6rem;
   color:var(--ink-soft);text-align:left;border-bottom:1px solid var(--tan-hair);padding:.3rem .35rem;}
.gtable td{padding:.3rem .35rem;border-bottom:1px dotted var(--tan-hair);}
.gtable td.nm{font-family:var(--fell);}
.gtable .atk{cursor:pointer;color:var(--blood);border:1px solid var(--tan);border-radius:5px;
   padding:.1rem .4rem;font-family:var(--caps);font-size:.6rem;text-transform:uppercase;background:var(--vellum);}
.gtable .atk:hover{background:var(--parchment-2);}
.cards{columns:2 260px;column-gap:.9rem;}
@media(max-width:600px){.cards{columns:1;}}
.vcard{break-inside:avoid;margin-bottom:.7rem;background:var(--vellum);border:1px solid var(--tan-hair);
   border-left:3px solid var(--gold);border-radius:7px;padding:.55rem .7rem;}
.vcard .vn{font-family:var(--caps);font-size:.82rem;color:var(--blood);letter-spacing:.02em;}
.vcard .vt{font-family:var(--fell);font-size:.94rem;color:var(--ink-2);margin-top:.25rem;line-height:1.35;}
.feature-chips{display:flex;flex-wrap:wrap;gap:.4rem;}
.chip{font-family:var(--caps);font-size:.68rem;letter-spacing:.04em;padding:.28rem .6rem;border-radius:20px;
   background:var(--vellum);border:1px solid var(--tan);color:var(--ink-2);}

/* band ladders + roster */
.ladder{display:flex;flex-wrap:wrap;gap:.35rem;margin:.2rem 0 .3rem;}
.rung{font-family:var(--caps);font-size:.64rem;text-transform:uppercase;letter-spacing:.04em;
   padding:.32rem .5rem;border-radius:6px;border:1px solid var(--tan);background:var(--vellum);
   color:var(--ink-soft);cursor:pointer;}
.rung.on{background:var(--blood);border-color:var(--blood);color:var(--parchment);}
.rung.clear{color:var(--ink-dim);}
.roster-table{width:100%;border-collapse:collapse;margin:.2rem 0 .3rem;}
.roster-table th{font-family:var(--caps);text-transform:uppercase;letter-spacing:.05em;font-size:.6rem;
   color:var(--ink-soft);text-align:left;border-bottom:1px solid var(--tan-hair);padding:.4rem .5rem;}
.roster-table td{padding:.35rem .5rem;border-bottom:1px dotted var(--tan-hair);vertical-align:middle;}
.roster-table .rn{font-family:var(--fell);font-size:1.02rem;color:var(--ink);}
.roster-table .rr{font-family:var(--caps);font-size:.62rem;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);}
.roster-table tr.afflicted{background:rgba(154,125,63,.07);}
.roster-table tr.serious{background:rgba(140,47,47,.09);}
.lvl-sel{font-family:var(--fell);font-size:.9rem;padding:.25rem .4rem;border-radius:6px;
   border:1px solid var(--tan);background:var(--vellum);color:var(--ink-soft);cursor:pointer;}
.lvl-sel.mild{color:var(--gold);border-color:var(--gold);background:#faf3df;}
.lvl-sel.sev{color:var(--parchment);background:var(--blood);border-color:var(--blood);}
.out-btn{font-family:var(--caps);font-size:.6rem;text-transform:uppercase;letter-spacing:.05em;
   padding:.3rem .55rem;border-radius:6px;border:1px solid var(--tan);background:var(--vellum);
   color:var(--ink-soft);cursor:pointer;white-space:nowrap;}
.out-btn.on{background:#2b2230;border-color:#2b2230;color:#e0b3b3;}
.band-weary{font-family:var(--caps);text-transform:uppercase;letter-spacing:.06em;font-size:.66rem;
   color:var(--ink-soft);margin:0 0 .6rem;}
.band-weary.on{color:var(--parchment);background:var(--blood);border-radius:6px;padding:.4rem .7rem;letter-spacing:.03em;}
.note{font-family:var(--fell);font-style:italic;color:var(--ink-soft);font-size:.92rem;line-height:1.4;}
.reset-row{margin-top:1rem;display:flex;gap:.5rem;}
.reset-row button{font-family:var(--caps);font-size:.62rem;text-transform:uppercase;letter-spacing:.05em;
   padding:.4rem .7rem;border:1px solid var(--tan);border-radius:6px;background:var(--vellum);color:var(--ink-soft);cursor:pointer;}
.reset-row button:hover{border-color:var(--blood);color:var(--blood);}
