/* Character sheet styled after the printed Dolmenwood sheet (own CSS, no copied artwork). */
.sheet{
  --ink:#111; --paper:#fdfbf4;
  max-width:860px; margin:0 auto 1.5rem; padding:26px;
  background-color:#0a0a0a;
  background-image:
    radial-gradient(circle, #fff 0 1px, transparent 1.6px),
    radial-gradient(circle, rgba(255,255,255,.7) 0 1px, transparent 1.6px);
  background-size:57px 57px, 91px 91px;
  background-position:0 0, 23px 31px;
  border-radius:8px; color:var(--ink);
  font-family:Alegreya,Georgia,serif; font-size:16px;
}
.sheet *{box-sizing:border-box}
.sheet .paper{background:var(--paper);border:3px solid var(--ink);outline:2px solid var(--paper);outline-offset:-8px;padding:20px 22px 16px;border-radius:4px}

.sheet .banner{
  text-align:center;font-family:'Almendra Display',Almendra,Georgia,serif;font-size:2.6rem;line-height:1.1;
  letter-spacing:.04em;margin:-6px auto 14px;padding:.2rem 1rem;max-width:520px;
  border:3px solid var(--ink);border-radius:10px 40px 10px 40px/40px 10px 40px 10px;background:var(--paper);
}
.sheet .orn{font-size:1.4rem;vertical-align:middle}

.sheet b,.sheet .heading,.sheet .sec,.sheet .ab-h,.sheet .lbl{font-family:Almendra,Georgia,serif;font-weight:700}
.sheet small{font-size:.62rem;letter-spacing:.05em}
.sheet .heading{font-size:1.25rem;margin:.2rem 0 .3rem}
.sheet .heading.small{font-size:1rem;text-align:center}
.sheet .heading small{font-family:Alegreya,serif;font-weight:400;float:right;margin-top:.5rem}

.sheet .sec{display:flex;align-items:center;gap:.7rem;font-size:1.5rem;margin:1rem 0 .6rem;text-align:center}
.sheet .sec::before,.sheet .sec::after{content:'';flex:1;border-top:4px double var(--ink)}
.sheet .sec.small{font-size:1rem;margin:.6rem 0 .3rem}

/* ----- fields ----- */
.sheet .sf,.sheet .st{
  font:inherit;color:var(--ink);background:rgba(0,0,0,.045);border:0;border-bottom:1.5px solid var(--ink);
  border-radius:0;padding:.1rem .3rem;width:100%;min-width:0;
}
.sheet .st{border:1.5px solid var(--ink);padding:.4rem .5rem;resize:vertical;line-height:1.35}
.sheet .sf:focus,.sheet .st:focus{outline:2px solid #5b6b2f;outline-offset:1px}
.sheet .sf.num{text-align:center;width:4.2em;-moz-appearance:textfield}
.sheet .sf.num::-webkit-outer-spin-button,.sheet .sf.num::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.sheet .sv{display:inline-block;min-height:1.4em;padding:0 .3rem;border-bottom:1.5px solid var(--ink);flex:1;min-width:2rem}
.sheet .sv.num{flex:none;text-align:center;min-width:2.6em;font-weight:700;font-size:1.1em}
.sheet .st.pre{white-space:pre-wrap;border:0;padding:.2rem .3rem;min-height:2rem}
.sheet .line{display:flex;align-items:baseline;gap:.5rem;margin:.2rem 0}
.sheet .line b{white-space:nowrap}

/* ----- identity ----- */
.sheet .idblock{display:grid;grid-template-columns:1fr 260px;gap:1rem}
.sheet .portrait{border:3px solid var(--ink);border-radius:30px 12px 30px 12px;min-height:190px;
  background:radial-gradient(circle at 50% 50%,rgba(0,0,0,.05),transparent 70%)}

/* ----- abilities ----- */
.sheet .abilities{display:grid;grid-template-columns:repeat(6,1fr);gap:.5rem}
.sheet .ab{border:3px solid var(--ink);border-radius:14px 14px 8px 8px;text-align:center;overflow:hidden;background:#fff}
.sheet .ab-h{font-size:.95rem;padding:.2rem 0;border-bottom:3px solid var(--ink)}
.sheet .ab-body{display:grid;grid-template-columns:1fr 1fr;min-height:62px}
.sheet .ab-body>div{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:.2rem .1rem;gap:.1rem}
.sheet .ab-body>div+div{border-left:3px solid var(--ink)}
.sheet .ab-body .sf.num{width:100%;max-width:3.4em}
.sheet .ab-cap{font-size:.62rem;font-style:italic;padding:.15rem .1rem;border-top:1px solid var(--ink);line-height:1.1}

/* ----- HP / saves / AC ----- */
.sheet .combat{display:grid;grid-template-columns:150px 1fr 150px;gap:.8rem;align-items:center}
.sheet .cauldron{border:4px solid var(--ink);border-radius:20px 20px 70px 70px;text-align:center;padding:.5rem .3rem .6rem;background:#fff}
.sheet .cauldron .hpcur .sf,.sheet .cauldron .hpcur .sv{font-size:1.8rem}
.sheet .cauldron b{display:block;font-size:1.2rem}
.sheet .saves{display:flex;justify-content:center;align-items:center;gap:.3rem;flex-wrap:wrap}
.sheet .save{display:flex;flex-direction:column;align-items:center}
.sheet .save.up{padding-bottom:30px}
.sheet .save.down{padding-top:30px;flex-direction:column-reverse}
.sheet .save.mr{padding-bottom:0;margin-left:.4rem}
.sheet .lbl{font-size:.8rem;letter-spacing:.04em}
.sheet .circ{width:62px;height:62px;border:3px solid var(--ink);border-radius:50%;display:flex;align-items:center;justify-content:center;background:#fff}
.sheet .circ.sq{border-radius:8px;border-width:4px}
.sheet .circ .sf.num{width:3em;border-bottom:0;background:transparent}
.sheet .circ .sv{border:0;flex:none}
.sheet .shields{display:flex;flex-direction:column;gap:.4rem}
.sheet .shield{border:4px solid var(--ink);border-radius:16px 16px 60px 60px;text-align:center;padding:.3rem .3rem .6rem;background:#fff}
.sheet .shield b{display:block;font-size:1.1rem}
.sheet .shield .sf.num{font-size:1.4rem;width:3em}

.sheet .movement{display:flex;gap:1.2rem;flex-wrap:wrap;justify-content:space-between;margin-bottom:.4rem}
.sheet .movement>div{display:flex;flex-wrap:wrap;align-items:baseline;gap:.3rem;flex:1;min-width:150px}
.sheet .movement i{flex-basis:100%;font-size:.62rem;text-align:center}

/* ----- traits ----- */
.sheet .traits{border-top:4px double var(--ink);margin-top:.5rem;padding-top:.3rem}
.sheet .traits .cols{display:grid;grid-template-columns:1fr 1fr;gap:0}
.sheet .traits .cols>div:first-child{border-right:3px solid var(--ink);padding-right:.6rem}
.sheet .traits .cols>div:last-child{padding-left:.6rem}
.sheet .traits .st{min-height:300px;border:0;background:transparent}
.sheet .traits textarea.st{background:rgba(0,0,0,.035)}

/* ----- lower block ----- */
.sheet .lower{display:grid;grid-template-columns:1fr 1fr;gap:1rem;border-top:4px double var(--ink);margin-top:.5rem;padding-top:.4rem}
.sheet .skills .st{margin-top:.3rem}
.sheet .xprow{display:flex;gap:1rem;align-items:center;margin:.4rem 0}
.sheet .xpbox{display:flex;align-items:baseline;gap:.4rem;flex:1}
.sheet .levelflag{display:flex;align-items:center;gap:.4rem;border:3px solid var(--ink);border-radius:4px 20px 4px 20px;padding:.2rem .7rem;background:#fff}
.sheet .levelflag span{font-family:Almendra,serif;font-size:.7rem}
.sheet .levelflag .sf.num{font-size:1.3rem}

/* ----- page 2 ----- */
.sheet .encm{display:flex;gap:1rem;align-items:center;border-bottom:4px double var(--ink);padding-bottom:.4rem;margin-bottom:.4rem;font-size:.9rem}
.sheet .encm label{display:inline-flex;gap:.25rem;align-items:center}
.sheet .items2{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}
.sheet .ilist .irow{display:flex;gap:.5rem;border-bottom:1.5px solid var(--ink);min-height:1.9rem;align-items:center}
.sheet .irow .iname{flex:1}
.sheet .irow .iw{min-width:3rem;text-align:right}
.sheet .irow em{font-size:.8em;opacity:.75}
.sheet .irow form{margin:0}
.sheet button.x{background:none;border:0;color:#8c2f2f;font-size:1.1rem;cursor:pointer;padding:0 .2rem;line-height:1}
.sheet .iadd{display:flex;gap:.3rem;margin-top:.4rem}
.sheet .iadd input{font:inherit;padding:.2rem .3rem;border:1px solid var(--ink);background:#fff;color:var(--ink);min-width:0}
.sheet .iadd input:nth-child(5){flex:3}
.sheet .iadd input[type=number]{width:3.5rem}
.sheet .iadd input[name=weight]{width:4.5rem}
.sheet .iadd button{padding:.1rem .7rem}
.sheet .total{margin-top:.6rem;display:flex;align-items:baseline;gap:.5rem;justify-content:flex-end}
.sheet .hint{font-size:.85rem;font-style:italic;opacity:.75}
.sheet .notes{border-top:4px double var(--ink);margin-top:1rem;padding-top:.3rem}
.sheet .notesrow{display:grid;grid-template-columns:1fr 150px;gap:1rem}
.sheet .notesrow .st{min-height:260px}
.sheet .coin{display:flex;flex-direction:column;align-items:center;margin:.4rem 0}
.sheet .coin .sf.num,.sheet .coin .sv.num{border:3px solid var(--ink);border-radius:12px;width:100%;padding:.4rem;font-size:1.1rem}
.sheet .credit{font-size:.62rem;text-align:center;margin:.8rem 0 0;opacity:.7}

/* paper inputs keep light colours even in dark mode */
.sheet input,.sheet textarea{color-scheme:light}

.sheetbar{max-width:860px;margin:0 auto 1rem;display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}
.sheetbar form{margin:0}

/* ----- small screens ----- */
@media (max-width:720px){
  .sheet{padding:10px}
  .sheet .paper{padding:12px}
  .sheet .banner{font-size:1.8rem}
  .sheet .idblock{grid-template-columns:1fr}
  .sheet .portrait{display:none}
  .sheet .abilities{grid-template-columns:repeat(3,1fr)}
  .sheet .combat{grid-template-columns:1fr}
  .sheet .cauldron,.sheet .shield{max-width:200px;margin:0 auto}
  .sheet .shields{flex-direction:row;justify-content:center}
  .sheet .traits .cols,.sheet .lower,.sheet .items2,.sheet .notesrow{grid-template-columns:1fr}
  .sheet .traits .cols>div:first-child{border-right:0;padding-right:0}
  .sheet .traits .cols>div:last-child{padding-left:0}
  .sheet .traits .st{min-height:120px}
}

/* ----- printing ----- */
@media print{
  body{background:#fff}
  header,.noprint,.sheetbar{display:none !important}
  main{margin:0;max-width:none;padding:0}
  .sheet{page-break-after:always;margin:0;max-width:none;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .sheet .sf,.sheet .st{background:transparent}
}
