:root{
  --paper:#fffdf7;
  --bg:#e8e3d8;
  --ink:#252525;
  --muted:#716b61;
  --line:#3c3a36;
  --soft:#d7d0c3;
  --gold:#9f7417;
  --red:#8d3030;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
}
button,label,summary,input,textarea,select{
  touch-action:manipulation;
}
body{
  margin:0;
  color:var(--ink);
  font:14px/1.3 Georgia,"Times New Roman",serif;
}
button,input,textarea,select{font:inherit}
button{cursor:pointer}
.toolbar{
  position:sticky;
  top:0;
  z-index:20;
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  color:#fff;
  box-shadow:0 3px 12px rgba(0,0,0,.22);
}
.toolbar-title{
  display:flex;
  align-items:center;
  margin-right:auto;
}
.toolbar-controls{
  display:flex;
  align-items:center;
  gap:7px;
  flex-wrap:wrap;
}
#mobileMenuBtn{display:none}
.view-mode-toggle{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  min-height:34px;
}
.view-mode-icon{font-family:Arial,sans-serif}
.gurps-plaque{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:34px;
  padding:4px 16px 5px;
  border:1.5px solid #b9923b;
  border-radius:10px;
  color:#f0d27d;
  background:linear-gradient(180deg,#4f6884 0%, #344960 52%, #253648 100%);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.22),
    inset 0 -1px 0 rgba(0,0,0,.25),
    0 1px 4px rgba(0,0,0,.35);
  font-size:21px;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.toolbar button,.file-label{
  border:1px solid #756d5f;
  border-radius:5px;
  color:#fff;
}
.toolbar .danger:hover{background:#713232}
.file-label input{display:none}
.status{font-size:12px;color:#d3c293}

.sheet{
  min-width:0;
  border:1px solid #b9b1a3;
  box-shadow:0 14px 42px rgba(43,34,21,.14);
}
.topline{
  display:grid;
  align-items:end;
}
.sheet-name{
  padding-bottom:5px;
  color:var(--gold);
}
.field{
  display:flex;
  flex-direction:column;
  gap:2px;
}
label,.tiny{
  text-transform:uppercase;
}
input,textarea,select{
  width:100%;
  min-width:0;
  padding:4px 3px;
  border:0;
  border-bottom:1px solid #888176;
  border-radius:0;
  color:var(--ink);
  outline:none;
}
input:focus,textarea:focus,select:focus{
  border-bottom-color:var(--gold);
  box-shadow:0 1px 0 var(--gold);
}
textarea{resize:vertical}

/* Stable, equally wide figures for all game values. */
input[type="number"],
.stat-value,
.stat-current,
.stat-cost,
.derived strong,
.derived-input,
.derived-cost,
.total-points strong,
.skill-relative,
.skill-total-value,
.skill-points-value,
.attack-damage,
.item-total,
.item-cost-total,
.money-amount,
.inventory-summary strong,
.enc-table td:not(:first-child),
.profile-field input,
.defense input,
.damage input{
  font-family:Arial,"Helvetica Neue",sans-serif!important;
  font-variant-numeric:tabular-nums lining-nums;
  font-feature-settings:"tnum" 1,"lnum" 1;
  font-weight:650;
}
.item-cost-total,
.inventory-summary strong,
.total-points strong{
  font-weight:800;
}
.inventory-field input[type="number"],
.money-amount{
  font-weight:650;
}
.item-cost-total{
  font-size:12px;
}

.unspent-field input{
  border:1.5px solid var(--line);
  font:800 18px/1 Arial,sans-serif;
  text-align:center;
  font-variant-numeric:tabular-nums lining-nums;
}
.total-points{
  position:relative;
  margin:0;
  border:2px solid var(--line);
  text-align:center;
  z-index:20;
}
.total-points > summary{
  position:relative;
  display:flex;
  min-height:44px;
  padding:5px 28px 5px 9px;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  list-style:none;
  background:transparent;
  letter-spacing:normal;
  text-transform:none;
}
.total-points > summary::-webkit-details-marker{display:none}
.total-points > summary::after{
  content:"＋";
  position:absolute;
  top:50%;
  right:5px;
  transform:translateY(-50%);
  width:18px;
  height:18px;
  border:1px solid #8c836f;
  border-radius:4px;
  color:#4b453a;
  background:#f7f1e2;
  font:700 14px/16px Arial,sans-serif;
  text-align:center;
}
.total-points[open] > summary::after{content:"−"}
.total-points strong{
  display:block;
  margin-top:1px;
  font:800 26px/1 Arial,sans-serif;
}
.points-breakdown{
  position:absolute;
  top:calc(100% + 4px);
  right:-2px;
  width:260px;
  padding:8px;
  border:1.5px solid var(--line);
  background:var(--paper);
  box-shadow:0 8px 22px rgba(0,0,0,.24);
  text-align:left;
}
.point-breakdown-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) 62px;
  gap:8px;
  align-items:center;
  min-height:27px;
  padding:3px 4px;
  border-bottom:1px solid var(--soft);
}
.point-breakdown-row:last-child{
  margin-top:3px;
  border-top:1.5px solid var(--line);
  border-bottom:0;
  font-weight:800;
}
.point-breakdown-row strong{
  margin:0;
  font:800 14px/1 Arial,sans-serif;
  text-align:right;
}

.hero-row{
  display:grid;
}
.hero-row > .block{
  min-width:0;
}
.hero-row > .block.collapsed{
  align-self:start;
}
.block{
}
.block-title{
  position:relative;
}

.block.collapsed .block-body{display:none}
.collapse-btn{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  border:1px solid #8c836f;
  padding:0;
  font:700 15px/18px Arial,sans-serif;
}
.block.collapsed .collapse-btn{line-height:16px}

.stat-pairs{
  display:flex;
  flex-direction:column;
}
.stat-pair{
  display:grid;
  grid-template-columns:38px 66px 42px 52px 66px 66px 42px;
  gap:4px;
  align-items:center;
}
.stat-label{
  font:700 20px/1 Arial,sans-serif;
  text-align:center;
}
.stat-value,
.stat-current{
  border:1px solid var(--line);
  font:700 21px/1 Arial,sans-serif;
  text-align:center;
}
.stat-current-wrap{
  position:relative;
}
.stat-current-wrap::before{
  content:var(--current-label,"тек.");
  position:absolute;
  top:-11px;
  left:0;
  right:0;
  font:8px/1 Arial,sans-serif;
  text-align:center;
  text-transform:uppercase;
}
.stat-current-spacer{
  height:37px;
}
.stat-cost{
  color:var(--muted);
  font:11px/1 Arial,sans-serif;
  text-align:center;
}
.derived-row{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  border-top:1px solid var(--soft);
}
.derived{
  display:grid;
  gap:4px;
  align-items:center;
  min-width:0;
}
.derived-static{
  grid-template-columns:minmax(72px,1fr) 58px 34px;
}
.derived .tiny{
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis;
}
.derived strong{
  display:block;
  margin:0;
  font:700 16px/1 Arial,sans-serif;
  text-align:center;
}
.derived-input{
  margin:0;
  padding:1px 3px;
  border:1px solid #958d80;
  font:700 15px/1 Arial,sans-serif;
  text-align:center;
}
.derived-input::placeholder{
  color:var(--ink);
  opacity:.72;
}
.derived-cost{
  color:var(--muted);
  font:10px/1 Arial,sans-serif;
  text-align:right;
}
.damage{
  display:grid;
  grid-template-columns:1fr 1fr;
}
.damage .field{
  display:grid;
  grid-template-columns:44px 1fr;
  align-items:center;
}
.damage input{text-align:center;font-weight:700}

.defense-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
}
.defense{
  display:flex;
  min-width:0;
  flex-direction:column;
  border:1px solid var(--line);
  text-align:center;
}
.defense input{
  min-width:0;
  height:27px;
  font:700 16px/1 Arial,sans-serif;
  text-align:center;
}
.defense-total-value{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:31px;
  border:1px solid #ad8c43;
  border-radius:4px;
  background:linear-gradient(180deg,rgba(244,224,163,.54),rgba(213,184,105,.25));
  font:850 20px/1 Arial,sans-serif;
  font-variant-numeric:tabular-nums lining-nums;
}
.defense-total-meta{
  min-height:12px;
  overflow:hidden;
  color:var(--muted);
  font-size:8px;
  line-height:1.2;
  text-overflow:ellipsis;
}
.defense-bonus-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  margin-top:7px;
}
.defense-bonus-grid .field{min-width:0}
.defense-bonus-grid label{
  overflow:hidden;
  font-size:8px;
  white-space:nowrap;
  text-overflow:ellipsis;
}
.defense-bonus-grid input{
  font:800 14px/1 Arial,sans-serif;
  text-align:center;
}
.defense-parry{
  display:grid;
  grid-template-columns:1fr;
  gap:4px;
  align-content:start;
}
.defense-parry select,
.manual-parry-input,
.defense-block select,
.manual-block-input{
  width:100%;
  min-width:0;
  height:27px;
  padding:2px 4px;
  border:1px solid var(--soft);
  background:var(--input-bg);
  font-size:11px;
  text-align:left;
}
.defense-parry-value{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:31px;
  border:1px solid #ad8c43;
  border-radius:4px;
  background:linear-gradient(180deg,rgba(244,224,163,.54),rgba(213,184,105,.25));
  font:850 20px/1 Arial,sans-serif;
  font-variant-numeric:tabular-nums lining-nums;
}
.defense-parry-meta{
  min-height:12px;
  color:var(--muted);
  font-size:9px;
  line-height:1.2;
  text-align:center;
}
.manual-parry-input[hidden],.manual-block-input[hidden]{display:none!important}
.dr-grid{
  grid-template-columns:1fr 55px;
  align-items:center;
}
.dr-grid input{text-align:center}
.condition-mini{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:5px;
  margin-top:7px;
}
.condition-mini input{text-align:center}

.portrait-card{
  min-width:0;
  display:flex;
  flex-direction:column;
}
.portrait-card .block-body{
  display:flex;
  flex-direction:column;
  gap:7px;
  min-height:0;
}
.portrait{
  position:relative;
  overflow:hidden;
  border:1.5px solid var(--line);
  background:
    linear-gradient(45deg,#f1ece1 25%,transparent 25%) 0 0/16px 16px,
    linear-gradient(-45deg,#f1ece1 25%,transparent 25%) 0 0/16px 16px,
    linear-gradient(45deg,transparent 75%,#f1ece1 75%) 0 0/16px 16px,
    linear-gradient(-45deg,transparent 75%,#f1ece1 75%) 0 0/16px 16px;
}
.portrait img{
  display:none;
  object-fit:cover;
}
.portrait-placeholder{
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  padding:18px;
  color:var(--muted);
  text-align:center;
}
.portrait-actions{
  position:absolute;
  right:5px;
  bottom:5px;
  display:flex;
  gap:4px;
}
.portrait-actions button,.portrait-actions label{
  padding:4px 6px;
  border:1px solid rgba(255,255,255,.65);
  border-radius:4px;
  color:#fff;
  background:rgba(0,0,0,.64);
  font-size:11px;
  letter-spacing:0;
  text-transform:none;
}
.portrait-actions input{display:none}
.bio-mini{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:5px 7px;
}
.bio-mini .race{grid-column:1/-1}

.content-grid{
  display:grid;
}
.stack{
  display:flex;
  flex-direction:column;
}
.list{
  display:flex;
  flex-direction:column;
}
.list-row{
  display:grid;
  gap:4px;
  align-items:center;
}
.list-row.skill{
  grid-template-columns:minmax(0,1fr) 50px 72px 48px 25px;
}
.list-row input{padding:3px}
.remove{
  border:0;
  border-radius:50%;
  color:var(--red);
  background:transparent;
  font:bold 17px/1 Arial;
}
.add-row{
  width:100%;
  border:1px dashed #9d9588;
}

.small-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
}
.compact-textarea{min-height:78px}
.equipment{min-height:126px}

.enc-table{
  width:100%;
  border-collapse:collapse;
}
.enc-table th,.enc-table td{
  border-bottom:1px solid var(--soft);
  text-align:center;
}
.enc-table th{
  text-transform:uppercase;
}
.enc-table td:first-child{text-align:left}

details{
  margin-top:10px;
  border:1.5px solid var(--line);
  background:rgba(255,255,255,.34);
}
summary{
  position:relative;
  padding:7px 34px 7px 10px;
  cursor:pointer;
  list-style:none;
  background:linear-gradient(#faf7ef,#eee7d9);
  font-weight:700;
  letter-spacing:.055em;
  text-transform:uppercase;
}
summary::-webkit-details-marker{display:none}
summary::after{
  content:"＋";
  position:absolute;
  top:50%;
  right:8px;
  transform:translateY(-50%);
  width:20px;
  height:20px;
  border:1px solid #8c836f;
  border-radius:4px;
  color:#4b453a;
  background:#f7f1e2;
  font:700 15px/18px Arial,sans-serif;
  text-align:center;
}
details[open] summary::after{content:"−"}
.journal-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:9px;
  padding:9px;
}
.journal-grid .journal{grid-column:1/-1}
.journal-grid textarea{min-height:125px}
.journal textarea{min-height:210px}


.settings-modal{
  position:fixed;
  inset:0;
  z-index:100;
  display:none;
  align-items:center;
  justify-content:center;
  padding:18px;
  background:rgba(20,18,15,.62);
  backdrop-filter:blur(4px);
}
.settings-modal.open{display:flex}
.settings-dialog{
  width:min(620px,100%);
  max-height:calc(100vh - 36px);
  overflow:auto;
  border:1.5px solid var(--line);
  background:var(--paper);
  box-shadow:0 18px 60px rgba(0,0,0,.35);
}
.settings-header{
  display:flex;
  align-items:center;
  gap:10px;
  padding:9px 11px;
  border-bottom:1px solid var(--line);
  background:linear-gradient(#faf7ef,#eee7d9);
}
.settings-header strong{
  margin-right:auto;
  font-size:15px;
  text-transform:uppercase;
  letter-spacing:.05em;
}
.settings-close{
  width:28px;
  height:28px;
  border:1px solid #8c836f;
  border-radius:4px;
  background:#f7f1e2;
  font:700 18px/1 Arial,sans-serif;
}
.settings-body{padding:11px}
.settings-note{
  margin:0 0 10px;
  color:var(--muted);
  font-size:12px;
}
.settings-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:8px 10px;
}
.setting-field{
  display:grid;
  grid-template-columns:1fr 68px;
  gap:7px;
  align-items:center;
  padding:6px;
  border:1px solid var(--soft);
}
.setting-field input{
  border:1px solid #91897b;
  text-align:center;
}
.settings-help{
  margin-top:12px;
  border:1px solid var(--soft);
  background:var(--panel-bg);
}
.settings-help summary{
  padding:8px 34px 8px 9px;
  border:0;
  font-size:11px;
  text-align:left;
}
.formula-groups{
  display:flex;
  flex-direction:column;
  gap:8px;
  padding:9px;
  border-top:1px solid var(--soft);
}
.formula-group{
  border:1px solid var(--soft);
  background:var(--input-bg);
}
.formula-group h4{
  margin:0;
  padding:5px 7px;
  border-bottom:1px solid var(--soft);
  font-size:10px;
  letter-spacing:.05em;
  text-transform:uppercase;
}
.formula-list{
  display:grid;
  grid-template-columns:minmax(120px,.8fr) minmax(210px,1.4fr);
  margin:0;
}
.formula-list dt,
.formula-list dd{
  margin:0;
  padding:5px 7px;
  border-bottom:1px solid var(--soft);
}
.formula-list dt{
  color:var(--muted);
  font-weight:700;
}
.formula-list dd{
  font-family:Arial,sans-serif;
}
.formula-list dt:last-of-type,
.formula-list dd:last-of-type{
  border-bottom:0;
}
.formula-note{
  margin:0;
  padding:6px 7px;
  color:var(--muted);
  font-size:11px;
}
.settings-footer{
  display:flex;
  justify-content:flex-end;
  gap:7px;
  padding:9px 11px;
  border-top:1px solid var(--soft);
}
.settings-footer button{
  padding:6px 10px;
  border:1px solid #8c836f;
  border-radius:4px;
  background:#f7f1e2;
}
.settings-footer button:hover{background:#ece2c4}
@media(max-width:650px){
  .settings-grid{grid-template-columns:1fr}
  .formula-list{grid-template-columns:1fr}
  .formula-list dt{border-bottom:0;padding-bottom:1px}
  .formula-list dd{padding-top:1px}
}


/* Themes */
:root{
  --body-a:#ddd6c8;
  --body-b:#f1eee7;
  --toolbar-bg:rgba(31,29,26,.96);
  --toolbar-button:#3c3832;
  --toolbar-button-hover:#514b42;
  --panel-bg:rgba(255,255,255,.34);
  --header-a:#faf7ef;
  --header-b:#eee7d9;
  --total-bg:#f5eedc;
  --input-bg:transparent;
  --highlight:#efe2b7;
}
html[data-theme="dark"]{
  --paper:#20242a;
  --bg:#16191d;
  --ink:#edf0f3;
  --muted:#aeb6bf;
  --line:#78818b;
  --soft:#454c55;
  --gold:#d8ac55;
  --red:#ef7777;
  --body-a:#121519;
  --body-b:#282e35;
  --toolbar-bg:rgba(9,11,14,.97);
  --toolbar-button:#30363d;
  --toolbar-button-hover:#454d56;
  --panel-bg:rgba(255,255,255,.035);
  --header-a:#333941;
  --header-b:#282e35;
  --total-bg:#343127;
  --input-bg:rgba(255,255,255,.035);
  --highlight:#4d4630;
}
html[data-theme="blue"]{
  --paper:#f4f8fb;
  --bg:#dce9f3;
  --ink:#1f2c38;
  --muted:#617383;
  --line:#49677f;
  --soft:#c3d3df;
  --gold:#3478a5;
  --red:#a84646;
  --body-a:#cbddea;
  --body-b:#edf5fa;
  --toolbar-bg:rgba(28,53,72,.96);
  --toolbar-button:#31546d;
  --toolbar-button-hover:#426b88;
  --panel-bg:rgba(255,255,255,.5);
  --header-a:#edf6fb;
  --header-b:#d9e9f3;
  --total-bg:#e0eef7;
  --input-bg:rgba(255,255,255,.28);
  --highlight:#d5e9f5;
}
html[data-theme="forest"]{
  --paper:#f5f6ed;
  --bg:#dde4d2;
  --ink:#273126;
  --muted:#687263;
  --line:#52654d;
  --soft:#cbd4c2;
  --gold:#6b842f;
  --red:#9a4444;
  --body-a:#ced8c2;
  --body-b:#f0f3e9;
  --toolbar-bg:rgba(38,58,37,.96);
  --toolbar-button:#486047;
  --toolbar-button-hover:#5e765c;
  --panel-bg:rgba(255,255,255,.42);
  --header-a:#f1f4e9;
  --header-b:#dfe7d6;
  --total-bg:#e6ecd9;
  --input-bg:rgba(255,255,255,.22);
  --highlight:#dfe9cc;
}
body{background:linear-gradient(135deg,var(--body-a),var(--body-b))}
.toolbar{background:var(--toolbar-bg)}
.toolbar button,.file-label{background:var(--toolbar-button)}
.toolbar button:hover,.file-label:hover{background:var(--toolbar-button-hover)}
.block,details{background:var(--panel-bg)}
.block-title,summary,.settings-header{background:linear-gradient(var(--header-a),var(--header-b))}
input,textarea,select{background:var(--input-bg)}
.theme-picker,.language-picker{
  display:flex;
  align-items:center;
  gap:5px;
  color:#e7ca73;
  font-size:11px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.theme-picker select,.language-picker select{
  width:auto;
  min-width:92px;
  padding:5px 24px 5px 7px;
  border:1px solid #756d5f;
  border-radius:5px;
  color:#fff;
  background:var(--toolbar-button);
}

.compat-warning{
  margin:0 0 16px;
  padding:11px 13px;
  border:1px solid #d5a54b;
  border-radius:8px;
  color:#fff5d5;
  background:rgba(116,69,20,.82);
  font-family:Arial,sans-serif;
  font-size:12px;
  line-height:1.45;
}

/* Character manager */
.manager-screen{
  min-height:100vh;
  padding:34px 20px 48px;
  background:
    radial-gradient(circle at 15% 5%,rgba(255,255,255,.08),transparent 28%),
    linear-gradient(160deg,#1d2a38 0%,#263c51 48%,#17222d 100%);
}
.manager-shell{
  width:min(1080px,100%);
  margin:0 auto;
}
.manager-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin-bottom:42px;
}
.manager-header-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
  flex-wrap:wrap;
}
.manager-logo{
  min-height:43px;
  padding:5px 22px 6px;
  font-size:27px;
}
.manager-language{
  color:#efd27c;
}
.manager-title-row{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:20px;
  margin-bottom:18px;
  color:#fff;
}
.manager-title-row h1{
  margin:0 0 5px;
  letter-spacing:.02em;
}
.manager-title-row p{
  margin:0;
  color:#bdc8d1;
  font-family:Arial,sans-serif;
  font-size:13px;
}
.manager-create{
  min-height:38px;
  padding:7px 14px;
  border:1px solid #c29b45;
  border-radius:7px;
  color:#fff5d1;
  background:linear-gradient(180deg,#7c6631,#5f4b22);
  box-shadow:0 3px 8px rgba(0,0,0,.25);
  font-weight:700;
}
.character-list{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(300px,1fr));
  gap:13px;
}
.character-card{
  display:grid;
  grid-template-columns:76px minmax(0,1fr);
  gap:12px;
  padding:13px;
  border:1px solid rgba(221,202,151,.4);
  color:#28241e;
  background:linear-gradient(180deg,#f8f1df,#e8dcc1);
  box-shadow:0 7px 20px rgba(0,0,0,.25);
}
.character-card.active-card{
  border-color:#d4aa4d;
  box-shadow:0 0 0 1px rgba(212,170,77,.32),0 7px 20px rgba(0,0,0,.25);
}
.character-thumb{
  display:flex;
  align-items:center;
  justify-content:center;
  width:76px;
  height:96px;
  overflow:hidden;
  border:1px solid #a99a7b;
  border-radius:7px;
  color:#70664f;
  background:#d8cbaa;
  font-size:24px;
  font-weight:700;
}
.character-thumb img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.character-card-main{
  min-width:0;
}
.character-card h2{
  overflow:hidden;
  margin:1px 0 4px;
  white-space:nowrap;
  text-overflow:ellipsis;
}
.character-meta{
  display:flex;
  flex-direction:column;
  gap:2px;
  min-height:36px;
  color:#6f6757;
  font-family:Arial,sans-serif;
}
.character-actions{
  display:flex;
  flex-wrap:wrap;
  gap:5px;
  margin-top:9px;
}
.character-actions button{
  width:auto;
  padding:4px 7px;
  border:1px solid #97896d;
  border-radius:5px;
  color:#29251e;
  background:#f7f0df;
}
.character-actions .character-open{
  border-color:#657d95;
  color:#fff;
  background:#405a73;
  font-weight:700;
}
.character-actions .danger{
  margin-left:auto;
  border-color:#a87369;
  color:#7a2017;
  background:#f7e4df;
}
.character-empty{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:5px;
  padding:52px 20px;
  border:1px dashed rgba(255,255,255,.28);
  border-radius:10px;
  color:#fff;
  text-align:center;
}
.character-empty span{
  color:#bdc8d1;
  font-family:Arial,sans-serif;
  font-size:12px;
}
.character-name-modal{
  position:fixed;
  inset:0;
  z-index:120;
  display:none;
  align-items:center;
  justify-content:center;
  padding:20px;
  background:rgba(0,0,0,.62);
}
.character-name-modal.open{display:flex}
.character-name-dialog{
  width:min(420px,100%);
  max-height:calc(100dvh - 20px);
  overflow:auto;
  border:1px solid #8e8167;
  border-radius:9px;
  color:var(--ink);
  background:var(--paper);
  box-shadow:0 16px 48px rgba(0,0,0,.42);
}
.character-name-body{
  padding:14px;
}
.character-name-body .field span{
  color:var(--muted);
  font-size:10px;
  font-weight:700;
  text-transform:uppercase;
}
.character-name-body input{
  height:34px;
  margin-top:4px;
  padding:4px 7px;
  border:1px solid var(--soft);
}
.delete-character-message{
  margin:0;
  color:var(--ink);
  font-family:Arial,sans-serif;
  font-size:14px;
  line-height:1.45;
}
.danger-confirm{
  border-color:#9f574d!important;
  color:#fff!important;
  background:#8b3027!important;
  font-weight:700;
}
@media(max-width:650px){
  .manager-screen{padding:20px 12px 34px}
  .manager-header{
    align-items:stretch;
    flex-direction:column;
    margin-bottom:24px;
  }
  .manager-header-actions{
    align-items:stretch;
    flex-direction:column;
  }
  .manager-language{justify-content:space-between}
  .manager-title-row{
    align-items:stretch;
    flex-direction:column;
  }
  .manager-create{width:100%}
  .character-list{grid-template-columns:1fr}
}

/* Skills */
.skill-head,.skill-row{
  display:grid;
  grid-template-columns:minmax(120px,1fr) 50px 50px 22px 36px 22px 42px 40px 40px 22px;
  gap:4px;
  align-items:center;
}
.skill-head{
  text-align:center;
  text-transform:uppercase;
}
.skill-list{display:flex;flex-direction:column;}
.skill-row{
  padding-bottom:3px;
  border-bottom:1px solid var(--soft);
}
.skill-row input,.skill-row select{
  padding:1px 2px;
  border:1px solid var(--soft);
  text-align:center;
}
.skill-row select{
  padding-right:16px;
}
.skill-row .skill-name{text-align:left}
.level-button{
  padding:0;
  border:1px solid #8c836f;
  border-radius:4px;
  font:bold 13px/1 Arial,sans-serif;
}
.skill-relative,.skill-total,.skill-points{
  text-align:center;
  font-family:Arial,sans-serif;
}
.skill-total{
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid #ad8c43;
  border-radius:4px;
}
.skill-total-value{
  line-height:1;
  font-weight:850!important;
}
.skill-points-value{
  font-size:11px;
  line-height:1;
  font-weight:700!important;
}
.skill-total small,.skill-points small{display:none}
.skill-total b,.skill-points b{font-family:inherit}
.skill-points{color:var(--muted)}

.manual-skill-points{
  padding:1px 2px!important;
  border:1px solid #ad8c43!important;
  border-radius:4px!important;
  font-weight:800!important;
  text-align:center!important;
}
.skill-row.skill-manual select[data-skill-prop="difficulty"]{font-size:8px;letter-spacing:-.35px}

/* Read-only character view. */
#editorView.view-mode .edit-only-control,
#editorView.view-mode .sheet .add-row,
#editorView.view-mode .sheet .remove,
#editorView.view-mode .sheet .level-button,
#editorView.view-mode .sheet .portrait-actions,
#editorView.view-mode .sheet .weapon-config,
#editorView.view-mode .sheet .inventory-weapon-field,
#editorView.view-mode .sheet .bag-toggle{
  display:none!important;
}
#editorView.view-mode .sheet input,
#editorView.view-mode .sheet textarea,
#editorView.view-mode .sheet select{
  color:var(--ink)!important;
  -webkit-text-fill-color:var(--ink)!important;
  opacity:1!important;
  cursor:default;
}
#editorView.view-mode .sheet input:not(.stat-value):not(.stat-current):not(.derived-input),
#editorView.view-mode .sheet textarea,
#editorView.view-mode .sheet select{
  border-color:transparent!important;
  background:transparent!important;
  box-shadow:none!important;
}
#editorView.view-mode .sheet textarea{
  overflow:hidden;
  resize:none;
}
#editorView.view-mode .sheet select{
  appearance:none;
  -webkit-appearance:none;
  padding-right:3px;
}
#editorView.view-mode .sheet [data-view-interactive]{
  pointer-events:auto!important;
  cursor:pointer!important;
}
#editorView.view-mode .sheet select[data-view-interactive]{
  appearance:auto!important;
  -webkit-appearance:menulist!important;
  border:1px solid var(--soft)!important;
  background:var(--input-bg)!important;
  padding:2px 4px!important;
}
#editorView.view-mode .parry-bonus-field{display:none!important}
#editorView.view-mode .manual-parry-input,
#editorView.view-mode .manual-block-input{
  border:1px solid var(--soft)!important;
  background:var(--input-bg)!important;
}
#editorView.view-mode .view-empty-row,
#editorView.view-mode .view-empty-section,
#editorView.view-mode .view-empty-field,
#editorView.view-mode .attack-empty{
  display:none!important;
}
#editorView.view-mode input::placeholder,
#editorView.view-mode textarea::placeholder{
  color:transparent!important;
  opacity:0!important;
}
#editorView.view-mode .list-row{
}
#editorView.view-mode .condition-row{
  grid-template-columns:minmax(0,1fr);
}
#editorView.view-mode .money-row{
  grid-template-columns:minmax(180px,1fr) 120px;
}
#editorView.view-mode .inventory-main{
}
#editorView.view-mode .skill-head > :nth-child(3),
#editorView.view-mode .skill-row > :nth-child(3){
  display:none!important;
}
#editorView.view-mode .skill-head{
  grid-template-columns:minmax(145px,1fr) 46px 54px 48px 68px 44px;
}
#editorView.view-mode .skill-head > :nth-child(1){grid-column:1}
#editorView.view-mode .skill-head > :nth-child(2){grid-column:2}
#editorView.view-mode .skill-head > :nth-child(5){grid-column:3}
#editorView.view-mode .skill-head > :nth-child(7){grid-column:4}
#editorView.view-mode .skill-head > :nth-child(8){grid-column:5}
#editorView.view-mode .skill-head > :nth-child(9){grid-column:6}
#editorView.view-mode .skill-head > :nth-child(4),
#editorView.view-mode .skill-head > :nth-child(6),
#editorView.view-mode .skill-head > :nth-child(10){
  display:none!important;
}
#editorView.view-mode .skill-row{
  grid-template-columns:minmax(145px,1fr) 46px 54px 48px 68px 44px;
  grid-template-areas:"name attr relative bonus total points";
}
#editorView.view-mode .skill-row > :nth-child(1){grid-area:name}
#editorView.view-mode .skill-row > :nth-child(2){grid-area:attr}
#editorView.view-mode .skill-row > :nth-child(5){grid-area:relative}
#editorView.view-mode .skill-row > :nth-child(7){grid-area:bonus}
#editorView.view-mode .skill-row > :nth-child(8){grid-area:total}
#editorView.view-mode .skill-row > :nth-child(9){grid-area:points}
#editorView.view-mode .skill-total small,
#editorView.view-mode .skill-points small{
  display:none!important;
}
#editorView.view-mode .skill-total{
  min-height:28px;
}
#editorView.view-mode .skill-points{
  display:flex;
  align-items:center;
  justify-content:center;
}
#editorView.view-mode .inventory-section-title{
  cursor:pointer;
}
#editorView.view-mode .defense-bonus-grid input{
  border:1px solid var(--soft)!important;
  background:var(--input-bg)!important;
}

/* Attacks */
.attack-list{display:flex;flex-direction:column;}
.attack-empty{
  padding:10px;
  border:1px dashed var(--soft);
  color:var(--muted);
  text-align:center;
}
.attack-card{
  display:grid;
  align-items:stretch;
  border:1px solid var(--soft);
}
.attack-card-head{
  display:flex;
  min-width:0;
  flex-direction:column;
  justify-content:center;
  padding-right:5px;
}
.attack-card-head strong{
  overflow:hidden;
  font-size:13px;
  white-space:nowrap;
  text-overflow:ellipsis;
}
.attack-kind{
  text-transform:uppercase;
}
.attack-stat{
  display:flex;
  min-width:0;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  border:1px solid var(--soft);
  border-radius:4px;
  text-align:center;
}
.attack-stat small{
  font:700 8px/1 Arial,sans-serif;
  letter-spacing:.035em;
  text-transform:uppercase;
}
.attack-stat b{
  max-width:100%;
  overflow:hidden;
  font:700 12px/1.12 Arial,sans-serif;
  text-overflow:ellipsis;
}
.attack-note{
  grid-column:1/-1;
}

/* Inventory */
.inventory-summary{
  display:grid;
}
.inventory-summary > span{
  display:flex;
  min-width:0;
  min-height:39px;
  padding:5px 6px;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  border:1px solid var(--soft);
  background:var(--input-bg);
  text-align:center;
  font-size:10px;
}
.inventory-summary small{
  margin-top:2px;
  white-space:nowrap;
}
.conditions-list{
  display:flex;
  flex-direction:column;
  gap:4px;
}
.condition-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) 25px;
  align-items:center;
}
.condition-row input{
  padding:2px 4px;
  border:1px solid var(--soft);
}

.inventory-section{
  margin-top:8px;
  border:1px solid var(--soft);
}
.inventory-section[open] .inventory-section-title{
  border-bottom:1px solid var(--soft);
}
.inventory-section-title{
  position:relative;
  display:flex;
  align-items:center;
  min-height:35px;
  background:var(--header-b);
  cursor:pointer;
  list-style:none;
}
.inventory-section-title::-webkit-details-marker{display:none}
.inventory-section-title::after{
  content:"＋";
  position:absolute;
  top:50%;
  right:7px;
  transform:translateY(-50%);
  width:20px;
  height:20px;
  border:1px solid #8c836f;
  border-radius:4px;
  color:#4b453a;
  background:#f7f1e2;
  font:700 15px/18px Arial,sans-serif;
  text-align:center;
}
.inventory-section[open] .inventory-section-title::after{content:"−"}
.inventory-section-title strong{margin-right:auto}
.inventory-section-body{padding-bottom:2px}
.compact-add{
  width:auto;
  margin:0;
  padding:4px 8px;
}
.bag-toggle{
  display:flex;
  align-items:center;
  gap:5px;
  font-size:10px;
}
.bag-toggle input{width:auto}
.inventory-head,.inventory-main{
  display:grid;
  gap:5px;
  align-items:center;
}
.inventory-head{
  color:var(--muted);
  font-size:9px;
  text-align:center;
  text-transform:uppercase;
}
.inventory-item{
  border-top:1px solid var(--soft);
}
.inventory-item:first-child{border-top:0}
.inventory-field{
}
.inventory-mobile-label{display:none}
.inventory-main input{
  height:27px;
  padding:2px 4px;
  border:1px solid var(--soft);
  text-align:center;
}
.inventory-main .item-name{text-align:left}
.item-inline-totals{
  display:flex;
  min-width:0;
  gap:5px;
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis;
}
.item-inline-totals b{
  color:var(--ink);
  font-weight:800;
}
.inventory-item.item-zero{opacity:.58}
.inventory-weapon-field{
  display:flex;
  align-items:center;
  justify-content:center;
}
.inventory-weapon-field input{
  width:auto;
  min-width:18px;
  min-height:18px;
}
.inventory-total-field{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:27px;
}
.item-total,
.item-cost-total{
  text-align:center;
  font-weight:700;
}
.money-head,
.money-row{
  display:grid;
  grid-template-columns:minmax(180px,1fr) 120px 27px;
  gap:5px;
  align-items:center;
}
.money-head{
  padding:5px 7px 3px;
  color:var(--muted);
  font-size:9px;
  text-align:center;
  text-transform:uppercase;
}
.money-list{
  display:flex;
  flex-direction:column;
}
.money-row{
  padding:5px 7px;
  border-top:1px solid var(--soft);
}
.money-row input{
  height:27px;
  padding:2px 4px;
  border:1px solid var(--soft);
}
.money-row .money-name{text-align:left}
.money-row .money-amount{text-align:center}
.weapon-config{
  overflow:hidden;
  border:1px solid #b89a4b;
  border-radius:6px;
  background:rgba(255,255,255,.22);
}
.weapon-config-title{
  display:flex;
  align-items:center;
  gap:8px;
  min-height:35px;
  padding:5px 7px;
  background:linear-gradient(180deg,rgba(229,211,161,.55),rgba(229,211,161,.22));
  font-size:10px;
  font-weight:700;
  text-transform:uppercase;
}
.weapon-config-title span{
  min-width:0;
  margin-right:auto;
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis;
}
.profile-list{
  display:flex;
  flex-direction:column;
  gap:5px;
  padding:5px;
}
.weapon-profile{
  overflow:hidden;
}
.profile-card-head{
  display:grid;
  grid-template-columns:auto minmax(110px,1fr) 100px 28px;
  gap:6px;
  align-items:end;
  padding:6px;
  border-bottom:1px solid var(--soft);
  background:rgba(0,0,0,.025);
}
.profile-used{
  display:flex;
  align-items:center;
  align-self:center;
  gap:5px;
  min-height:28px;
  color:var(--muted);
  font-size:9px;
  white-space:nowrap;
}
.profile-used input{width:auto;margin:0}
.profile-groups{
  display:grid;
  grid-template-columns:1.1fr 1fr 1.35fr;
  gap:6px;
  padding:6px;
}
.profile-group{
  min-width:0;
  padding:5px;
  border:0;
  border-left:2px solid var(--soft);
  border-radius:0;
  background:transparent;
}
.profile-group-title{
  margin:0 0 5px;
  font:700 8px/1 Arial,sans-serif;
  letter-spacing:.045em;
  text-transform:uppercase;
}
.profile-fields{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(68px,1fr));
  gap:5px;
  align-items:end;
}
.profile-field{
  display:flex;
  min-width:0;
  flex-direction:column;
}
.profile-field label{
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis;
}
.profile-field input,.profile-field select{
  width:100%;
  min-width:0;
  padding:2px 4px;
  border:1px solid var(--soft);
  text-align:center;
}
.profile-field input.profile-text,
.profile-field select.profile-skill-select{text-align:left}
.profile-field-wide{grid-column:1/-1}
.profile-parry-preview{
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid #ad8c43;
  border-radius:4px;
  font:800 14px/1 Arial,sans-serif;
}

@media(max-width:1000px){
  .topline{grid-template-columns:100px minmax(180px,1fr) 140px 88px 108px}
  .hero-row{
  }
  .hero-row>.block:nth-child(2){grid-column:1}
  .portrait-card{grid-column:2;grid-row:auto}
  .stat-pair{grid-template-columns:34px 58px 38px 48px 58px 58px 38px}
  .derived-row{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:720px){
  html,body{
    width:100%;
    max-width:100%;
    overflow-x:hidden;
  }
  body{
    font-size:14px;
    background:var(--paper);
  }

  .sheet{
    width:100%;
    max-width:100%;
    margin:0;
    padding:8px;
    overflow:hidden;
    border:0;
    box-shadow:none;
  }

  /* Compact fixed top bar. The full set of controls lives in a dropdown. */
  .toolbar{
    position:sticky;
    top:0;
    z-index:60;
    display:grid;
    grid-template-columns:auto minmax(0,1fr) 44px 44px;
    gap:7px;
    width:100%;
    max-width:100%;
    padding:7px 8px;
    overflow:visible;
  }
  .toolbar-title{
    margin:0;
    min-width:0;
  }
  .gurps-plaque{
    min-height:36px;
    padding:4px 12px;
    font-size:18px;
  }
  #charactersBtn{
    min-width:0;
    width:max-content;
    max-width:100%;
    min-height:36px;
    overflow:hidden;
    white-space:nowrap;
    text-overflow:ellipsis;
  }
  #viewModeBtn{
    width:44px;
    min-width:44px;
    min-height:36px;
    padding:0;
  }
  #viewModeBtn .view-mode-label{display:none}
  #viewModeBtn .view-mode-icon{font-size:18px}
  #mobileMenuBtn{
    display:block;
    width:44px;
    min-height:36px;
    padding:0;
    font-size:22px;
    line-height:1;
  }
  .toolbar-controls{
    position:absolute;
    top:calc(100% + 5px);
    left:8px;
    right:8px;
    display:none;
    grid-template-columns:1fr 1fr;
    gap:8px;
    max-height:calc(100dvh - 72px);
    padding:10px;
    overflow-y:auto;
    border:1px solid #756d5f;
    border-radius:8px;
    box-shadow:0 12px 30px rgba(0,0,0,.42);
  }
  .toolbar.mobile-menu-open .toolbar-controls{display:grid}
  .toolbar-controls > *{
    min-width:0;
    width:100%;
    min-height:42px;
    margin:0;
  }
  .toolbar-controls .theme-picker,
  .toolbar-controls .language-picker{
    display:grid;
    grid-template-columns:auto minmax(0,1fr);
    gap:7px;
    align-items:center;
    padding:5px 7px;
    border:1px solid #514b42;
    border-radius:5px;
  }
  .toolbar-controls select{
    min-height:32px;
    font-size:16px;
  }
  .toolbar-controls .status{
    grid-column:1/-1;
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:30px;
    white-space:normal;
    text-align:center;
  }

  /* Every major grid must be allowed to shrink below its contents. */
  .topline,
  .hero-row,
  .content-grid,
  .journal-grid{
    min-width:0;
    width:100%;
    max-width:100%;
    grid-template-columns:minmax(0,1fr)!important;
  }
  .content-grid > *,
  .hero-row > *,
  .stack,
  .block,
  .block-body,
  details,
  summary,
  .list,
  .attack-list,
  .conditions-list,
  .field{
    min-width:0;
    max-width:100%;
  }
  .stack{width:100%}
  .sheet-name{display:none}
  .topline{gap:8px}
  .total-points{min-height:62px}

  .block-title{
    padding:8px 42px 7px 10px;
  }
  .collapse-btn{
    right:7px;
    width:30px;
    height:30px;
    font-size:18px;
    line-height:26px;
  }

  .portrait-card{grid-column:auto;grid-row:auto}
  .portrait,.portrait img{min-height:175px}
  .bio-mini,.small-grid{grid-template-columns:minmax(0,1fr)}
  .bio-mini .race{grid-column:auto}

  .stat-pair{
    grid-template-columns:30px minmax(48px,1fr) 34px 40px minmax(48px,1fr) minmax(48px,1fr) 34px;
    gap:4px;
  }
  .stat-label{font-size:17px}
  .stat-value,.stat-current{height:40px;font-size:19px}
  .derived-row{grid-template-columns:minmax(0,1fr)}
  .derived{min-height:38px}

  input:not([type="checkbox"]),
  textarea,
  select{
    font-size:16px;
  }
  button,
  .file-label{
    min-height:38px;
  }
  input[type="checkbox"]{
    min-width:20px;
    min-height:20px;
  }

  .list-row{
    gap:6px;
  }
  .condition-row{
    grid-template-columns:minmax(0,1fr) 32px;
    gap:6px;
  }
  .remove{
    width:32px;
    height:32px;
  }

  .attack-card{
    gap:7px;
  }
  .attack-card-head{grid-column:1/-1}
  .attack-note{grid-column:1/-1}
  .journal-grid .journal{grid-column:auto}

  .enc-table{
    table-layout:fixed;
    font-size:13px;
  }
  .enc-table th,.enc-table td{padding:6px 3px}
}

@media(max-width:900px){
  .skill-head{display:none}
  .skill-row{
    overflow-x:auto;
  }
  .inventory-summary{grid-template-columns:1fr 1fr}
  .weapon-profile{overflow-x:auto}
}
@media(max-width:720px){
  /* Mobile skill card: no page-wide horizontal overflow. */
  .skill-head{display:none}
  .skill-list{
    display:block;
    width:100%;
    max-width:100%;
    overflow:visible;
  }
  .skill-row{
    display:grid;
    grid-template-areas:
      "name name name name name remove"
      "attr diff minus relative plus bonus"
      "total total total points points points";
    gap:7px;
    width:100%;
    min-width:0;
    padding:8px 0;
    overflow:visible;
  }
  .skill-row > :nth-child(1){grid-area:name}
  .skill-row > :nth-child(2){grid-area:attr}
  .skill-row > :nth-child(3){grid-area:diff}
  .skill-row > :nth-child(4){grid-area:minus}
  .skill-row > :nth-child(5){grid-area:relative}
  .skill-row > :nth-child(6){grid-area:plus}
  .skill-row > :nth-child(7){grid-area:bonus}
  .skill-row > :nth-child(8){grid-area:total}
  .skill-row > :nth-child(9){grid-area:points}
  .skill-row > :nth-child(10){grid-area:remove}
  .skill-row input,
  .skill-row select{
    width:100%;
    min-width:0;
    min-height:40px;
    font-size:16px;
  }
  .skill-row .level-button,
  .skill-row .remove{
    width:100%;
    min-width:0;
    min-height:40px;
  }
  .skill-relative{
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:40px;
    border:1px solid var(--soft);
    background:var(--input-bg);
    font-size:14px;
  }
  .skill-total,.skill-points{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:7px;
    min-height:34px;
    border:1px solid var(--soft);
    background:var(--input-bg);
    font-size:13px;
  }
  .skill-total small,.skill-points small{
    display:inline;
    color:var(--muted);
    font:700 9px/1 Arial,sans-serif;
    letter-spacing:.04em;
    text-transform:uppercase;
  }

  /* Mobile inventory cards. */
  .inventory-head{display:none}
  .inventory-section-body{overflow:visible}
  .inventory-main{
    position:relative;
    min-width:0;
    width:100%;
    gap:8px;
    align-items:stretch;
  }
  .inventory-field{
    display:flex;
    min-width:0;
    flex-direction:column;
    align-items:stretch;
    justify-content:flex-start;
    gap:3px;
  }
  .inventory-mobile-label{
    display:block;
    color:var(--muted);
    font-size:9px;
    font-weight:700;
    letter-spacing:.04em;
    text-transform:uppercase;
  }
  .inventory-total-field{
    align-items:stretch;
    justify-content:flex-start;
  }
  .inventory-total-field .item-total,
  .inventory-total-field .item-cost-total{
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:38px;
    border:1px solid var(--soft);
    background:var(--input-bg);
  }
  .inventory-weapon-field{
    align-items:flex-start;
    justify-content:flex-start;
  }
  .inventory-weapon-field input{margin:7px 0 0}
  .inventory-remove{
    position:absolute;
    top:18px;
    right:0;
    width:32px;
    height:32px;
  }
  .inventory-section-title{
  }
  .bag-toggle{
    width:100%;
    order:3;
    min-height:34px;
  }

  .money-head{display:none}
  .money-row{
    position:relative;
    min-width:0;
    width:100%;
    grid-template-columns:minmax(0,1fr) 105px 32px;
    gap:7px;
  }

  .weapon-config{margin-left:0}
  .weapon-config-title{
    align-items:stretch;
    flex-direction:column;
  }
  .weapon-config-title .compact-add{width:100%}
  .profile-card-head{
    grid-template-columns:1fr 1fr 38px;
    align-items:end;
  }
  .profile-card-head .profile-used{grid-column:1/-1}
  .profile-card-head .profile-name-field{grid-column:1/2}
  .profile-card-head .profile-type-field{grid-column:2/3}
  .profile-card-head > .remove{grid-column:3/4;grid-row:2}
  .profile-groups{grid-template-columns:minmax(0,1fr)}
  .profile-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
  .profile-field input,
  .profile-field select{
    min-height:40px;
    font-size:16px;
  }

  #editorView.view-mode .skill-row{
    grid-template-columns:minmax(0,1fr) 58px 58px 58px;
    grid-template-areas:
      "name name name total"
      "attr relative bonus points";
    gap:7px;
  }
  #editorView.view-mode .skill-total{
    flex-direction:column;
    gap:2px;
    min-height:40px;
  }
  #editorView.view-mode .skill-total small,
  #editorView.view-mode .skill-points small{
    display:none!important;
  }
  #editorView.view-mode .inventory-main{
  }
  #editorView.view-mode .money-row{
    grid-template-columns:minmax(0,1fr) 105px;
  }

  .settings-modal,
  .character-name-modal{
    align-items:flex-start;
    padding:10px;
  }
  .settings-dialog,
  .character-name-dialog{
    max-height:calc(100dvh - 20px);
  }
}

@page{
  size:A4 portrait;
  margin:6mm;
}
@media print{
  html,body{
    width:auto!important;
    min-width:0!important;
    margin:0!important;
    padding:0!important;
    overflow:visible!important;
    color:#000!important;
    background:#fff!important;
    -webkit-print-color-adjust:exact;
    print-color-adjust:exact;
  }
  body{
    font-size:8.4pt!important;
    line-height:1.16!important;
  }
  .manager-screen,
  .toolbar,
  .settings-modal,
  .character-name-modal,
  .compat-warning,
  .edit-only-control,
  .add-row,
  .remove,
  .level-button,
  .portrait-actions,
  .collapse-btn,
  .weapon-config,
  .inventory-weapon-field,
  .bag-toggle{
    display:none!important;
  }
  #editorView{
    display:block!important;
  }
  .sheet{
    max-width:none!important;
    overflow:visible!important;
    border:0!important;
    background:#fff!important;
  }
    .topline{
    grid-template-columns:25mm minmax(45mm,1fr) 32mm 22mm 24mm!important;
    gap:1.5mm!important;
    margin-bottom:2mm!important;
  }
  .sheet-name{font-size:12pt!important}
  .total-points{
    min-height:13mm!important;
    padding:1mm 2mm!important;
    border:.45mm solid #111!important;
    background:#f2eee4!important;
  }
  .total-points strong{font-size:18pt!important}
  .total-points > summary{min-height:11mm!important;padding:1mm 2mm!important}
  .total-points > summary::after,
  .points-breakdown{display:none!important}
  .unspent-field input{height:8mm!important;font-size:12pt!important}
  .hero-row{
  }
  .hero-row > .block:nth-child(2),
  .hero-row > .portrait-card{
    grid-column:auto!important;
    grid-row:auto!important;
  }
  .content-grid{
    grid-template-columns:1fr 1fr!important;
    gap:2mm!important;
    margin-top:2mm!important;
  }
  .stack{gap:2mm!important}
  .block,
  details,
  .inventory-section{
    break-inside:avoid;
    page-break-inside:avoid;
    border:.35mm solid #333!important;
    background:#fff!important;
    box-shadow:none!important;
  }
  .inventory-block,
  #journalDetails,
  .inventory-section{
    break-inside:auto!important;
    page-break-inside:auto!important;
  }
  .inventory-section-title,
  .inventory-head{
    break-after:avoid;
    page-break-after:avoid;
  }
  .block-title,
  summary,
  .inventory-section-title{
    min-height:0!important;
    padding:1.1mm 2mm!important;
    border-bottom:.25mm solid #444!important;
    color:#000!important;
    background:#e9e6df!important;
    font-size:7.5pt!important;
    letter-spacing:.045em!important;
  }
  .block.collapsed .block-body{display:block!important}
  details > *{display:block!important}
  details > summary{display:block!important}
  .field{gap:.4mm!important}
  label,.tiny{
    font-size:6.5pt!important;
    letter-spacing:.035em!important;
  }
  input,
  textarea,
  select{
    min-height:0!important;
    padding:.25mm .6mm!important;
    border:0!important;
    border-bottom:.18mm solid #9a9a9a!important;
    border-radius:0!important;
    color:#000!important;
    background:transparent!important;
    box-shadow:none!important;
    -webkit-text-fill-color:#000!important;
    opacity:1!important;
  }
  textarea{
    height:auto!important;
    min-height:5mm!important;
    overflow:visible!important;
    resize:none!important;
    white-space:pre-wrap!important;
  }
  select{
    appearance:none!important;
    -webkit-appearance:none!important;
  }
  .stat-pair{
    grid-template-columns:8mm 14mm 8mm 10mm 14mm 14mm 8mm!important;
    gap:.8mm!important;
    min-height:9.5mm!important;
  }
  .stat-label{font-size:14pt!important}
  .stat-value,
  .stat-current{
    height:8.4mm!important;
    border:.3mm solid #222!important;
    font-size:15pt!important;
    background:#fff!important;
  }
  .stat-cost{font-size:7pt!important}
  .stat-current-wrap::before{font-size:5.7pt!important}
  .derived-row{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:1mm!important;
    margin-top:1.4mm!important;
    padding-top:1.4mm!important;
  }
  .derived-row .derived-static{
    display:none!important;
  }
  .derived{
    display:grid!important;
    grid-template-columns:1fr!important;
    grid-template-rows:auto auto auto!important;
    gap:.35mm!important;
    align-items:center!important;
    min-width:0!important;
    min-height:10.5mm!important;
    padding:.7mm .6mm!important;
    border:.2mm solid #aaa!important;
    background:#fafafa!important;
  }
  .derived .tiny{
    overflow:visible!important;
    white-space:normal!important;
    text-align:center!important;
    font-size:5.8pt!important;
  }
  .derived-input{
    width:100%!important;
    height:5mm!important;
    padding:0!important;
    border:0!important;
    border-bottom:.2mm solid #777!important;
    font-size:10pt!important;
    text-align:center!important;
  }
  .derived strong{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    min-height:5mm!important;
    font-size:10pt!important;
  }
  .derived-cost{
    min-height:2mm!important;
    font-size:5.5pt!important;
    text-align:center!important;
  }
  .damage{
    margin-top:1.4mm!important;
  }
  .defense-grid{gap:1mm!important}
  .defense-parry select,
  .manual-parry-input{
    height:5mm!important;
    font-size:6.5pt!important;
  }
  .defense-parry-value{
    min-height:6.5mm!important;
    font-size:12pt!important;
  }
  .defense-parry-meta,
  .defense-total-meta{font-size:5.5pt!important}
  .defense-total-value{min-height:6.5mm!important;font-size:12pt!important}
  .defense-bonus-grid{gap:.8mm!important;margin-top:1mm!important}
  .defense-bonus-grid input{height:5mm!important;font-size:8pt!important}
  .defense-bonus-grid label{font-size:5.4pt!important}
  .dr-grid{gap:.6mm 1mm!important}
  .portrait,.portrait img{min-height:30mm!important}
  .bio-mini{gap:1mm!important}
  .list-row{
    grid-template-columns:minmax(0,1fr) 15mm!important;
    gap:1mm!important;
  }
  .condition-row{grid-template-columns:minmax(0,1fr)!important}
  .skill-head{
    display:grid!important;
    grid-template-columns:minmax(31mm,1fr) 9mm 11mm 9mm 14mm 9mm!important;
    gap:.45mm!important;
    padding:0 .3mm .65mm!important;
    font-size:5.6pt!important;
  }
  .skill-head > :nth-child(3),
  .skill-head > :nth-child(4),
  .skill-head > :nth-child(6),
  .skill-head > :nth-child(10){
    display:none!important;
  }
  .skill-head > :nth-child(1){grid-column:1}
  .skill-head > :nth-child(2){grid-column:2}
  .skill-head > :nth-child(5){grid-column:3}
  .skill-head > :nth-child(7){grid-column:4}
  .skill-head > :nth-child(8){grid-column:5}
  .skill-head > :nth-child(9){grid-column:6}
  .skill-row{
    grid-template-columns:minmax(31mm,1fr) 9mm 11mm 9mm 14mm 9mm!important;
    grid-template-areas:"name attr relative bonus total points"!important;
    gap:.45mm!important;
    padding:.35mm .3mm!important;
    break-inside:avoid!important;
    page-break-inside:avoid!important;
  }
  .skill-row > :nth-child(1){grid-area:name}
  .skill-row > :nth-child(2){grid-area:attr}
  .skill-row > :nth-child(3){display:none!important}
  .skill-row > :nth-child(5){grid-area:relative}
  .skill-row > :nth-child(7){grid-area:bonus}
  .skill-row > :nth-child(8){grid-area:total}
  .skill-row > :nth-child(9){grid-area:points}
  .skill-row > *{
    min-width:0!important;
    max-width:100%!important;
    overflow:hidden!important;
  }
  .skill-name{
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
  }
  .skill-row input,.skill-row select{
    height:5mm!important;
    padding:.15mm .35mm!important;
    font-size:7pt!important;
  }
  .skill-relative{
    min-height:5mm!important;
    font-size:7.5pt!important;
  }
  .skill-total{
    min-height:5mm!important;
    border:.22mm solid #8a6d27!important;
    background:#eee4c6!important;
  }
  .skill-total small,
  .skill-points small{
    display:none!important;
  }
  .skill-total-value{font-size:10.5pt!important}
  .skill-points-value{font-size:8pt!important}
  .skill-points{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
  }
  .attack-card{
    grid-template-columns:minmax(27mm,1.35fr) repeat(4,minmax(13mm,.7fr))!important;
    break-inside:avoid!important;
  }
  .attack-card-head strong{font-size:7.8pt!important}
  .attack-kind{font-size:5.7pt!important}
  .attack-stat{
  }
  .attack-stat small{font-size:5.2pt!important}
  .attack-stat b{font-size:7pt!important}
  .attack-stat.attack-damage b,
  .attack-stat.attack-parry b{font-size:9pt!important}
  .attack-note{font-size:5.5pt!important}
  .enc-table th,.enc-table td{
    padding:.8mm 1mm!important;
    font-size:7pt!important;
  }
  .inventory-summary{
    gap:1mm!important;
    margin-bottom:1.4mm!important;
  }
  .inventory-summary span{
    padding:1mm!important;
    font-size:6.7pt!important;
    background:#f8f8f8!important;
  }
  .inventory-section{margin-top:1.5mm!important}
  .inventory-head,
  .inventory-main{
    min-width:0!important;
  }
  .inventory-head{
    display:grid!important;
    padding:1mm 1.4mm .6mm!important;
    font-size:5.8pt!important;
  }
  .inventory-head > :nth-child(6),
  .inventory-head > :nth-child(7){display:none!important}
  .inventory-item{
    padding:1mm 1.4mm!important;
    break-inside:avoid!important;
    page-break-inside:avoid!important;
  }
  .inventory-main{padding-right:0!important}
  .inventory-mobile-label{display:none!important}
  .inventory-main input{
    height:5.5mm!important;
    font-size:7.5pt!important;
  }
  .item-inline-totals{
    margin-top:.4mm!important;
    font-size:5.8pt!important;
  }
  .item-total,.item-cost-total{font-size:6pt!important}
  .money-head,.money-row{
    min-width:0!important;
    grid-template-columns:minmax(40mm,1fr) 25mm!important;
    gap:1mm!important;
  }
  .money-head > :last-child{display:none!important}
  .money-row{
    padding:1mm 1.4mm!important;
    break-inside:avoid!important;
  }
  .view-empty-row,
  .view-empty-section,
  .view-empty-field,
  .attack-empty{
    display:none!important;
  }
  input::placeholder,
  textarea::placeholder{
    color:transparent!important;
    opacity:0!important;
  }
  .inventory-section-title::after,
  summary::after{
    display:none!important;
    content:none!important;
  }
  #journalDetails{margin-top:2.5mm!important}
  .journal-grid{
    grid-template-columns:1fr 1fr!important;
    gap:2mm!important;
    padding:2mm!important;
  }
  .journal-grid .journal{grid-column:1/-1!important}
}

/* v40: equipment movement, collapsible attack profiles, armor automation. */
.inventory-head,.inventory-main{
}
.inventory-type-controls{
  min-width:0;
  font-size:8px;
}
.inventory-type-controls label{
  display:flex;
  align-items:center;
  gap:4px;
  white-space:nowrap;
}
.inventory-type-controls input{margin:0}
.item-type-badges{flex-wrap:wrap;gap:3px;}
.item-type-badge{
  font-weight:700;
  white-space:nowrap;
  text-transform:uppercase;
}
.item-move{
  border:1px solid #958d80;
}
.item-move:hover{background:var(--header-b)}
.item-config{
  margin:4px 0 1px;
  overflow:hidden;
  border:1px solid #b89a4b;
  border-radius:5px;
  background:rgba(255,255,255,.14);
}
.item-config-title{
  position:relative;
  display:flex;
  align-items:center;
  gap:8px;
  min-height:31px;
  padding:4px 34px 4px 7px;
  background:linear-gradient(180deg,rgba(229,211,161,.55),rgba(229,211,161,.22));
  cursor:pointer;
  list-style:none;
  font-size:10px;
  font-weight:700;
  text-transform:uppercase;
}
.item-config-title::-webkit-details-marker{display:none}
.item-config-title::after{
  content:"＋";
  position:absolute;
  top:50%;right:7px;
  transform:translateY(-50%);
  width:20px;height:20px;
  border:1px solid #8c836f;
  border-radius:4px;
  color:#4b453a;background:#f7f1e2;
  font:700 15px/18px Arial,sans-serif;
  text-align:center;
}
.item-config[open] .item-config-title{border-bottom:1px solid var(--soft)}
.item-config[open] .item-config-title::after{content:"−"}
.item-config-title > span{min-width:0;margin-right:auto;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.weapon-config{margin:7px 0 2px}
.weapon-config-title{border-bottom:0}
.armor-config{border-color:#7c8f68}
.armor-config .item-config-title{background:linear-gradient(180deg,rgba(184,205,164,.48),rgba(184,205,164,.18))}
.armor-core-fields{display:grid;grid-template-columns:120px minmax(160px,1fr);gap:7px;margin-bottom:7px}
.armor-core-fields .profile-field{min-width:0}
.armor-locations{
  display:grid;
  grid-template-columns:repeat(6,minmax(72px,1fr));
  gap:5px;
  padding:6px;
  border:1px solid var(--soft);
  border-radius:4px;
  background:var(--input-bg);
}
.armor-locations-title{grid-column:1/-1;color:var(--muted);font:700 8px/1 Arial,sans-serif;letter-spacing:.045em;text-transform:uppercase}
.armor-location-toggle{display:flex;align-items:center;gap:4px;font-size:9px;white-space:nowrap}
.armor-location-toggle input{width:auto;min-width:16px;min-height:16px;margin:0}
.armor-note-field{margin-top:7px}
.dr-grid{display:flex;flex-direction:column;gap:4px;margin-top:7px}
.dr-row{
  display:grid;
  grid-template-columns:minmax(55px,1fr) 72px;
  gap:5px;
  align-items:center;
  min-width:0;
}
.dr-location{font-size:10px}
.dr-value{min-width:0;text-align:center}
.dr-source{
  grid-column:1/-1;
  min-height:10px;
  margin-top:-2px;
  overflow:hidden;
  color:var(--muted);
  font-size:8px;
  line-height:1.2;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.dr-row[data-mode="auto"] .dr-value{font-weight:700;background:rgba(255,255,255,.18)}
.attack-card.attack-stowed{opacity:.62;border-style:dashed}
.attack-status{font-weight:700}
#editorView.view-mode .inventory-type-controls,
#editorView.view-mode .item-config{display:none!important}
#editorView.view-mode .sheet .bag-toggle{display:flex!important}
#editorView.view-mode .inventory-main{
}
#editorView.view-mode .inventory-head > :last-child{display:none!important}
#editorView.view-mode .dr-row{grid-template-columns:minmax(55px,1fr) 65px}
#editorView.view-mode .dr-value{border:1px solid var(--soft)!important;background:var(--input-bg)!important;font-weight:800}
#editorView.view-mode .dr-source{white-space:normal}

@media(max-width:720px){
  .inventory-main{
  }
  .inventory-type-controls,.item-type-badges{grid-column:1/-1;justify-content:flex-start;gap:10px}
  .item-move{min-height:40px;font-size:12px}
  .armor-core-fields{grid-template-columns:1fr}
  .item-config-title{align-items:stretch;flex-direction:column;padding-right:38px}
  .item-config-title .compact-add{width:100%}
  .dr-row{grid-template-columns:minmax(50px,1fr) 72px}
  #editorView.view-mode .inventory-main{grid-template-columns:repeat(2,minmax(0,1fr))}
  #editorView.view-mode .item-type-badges{grid-column:1/-1;justify-content:flex-start}
  #editorView.view-mode .dr-row{grid-template-columns:minmax(50px,1fr) 65px}
}

@media print{
  .item-move,.inventory-type-controls,.item-config,#parryProfileSelect{display:none!important}
  #editorView.view-mode .sheet .bag-toggle{display:none!important}
  .inventory-head,.inventory-main{
  }
  .inventory-head > :nth-child(6),.inventory-head > :nth-child(7){display:none!important}
  .inventory-main > .item-move,.inventory-main > .inventory-remove{display:none!important}
  .attack-card.attack-stowed{display:none!important}
  .dr-row{grid-template-columns:minmax(16mm,1fr) 13mm!important;gap:.8mm!important}
  .dr-value{height:5.5mm!important;font-size:8pt!important;border:.2mm solid #777!important}
  .dr-source{grid-column:1/-1!important;font-size:5.4pt!important;white-space:normal!important}
}


/* v45: collision-proof inventory actions and visible load weight. */
.field-meta{
  display:block;
  min-height:10px;
  margin-top:2px;
  overflow:hidden;
  color:var(--muted);
  font-size:8px;
  line-height:1.1;
  text-align:center;
  white-space:nowrap;
  text-overflow:ellipsis;
}
.inventory-type-controls{
  justify-content:stretch;
}
.inventory-type-controls label{
}
.inventory-type-controls input{
  flex:0 0 auto;
}
.item-move{
  min-width:0;
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis;
}
.inventory-remove{min-width:27px}
@media(max-width:900px) and (min-width:721px){
  .inventory-head,.inventory-main{
    grid-template-columns:minmax(150px,1fr) 42px 56px 62px 82px 82px 28px;
    gap:4px;
  }
  .inventory-type-controls{grid-template-columns:1fr;gap:2px}
  .inventory-type-controls label{min-height:20px;padding:1px 3px;font-size:7px}
  .item-move{font-size:8px}
}
@media(max-width:720px){
  .inventory-type-controls label{min-height:36px;font-size:11px}
  .field-meta{font-size:9px}
}
@media print{
  .field-meta{font-size:5.5pt!important}
}


/* v46 — unified combat header layout */
.hero-row{
  justify-content:stretch;
  width:100%;
}
.hero-main{
  display:flex;
  min-width:0;
  flex-direction:column;
}
.hero-top-grid{
  display:grid;
  align-items:stretch;
  min-width:0;
}
.hero-top-grid > .block{
  display:flex;
  flex-direction:column;
}
.hero-top-grid > .block > .block-body{flex:1}
.hero-top-grid > .block,
.hero-attacks,
.hero-row > .portrait-card{min-width:0}
.hero-attacks{margin:0}
.hero-attacks .block-body{padding-top:6px}
.hero-row > .portrait-card{
  grid-column:2;
  grid-row:1;
}

/* Defense uses the available width instead of growing vertically. */
.hero-top-grid [data-block-id="defense"] .block-body{
  display:grid;
  grid-template-columns:minmax(0,2fr) minmax(0,3fr);
  gap:7px;
  align-content:start;
}
.hero-top-grid [data-block-id="defense"] .defense-grid,
.hero-top-grid [data-block-id="defense"] .dr-grid{
  grid-column:1/-1;
}
.hero-top-grid [data-block-id="defense"] .dr-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:4px 8px;
  margin-top:0;
}
.hero-top-grid [data-block-id="defense"] .dr-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) 52px;
  gap:3px 5px;
  align-items:center;
  min-width:0;
}
.hero-top-grid [data-block-id="defense"] .dr-source{
  grid-column:1/-1;
  min-height:9px;
  margin-top:-1px;
  overflow:hidden;
  font-size:7.5px;
  line-height:1.1;
  white-space:nowrap;
  text-overflow:ellipsis;
}
.hero-top-grid [data-block-id="defense"] .condition-mini,
.hero-top-grid [data-block-id="defense"] .defense-bonus-grid{
  grid-column:1/-1;
  margin-top:0;
  align-self:start;
}
.hero-top-grid [data-block-id="defense"] .condition-mini{
  grid-template-columns:minmax(0,1fr) 58px;
}
.hero-top-grid [data-block-id="defense"] .defense-bonus-grid{
  gap:4px;
}
.hero-top-grid [data-block-id="defense"] .defense-bonus-grid label{
  font-size:7.5px;
}

.hero-top-grid [data-block-id="defense"].collapsed .block-body{display:none!important}
.encumbrance-field{min-width:0}
.encumbrance-display{
  display:flex;
  min-width:0;
  padding:3px 5px;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  border:1px solid var(--soft);
  border-radius:4px;
  text-align:center;
}
.encumbrance-display strong{
  max-width:100%;
  overflow:hidden;
  font:800 13px/1.05 Arial,sans-serif;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.encumbrance-display .field-meta{
  min-height:0;
  margin-top:2px;
  font-size:7.5px;
  line-height:1;
}
.inventory-empty{
  padding:12px 8px;
  border-top:1px solid var(--soft);
  color:var(--muted);
  font-size:10px;
  text-align:center;
}

@media(max-width:1000px){
  .hero-row{
    grid-template-columns:minmax(0,1fr) 210px;
    align-items:stretch;
  }
  .hero-top-grid{
    grid-template-columns:minmax(356px,1.2fr) minmax(250px,.8fr);
  }
  .hero-row > .portrait-card{
    grid-column:2!important;
    grid-row:1!important;
  }
}
@media(max-width:900px){
  .hero-row{
    grid-template-columns:minmax(0,1fr)!important;
  }
  .hero-row > .portrait-card{
    grid-column:auto!important;
    grid-row:auto!important;
    min-height:300px;
  }
  .hero-top-grid{
    grid-template-columns:minmax(356px,1.15fr) minmax(260px,.85fr);
  }
}
@media(max-width:720px){
  .hero-main{gap:10px}
  .hero-top-grid{
    grid-template-columns:minmax(0,1fr)!important;
  }
  .hero-top-grid [data-block-id="defense"] .block-body{
    grid-template-columns:minmax(0,1fr);
  }
  .hero-top-grid [data-block-id="defense"] .defense-grid,
  .hero-top-grid [data-block-id="defense"] .dr-grid,
  .hero-top-grid [data-block-id="defense"] .condition-mini,
  .hero-top-grid [data-block-id="defense"] .defense-bonus-grid{
    grid-column:1;
  }
  .hero-top-grid [data-block-id="defense"] .dr-grid{
    grid-template-columns:minmax(0,1fr);
  }
  .hero-row > .portrait-card{min-height:0}
}
@media print{
  .hero-row{
    grid-template-columns:minmax(0,1fr) 42mm!important;
    gap:2mm!important;
    align-items:stretch!important;
  }
  .hero-main{gap:2mm!important}
  .hero-top-grid{
    grid-template-columns:1.18fr .82fr!important;
    gap:2mm!important;
    align-items:start!important;
  }
  .hero-row > .portrait-card{
    grid-column:2!important;
    grid-row:1!important;
  }
  .hero-top-grid [data-block-id="defense"] .block-body{
    grid-template-columns:2fr 3fr!important;
    gap:1mm!important;
  }
  .hero-top-grid [data-block-id="defense"] .dr-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:.7mm 1mm!important;
  }
  .hero-top-grid [data-block-id="defense"] .dr-row{
    grid-template-columns:minmax(0,1fr) 9mm!important;
    gap:.5mm!important;
  }
  .hero-attacks{break-inside:auto!important;page-break-inside:auto!important}
}



/* v51 — whole-row drag on desktop and touch */
.drag-handle{display:none!important}
.list-row{grid-template-columns:minmax(0,1fr) 55px 25px}
.skill-row{grid-template-columns:minmax(120px,1fr) 50px 50px 22px 36px 22px 42px 40px 40px 22px}
.inventory-head,.inventory-main{
  grid-template-columns:minmax(210px,1fr) 46px 62px 72px 104px 92px 27px;
}

/* Fine-pointer devices: grab the non-editable parts of a row. */
@media (hover:hover) and (pointer:fine){
  [data-drag-kind]{cursor:grab}
  [data-drag-kind] input[type="text"],
  [data-drag-kind] input[type="number"],
  [data-drag-kind] input:not([type]),
  [data-drag-kind] textarea{cursor:text}
  [data-drag-kind] input[type="checkbox"],
  [data-drag-kind] input[type="radio"],
  [data-drag-kind] select,
  [data-drag-kind] button,
  [data-drag-kind] a,
  [data-drag-kind] summary,
  [data-drag-kind] label{cursor:default}
  [data-drag-kind] button,
  [data-drag-kind] select,
  [data-drag-kind] summary{cursor:pointer}
  [data-drag-kind] .item-inline-totals,
  [data-drag-kind] .item-type-badges{cursor:grab}
}

.custom-attacks-editor{
  margin-top:8px;
  padding-top:7px;
  border-top:1px solid var(--soft);
}
.custom-attacks-toolbar{
  display:flex;
  align-items:center;
  gap:8px;
  margin-bottom:6px;
}
.custom-attacks-toolbar strong{
  margin-right:auto;
  font-size:10px;
  letter-spacing:.055em;
  text-transform:uppercase;
}
.custom-attacks-toolbar .add-row{width:auto;margin:0}
.custom-attack-list{display:flex;flex-direction:column;gap:6px}
.custom-attack-card{border-color:#7767a3;background:rgba(218,210,241,.16)}
.custom-attack-summary-head{
  min-width:0;
}
.custom-attack-title-input{
  width:100%;
  min-width:0;
  padding:0;
  overflow:hidden;
  border:0;
  background:transparent;
  color:var(--ink);
  font-family:Georgia,serif!important;
  font-size:13px!important;
  font-weight:700!important;
  line-height:1.15!important;
  text-overflow:ellipsis;
}
.custom-attack-title-input::placeholder{
  color:var(--muted);
  opacity:.95;
}
.custom-attack-title-input:focus{
  outline:1px solid var(--soft);
  outline-offset:2px;
  border-radius:3px;
  background:rgba(255,255,255,.06);
}
#editorView.view-mode .custom-attack-title-input{
  pointer-events:none;
}
.custom-attack-empty{
  padding:9px;
  border:1px dashed var(--soft);
  color:var(--muted);
  text-align:center;
  font-size:10px;
}
.attack-card.attack-custom{border-color:#8b79b7;background:rgba(218,210,241,.16)}

/* Drag feedback. */
[data-drag-kind]{position:relative}
[data-drag-kind].drag-source{opacity:.28}
[data-drag-kind].drag-before::before,
[data-drag-kind].drag-after::after{
  content:"";
  position:absolute;
  left:4px;
  right:4px;
  z-index:120;
  height:4px;
  border-radius:999px;
  background:#7c62b0;
  box-shadow:0 0 0 1px rgba(255,255,255,.72),0 2px 8px rgba(0,0,0,.25);
  pointer-events:none;
}
[data-drag-kind].drag-before::before{top:-3px}
[data-drag-kind].drag-after::after{bottom:-3px}
[data-drop-kind].drag-zone-active{
  outline:2px dashed #7c62b0;
  outline-offset:-3px;
  background:rgba(124,98,176,.08);
}
.drag-ghost{
  position:fixed;
  z-index:10000;
  max-height:42vh;
  overflow:hidden;
  margin:0!important;
  pointer-events:none;
  opacity:.94;
  transform:rotate(.45deg) scale(1.01);
  border:1px solid #7767a3!important;
  border-radius:6px;
  background:var(--paper)!important;
  box-shadow:0 12px 34px rgba(0,0,0,.34);
}
body.drag-active,body.drag-active *{cursor:grabbing!important}
body.drag-active{user-select:none}

/* Portrait keeps its own size and no longer stretches with attacks. */
.hero-row{align-items:start!important}
.hero-row > .portrait-card{
  align-self:start!important;
  height:auto!important;
  min-height:0!important;
}
.portrait-card .block-body{flex:0 0 auto!important}
.portrait{
  flex:0 0 auto!important;
  width:100%;
  aspect-ratio:3/4;
  min-height:0!important;
}
.portrait img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  min-height:0!important;
}

#editorView.view-mode .drag-handle{display:none!important}
#editorView.view-mode .list-row{grid-template-columns:minmax(0,1fr) 62px}
#editorView.view-mode .inventory-main{
}
#editorView.view-mode .skill-head > :nth-child(10),
#editorView.view-mode .skill-row > :nth-child(10){display:none!important}

@media(max-width:1000px){
  .inventory-head,.inventory-main{
    grid-template-columns:minmax(150px,1fr) 42px 56px 62px 82px 82px 27px;
    gap:4px;
  }
}
@media(max-width:900px){
  .skill-row{
    grid-template-columns:minmax(130px,1fr) 58px 65px 25px 44px 25px 48px 48px 43px 25px;
  }
}
@media(max-width:720px){
  /* On touch devices the whole row is draggable after a short hold. */
  [data-drag-kind]{-webkit-touch-callout:none}
  .list-row{grid-template-columns:minmax(0,1fr) 68px 32px}
  .skill-row{
    grid-template-columns:minmax(0,1fr) 58px 58px 36px 42px 36px 52px 58px 48px 32px;
  }
  .inventory-main{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    padding-right:42px!important;
  }
  .custom-attack-head{
    grid-template-columns:minmax(0,1fr) minmax(100px,.55fr) 32px;
  }
  .custom-attack-head .profile-name-field,
  .custom-attack-head .profile-type-field{grid-column:auto!important;grid-row:auto!important}
  .custom-attack-head > .remove{grid-column:3!important;grid-row:auto!important}
  .portrait{aspect-ratio:4/3;max-height:280px}
  .drag-ghost{max-height:36vh;opacity:.97;transform:scale(.985)}
}
@media print{
  .drag-handle,.custom-attacks-editor{display:none!important}
  .hero-row > .portrait-card{align-self:start!important}
  .portrait{aspect-ratio:3/4!important;max-height:none!important}
  .inventory-head,.inventory-main{
    grid-template-columns:minmax(48mm,1fr) 9mm 13mm 15mm 18mm!important;
  }
  .inventory-head > :nth-child(6),
  .inventory-head > :nth-child(7),
  .inventory-head > :nth-child(8){display:none!important}
}


/* Compact point field with a dedicated blank grab gap.
   Row height and the visible field structure stay unchanged. */
#advantages .list-row,
#disadvantages .list-row{
  width:100%;
  margin:0;
  padding:0;
  grid-template-columns:minmax(0,1fr) 10px 42px 25px;
  column-gap:3px;
}
#advantages .list-row > input:first-child,
#disadvantages .list-row > input:first-child{
  grid-column:1;
}
#advantages .list-row::before,
#disadvantages .list-row::before{
  content:"";
  grid-column:2;
  grid-row:1;
  align-self:stretch;
  min-width:10px;
  cursor:grab;
}
#advantages .list-row > input[data-prop="points"],
#disadvantages .list-row > input[data-prop="points"]{
  grid-column:3;
  width:42px;
  min-width:42px;
  padding-left:2px;
  padding-right:2px;
  text-align:center;
  font-variant-numeric:tabular-nums;
}
#advantages .list-row > .remove,
#disadvantages .list-row > .remove{
  grid-column:4;
}
body.drag-active #advantages .list-row::before,
body.drag-active #disadvantages .list-row::before{
  cursor:grabbing;
}
@media print{
  #advantages .list-row,
  #disadvantages .list-row{
    grid-template-columns:minmax(0,1fr) 6px 42px 25px!important;
    column-gap:2px!important;
  }
}


/* Unified custom attacks: compact attack card + editor inside the same card. */
.attacks-block-title{
}
.attacks-block-title > span{pointer-events:none}
.attacks-title-add{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:auto;
  margin:0;
  border:1px dashed #8d7f9d;
  border-radius:4px;
  font:700 9px/1.1 Arial,sans-serif;
  letter-spacing:0;
  text-transform:none;
}
.custom-attack-unified{
  position:relative;
  overflow:hidden;
  border:1px solid #8b79b7;
}
.custom-attack-unified > .custom-attack-summary{
  margin:0;
  border:0;
  border-radius:0;
  padding-right:60px;
  background:rgba(218,210,241,.16);
}
.custom-attack-unified.is-open > .custom-attack-summary{
  border-bottom:1px solid #8b79b7;
}
.custom-attack-actions{
  position:absolute;
  z-index:4;
  display:flex;
  gap:4px;
}
.custom-attack-actions button{
  width:24px;
  height:24px;
  padding:0;
  border:1px solid #8c836f;
  border-radius:4px;
  background:var(--input-bg);
  font:700 15px/1 Arial,sans-serif;
}
.custom-attack-actions .custom-attack-expand{color:#5b477b}
.custom-attack-actions .custom-attack-delete{color:var(--red)}
.custom-attack-editor{
}
.custom-attack-editor[hidden]{display:none!important}

.custom-attack-unified .profile-groups{padding:6px 0 0}
.custom-attack-unified .profile-group:first-child{border-left:0}
#editorView.view-mode .attacks-title-add,
#editorView.view-mode .custom-attack-actions,
#editorView.view-mode .custom-attack-editor{display:none!important}
@media(max-width:720px){
  .attacks-block-title{padding-left:110px}
  .attacks-title-add{font-size:8px;padding:2px 5px}
  .custom-attack-unified > .custom-attack-summary{padding-right:58px}
  .custom-attack-editor .profile-card-head{grid-template-columns:minmax(0,1fr) minmax(100px,.55fr)}
}
@media print{
  .attacks-title-add,.custom-attack-actions,.custom-attack-editor{display:none!important}
  .custom-attack-unified{break-inside:avoid;border-color:#777!important;background:#fff!important}
  .custom-attack-unified > .custom-attack-summary{border:0!important;background:#fff!important}
}


/* Explicit themed controls: native Windows dropdowns must not fall back to
   white backgrounds with muted text in dark mode. */
:root{
  --control-bg:#fffdf7;
  --control-ink:#302b24;
  --control-border:#978e80;
  --control-hover:#f0e8d8;
  --popup-bg:#f4efe4;
  --popup-border:#756d5f;
}
html[data-theme="dark"]{
  --control-bg:#2b3138;
  --control-ink:#f2f4f6;
  --control-border:#68727d;
  --control-hover:#39414a;
  --popup-bg:#20252b;
  --popup-border:#626c77;
  color-scheme:dark;
}
html[data-theme="blue"]{
  --control-bg:#f8fcff;
  --control-ink:#1f2c38;
  --control-border:#7893a8;
  --control-hover:#e2eff7;
  --popup-bg:#edf5fa;
  --popup-border:#64839a;
}
html[data-theme="forest"]{
  --control-bg:#fbfcf5;
  --control-ink:#273126;
  --control-border:#87957e;
  --control-hover:#e7eddd;
  --popup-bg:#f0f3e9;
  --popup-border:#71806a;
}
select{
  color:var(--control-ink)!important;
  background-color:var(--control-bg)!important;
  border-color:var(--control-border)!important;
}
select option,
select optgroup{
  color:var(--control-ink)!important;
  background-color:var(--control-bg)!important;
}
.add-row,
.settings-close,
.settings-footer button,
.collapse-btn,
.total-points > summary::after,
.item-config-title::after,
.inventory-section-title::after{
  color:var(--control-ink);
  background:var(--control-bg);
  border-color:var(--control-border);
}
.add-row:hover,
.settings-close:hover,
.settings-footer button:hover,
.collapse-btn:hover{
  background:var(--control-hover);
}
@media(max-width:720px){
  .toolbar-controls{
    color:var(--ink);
    background:var(--popup-bg);
    border-color:var(--popup-border);
  }
  .toolbar-controls .theme-picker,
  .toolbar-controls .language-picker{
    border-color:var(--control-border);
  }
}


.custom-attack-summary .attack-kind{
  margin-top:2px;
}
.custom-attack-editor .profile-fields{
  align-items:end;
}


@media print{
  .custom-attack-title-input{
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    padding:0!important;
    overflow:visible!important;
    border:0!important;
    color:#000!important;
    background:transparent!important;
    box-shadow:none!important;
    font-family:Georgia,serif!important;
    font-size:8.5pt!important;
    font-weight:700!important;
    line-height:1.1!important;
    text-overflow:clip!important;
    -webkit-text-fill-color:#000!important;
  }
  .custom-attack-summary-head{
    min-width:0!important;
  }
}


/* ===== v59 design pass: Windows readability, better proportions, and section pictograms ===== */
:root{
  --ui-font:"Segoe UI","Segoe UI Variable Text",Tahoma,Arial,sans-serif;
  --title-font:"Cambria","Georgia",serif;
  --data-font:"Segoe UI","Segoe UI Variable Text",Tahoma,Arial,sans-serif;
  --focus-ring:0 0 0 2px rgba(78,121,167,.28);
  --block-head-grad:linear-gradient(180deg,rgba(255,255,255,.78),rgba(238,231,217,.92));
}
html[data-theme="dark"]{
  --focus-ring:0 0 0 2px rgba(126,171,255,.32);
  --block-head-grad:linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,.02));
}
html[data-theme="blue"]{
  --focus-ring:0 0 0 2px rgba(57,122,172,.26);
}
html[data-theme="forest"]{
  --focus-ring:0 0 0 2px rgba(80,126,78,.28);
}

body,button,input,select,textarea{
  font-family:var(--ui-font);
  font-feature-settings:"tnum" 1,"lnum" 1;
}
.sheet{
}
.topline{
}
label,.tiny{
  font-family:var(--ui-font);
}
input,select,textarea,button{
  font-size:13px;
}
input[type="number"], .stat-value, .stat-current, .derived-input, .defense-total-value, .skill-total-value, .skill-points-value{
  font-family:var(--data-font);
  font-variant-numeric:tabular-nums;
}
.sheet-name{
  letter-spacing:.03em;
}
.block{
}
.block-title{
  display:flex;
  align-items:center;
  gap:7px;
  text-transform:uppercase;
}
.block-title::before{
  content:"";
  flex:0 0 14px;
  background-color:currentColor;
  -webkit-mask-repeat:no-repeat;
  -webkit-mask-position:center;
  -webkit-mask-size:contain;
  mask-repeat:no-repeat;
  mask-position:center;
  mask-size:contain;
}
[data-block-id="characteristics"]>.block-title::before{-webkit-mask-image:url("data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.8%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M12%203v18%27/%3E%3Cpath%20d%3D%27M3%2012h18%27/%3E%3Cpath%20d%3D%27M6.5%206.5l11%2011%27/%3E%3Cpath%20d%3D%27M17.5%206.5l-11%2011%27/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.8%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M12%203v18%27/%3E%3Cpath%20d%3D%27M3%2012h18%27/%3E%3Cpath%20d%3D%27M6.5%206.5l11%2011%27/%3E%3Cpath%20d%3D%27M17.5%206.5l-11%2011%27/%3E%3C/svg%3E");}
[data-block-id="defense"]>.block-title::before{-webkit-mask-image:url("data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.8%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M12%203l7%203v5c0%204.7-2.6%207.9-7%2010-4.4-2.1-7-5.3-7-10V6l7-3z%27/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.8%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M12%203l7%203v5c0%204.7-2.6%207.9-7%2010-4.4-2.1-7-5.3-7-10V6l7-3z%27/%3E%3C/svg%3E");}
[data-block-id="portrait"]>.block-title::before{-webkit-mask-image:url("data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.8%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Ccircle%20cx%3D%2712%27%20cy%3D%278%27%20r%3D%274%27/%3E%3Cpath%20d%3D%27M4%2021c1.6-3.9%205-6%208-6s6.4%202.1%208%206%27/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.8%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Ccircle%20cx%3D%2712%27%20cy%3D%278%27%20r%3D%274%27/%3E%3Cpath%20d%3D%27M4%2021c1.6-3.9%205-6%208-6s6.4%202.1%208%206%27/%3E%3C/svg%3E");}
[data-block-id="attacks"]>.block-title::before{-webkit-mask-image:url("data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.8%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M14%203l7%207%27/%3E%3Cpath%20d%3D%27M13%204l7%207%27/%3E%3Cpath%20d%3D%27M3%2021l8-3%2010-10-5-5L6%2013%203%2021z%27/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.8%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M14%203l7%207%27/%3E%3Cpath%20d%3D%27M13%204l7%207%27/%3E%3Cpath%20d%3D%27M3%2021l8-3%2010-10-5-5L6%2013%203%2021z%27/%3E%3C/svg%3E");}
[data-block-id="advantages"]>.block-title::before{-webkit-mask-image:url("data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.8%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M12%203l2.5%205.1L20%209l-4%203.9.9%205.6L12%2016l-4.9%202.5.9-5.6L4%209l5.5-.9L12%203z%27/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.8%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M12%203l2.5%205.1L20%209l-4%203.9.9%205.6L12%2016l-4.9%202.5.9-5.6L4%209l5.5-.9L12%203z%27/%3E%3C/svg%3E");}
[data-block-id="disadvantages"]>.block-title::before{-webkit-mask-image:url("data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.8%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M12%203l9%2016H3L12%203z%27/%3E%3Cpath%20d%3D%27M12%209v4%27/%3E%3Ccircle%20cx%3D%2712%27%20cy%3D%2716.5%27%20r%3D%271%27/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.8%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M12%203l9%2016H3L12%203z%27/%3E%3Cpath%20d%3D%27M12%209v4%27/%3E%3Ccircle%20cx%3D%2712%27%20cy%3D%2716.5%27%20r%3D%271%27/%3E%3C/svg%3E");}
[data-block-id="encumbrance"]>.block-title::before{-webkit-mask-image:url("data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.8%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M5%209h14v10H5z%27/%3E%3Cpath%20d%3D%27M8%209V7a4%204%200%200%201%208%200v2%27/%3E%3Cpath%20d%3D%27M12%2013v3%27/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.8%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M5%209h14v10H5z%27/%3E%3Cpath%20d%3D%27M8%209V7a4%204%200%200%201%208%200v2%27/%3E%3Cpath%20d%3D%27M12%2013v3%27/%3E%3C/svg%3E");}
[data-block-id="skills"]>.block-title::before{-webkit-mask-image:url("data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.8%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Ccircle%20cx%3D%2712%27%20cy%3D%2712%27%20r%3D%278%27/%3E%3Ccircle%20cx%3D%2712%27%20cy%3D%2712%27%20r%3D%274%27/%3E%3Ccircle%20cx%3D%2712%27%20cy%3D%2712%27%20r%3D%271.5%27%20fill%3D%27black%27%20stroke%3D%27none%27/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.8%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Ccircle%20cx%3D%2712%27%20cy%3D%2712%27%20r%3D%278%27/%3E%3Ccircle%20cx%3D%2712%27%20cy%3D%2712%27%20r%3D%274%27/%3E%3Ccircle%20cx%3D%2712%27%20cy%3D%2712%27%20r%3D%271.5%27%20fill%3D%27black%27%20stroke%3D%27none%27/%3E%3C/svg%3E");}
[data-block-id="conditions"]>.block-title::before{-webkit-mask-image:url("data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.8%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M9%207l8%208%27/%3E%3Cpath%20d%3D%27M17%207l-8%208%27/%3E%3Crect%20x%3D%274%27%20y%3D%274%27%20width%3D%2716%27%20height%3D%2716%27%20rx%3D%273%27/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.8%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M9%207l8%208%27/%3E%3Cpath%20d%3D%27M17%207l-8%208%27/%3E%3Crect%20x%3D%274%27%20y%3D%274%27%20width%3D%2716%27%20height%3D%2716%27%20rx%3D%273%27/%3E%3C/svg%3E");}
[data-block-id="social"]>.block-title::before{-webkit-mask-image:url("data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.8%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M5%206h14v9H9l-4%204V6z%27/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.8%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M5%206h14v9H9l-4%204V6z%27/%3E%3C/svg%3E");}
[data-block-id="inventory"]>.block-title::before{-webkit-mask-image:url("data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.8%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M7%208V7a5%205%200%200%201%2010%200v1%27/%3E%3Cpath%20d%3D%27M5%208h14l-1%2011H6L5%208z%27/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.8%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M7%208V7a5%205%200%200%201%2010%200v1%27/%3E%3Cpath%20d%3D%27M5%208h14l-1%2011H6L5%208z%27/%3E%3C/svg%3E");}
.collapse-btn{
  line-height:1;
}
.hero-top-grid{
}
.content-grid{
}
.stack,.list{gap:12px}
.block + .block{margin-top:0}

.field input,.field select,.field textarea,
.setting-field input, .setting-field select,
.profile-field input, .profile-field select, .profile-field textarea,
.simple-row input, .list-row input, .list-row select,
.inventory-item input, .inventory-item select,
.custom-attack-title-input,
.add-row, .settings-close, .settings-footer button, .theme-picker, .language-picker{
  border-radius:4px;
}
input,select,textarea{
  transition:border-color .14s ease, box-shadow .14s ease, background-color .14s ease;
}
input:focus, select:focus, textarea:focus, button:focus-visible, summary:focus-visible, .collapse-btn:focus-visible{
  outline:none;
  box-shadow:var(--focus-ring);
}
.stat-value, .stat-current{
  height:34px;
  font-size:15px;
  font-weight:700;
}
.stat-label{
}
.stat-cost{
  font-size:10px;
}
.derived-row{
}
.tiny{font-size:10px}
.derived{
}
.derived-input{
}
.defense-grid{
}
.defense-total-value{
  font-size:15px;
}
.simple-row,.list-row{
  min-height:28px;
}
.simple-row input,.list-row input,.list-row select{
  height:28px;
}
.inventory-summary{
  padding:6px 8px;
  border-radius:4px;
  background:rgba(255,255,255,.28);
}
.inventory-section-title{padding:8px 10px}
.custom-attack-summary .attack-stat,
.attack-card .attack-stat{
  min-height:48px;
}
.attack-card-head strong,
.custom-attack-title-input{
  font-family:var(--title-font)!important;
  font-size:15px!important;
  font-weight:700!important;
  line-height:1.15!important;
}
.attack-kind{
}
.skill-row, .simple-row, .list-row, .inventory-item, .custom-attack-unified{
  scroll-margin-top:12px;
}
@media (max-width:1180px){
  .sheet{width:min(1030px,calc(100% - 18px));}
  .hero-top-grid{grid-template-columns:390px minmax(0,1fr);}
}
@media (max-width:980px){
  .sheet{width:min(100%,calc(100% - 12px)); padding:12px}
  .topline{grid-template-columns:130px minmax(160px,1fr) 160px 96px 120px;}
  .hero-top-grid{grid-template-columns:1fr;}
}
@media print{
  .sheet{
    box-shadow:none!important;
  }
  .block-title{
  }
  .block-title::before{width:10pt;height:10pt;flex-basis:10pt}
}


/* ===== v60 final UI polish =====
   Windows-first typography and one consistent information hierarchy. */
:root{
  --font-ui:"Segoe UI Variable Text","Segoe UI",Aptos,Tahoma,Arial,sans-serif;
  --font-heading:"Bahnschrift SemiCondensed","Bahnschrift","Segoe UI Semibold","Segoe UI",Arial,sans-serif;
  --font-value:"Segoe UI Variable Display","Segoe UI",Aptos,Tahoma,Arial,sans-serif;

  --ui-surface:#fffefa;
  --ui-surface-soft:#f7f3eb;
  --ui-surface-muted:#eee7da;
  --ui-field:#fffefa;
  --ui-border:#c5bcad;
  --ui-border-strong:#71695e;
  --ui-text:#29251f;
  --ui-secondary:#6a645b;
  --ui-accent:#987019;
  --ui-accent-soft:#f2e5b9;
  --ui-danger-soft:#f8e9e6;
  --ui-hover:rgba(106,91,61,.07);
  --ui-focus:0 0 0 2px rgba(49,112,176,.27);
}
html[data-theme="dark"]{
  --ui-surface:#242a31;
  --ui-surface-soft:#2b323a;
  --ui-surface-muted:#333b44;
  --ui-field:#292f36;
  --ui-border:#515c67;
  --ui-border-strong:#818c98;
  --ui-text:#f0f2f4;
  --ui-secondary:#b7bec6;
  --ui-accent:#dfb75d;
  --ui-accent-soft:#453d29;
  --ui-danger-soft:#4c2f30;
  --ui-hover:rgba(255,255,255,.055);
  --ui-focus:0 0 0 2px rgba(112,164,232,.35);
}
html[data-theme="blue"]{
  --ui-surface:#f7fbfe;
  --ui-surface-soft:#edf5fa;
  --ui-surface-muted:#dceaf3;
  --ui-field:#fbfdff;
  --ui-border:#b8ccd9;
  --ui-border-strong:#58758b;
  --ui-text:#20303d;
  --ui-secondary:#627584;
  --ui-accent:#347ba9;
  --ui-accent-soft:#d9edf8;
  --ui-hover:rgba(52,123,169,.07);
  --ui-focus:0 0 0 2px rgba(52,123,169,.28);
}
html[data-theme="forest"]{
  --ui-surface:#fafbf5;
  --ui-surface-soft:#f0f3e9;
  --ui-surface-muted:#e1e8d8;
  --ui-field:#fcfdf8;
  --ui-border:#c6d0bd;
  --ui-border-strong:#61725b;
  --ui-text:#283328;
  --ui-secondary:#667061;
  --ui-accent:#698331;
  --ui-accent-soft:#e2ebcf;
  --ui-hover:rgba(91,115,72,.07);
  --ui-focus:0 0 0 2px rgba(91,126,76,.3);
}

html,body{
  font-family:var(--font-ui);
}
body,button,input,textarea,select{
  font-family:var(--font-ui)!important;
  color:var(--ui-text);
}
input,textarea,select{
  font-size:var(--text-row);
}
button{
  font-size:12px;
  font-weight:600;
}

/* Desktop canvas */
.sheet{
  width:min(1180px,calc(100% - 28px));
  margin:14px auto 36px;
  border-color:var(--ui-border);
  background:var(--paper);
}
.topline{
  grid-template-columns:145px minmax(250px,1fr) 185px 110px 135px;
  gap:11px;
  margin-bottom:12px;
}
.topline .field input,
.topline .field select{
  min-height:32px;
  padding:5px 7px;
  border:1px solid var(--ui-border);
  border-radius:5px;
  background:var(--ui-field);
}
.sheet-name{
  font-family:var(--font-heading);
  font-size:18px;
  font-weight:700;
  line-height:1.15;
}
label,.tiny{
  color:var(--ui-secondary);
  font-size:var(--text-caption);
  font-weight:650;
  letter-spacing:.035em;
}

/* Toolbar */
.toolbar{
  gap:8px;
  padding:8px 14px;
  font-size:12px;
}
.toolbar button,.file-label,
.toolbar .theme-picker,.toolbar .language-picker{
  min-height:32px;
  border-radius:6px;
}
.toolbar button,.file-label{
  padding:6px 10px;
}
.status{
  font-size:var(--text-caption)!important;
}

/* Section hierarchy */
.block{
  overflow:hidden;
  border:1px solid var(--ui-border-strong);
  border-radius:6px;
  background:var(--ui-surface);
  box-shadow:0 1px 0 rgba(255,255,255,.25);
}
.block-title{
  justify-content:flex-start!important;
  padding:5px 34px 5px 10px!important;
  border-bottom:1px solid var(--ui-border);
  color:var(--ui-text);
  background:var(--ui-surface-muted)!important;
  text-align:left!important;
  font-family:var(--font-heading)!important;
  font-weight:700!important;
  line-height:1.1;
  letter-spacing:.045em!important;
}
.block-title::before{
  opacity:.74!important;
}
.block-body{
}
.collapse-btn{
  right:5px;
  border-color:var(--ui-border);
  border-radius:5px;
  color:var(--ui-text);
  background:var(--ui-field);
}
.collapse-btn:hover{
  background:var(--ui-hover);
}
.hero-row{
  grid-template-columns:minmax(0,1fr) 246px!important;
  gap:12px!important;
}
.hero-main{
  gap:12px!important;
}
.hero-top-grid{
  grid-template-columns:420px minmax(0,1fr)!important;
  gap:12px!important;
}
.content-grid{
}
.stack{
}

/* The add button sits on the right, while the title remains scannable on the left. */
.attacks-block-title{
  padding-left:10px!important;
  padding-right:155px!important;
}
.attacks-title-add{
  left:auto!important;
  right:36px!important;
  min-height:24px!important;
  padding:3px 8px!important;
  border-color:var(--ui-border)!important;
  color:var(--ui-text)!important;
  background:var(--ui-field)!important;
  font-size:10.5px!important;
  font-weight:650!important;
}
.attacks-title-add:hover{
  background:var(--ui-hover)!important;
}

/* Primary game values */
.stat-pairs{
  gap:5px;
}
.stat-pair{
}
.stat-label{
  color:var(--ui-text);
  font-family:var(--font-heading)!important;
  font-weight:700!important;
}
.stat-value,.stat-current{
  border-color:var(--ui-border-strong)!important;
  border-radius:4px;
  background:var(--ui-field);
  font-family:var(--font-value)!important;
  font-weight:720!important;
}
.stat-cost,.derived-cost{
  color:var(--ui-secondary);
}
.stat-current-wrap::before{
  color:var(--ui-secondary);
  font-size:var(--text-micro)!important;
}
.derived-row{
  border-top-color:var(--ui-border);
}
.derived{
}
.derived-input{
  border-color:var(--ui-border)!important;
  border-radius:4px;
  background:var(--ui-field);
  font-family:var(--font-value)!important;
}
.derived strong{
  font-family:var(--font-value)!important;
}
.damage{
}
.damage input{
  border:1px solid var(--ui-border);
  border-radius:4px;
  background:var(--ui-field);
  font-family:var(--font-value)!important;
}

/* Defenses */
.defense-grid{
  gap:7px!important;
}
.defense{
  border-color:var(--ui-border);
  border-radius:5px;
  background:var(--ui-surface-soft);
}
.defense>label{
  font-family:var(--font-heading);
  font-size:10.5px;
}
.defense select,.defense input{
}
.defense-total-value,.defense-parry-value{
  border-color:var(--ui-accent)!important;
  background:var(--ui-accent-soft)!important;
  font-family:var(--font-value)!important;
  font-weight:760!important;
}
.defense-total-meta,.defense-parry-meta,
.field-meta,.dr-source,
.hero-top-grid [data-block-id="defense"] .dr-source{
  min-height:11px;
  color:var(--ui-secondary)!important;
  font-size:var(--text-micro)!important;
  line-height:1.2!important;
}
.dr-row{
  padding:2px 0;
}
.dr-row label{
  font-size:10.5px;
}
.dr-value{
  height:28px;
  border-color:var(--ui-border)!important;
  background:var(--ui-field)!important;
  font-family:var(--font-value)!important;
  font-size:14px!important;
}
.defense-bonus-grid{
  gap:7px!important;
}
.hero-top-grid [data-block-id="defense"] .defense-bonus-grid label,
.defense-bonus-grid label{
  font-size:var(--text-micro)!important;
}
.defense-bonus-grid input{
  height:28px!important;
  border:1px solid var(--ui-border);
  border-radius:4px;
  background:var(--ui-field);
  font-family:var(--font-value)!important;
  font-size:14px!important;
}
.encumbrance-display{
  border-color:var(--ui-border)!important;
  background:var(--ui-field)!important;
}
.encumbrance-display strong{
  font-family:var(--font-value)!important;
  font-size:14px!important;
}

/* Attack cards: one coherent primary/secondary/tertiary hierarchy. */
.attack-list{
  gap:7px!important;
}
.attack-card{
  grid-template-columns:minmax(175px,1.45fr) repeat(auto-fit,minmax(76px,.72fr))!important;
  gap:7px!important;
  padding:8px!important;
  border-color:var(--ui-border)!important;
  border-radius:6px!important;
  background:var(--ui-surface-soft)!important;
}
.attack-card-head strong,.custom-attack-title-input{
  color:var(--ui-text)!important;
  font-family:var(--font-heading)!important;
  font-weight:700!important;
  line-height:1.15!important;
}
.custom-attack-title-input{
}
.attack-kind{
  margin-top:2px;
  color:var(--ui-secondary)!important;
  font-weight:600;
  letter-spacing:.04em;
}
.attack-stat{
  min-height:48px!important;
  gap:4px!important;
  padding:5px!important;
  border-color:var(--ui-border)!important;
  background:var(--ui-field)!important;
}
.attack-stat small{
  color:var(--ui-secondary)!important;
  font-family:var(--font-ui)!important;
  font-weight:650!important;
}
.attack-stat b{
  color:var(--ui-text);
  font-family:var(--font-value)!important;
  font-weight:720!important;
}
.attack-stat.attack-damage b{
}
.attack-stat.attack-parry b{
  color:var(--ui-accent)!important;
}
.attack-note{
  color:var(--ui-secondary)!important;
}
.custom-attack-unified{
  border-color:var(--ui-border-strong)!important;
  border-radius:7px!important;
  background:var(--ui-surface-soft)!important;
}
.custom-attack-editor{
  background:var(--ui-surface)!important;
}

/* Lists, skills and conditions */
.list{
  gap:4px!important;
}
.list-row{
  min-height:29px;
}
.list-row input{
  min-height:28px;
  color:var(--ui-text);
  font-size:var(--text-row)!important;
}
#advantages .list-row,
#disadvantages .list-row{
  border-bottom:1px solid var(--ui-border);
}
#advantages .list-row:last-child,
#disadvantages .list-row:last-child{
  border-bottom:0;
}
.skill-head{
  padding:2px 3px 5px!important;
  color:var(--ui-secondary)!important;
  font-family:var(--font-heading);
  font-size:var(--text-micro)!important;
  font-weight:650;
  letter-spacing:.035em;
}
.skill-list{
  gap:4px!important;
}
.skill-row{
  min-height:31px;
  padding:2px 0 4px!important;
  border-bottom-color:var(--ui-border)!important;
}
.skill-row input,.skill-row select{
  height:28px!important;
  border-color:var(--ui-border)!important;
  border-radius:4px;
  background:var(--ui-field)!important;
  font-size:12.5px!important;
}
.skill-row .skill-name{
  font-size:13px!important;
}
.level-button{
  width:24px!important;
  height:24px!important;
  border-color:var(--ui-border)!important;
  color:var(--ui-text)!important;
  background:var(--ui-field)!important;
}
.skill-total{
  min-height:28px!important;
  border-color:var(--ui-accent)!important;
  background:var(--ui-accent-soft)!important;
}
.skill-total-value{
  font-family:var(--font-value)!important;
  font-size:17px!important;
}
.skill-points-value,.skill-relative{
  font-family:var(--font-value)!important;
  font-size:12px!important;
}
.manual-skill-points{
  height:28px!important;
  border-color:var(--ui-accent)!important;
  background:var(--ui-accent-soft)!important;
  font-family:var(--font-value)!important;
  font-size:12px!important;
}
.condition-row{
  gap:6px;
}
.condition-row input{
  height:29px!important;
  border-color:var(--ui-border)!important;
  border-radius:4px;
  background:var(--ui-field)!important;
  font-size:13px!important;
}
.remove{
  width:26px;
  height:26px;
}
.remove:hover{
  background:var(--ui-danger-soft)!important;
}
.add-row{
  min-height:30px;
  margin-top:7px;
  padding:5px 8px;
  border-color:var(--ui-border-strong)!important;
  border-radius:5px;
  color:var(--ui-text)!important;
  background:var(--ui-surface-soft)!important;
  font-size:11.5px;
  font-weight:650;
}
.add-row:hover{
  background:var(--ui-hover)!important;
}

/* Subsections and profile editors */
.inventory-section,.weapon-config,.armor-config,.settings-help{
  border-color:var(--ui-border)!important;
  border-radius:6px!important;
  background:var(--ui-surface)!important;
}
.inventory-section-title,.weapon-config-title,.item-config-title{
  min-height:36px!important;
  padding:6px 35px 6px 9px!important;
  color:var(--ui-text);
  background:var(--ui-surface-muted)!important;
  font-family:var(--font-heading)!important;
  font-size:11px!important;
  font-weight:700!important;
  letter-spacing:.035em;
}
.profile-group-title{
  color:var(--ui-secondary)!important;
  font-family:var(--font-heading)!important;
  font-size:var(--text-micro)!important;
  font-weight:700!important;
}
.profile-field{
  gap:3px!important;
}
.profile-field label{
  color:var(--ui-secondary)!important;
  font-size:var(--text-micro)!important;
  font-weight:650!important;
}
.profile-field input,.profile-field select{
  height:29px!important;
  border-color:var(--ui-border)!important;
  border-radius:4px;
  background:var(--ui-field)!important;
  font-size:12px!important;
}
.profile-parry-preview{
  border-color:var(--ui-accent)!important;
  background:var(--ui-accent-soft)!important;
  font-family:var(--font-value)!important;
}

/* Inventory */
.inventory-block{
  margin-top:12px!important;
}
.inventory-summary{
  gap:7px!important;
  margin-bottom:9px!important;
}
.inventory-summary>span{
  min-height:46px!important;
  padding:6px 8px!important;
  border-color:var(--ui-border)!important;
  border-radius:5px;
  color:var(--ui-secondary);
  background:var(--ui-surface-soft)!important;
  font-size:var(--text-caption)!important;
}
.inventory-summary strong{
  color:var(--ui-text);
  font-family:var(--font-value)!important;
  font-size:15px!important;
}
.inventory-summary small{
  color:var(--ui-secondary)!important;
  font-size:var(--text-micro)!important;
}
.inventory-head,.money-head{
  color:var(--ui-secondary)!important;
  font-family:var(--font-heading);
  font-size:var(--text-micro)!important;
  font-weight:650;
}
.inventory-item{
  border-top-color:var(--ui-border)!important;
}
.inventory-main{
  gap:6px!important;
}
.inventory-main input,.money-row input{
  height:29px!important;
  border-color:var(--ui-border)!important;
  border-radius:4px;
  background:var(--ui-field)!important;
  font-size:12.5px!important;
}
.inventory-main .item-name{
  font-size:13px!important;
  font-weight:600;
}
.item-inline-totals{
  color:var(--ui-secondary)!important;
}
.inventory-type-controls label{
  border-color:var(--ui-border)!important;
}
.item-move{
  border-color:var(--ui-border)!important;
  border-radius:4px;
  background:var(--ui-field);
}

/* Tables and secondary information */
.enc-table th{
  color:var(--ui-secondary)!important;
  font-family:var(--font-heading);
  font-weight:650;
}
.enc-table td{
  padding:4px 5px!important;
  border-bottom-color:var(--ui-border)!important;
}
.enc-table td:not(:first-child){
  font-family:var(--font-value)!important;
}
.current-load-row{
  background:var(--ui-accent-soft)!important;
}
textarea{
  border:1px solid var(--ui-border);
  border-radius:5px;
  background:var(--ui-field);
  font-size:13px;
  line-height:1.4;
}

/* Total points is deliberately the strongest object in the header. */
.unspent-field input{
  height:34px!important;
  border-color:var(--ui-border-strong)!important;
  border-radius:5px;
  background:var(--ui-field);
  font-family:var(--font-value)!important;
  font-size:18px!important;
}
.total-points{
  border-color:var(--ui-border-strong)!important;
  border-radius:6px;
  background:var(--ui-accent-soft)!important;
}
.total-points>summary{
}
.total-points strong{
  font-family:var(--font-value)!important;
}
.total-points span{
  font-size:var(--text-caption);
}

/* Journal behaves like a proper major section as well. */
#journalDetails{
  overflow:hidden;
  border-color:var(--ui-border-strong)!important;
  border-radius:6px;
  background:var(--ui-surface)!important;
}
#journalDetails>summary{
  min-height:32px;
  padding:6px 36px 6px 10px;
  color:var(--ui-text);
  background:var(--ui-surface-muted)!important;
  font-family:var(--font-heading)!important;
  font-size:var(--text-section)!important;
  letter-spacing:.04em;
}

/* Manager and modal screens */
.manager-title-row h1,.character-card h2,.settings-header strong{
  font-family:var(--font-heading)!important;
}
.manager-title-row h1{
  font-size:30px!important;
}
.manager-title-row p,.character-meta,.delete-character-message,
.settings-note{
  font-family:var(--font-ui)!important;
}
.character-card{
  border-radius:9px!important;
}
.character-card h2{
  font-size:18px!important;
}
.character-meta{
  font-size:11.5px!important;
}
.character-actions button{
  min-height:32px!important;
  font-size:11px!important;
}

/* Hover and focus behavior */
input:hover,select:hover,textarea:hover{
  border-color:var(--ui-border-strong);
}
input:focus,select:focus,textarea:focus,
button:focus-visible,summary:focus-visible{
  outline:none!important;
  border-color:var(--ui-accent)!important;
  box-shadow:var(--ui-focus)!important;
}
::placeholder{
  color:var(--ui-secondary);
  opacity:.7;
}

@media(max-width:1220px){
  .sheet{
    width:min(1120px,calc(100% - 18px));
  }
  .hero-top-grid{
    grid-template-columns:402px minmax(0,1fr)!important;
  }
}
@media(max-width:1020px){
  .sheet{
    width:calc(100% - 12px);
    padding:12px;
  }
  .topline{
    grid-template-columns:130px minmax(190px,1fr) 160px 100px 124px;
  }
  .hero-row{
    grid-template-columns:minmax(0,1fr) 220px!important;
  }
  .hero-top-grid{
    grid-template-columns:minmax(370px,1fr) minmax(280px,.9fr)!important;
  }
}
@media(max-width:900px){
  .hero-row,.hero-top-grid{
    grid-template-columns:minmax(0,1fr)!important;
  }
  .portrait-card{
    max-width:360px;
    justify-self:center;
  }
}
@media(max-width:720px){
  html,body{
    font-size:14px;
  }
  .block-title{
    min-height:36px;
    font-size:12.5px!important;
  }
  .block-body{
    padding:10px!important;
  }
  .attacks-block-title{
    padding-right:132px!important;
  }
  .attacks-title-add{
    right:40px!important;
  }
  .attack-card{
    grid-template-columns:minmax(0,1fr) repeat(2,minmax(72px,1fr))!important;
  }
}

/* Print remains dense, monochrome and predictable. */
@media print{
  body,input,select,textarea,button{
    font-family:Arial,sans-serif!important;
  }
  .sheet{
    width:auto!important;
    margin:0!important;
    padding:7pt 8pt 8pt!important;
  }
  .block{
    border-radius:0!important;
    box-shadow:none!important;
  }
  .block-title{
    min-height:18pt!important;
    padding:2pt 18pt 2pt 4pt!important;
    font-family:Arial,sans-serif!important;
    font-size:8pt!important;
  }
  .block-body{
    padding:3.5pt 4pt 4pt!important;
  }
  .attack-card{
    padding:4pt!important;
    gap:3pt!important;
  }
  .attack-stat{
    min-height:26pt!important;
    padding:2pt!important;
  }
  .attack-card-head strong,.custom-attack-title-input{
    font-family:Arial,sans-serif!important;
    font-size:8.5pt!important;
  }
  .attack-stat small,.attack-kind,.attack-note,
  .field-meta,.dr-source,.defense-total-meta,.profile-field label{
    font-size:6.5pt!important;
  }
}


/* ===== v61 GURPS-informed recomposition ===== */
[data-block-id="armorDefense"]>.block-title::before{
  -webkit-mask-image:url("data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.8%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%0A%20%20%20%20%3Cpath%20d%3D%27M8%204l4%202%204-2%204%204-3%203v9H7v-9L4%208l4-4z%27/%3E%0A%20%20%20%20%3Cpath%20d%3D%27M9%207l3%202%203-2%27/%3E%0A%20%20%20%20%3C/svg%3E");
  mask-image:url("data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.8%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%0A%20%20%20%20%3Cpath%20d%3D%27M8%204l4%202%204-2%204%204-3%203v9H7v-9L4%208l4-4z%27/%3E%0A%20%20%20%20%3Cpath%20d%3D%27M9%207l3%202%203-2%27/%3E%0A%20%20%20%20%3C/svg%3E");
}
.hero-dashboard{
  min-width:0;
}
.dashboard-column{
  min-width:0;
  flex-direction:column;
}
.dashboard-column>.block{width:100%;min-width:0}

.active-defense-card .block-body{
  display:flex;
  flex-direction:column;
}
.active-defense-card .defense-grid{
}

.armor-defense-card .dr-grid{
}
.armor-defense-card .dr-row{
  min-width:0;
}
.armor-defense-card .dr-source{
}

.dashboard-encumbrance .block-body{
  display:flex;
  flex-direction:column;
}
.dashboard-encumbrance .encumbrance-controls{
  display:grid;
  margin:0;
}
.dashboard-encumbrance .encumbrance-display{min-height:36px!important}
.dashboard-encumbrance .enc-table{margin-top:0}
.dashboard-encumbrance .enc-table th,
.dashboard-encumbrance .enc-table td{padding:4px 5px!important}

.dashboard-profile .portrait-card .block-body{
  flex-direction:column;
  gap:8px;
}
.dashboard-profile .portrait{
}
.dashboard-profile .bio-mini{
  grid-template-columns:minmax(0,1fr) minmax(0,.55fr) minmax(0,.55fr);
  gap:6px;
}
.dashboard-profile .bio-mini .race{grid-column:auto}
.dashboard-social .block-body{
  display:grid!important;
  grid-template-columns:minmax(0,1fr)!important;
  gap:8px!important;
}
.dashboard-social .compact-textarea{
  min-height:66px!important;
  max-height:108px;
  resize:vertical;
}

.hero-attacks{width:100%;}
.hero-attacks .attack-card{
}
.hero-attacks .custom-attack-editor .profile-groups{
}

.content-grid{
  align-items:start;
}
.hero-main,.hero-top-grid{display:contents!important}

@media(max-width:1120px){
  .hero-dashboard{gap:10px}
  .dashboard-column{gap:10px}
  .dashboard-profile .portrait{
    height:225px!important;min-height:225px!important;max-height:225px!important;flex-basis:225px!important;
  }
}
@media(max-width:960px){
  .dashboard-profile{
    align-items:start;
  }
  .dashboard-profile .portrait{
  }
}
@media(max-width:720px){
  .dashboard-profile .portrait{
    height:260px!important;max-height:260px!important;flex-basis:260px!important;
  }
  .hero-attacks .attack-card{grid-template-columns:minmax(0,1fr) repeat(2,minmax(76px,1fr))!important}
}
@media print{
  .hero-dashboard{
    display:grid!important;
    align-items:start!important;
  }
  .dashboard-profile .portrait{
  }
  .dashboard-social .compact-textarea{min-height:16mm!important;max-height:none!important}
  .armor-defense-card .dr-row{gap:.5mm!important}
  .hero-attacks{margin-top:2mm!important}
}


/* ===== v62: compact identity strip, two-column attacks, clickable headers ===== */

/* Whole section header is now the disclosure control. */
.block-title{
  cursor:pointer;
  user-select:none;
  transition:background-color .13s ease,filter .13s ease;
}
.block-title:hover{
  filter:brightness(.975);
}
html[data-theme="dark"] .block-title:hover{
  filter:brightness(1.09);
}
.block-title:focus-visible{
  outline:none;
  box-shadow:inset 0 0 0 2px var(--ui-accent);
}
.block-title .attacks-title-add,
.block-title .collapse-btn{
  cursor:pointer;
}

/* Identity information replaces the decorative GURPS label. */
.identity-bar{
  display:grid!important;
  grid-template-columns:
    minmax(220px,2fr)
    minmax(120px,1fr)
    minmax(125px,1fr)
    minmax(155px,1.3fr)
    158px
    88px
    124px!important;
  grid-template-areas:"name player race appearance physical unspent total";
  align-items:end!important;
}
.identity-name{grid-area:name}
.identity-player{grid-area:player}
.identity-race{grid-area:race}
.identity-appearance{grid-area:appearance}
.identity-physical{grid-area:physical}
.identity-unspent{grid-area:unspent}
.identity-bar>.total-points{grid-area:total}
.identity-physical{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:5px;
  min-width:0;
}
.identity-bar .field{
  min-width:0;
}
.identity-bar .field input{
  border:1px solid var(--ui-border)!important;
  border-radius:5px!important;
  background:var(--ui-field)!important;
}
.identity-name input{
  font-weight:650;
}
.identity-physical .field input{
  padding-left:3px!important;
  padding-right:3px!important;
  text-align:center;
  font-family:var(--font-value)!important;
  font-size:12px!important;
}
.identity-physical label{
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis;
}
.identity-bar .unspent-field input{
}

/* The portrait block is only a portrait now; identity data lives above. */
.dashboard-profile .portrait-card .block-body{
}
.dashboard-profile .portrait{
}

/* Two compact attack cards per row. One attack no longer stretches across the page. */
.hero-attacks .attack-list{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr));
  align-items:start;
}
.hero-attacks .attack-empty{
  grid-column:1/-1;
}
.hero-attacks .attack-card{
  grid-template-columns:minmax(145px,1.35fr) repeat(4,minmax(58px,.68fr))!important;
  gap:5px!important;
  padding:7px!important;
}
.hero-attacks .attack-card-head{
  min-height:42px;
}
.hero-attacks .attack-stat{
}
.hero-attacks .attack-note{
  grid-column:1/-1;
}
.hero-attacks .custom-attack-unified{
  min-width:0;
}
.hero-attacks .custom-attack-unified.is-open{
  grid-column:1/-1;
}
.hero-attacks .custom-attack-unified>.custom-attack-summary{
  display:grid;
  grid-template-columns:minmax(145px,1.35fr) repeat(4,minmax(58px,.68fr))!important;
  gap:5px!important;
}
.hero-attacks .custom-attack-actions{
  top:6px;
}
.hero-attacks .custom-attack-editor .profile-groups{
  grid-template-columns:minmax(180px,.8fr) minmax(260px,1.15fr) minmax(240px,1fr)!important;
}

/* Inventory is a little shorter, while Weapon and Armor each get a stable cell. */
@media(min-width:1001px){
  .inventory-head,
  .inventory-main{
    grid-template-columns:minmax(190px,1fr) 40px 56px 64px 156px 82px 28px!important;
    gap:5px!important;
  }
}
@media(min-width:721px) and (max-width:1000px){
  .inventory-head,
  .inventory-main{
    grid-template-columns:minmax(150px,1fr) 38px 52px 58px 144px 78px 27px!important;
    gap:4px!important;
  }
}
.inventory-item{
}
.inventory-main input,
.inventory-main select{
  height:27px!important;
  min-height:27px!important;
}
.inventory-name-field .item-name{
}
.inventory-type-controls{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:4px!important;
  align-items:center;
}
.inventory-type-controls label{
  justify-content:flex-start;
  min-width:0;
  min-height:27px!important;
  padding:2px 5px;
  overflow:hidden;
  border:1px solid var(--ui-border)!important;
  border-radius:4px;
  background:var(--ui-field)!important;
  font-size:9.5px!important;
  text-overflow:ellipsis;
}
.inventory-type-controls input{
  width:14px!important;
  min-width:14px!important;
  height:14px!important;
  min-height:14px!important;
}
.item-move{
  min-height:27px!important;
  height:27px;
  padding:2px 4px!important;
}
.item-inline-totals{
  margin-top:1px;
  font-size:8.5px!important;
}
.inventory-remove{
}

@media(max-width:1160px){
  .identity-bar{
    grid-template-columns:minmax(230px,2fr) minmax(130px,1fr) minmax(130px,1fr) minmax(165px,1.25fr) 124px!important;
    grid-template-areas:
      "name name player race total"
      "appearance appearance physical unspent total";
  }
}
@media(max-width:900px){
  .identity-bar{
    grid-template-columns:minmax(0,1.6fr) minmax(0,1fr) 124px!important;
    grid-template-areas:
      "name player total"
      "race appearance total"
      "physical unspent total";
  }
  .hero-attacks .attack-list{
    grid-template-columns:minmax(0,1fr);
  }
  .hero-attacks .custom-attack-unified.is-open{
    grid-column:auto;
  }
}
@media(max-width:620px){
  .identity-bar{
    grid-template-columns:minmax(0,1fr) minmax(100px,.55fr)!important;
    grid-template-areas:
      "name name"
      "player race"
      "appearance appearance"
      "physical physical"
      "unspent total";
  }
  .identity-bar>.total-points{
    min-height:48px!important;
  }
  .hero-attacks .attack-card,
  .hero-attacks .custom-attack-unified>.custom-attack-summary{
    grid-template-columns:minmax(0,1fr) repeat(2,minmax(68px,1fr))!important;
  }
  .inventory-type-controls{
    grid-column:1/-1;
    grid-template-columns:repeat(2,minmax(110px,1fr));
  }
}
@media print{
  .identity-bar{
    grid-template-columns:1.9fr 1fr 1fr 1.2fr 25mm 15mm 22mm!important;
    grid-template-areas:"name player race appearance physical unspent total"!important;
    gap:1.2mm!important;
    margin-bottom:2mm!important;
  }
  .identity-bar .field input{
    height:6mm!important;
    min-height:6mm!important;
    padding:1mm!important;
    font-size:7pt!important;
  }
  .identity-physical{
    gap:.7mm!important;
  }
  .hero-attacks .attack-list{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:1.5mm!important;
  }
  .hero-attacks .attack-card,
  .hero-attacks .custom-attack-unified>.custom-attack-summary{
    grid-template-columns:minmax(26mm,1.3fr) repeat(4,minmax(10mm,.7fr))!important;
    gap:1mm!important;
  }
}


/* ===== v63 typed inventory rows ===== */
.inventory-section-title{
  gap:8px!important;
  padding-right:34px!important;
}
.inventory-section-title>strong{
  margin-right:auto;
}
.inventory-add-actions{
  display:flex;
  align-items:center;
  gap:5px;
  margin-left:auto;
}
.inventory-add-actions .compact-add{
  width:auto!important;
  min-height:26px!important;
  margin:0!important;
  padding:3px 7px!important;
  border-style:solid!important;
  font-size:10px!important;
  white-space:nowrap;
}
.inventory-section-title .bag-toggle{
  margin-left:8px;
  margin-right:4px;
}

.inventory-head,
.inventory-main{
  align-items:start!important;
}
.inventory-head{
  padding:6px 7px 4px!important;
}
.inventory-item{
  padding:5px 7px!important;
}
.inventory-main{
}
.inventory-field{
  display:grid!important;
  grid-template-rows:29px 15px!important;
  gap:3px!important;
  align-content:start;
}
.inventory-main input,
.inventory-main select,
.item-move{
  width:100%;
  height:29px!important;
  min-height:29px!important;
  margin:0!important;
  padding:3px 6px!important;
  border:1px solid var(--ui-border)!important;
  border-radius:4px!important;
  background:var(--ui-field)!important;
  font-size:12px!important;
  line-height:1.2!important;
}
.inventory-name-field .item-name{
  text-align:left!important;
  font-size:13px!important;
  font-weight:600;
}
.item-type-select{
  text-align:left;
}
.inventory-cell-meta,
.inventory-cell-total{
  display:block;
  min-width:0;
  height:15px;
  overflow:hidden;
  color:var(--ui-secondary);
  font-size:9px!important;
  line-height:15px;
  text-align:center;
  white-space:nowrap;
  text-overflow:ellipsis;
}
.inventory-name-meta{
  padding-left:2px;
  text-align:left;
}
.inventory-cell-total b{
  color:var(--ui-text);
  font-family:var(--font-value)!important;
  font-weight:750;
}
.item-type-badges{
  display:none;
  min-height:29px;
  justify-content:center;
}
.item-type-badge{
  max-width:100%;
  overflow:hidden;
  border-color:var(--ui-border)!important;
  color:var(--ui-text)!important;
  text-overflow:ellipsis;
}
.item-move{
  align-self:start;
  color:var(--ui-text)!important;
  font-weight:650;
}
.inventory-actions{
  display:grid;
  grid-template-columns:28px 28px;
  gap:4px;
  align-items:start;
}
.item-expand,
.inventory-remove{
  width:28px!important;
  height:29px!important;
  min-height:29px!important;
  margin:0!important;
  padding:0!important;
  border:1px solid var(--ui-border)!important;
  border-radius:4px!important;
  background:var(--ui-field)!important;
  font:700 15px/1 var(--font-ui)!important;
}
.item-expand{
  color:var(--ui-accent)!important;
}
.item-expand:hover{
  background:var(--ui-hover)!important;
}
.item-expand-spacer{
  width:28px;
  height:29px;
}
.inventory-remove{
  color:var(--red)!important;
}
.inventory-item.item-expandable>.inventory-main{
  cursor:pointer;
}
.inventory-item.is-open{
  background:var(--ui-surface-soft);
}
.item-config-panel{
  grid-template-columns:minmax(0,1fr);
  margin-top:6px;
}
.item-config-section{
  margin:0!important;
  overflow:hidden;
  border:1px solid var(--ui-border)!important;
  border-radius:5px!important;
  background:var(--ui-surface)!important;
}
.item-config-section-head{
  display:flex;
  min-height:32px;
  padding:5px 7px;
  align-items:center;
  gap:8px;
  border-bottom:1px solid var(--ui-border);
  background:var(--ui-surface-muted);
}
.item-config-section-head strong{
  margin-right:auto;
  font-family:var(--font-heading);
  font-size:10.5px;
  letter-spacing:.035em;
  text-transform:uppercase;
}
.item-config-section-head .compact-add{
  width:auto!important;
  min-height:24px!important;
  margin:0!important;
  padding:3px 7px!important;
  font-size:9.5px!important;
}
.weapon-config .profile-list{
  padding:6px!important;
}
.armor-config-body{
}
.item-config-panel .weapon-config,
.item-config-panel .armor-config{
  margin:0!important;
}
#editorView.view-mode .item-type-select{
  display:none!important;
}
#editorView.view-mode .item-type-badges{
}
#editorView.view-mode .item-config-panel{
}
#editorView.view-mode .item-expand{
}
#editorView.view-mode .inventory-actions{
  grid-template-columns:28px;
  justify-content:end;
}
#editorView.view-mode .inventory-main{
}
@media(max-width:1000px) and (min-width:721px){
  .inventory-head,
  .inventory-main{
  }
  .inventory-add-actions .compact-add{
    padding-left:5px!important;
    padding-right:5px!important;
    font-size:9px!important;
  }
}
@media(max-width:720px){
  .inventory-section-title{
    flex-wrap:wrap;
    align-items:center!important;
    padding-right:38px!important;
  }
  .inventory-add-actions{
    order:3;
    width:100%;
    margin-left:0;
  }
  .inventory-add-actions .compact-add{
    flex:1 1 0;
    min-width:0;
  }
  .inventory-main,
  #editorView.view-mode .inventory-main{
    gap:7px!important;
    padding-right:0!important;
  }
  .inventory-name-field{
  }
  .inventory-type-field{
  }
  .inventory-qty-field,
  .inventory-weight-field,
  .inventory-price-field{
    grid-column:auto;
  }
  .item-move{
  }
  .inventory-actions{
    grid-column:2;
    justify-content:end;
  }
  .item-config-panel{
    padding:6px;
  }
  .armor-locations{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}
@media print{
  .inventory-add-actions,
  .item-expand,
  .item-config-panel,
  .item-type-select{
    display:none!important;
  }
  .item-type-badges{
    display:flex!important;
  }
  .inventory-head,
  .inventory-main{
    gap:1mm!important;
  }
  .inventory-field{
    grid-template-rows:5.5mm 3mm!important;
    gap:.3mm!important;
  }
  .inventory-main input,
  .inventory-main select,
  .item-move{
    height:5.5mm!important;
    min-height:5.5mm!important;
    font-size:7pt!important;
  }
  .inventory-cell-meta,
  .inventory-cell-total{
    height:3mm!important;
    font-size:6pt!important;
    line-height:3mm!important;
  }
}


/* ===== v64 inventory cleanup =====
   Remove redundant labels, move totals to their source columns,
   and put disclosure directly beside the item name. */
.inventory-head,
.inventory-main{
}
.inventory-main{
  min-height:47px;
}
.inventory-field{
  min-width:0;
}
.inventory-name-field,
.inventory-type-field,
.inventory-qty-field{
  grid-template-rows:29px!important;
}
.inventory-weight-field,
.inventory-price-field{
  grid-template-rows:29px 15px!important;
}
.inventory-name-line{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:5px;
  min-width:0;
  height:29px;
}
.inventory-name-line.has-expand{
}
.inventory-name-line .item-name{
  min-width:0;
}
.inventory-name-line .item-expand{
  width:28px!important;
  height:29px!important;
  min-height:29px!important;
  margin:0!important;
  padding:0!important;
  border:1px solid var(--ui-border)!important;
  border-radius:4px!important;
  color:var(--ui-accent)!important;
  background:var(--ui-field)!important;
  font:700 15px/1 var(--font-ui)!important;
}
.inventory-name-line .item-expand:hover{
  background:var(--ui-hover)!important;
}
.inventory-type-field .item-type-select,
.inventory-type-field .item-type-badges{
  width:100%;
  min-width:0;
}
.inventory-qty-field input,
.inventory-weight-field input{
  padding-left:3px!important;
  padding-right:3px!important;
  text-align:center!important;
  font-family:var(--font-value)!important;
}
.inventory-price-field input{
  text-align:center!important;
  font-family:var(--font-value)!important;
}
.inventory-cell-total{
  text-align:center;
}
.item-move{
  width:74px!important;
  padding-left:3px!important;
  padding-right:3px!important;
}
.inventory-remove{
  width:30px!important;
  height:29px!important;
  min-height:29px!important;
  margin:0!important;
  padding:0!important;
}
.item-expand-spacer,
.inventory-actions{
  display:none!important;
}

/* View mode still supports opening the weapon/armor details. */
#editorView.view-mode .item-expand{
  display:block!important;
  pointer-events:auto!important;
  cursor:pointer!important;
}
#editorView.view-mode .item-config-panel{
  display:grid!important;
}
#editorView.view-mode .item-config-panel .weapon-config,
#editorView.view-mode .item-config-panel .armor-config{
  display:block!important;
}
#editorView.view-mode .item-config-panel input,
#editorView.view-mode .item-config-panel select,
#editorView.view-mode .item-config-panel textarea{
  pointer-events:none!important;
}
#editorView.view-mode .inventory-main{
}
#editorView.view-mode .inventory-remove{
  display:none!important;
}
#editorView.view-mode .item-type-badges{
  min-height:29px;
}

/* The row can still be opened by clicking its empty area in view mode. */
#editorView.view-mode .inventory-item.item-expandable>.inventory-main{
  cursor:pointer;
}

/* Medium desktop widths. */
@media(max-width:1000px) and (min-width:721px){
  .inventory-head,
  .inventory-main{
  }
  #editorView.view-mode .inventory-main{
  }
  .item-move{
    width:70px!important;
  }
}

/* Mobile keeps the disclosure beside the name too. */
@media(max-width:720px){
  .inventory-main,
  #editorView.view-mode .inventory-main{
  }
  #editorView.view-mode .inventory-main{
    padding-right:0!important;
  }
}

/* Print does not need an interactive disclosure button. */
@media print{
  .item-expand{
    display:none!important;
  }
  .inventory-name-line.has-expand{
    grid-template-columns:minmax(0,1fr)!important;
  }
  .inventory-head,
  .inventory-main{
  }
}


/* ===== v65 inventory economy summary ===== */
.inventory-summary{
  grid-template-columns:minmax(230px,1.35fr) repeat(3,minmax(145px,1fr))!important;
}
@media(max-width:720px){
  .inventory-summary{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}
@media(max-width:420px){
  .inventory-summary{
    grid-template-columns:minmax(0,1fr)!important;
  }
}
@media print{
  .inventory-summary{
    grid-template-columns:1.35fr repeat(3,1fr)!important;
  }
}


/* ===== v66 compact upper dashboard, fixed languages, stable custom attacks ===== */
:root{
  --text-main:12.5px;
  --text-row:12px;
  --text-secondary:10.5px;
  --text-caption:9.5px;
  --text-micro:8.5px;
  --text-section:11px;
  --text-value:15px;
  --text-value-large:17px;
}
html,body{font-size:var(--text-main)!important;line-height:1.28!important}
.sheet{padding:12px 13px 14px!important}
.identity-bar{margin-bottom:9px!important;gap:6px!important}
.identity-bar .field input{
  height:29px!important;min-height:29px!important;padding:4px 6px!important;font-size:11.5px!important
}
.identity-name input{font-size:13px!important}
.identity-bar .unspent-field input{height:31px!important;font-size:15px!important}
.total-points{min-height:46px!important}
.total-points>summary{min-height:42px!important}
.total-points strong{font-size:19px!important}
.block-title{
  min-height:27px!important;padding-top:4px!important;padding-bottom:4px!important;font-size:10.5px!important
}
.block-title::before{width:13px!important;height:13px!important;flex-basis:13px!important}
.block-body{padding:7px 8px 8px!important}
.collapse-btn{width:22px!important;height:22px!important;font-size:15px!important}

.dashboard-column{
  display:grid!important;grid-template-rows:auto minmax(0,1fr);gap:9px!important;align-items:stretch
}
.dashboard-column>.block:last-child{height:100%}
.dashboard-profile .portrait{flex-basis:205px!important
}
.stat-pair{min-height:35px!important}
.stat-label{font-size:16px!important}
.stat-value,.stat-current{height:30px!important;font-size:16px!important}
.stat-cost,.derived-cost{font-size:8.5px!important}
.derived-row{gap:4px 7px!important;padding-top:5px!important;margin-top:5px!important}
.derived{grid-template-columns:minmax(70px,1fr) 54px 28px!important;min-height:26px!important}
.derived-input{width:54px!important;height:25px!important;font-size:12.5px!important}
.derived strong{font-size:13px!important}
.damage{gap:6px!important;margin-top:5px!important}
.damage input{height:26px!important;font-size:13px!important}
.defense{padding:5px!important;gap:4px!important}
.defense select,.defense input{height:26px!important;font-size:10.5px!important}
.defense-total-value,.defense-parry-value{min-height:29px!important;font-size:16px!important}
.defense-bonus-grid input,.dr-value{height:25px!important;font-size:12px!important}
.dashboard-encumbrance .block-body{gap:5px!important}
.dashboard-encumbrance .encumbrance-controls{
  grid-template-columns:minmax(0,1fr) 65px!important;gap:6px!important
}
.encumbrance-display{min-height:30px!important}
.enc-table th,.enc-table td{padding:3px 4px!important;font-size:10.5px!important}

/* Fixed four-row language block. */
.language-head,.language-row{
  display:grid;grid-template-columns:minmax(94px,1fr) 72px 72px 34px;gap:4px;align-items:center
}
.language-head{
  padding:0 2px;color:var(--ui-secondary);font-family:var(--font-heading);font-weight:700;text-align:center;text-transform:uppercase
}
.language-head span:first-child{text-align:left}
.language-rows{display:flex;flex-direction:column;gap:3px}
.language-row{min-height:27px}
.language-row label{min-width:0}
.language-row input,.language-row select{
  width:100%;min-width:0;height:26px!important;min-height:26px!important;padding:2px 4px!important;
  border:1px solid var(--ui-border)!important;border-radius:4px;background:var(--ui-field)!important;
  font-size:9.5px!important
}
.language-name-wrap{position:relative;display:block;min-width:0}
.language-native-row .language-name-wrap input{padding-right:42px!important}
.native-language-badge{
  position:absolute;top:50%;right:4px;transform:translateY(-50%);
  padding:1px 4px;border:1px solid var(--ui-border);border-radius:999px;
  color:var(--ui-secondary);background:var(--ui-surface-soft);font-weight:700;text-transform:uppercase;pointer-events:none
}
.language-row-points{
  display:flex;height:26px;align-items:center;justify-content:center;
  border:1px solid var(--ui-accent);border-radius:4px;background:var(--ui-accent-soft);
  font-family:var(--font-value);font-size:11px
}
.language-row-points.negative{color:var(--red)}
.language-footer{
  display:flex;min-height:24px;padding:3px 5px;align-items:center;justify-content:space-between;
  border-top:1px solid var(--ui-border);color:var(--ui-secondary);}
.language-footer strong{color:var(--ui-text);font-family:var(--font-value);font-size:13px}
.social-compact-field{display:grid;gap:3px;min-width:0}
.social-compact-field>span{color:var(--ui-secondary);font-size:8.5px;font-weight:650}
.social-compact-field textarea{
  width:100%;min-height:43px!important;max-height:60px!important;padding:5px!important;
  resize:vertical;font-size:10.5px!important;line-height:1.25!important
}

/* Close up the lower half after deleting conditions. */
.content-grid{
  grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr)!important;
  gap:9px!important;margin-top:9px!important
}
.stack{gap:9px!important}

/* Stable, compact custom attack cards. */
.hero-attacks{margin-top:9px!important}
.hero-attacks .attack-list{gap:6px!important}
.hero-attacks .attack-card,
.hero-attacks .custom-attack-unified>.custom-attack-summary{
  grid-template-columns:minmax(135px,1.28fr) repeat(4,minmax(54px,.68fr))!important;
  gap:4px!important;padding:6px!important
}
.attack-card-head strong,.custom-attack-title-input{font-size:12.5px!important}
.custom-attack-title-input{height:19px!important;min-height:19px!important}
.hero-attacks .attack-stat{min-height:38px!important;padding:3px!important}
.attack-stat b{font-size:10.5px!important}
.attack-stat.attack-damage b{font-size:13px!important}
.attack-stat.attack-parry b{font-size:14px!important}
.custom-attack-actions{top:5px!important;right:5px!important}
.custom-attack-expand,.custom-attack-delete{
  width:24px!important;height:24px!important;min-height:24px!important;font-size:13px!important
}
.custom-attack-editor{padding:6px!important}
.custom-editor-grid{
  display:grid;grid-template-columns:minmax(160px,.8fr) minmax(230px,1.12fr) minmax(230px,1fr);gap:6px
}
.custom-editor-grid .profile-group{min-width:0}
.custom-editor-grid .profile-fields{gap:4px!important}
.custom-editor-grid .profile-field input,
.custom-editor-grid .profile-field select{height:26px!important;font-size:10px!important}
.custom-editor-grid .profile-group-title,
.custom-editor-grid .profile-field label{font-size:7.5px!important}
.profile-parry-preview{min-height:26px!important;font-size:12px!important}
#editorView.view-mode .custom-attack-actions{display:flex!important}
#editorView.view-mode .custom-attack-expand{
  display:block!important;pointer-events:auto!important;cursor:pointer!important
}
#editorView.view-mode .custom-attack-delete{display:none!important}
#editorView.view-mode .custom-attack-editor{display:block!important}
#editorView.view-mode .custom-attack-editor[hidden]{display:none!important}

@media(max-width:1120px){
  .language-head,.language-row{grid-template-columns:minmax(82px,1fr) 66px 66px 32px}
}
@media(max-width:960px){
  .dashboard-profile{display:grid!important;
    grid-template-columns:260px minmax(0,1fr)!important;grid-template-rows:auto!important
  }
  .dashboard-profile .portrait{
    height:220px!important;max-height:220px!important;flex-basis:220px!important
  }
}
@media(max-width:720px){
  .dashboard-column{display:flex!important}
  .dashboard-profile{grid-column:auto!important;display:flex!important}
  .language-row{grid-template-columns:minmax(0,1fr) minmax(82px,.62fr)}
  .language-row>label:nth-child(3){grid-column:1}
  .language-row-points{grid-column:2}
  .custom-editor-grid{grid-template-columns:minmax(0,1fr)}
  .hero-attacks .attack-card,
  .hero-attacks .custom-attack-unified>.custom-attack-summary{
    grid-template-columns:minmax(0,1fr) repeat(2,minmax(64px,1fr))!important
  }
}
@media print{
  .dashboard-column{gap:1.5mm!important}
  .dashboard-profile .portrait{
    height:31mm!important;max-height:31mm!important;flex-basis:31mm!important
  }
  .language-head,.language-row{
    grid-template-columns:minmax(17mm,1fr) 12mm 12mm 7mm!important;gap:.5mm!important
  }
  .language-row input,.language-row select,.language-row-points{
    height:5mm!important;min-height:5mm!important;font-size:6.5pt!important
  }
  .social-compact-field textarea{min-height:10mm!important;max-height:none!important}
}


/* ===== v66.1 balanced top composition =====
   Row 1: attributes · combat · portrait
   Row 2: encumbrance · languages/social */
.hero-dashboard{
}
.dashboard-stats,
.dashboard-profile{
}
.dashboard-combat{
  flex-direction:column;
}
.dashboard-profile .portrait-card{
}
.languages-card{
}
.dashboard-profile .portrait-card .block-body{
}
.dashboard-profile .portrait{
}
.languages-card .block-body{
}
.languages-card .social-compact-field{
}
.languages-card .social-compact-field textarea{
}
.armor-defense-card{
}
.armor-defense-card .block-body{
}
@media(max-width:1120px){
  .hero-dashboard{
  }
}
@media(max-width:960px){
  .hero-dashboard{
    grid-template-areas:
      "character combat"
      "encumbrance portrait"
      "languages languages"!important;
  }
  .dashboard-profile .portrait{
    min-height:235px!important;
  }
}
@media(max-width:720px){
  .hero-dashboard{
    grid-template-areas:
      "character"
      "combat"
      "portrait"
      "encumbrance"
      "languages"!important;
  }
  .dashboard-combat{
    display:flex!important;
  }
  .dashboard-profile .portrait{
    min-height:260px!important;
  }
}
@media print{
  .hero-dashboard{
  }
  .dashboard-profile .portrait{
    min-height:31mm!important;
  }
}


/* ===== v67 subtle zebra striping for rows ===== */
:root{
  --row-stripe-a:#fcfaf5;
  --row-stripe-b:#f6f1e8;
}
html[data-theme="dark"]{
  --row-stripe-a:#252c33;
  --row-stripe-b:#2b333b;
}
html[data-theme="blue"]{
  --row-stripe-a:#f7fbfe;
  --row-stripe-b:#eef5fa;
}
html[data-theme="forest"]{
  --row-stripe-a:#f8faf2;
  --row-stripe-b:#eef2e6;
}

.skill-list .skill-row,
#advantages .list-row,
#disadvantages .list-row,
.language-rows .language-row,
.inventory-section-body > .inventory-item,
#moneyList .money-row{
  border-radius:4px;
}

.skill-list .skill-row:nth-child(odd),
#advantages .list-row:nth-child(odd),
#disadvantages .list-row:nth-child(odd),
.language-rows .language-row:nth-child(odd),
.inventory-section-body > .inventory-item:nth-child(odd),
#moneyList .money-row:nth-child(odd){
  background:var(--row-stripe-a);
}

.skill-list .skill-row:nth-child(even),
#advantages .list-row:nth-child(even),
#disadvantages .list-row:nth-child(even),
.language-rows .language-row:nth-child(even),
.inventory-section-body > .inventory-item:nth-child(even),
#moneyList .money-row:nth-child(even){
  background:var(--row-stripe-b);
}

.inventory-section-body > .inventory-item{
}
.inventory-section-body > .inventory-item:first-child{
}

.skill-list .skill-row,
#advantages .list-row,
#disadvantages .list-row,
.language-rows .language-row,
#moneyList .money-row{
  padding-inline:3px;
}

#editorView.view-mode .skill-list .skill-row,
#editorView.view-mode #advantages .list-row,
#editorView.view-mode #disadvantages .list-row,
#editorView.view-mode .language-rows .language-row,
#editorView.view-mode #moneyList .money-row{
  padding-inline:5px;
}

@media print{
  .skill-list .skill-row:nth-child(odd),
  #advantages .list-row:nth-child(odd),
  #disadvantages .list-row:nth-child(odd),
  .language-rows .language-row:nth-child(odd),
  .inventory-section-body > .inventory-item:nth-child(odd),
  #moneyList .money-row:nth-child(odd){
    background:rgba(0,0,0,.025)!important;
  }
  .skill-list .skill-row:nth-child(even),
  #advantages .list-row:nth-child(even),
  #disadvantages .list-row:nth-child(even),
  .language-rows .language-row:nth-child(even),
  .inventory-section-body > .inventory-item:nth-child(even),
  #moneyList .money-row:nth-child(even){
    background:rgba(0,0,0,.055)!important;
  }
}


/* ===== v68 defense width + inventory zebra + type pictograms ===== */
.hero-dashboard{
}
.active-defense-card .defense-grid{
}
.active-defense-card .defense-bonus-grid{
}
.active-defense-card .defense-parry select,
.active-defense-card .defense-block select,
.active-defense-card .manual-parry-input,
.active-defense-card .manual-block-input{
  min-width:0;
}

.inventory-section-body > .inventory-item{
}
.inventory-section-body > .inventory-item:first-child{
}
.inventory-section-body > .inventory-item:nth-child(odd){
}
.inventory-section-body > .inventory-item:nth-child(even){
}
.inventory-section-body > .inventory-item.is-open:nth-child(odd){
  background:var(--row-stripe-a)!important;
}
.inventory-section-body > .inventory-item.is-open:nth-child(even){
  background:var(--row-stripe-b)!important;
}
.inventory-section-body > .inventory-item .item-config-panel{
  background:transparent!important;
}

.inventory-type-field{
}
.item-type-icon-display{
  position:absolute;
  z-index:1;
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--ui-text);
  font-size:13px;
  line-height:1;
  pointer-events:none;
}
.item-type-select{
}
.item-type-select:not(:focus){
  color:transparent!important;
}
.item-type-select option{
  color:var(--ui-text)!important;
  background:var(--ui-field)!important;
}
.inventory-type-field:focus-within .item-type-icon-display{
}
.inventory-type-field:focus-within .item-type-select{
}
.item-type-badge{
  font-size:13px!important;
  line-height:1!important;
}
#editorView.view-mode .item-type-icon-display{
  display:none!important;
}

@media(max-width:1120px){
  .hero-dashboard{
  }
}
@media(max-width:960px){
  .hero-dashboard{
  }
  .active-defense-card .defense-grid{
  }
}
@media(max-width:720px){
  .active-defense-card .defense-grid{
  }
}
@media print{
  .hero-dashboard{
  }
  .inventory-section-body > .inventory-item:nth-child(odd){
    background:rgba(0,0,0,.025)!important;
  }
  .inventory-section-body > .inventory-item:nth-child(even){
    background:rgba(0,0,0,.055)!important;
  }
}


/* ===== v69 JSON import restored ===== */
.json-import-control{
  display:inline-flex!important;
  align-items:center;
  justify-content:center;
}
#editorView.view-mode .json-import-control{
  display:inline-flex!important;
  pointer-events:auto!important;
  cursor:pointer!important;
}


/* ===== v71 defense / armor / inventory visual polish ===== */
.hero-dashboard{
}
.dashboard-combat{
}
.active-defense-card .block-body{
  padding-bottom:8px!important;
}
.active-defense-card .defense-grid{
}
.active-defense-card .defense-dodge{
  grid-column:1/-1!important;
}
.active-defense-card .defense{
}
.active-defense-card .defense label{
  margin-bottom:3px!important;
}
.active-defense-card .defense select,
.active-defense-card .defense input{
}
.active-defense-card .defense-total-value,
.active-defense-card .defense-parry-value{
  margin-top:2px!important;
}
.active-defense-card .defense-parry-meta,
.active-defense-card .defense-total-meta{
}

.armor-defense-card .block-body{
  padding-top:6px!important;
  padding-bottom:6px!important;
}
.armor-defense-card .dr-grid{
  margin-top:0!important;
}
.armor-defense-card .dr-row{
}
.armor-defense-card .dr-location{
  font-weight:700!important;
}
.armor-defense-card .dr-value{
}
.armor-defense-card .dr-source{
  margin-top:0!important;
}

.inventory-section-body > .inventory-item{
  margin-top:3px!important;
}
.inventory-section-body > .inventory-item:first-child{
  margin-top:0!important;
}
.inventory-section-body > .inventory-item:nth-child(odd){
  background:rgba(122,95,47,.10)!important;
}
.inventory-section-body > .inventory-item:nth-child(even){
  background:rgba(122,95,47,.17)!important;
}
html[data-theme="dark"] .inventory-section-body > .inventory-item:nth-child(odd){
  background:rgba(255,255,255,.05)!important;
}
html[data-theme="dark"] .inventory-section-body > .inventory-item:nth-child(even){
  background:rgba(255,255,255,.09)!important;
}
html[data-theme="blue"] .inventory-section-body > .inventory-item:nth-child(odd){
  background:rgba(66,115,180,.08)!important;
}
html[data-theme="blue"] .inventory-section-body > .inventory-item:nth-child(even){
  background:rgba(66,115,180,.14)!important;
}
html[data-theme="forest"] .inventory-section-body > .inventory-item:nth-child(odd){
  background:rgba(77,112,57,.08)!important;
}
html[data-theme="forest"] .inventory-section-body > .inventory-item:nth-child(even){
  background:rgba(77,112,57,.14)!important;
}
.inventory-item > .inventory-main,
.inventory-item > .item-config-panel{
  background:transparent!important;
}
.inventory-item.is-open{
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.04)!important;
}
html[data-theme="dark"] .inventory-item.is-open{
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.06)!important;
}

.item-type-icon-display,
.item-type-badge{
  color:var(--ui-text)!important;
}
.item-type-icon-display{
  top:5px!important;
  left:7px!important;
  width:20px!important;
  height:20px!important;
}
.item-type-icon-display svg,
.item-type-badge svg{
}
.item-type-select{
  padding-left:31px!important;
}
.item-type-badge{
  min-width:32px!important;
  min-height:28px!important;
}
.item-type-badges{
  align-items:center!important;
}

@media(max-width:1120px){
  .hero-dashboard{
    grid-template-columns:355px minmax(440px,1fr) 215px!important;
  }
  .armor-defense-card .dr-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}
@media(max-width:960px){
  .hero-dashboard{
  }
  .active-defense-card .defense-grid{
  }
  .armor-defense-card .dr-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}
@media(max-width:720px){
  .armor-defense-card .dr-grid{
  }
}
@media print{
  .hero-dashboard{
  }
  .active-defense-card .defense-grid{
  }
  .armor-defense-card .dr-grid{
  }
  .armor-defense-card .dr-row{
  }
  .armor-defense-card .dr-source{
    min-height:4mm!important;
  }
}


/* ===== v72 active defenses: full-width vertical cards ===== */
.active-defense-card .defense-grid{
}
.active-defense-card .defense-parry,
.active-defense-card .defense-block,
.active-defense-card .defense-dodge{
}
.active-defense-card .defense{
  min-height:auto!important;
  padding:7px 8px!important;
}
.active-defense-card .defense-parry,
.active-defense-card .defense-block{
  display:grid!important;
  grid-template-columns:72px minmax(0,1fr) 88px!important;
  grid-template-areas:
    "label select value"
    "label manual value"
    "meta meta meta"!important;
  gap:5px 7px!important;
  align-items:center!important;
}
.active-defense-card .defense-parry>label,
.active-defense-card .defense-block>label{
  grid-area:label!important;
  margin:0!important;
  align-self:stretch!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  border-right:1px solid var(--ui-border)!important;
}
.active-defense-card .defense-parry>select,
.active-defense-card .defense-block>select{
  grid-area:select!important;
}
.active-defense-card .manual-parry-input,
.active-defense-card .manual-block-input{
  grid-area:manual!important;
}
.active-defense-card .defense-parry-value,
.active-defense-card .defense-block .defense-total-value{
  grid-area:value!important;
  margin:0!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
}
.active-defense-card .defense-parry-meta,
.active-defense-card .defense-block .defense-total-meta{
  grid-area:meta!important;
  min-height:16px!important;
  padding-top:1px!important;
}
.active-defense-card .defense-dodge{
  display:grid!important;
  grid-template-columns:72px minmax(0,1fr) 88px!important;
  grid-template-areas:"label meta value"!important;
  gap:7px!important;
  align-items:center!important;
  min-height:76px!important;
}
.active-defense-card .defense-dodge>label{
  grid-area:label!important;
  margin:0!important;
  align-self:stretch!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  border-right:1px solid var(--ui-border)!important;
}
.active-defense-card .defense-dodge .defense-total-meta{
  grid-area:meta!important;
  display:flex!important;
  align-items:center!important;
  font-size:10px!important;
}
.active-defense-card .defense-dodge .defense-total-value{
  grid-area:value!important;
  width:100%!important;
  margin:0!important;
}
.active-defense-card .defense select,
.active-defense-card .defense input{
}
@media(max-width:720px){
  .active-defense-card .defense-parry,
  .active-defense-card .defense-block{
    grid-template-columns:58px minmax(0,1fr) 70px!important;
  }
  .active-defense-card .defense-dodge{
    grid-template-columns:58px minmax(0,1fr) 70px!important;
  }
}
@media print{
  .active-defense-card .defense-parry,
  .active-defense-card .defense-block{
    grid-template-columns:14mm minmax(0,1fr) 15mm!important;
    gap:.7mm 1mm!important;
  }
  .active-defense-card .defense-dodge{
    grid-template-columns:14mm minmax(0,1fr) 15mm!important;
  }
}


/* ===== v73: restore three defenses in one row; compact armor instead ===== */
.dashboard-combat{
  grid-template-rows:auto auto!important;
  align-content:start!important;
}
.active-defense-card{
  min-height:0!important;
}
.active-defense-card .block-body{
  gap:7px!important;
  padding:7px 8px 8px!important;
}
.active-defense-card .defense-grid{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:7px!important;
}
.active-defense-card .defense-parry,
.active-defense-card .defense-block,
.active-defense-card .defense-dodge{
  grid-column:auto!important;
  display:flex!important;
  width:auto!important;
  min-width:0!important;
  padding:6px!important;
  flex-direction:column!important;
  gap:4px!important;
}
.active-defense-card .defense>label{
  display:block!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  text-align:left!important;
}
.active-defense-card .defense select,
.active-defense-card .defense input{
  display:block!important;
  width:100%!important;
  min-width:0!important;
  height:28px!important;
  min-height:28px!important;
}
.active-defense-card .defense-parry-value,
.active-defense-card .defense-total-value{
  display:flex!important;
  width:100%!important;
  height:35px!important;
  min-height:35px!important;
  margin-top:auto!important;
  align-items:center!important;
  justify-content:center!important;
  font-size:19px!important;
}
.active-defense-card .defense-parry-meta,
.active-defense-card .defense-total-meta{
  display:block!important;
  min-height:25px!important;
  padding-top:2px!important;
}
.active-defense-card .defense-dodge .defense-total-value{
  margin-top:4px!important;
}
.active-defense-card .defense-dodge .defense-total-meta{
  min-height:27px!important;
}
.active-defense-card .defense-bonus-grid{
}
.active-defense-card .defense-bonus-grid input{
  min-height:26px!important;
}

/* Armor should occupy only its actual content, not steal vertical space. */
.armor-defense-card{
  flex:none!important;
  height:auto!important;
  min-height:0!important;
  align-self:start!important;
}
.armor-defense-card .block-body{
  min-height:0!important;
  padding:5px 7px 6px!important;
}
.armor-defense-card .dr-grid{
  margin:0!important;
}
.armor-defense-card .dr-row{
  gap:1px 4px!important;
  align-items:center!important;
}
.armor-defense-card .dr-location{
  line-height:1!important;
}
.armor-defense-card .dr-value{
  width:43px!important;
  height:23px!important;
  min-height:23px!important;
  padding:2px 3px!important;
}
.armor-defense-card .dr-source{
  grid-column:1/-1!important;
  overflow:hidden!important;
  margin:0!important;
}

/* Keep the top row balanced without enlarging the armor card. */
.dashboard-profile .portrait-card{
}
@media(max-width:1120px){
  .active-defense-card .defense-grid{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }
  .active-defense-card .defense-parry,
  .active-defense-card .defense-block,
  .active-defense-card .defense-dodge{
    min-height:138px!important;
  }
}
@media(max-width:960px){
  .active-defense-card .defense-grid{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }
}
@media(max-width:720px){
  .active-defense-card .defense-grid{
    grid-template-columns:minmax(0,1fr)!important;
  }
  .active-defense-card .defense-parry,
  .active-defense-card .defense-block,
  .active-defense-card .defense-dodge{
    min-height:auto!important;
  }
  .armor-defense-card .dr-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}
@media print{
  .active-defense-card .defense-grid{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:1mm!important;
  }
  .active-defense-card .defense-parry,
  .active-defense-card .defense-block,
  .active-defense-card .defense-dodge{
    min-height:27mm!important;
    padding:1mm!important;
  }
  .armor-defense-card .dr-grid{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:.5mm 1mm!important;
  }
  .armor-defense-card .dr-row{
    grid-template-columns:minmax(0,1fr) 9mm!important;
    grid-template-rows:5mm 3mm!important;
    min-height:8mm!important;
  }
}


/* ===== v74 unified typography and proper dashboard collapsing ===== */
:root{
  --dash-label-size:9px;
  --dash-control-size:11.5px;
  --dash-meta-size:9px;
  --dash-value-size:16px;
  --dash-small-value-size:13px;
}

/* One hierarchy for the whole upper dashboard. */
.hero-dashboard{
  font-size:12px!important;
}
.hero-dashboard .block-title{
  font-size:10.5px!important;
  line-height:1.1!important;
}
.hero-dashboard .field>label,
.hero-dashboard .defense>label,
.hero-dashboard .profile-field>label,
.hero-dashboard .social-compact-field>span{
  font-size:var(--dash-label-size)!important;
  line-height:1.15!important;
}
.hero-dashboard input,
.hero-dashboard select,
.hero-dashboard textarea{
  font-family:var(--font-ui)!important;
  font-size:var(--dash-control-size)!important;
}
.hero-dashboard .field-meta,
.hero-dashboard .defense-parry-meta,
.hero-dashboard .defense-total-meta,
.hero-dashboard .dr-source,
.hero-dashboard .inventory-cell-meta{
  font-size:var(--dash-meta-size)!important;
  line-height:1.15!important;
}

/* Characteristics and derived values. */
.hero-dashboard .stat-label{
  font-size:15px!important;
}
.hero-dashboard .stat-value,
.hero-dashboard .stat-current{
  font-size:var(--dash-value-size)!important;
}
.hero-dashboard .derived strong,
.hero-dashboard .damage input,
.hero-dashboard .encumbrance-display strong{
  font-size:var(--dash-small-value-size)!important;
}
.hero-dashboard .stat-cost,
.hero-dashboard .derived-cost{
}

/* Active defenses: same visual weight for Parry, Block and Dodge. */
.active-defense-card .defense-parry-value,
.active-defense-card .defense-total-value,
.active-defense-card .defense-dodge .defense-total-value{
  font-family:var(--font-value)!important;
  font-size:var(--dash-value-size)!important;
  font-weight:750!important;
  line-height:1!important;
}
.active-defense-card .defense-dodge .defense-total-value{
}
.active-defense-card .defense select,
.active-defense-card .defense input{
  font-size:11px!important;
}
.active-defense-card .defense-bonus-grid label{
}
.active-defense-card .defense-bonus-grid input{
}

/* Armor uses the same value size family, but remains compact. */
.armor-defense-card .dr-location{
}
.armor-defense-card .dr-value{
  font-family:var(--font-value)!important;
  font-weight:700!important;
}
.armor-defense-card .dr-source{
}

/* Languages and encumbrance use matching typography. */
.dashboard-encumbrance .encumbrance-display strong{
  font-family:var(--font-value)!important;
  font-size:14px!important;
}
.dashboard-encumbrance .enc-table th{
}
.dashboard-encumbrance .enc-table td{
  font-size:10.5px!important;
}
.languages-card .language-head{
}
.languages-card .language-row input,
.languages-card .language-row select{
}
.languages-card .language-row-points{
  font-family:var(--font-value)!important;
  font-size:11px!important;
}
.languages-card .language-footer{
  font-size:9px!important;
}
.languages-card .language-footer strong{
  font-family:var(--font-value)!important;
  font-size:13px!important;
}
.languages-card .social-compact-field textarea{
  font-size:10.5px!important;
}

/* Collapsed dashboard blocks must shrink to the title instead of leaving a blank grid cell. */
.dashboard-encumbrance,
.languages-card{
  min-height:0!important;
}
.dashboard-encumbrance.collapsed,
.languages-card.collapsed{
  height:27px!important;
  min-height:27px!important;
  align-self:start!important;
  overflow:hidden!important;
}
.dashboard-encumbrance.collapsed .block-title,
.languages-card.collapsed .block-title{
  height:27px!important;
  min-height:27px!important;
  border-radius:5px!important;
}
.dashboard-encumbrance.collapsed .block-body,
.languages-card.collapsed .block-body{
  display:none!important;
}
.languages-card:not(.collapsed){
  height:100%!important;
}
.dashboard-encumbrance:not(.collapsed),
.languages-card:not(.collapsed){
  align-self:stretch!important;
}

/* Give the collapse control one consistent size and baseline. */
.hero-dashboard .collapse-btn{
  width:21px!important;
  height:21px!important;
  min-height:21px!important;
  font-size:13px!important;
  line-height:1!important;
}
.hero-dashboard .block-title[role="button"]{
  cursor:pointer!important;
}

/* Keep mobile hierarchy coherent. */
@media(max-width:720px){
  .active-defense-card .defense-parry-value,
  .active-defense-card .defense-total-value,
  .active-defense-card .defense-dodge .defense-total-value{
    font-size:15px!important;
  }
  .dashboard-encumbrance.collapsed,
  .languages-card.collapsed{
    height:27px!important;
  }
}
@media print{
  .hero-dashboard .stat-value,
  .hero-dashboard .stat-current,
  .active-defense-card .defense-parry-value,
  .active-defense-card .defense-total-value,
  .active-defense-card .defense-dodge .defense-total-value{
    font-size:9pt!important;
  }
  .dashboard-encumbrance.collapsed,
  .languages-card.collapsed{
    height:auto!important;
    overflow:visible!important;
  }
}


/* v74.1 defense value specificity fix */
.active-defense-card .defense-parry .defense-parry-value,
.active-defense-card .defense-block .defense-total-value,
.active-defense-card .defense-dodge .defense-total-value{
  font-family:var(--font-value)!important;
  font-size:16px!important;
  font-weight:750!important;
  line-height:1!important;
}
.active-defense-card .defense-dodge .defense-total-value{
}


/* ===== v75 inventory zebra visible + single-sword weapon icon ===== */
.inventory-section-body > .inventory-item{
  border-top:0!important;
  border-radius:6px!important;
  overflow:hidden!important;
}
.inventory-section-body > .inventory-item:nth-child(odd),
.inventory-section-body > .inventory-item:nth-child(odd) > .inventory-main,
.inventory-section-body > .inventory-item:nth-child(odd) > .item-config-panel{
  background:rgba(122,95,47,.10)!important;
}
.inventory-section-body > .inventory-item:nth-child(even),
.inventory-section-body > .inventory-item:nth-child(even) > .inventory-main,
.inventory-section-body > .inventory-item:nth-child(even) > .item-config-panel{
  background:rgba(122,95,47,.17)!important;
}
html[data-theme="dark"] .inventory-section-body > .inventory-item:nth-child(odd),
html[data-theme="dark"] .inventory-section-body > .inventory-item:nth-child(odd) > .inventory-main,
html[data-theme="dark"] .inventory-section-body > .inventory-item:nth-child(odd) > .item-config-panel{
  background:rgba(255,255,255,.05)!important;
}
html[data-theme="dark"] .inventory-section-body > .inventory-item:nth-child(even),
html[data-theme="dark"] .inventory-section-body > .inventory-item:nth-child(even) > .inventory-main,
html[data-theme="dark"] .inventory-section-body > .inventory-item:nth-child(even) > .item-config-panel{
  background:rgba(255,255,255,.09)!important;
}
html[data-theme="blue"] .inventory-section-body > .inventory-item:nth-child(odd),
html[data-theme="blue"] .inventory-section-body > .inventory-item:nth-child(odd) > .inventory-main,
html[data-theme="blue"] .inventory-section-body > .inventory-item:nth-child(odd) > .item-config-panel{
  background:rgba(66,115,180,.08)!important;
}
html[data-theme="blue"] .inventory-section-body > .inventory-item:nth-child(even),
html[data-theme="blue"] .inventory-section-body > .inventory-item:nth-child(even) > .inventory-main,
html[data-theme="blue"] .inventory-section-body > .inventory-item:nth-child(even) > .item-config-panel{
  background:rgba(66,115,180,.14)!important;
}
html[data-theme="forest"] .inventory-section-body > .inventory-item:nth-child(odd),
html[data-theme="forest"] .inventory-section-body > .inventory-item:nth-child(odd) > .inventory-main,
html[data-theme="forest"] .inventory-section-body > .inventory-item:nth-child(odd) > .item-config-panel{
  background:rgba(77,112,57,.08)!important;
}
html[data-theme="forest"] .inventory-section-body > .inventory-item:nth-child(even),
html[data-theme="forest"] .inventory-section-body > .inventory-item:nth-child(even) > .inventory-main,
html[data-theme="forest"] .inventory-section-body > .inventory-item:nth-child(even) > .item-config-panel{
  background:rgba(77,112,57,.14)!important;
}
.item-type-icon-display svg,
.item-type-badge svg{
}
@media print{
  .inventory-section-body > .inventory-item:nth-child(odd),
  .inventory-section-body > .inventory-item:nth-child(odd) > .inventory-main,
  .inventory-section-body > .inventory-item:nth-child(odd) > .item-config-panel{
    background:rgba(0,0,0,.025)!important;
  }
  .inventory-section-body > .inventory-item:nth-child(even),
  .inventory-section-body > .inventory-item:nth-child(even) > .inventory-main,
  .inventory-section-body > .inventory-item:nth-child(even) > .item-config-panel{
    background:rgba(0,0,0,.055)!important;
  }
}


/* ===== v76 active defenses: values on top, controls below ===== */
.active-defense-card .defense-parry,
.active-defense-card .defense-block,
.active-defense-card .defense-dodge{
  justify-content:flex-start!important;
}

.active-defense-card .defense>label{
  order:0!important;
  min-height:15px!important;
  margin-bottom:2px!important;
}

.active-defense-card .defense-parry-value,
.active-defense-card .defense-block .defense-total-value,
.active-defense-card .defense-dodge .defense-total-value{
  order:1!important;
  margin-top:0!important;
  margin-bottom:4px!important;
}

.active-defense-card .defense-parry>select,
.active-defense-card .defense-block>select,
.active-defense-card .defense-parry .manual-parry-input,
.active-defense-card .defense-block .manual-block-input{
  order:2!important;
}

.active-defense-card .defense-parry-meta,
.active-defense-card .defense-block .defense-total-meta,
.active-defense-card .defense-dodge .defense-total-meta{
  order:3!important;
  margin-top:2px!important;
}

.active-defense-card .defense-dodge .defense-total-meta{
  margin-top:auto!important;
}

.active-defense-card .defense-parry-value,
.active-defense-card .defense-block .defense-total-value{
  height:42px!important;
  min-height:42px!important;
  font-size:18px!important;
}

.active-defense-card .defense-dodge .defense-total-value{
  height:42px!important;
  min-height:42px!important;
  font-size:18px!important;
}


/* ===== v77 readability pass ===== */
:root{
  --readable-micro:10px;
  --readable-caption:10.5px;
  --readable-body:12px;
}

/* Tiny labels raised to a practical minimum. */
.attack-stat small{
  font-size:var(--readable-micro)!important;
  line-height:1.1!important;
}
.attack-kind{
  font-size:var(--readable-micro)!important;
  line-height:1.15!important;
}
.attack-note{
  font-size:var(--readable-caption)!important;
  line-height:1.25!important;
}

.language-head{
  font-size:var(--readable-micro)!important;
  letter-spacing:.025em!important;
}
.native-language-badge{
  font-size:9px!important;
}
.language-row input,
.language-row select{
  font-size:var(--readable-caption)!important;
}
.language-footer{
  font-size:var(--readable-micro)!important;
}

.stat-cost,
.derived-cost{
  font-size:var(--readable-micro)!important;
}
.enc-table th{
  font-size:var(--readable-micro)!important;
}
.enc-table td{
  font-size:11px!important;
}

.inventory-head,
.money-head{
  font-size:var(--readable-micro)!important;
}
.inventory-cell-total,
.inventory-cell-meta{
  height:16px!important;
  font-size:var(--readable-micro)!important;
  line-height:16px!important;
}
.inventory-cell-total b{
  font-size:var(--readable-caption)!important;
}
.item-move{
  font-size:var(--readable-caption)!important;
}
.inventory-type-controls label,
.item-type-badge{
  font-size:var(--readable-micro)!important;
}

.active-defense-card .defense>label{
  font-size:var(--readable-micro)!important;
}
.active-defense-card .defense-parry-meta,
.active-defense-card .defense-total-meta{
  font-size:var(--readable-micro)!important;
  line-height:1.2!important;
}
.active-defense-card .defense-bonus-grid label{
}
.active-defense-card select,
.active-defense-card input{
  font-size:11px!important;
}

/* Keep important values noticeable, but not oversized. */
.active-defense-card .defense-parry-value,
.active-defense-card .defense-block .defense-total-value,
.active-defense-card .defense-dodge .defense-total-value{
  font-size:17px!important;
}

/* DR source is readable and compact; full source remains in title tooltip. */
.armor-defense-card .dr-source{
  font-size:var(--readable-micro)!important;
  text-overflow:ellipsis!important;
}
.armor-defense-card .dr-location{
  font-size:var(--readable-micro)!important;
}
.armor-defense-card .dr-value{
  font-size:12px!important;
}

/* System controls should not fall below the same readable floor. */
.toolbar,
.toolbar button,
.toolbar .file-label,
.save-status{
  font-size:var(--readable-caption)!important;
}

@media(max-width:720px){
  .language-head{
    display:none!important;
  }
  .inventory-head{
    font-size:9.5px!important;
  }
}
@media print{
  .attack-stat small,
  .language-head,
  .inventory-head,
  .enc-table th,
  .active-defense-card .defense>label,
  .active-defense-card .defense-bonus-grid label{
    font-size:6.5pt!important;
  }
  .armor-defense-card .dr-source{
    font-size:6pt!important;
    line-height:8pt!important;
  }
}


/* v77.1 readability specificity fixes */
.languages-card .language-head{
  font-size:10px!important;
  letter-spacing:.025em!important;
}
.hero-dashboard .stat-cost,
.hero-dashboard .derived-cost{
  font-size:10px!important;
}
.dashboard-encumbrance .enc-table th{
  font-size:10px!important;
}
.languages-card .language-row input,
.languages-card .language-row select{
  font-size:10.5px!important;
}


/* ===== v78 compact active-defense bonuses + narrower stat/profile columns ===== */
.hero-dashboard{
}
.dashboard-stats{
  min-width:0!important;
}
.dashboard-profile{
  min-width:0!important;
}
.dashboard-profile .portrait{
}
.dashboard-profile .portrait-card .block-body{
}

/* Bonus row: one line under each defense. */
.active-defense-card .defense-bonus-grid{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:7px!important;
  margin-top:6px!important;
}
.active-defense-card .defense-bonus-grid .field{
  display:grid!important;
  grid-template-columns:auto 58px!important;
  align-items:center!important;
  gap:6px!important;
  min-width:0!important;
}
.active-defense-card .defense-bonus-grid label{
  margin:0!important;
  font-size:10px!important;
  line-height:1.1!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.active-defense-card .defense-bonus-grid input{
  width:58px!important;
  min-width:58px!important;
  height:24px!important;
  padding:2px 4px!important;
  font-size:12px!important;
  text-align:center!important;
}

/* Slightly trim defenses so the top row breathes a bit more. */
.active-defense-card .defense-parry,
.active-defense-card .defense-block,
.active-defense-card .defense-dodge{
}
.active-defense-card .defense-parry-value,
.active-defense-card .defense-block .defense-total-value,
.active-defense-card .defense-dodge .defense-total-value{
  height:40px!important;
  min-height:40px!important;
}

/* Keep the narrower top balanced on medium widths. */
@media(max-width:1180px){
  .hero-dashboard{
  }
}
@media(max-width:960px){
  .hero-dashboard{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
  }
  .dashboard-profile{
    grid-column:auto!important;
  }
}
@media(max-width:720px){
  .hero-dashboard{
    grid-template-columns:minmax(0,1fr)!important;
  }
  .active-defense-card .defense-bonus-grid .field{
    grid-template-columns:auto 54px!important;
  }
}
@media print{
  .hero-dashboard{
  }
  .active-defense-card .defense-bonus-grid .field{
    grid-template-columns:auto 11mm!important;
    gap:.8mm!important;
  }
  .active-defense-card .defense-bonus-grid input{
    width:11mm!important;
    min-width:11mm!important;
    height:5mm!important;
  }
}


/* ===== v79 hide manual defense inputs unless Manual is selected ===== */
.active-defense-card .defense .manual-parry-input[hidden],
.active-defense-card .defense .manual-block-input[hidden]{
  display:none!important;
}


/* ===== v80 manual Parry/Block entered directly in the roll field ===== */
.active-defense-card .defense-roll-input{
  width:100%!important;
  height:40px!important;
  min-height:40px!important;
  padding:4px 8px!important;
  border:1px solid var(--ui-accent)!important;
  border-radius:5px!important;
  background:var(--ui-accent-soft)!important;
  color:var(--ui-text)!important;
  font-family:var(--font-value)!important;
  font-size:17px!important;
  font-weight:750!important;
  line-height:1!important;
  text-align:center!important;
  cursor:default!important;
  opacity:1!important;
}
.active-defense-card .defense-roll-input.is-manual{
  cursor:text!important;
}
.active-defense-card .defense-roll-input.is-manual:focus{
}
.active-defense-card .defense-roll-input[readonly]{
  user-select:none;
}
.active-defense-card .manual-parry-input,
.active-defense-card .manual-block-input{
  display:none!important;
}
@media print{
  .active-defense-card .defense-roll-input{
    height:8mm!important;
    min-height:8mm!important;
    border:.2mm solid #777!important;
    font-size:9pt!important;
  }
}


/* ===== v81 restore highlighted defense value cells and align them ===== */
.active-defense-card .defense-grid{
  align-items:stretch!important;
}
.active-defense-card .defense-parry,
.active-defense-card .defense-block,
.active-defense-card .defense-dodge{
  min-height:124px!important;
  align-items:stretch!important;
}
.active-defense-card .defense-parry .defense-roll-input,
.active-defense-card .defense-block .defense-roll-input,
.active-defense-card .defense-dodge .defense-total-value{
  width:100%!important;
  height:40px!important;
  min-height:40px!important;
  box-sizing:border-box!important;
  margin-top:0!important;
  margin-bottom:4px!important;
  border:1px solid #ad8c43!important;
  border-radius:4px!important;
  background:linear-gradient(180deg,rgba(244,224,163,.54),rgba(213,184,105,.25))!important;
  color:var(--ui-text)!important;
  font-family:var(--font-value)!important;
  font-size:17px!important;
  font-weight:750!important;
  line-height:1!important;
  font-variant-numeric:tabular-nums lining-nums!important;
  text-align:center!important;
}
.active-defense-card .defense-parry .defense-roll-input,
.active-defense-card .defense-block .defense-roll-input{
  padding:0 8px!important;
}
.active-defense-card .defense-dodge .defense-total-value{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:0 8px!important;
}
.active-defense-card .defense .defense-total-meta,
.active-defense-card .defense .defense-parry-meta{
  min-height:24px!important;
}
.active-defense-card .defense-roll-input.is-manual:focus{
  background:linear-gradient(180deg,rgba(244,224,163,.54),rgba(213,184,105,.25))!important;
  outline:2px solid var(--ui-accent)!important;
  outline-offset:1px!important;
}
@media print{
  .active-defense-card .defense-parry .defense-roll-input,
  .active-defense-card .defense-block .defense-roll-input,
  .active-defense-card .defense-dodge .defense-total-value{
    height:8mm!important;
    min-height:8mm!important;
    font-size:9pt!important;
  }
}


/* ===== v82 active defenses have one visual layout in both modes ===== */
#editorView.view-mode .sheet .active-defense-card .defense input.defense-roll-input{
  border:1px solid #ad8c43!important;
  background:linear-gradient(180deg,rgba(244,224,163,.54),rgba(213,184,105,.25))!important;
  color:var(--ui-text)!important;
  -webkit-text-fill-color:var(--ui-text)!important;
  box-shadow:none!important;
  opacity:1!important;
}

#editorView.view-mode .sheet .active-defense-card .defense select[data-view-interactive]{
  appearance:auto!important;
  -webkit-appearance:menulist!important;
  border:1px solid var(--soft)!important;
  background:var(--input-bg)!important;
  color:var(--ink)!important;
  -webkit-text-fill-color:var(--ink)!important;
  padding:2px 4px!important;
  box-shadow:none!important;
  opacity:1!important;
}

#editorView.view-mode .sheet .active-defense-card .defense-bonus-grid .field input{
  border:1px solid var(--soft)!important;
  background:var(--input-bg)!important;
  color:var(--ink)!important;
  -webkit-text-fill-color:var(--ink)!important;
  box-shadow:none!important;
  opacity:1!important;
}

#editorView.view-mode .sheet .active-defense-card .defense-dodge .defense-total-value{
  border:1px solid #ad8c43!important;
  background:linear-gradient(180deg,rgba(244,224,163,.54),rgba(213,184,105,.25))!important;
  color:var(--ui-text)!important;
  box-shadow:none!important;
  opacity:1!important;
}


/* v82.1 normalize active-defense controls in both modes */
#editorView .sheet .active-defense-card .defense select[data-view-interactive],
#editorView.view-mode .sheet .active-defense-card .defense select[data-view-interactive]{
  appearance:auto!important;
  -webkit-appearance:menulist!important;
  border:1px solid var(--ui-border)!important;
  background:var(--ui-field)!important;
  color:var(--ui-text)!important;
  -webkit-text-fill-color:var(--ui-text)!important;
  padding:2px 4px!important;
  box-shadow:none!important;
  opacity:1!important;
}

#editorView .sheet .active-defense-card .defense-bonus-grid .field input,
#editorView.view-mode .sheet .active-defense-card .defense-bonus-grid .field input{
  border:1px solid var(--ui-border)!important;
  background:var(--ui-surface)!important;
  color:var(--ui-text)!important;
  -webkit-text-fill-color:var(--ui-text)!important;
  box-shadow:none!important;
  opacity:1!important;
}


/* ===== v83 inventory details, type first, large unframed pictograms ===== */
.inventory-head,
.inventory-main{
  grid-template-columns:46px minmax(250px,1fr) 48px 60px 74px 74px 30px!important;
  gap:6px!important;
}
#editorView.view-mode .inventory-main{
  grid-template-columns:46px minmax(270px,1fr) 48px 60px 74px 74px 0!important;
}
.inventory-head>span:first-child{text-align:center!important}

.inventory-type-field{
  position:relative!important;
  display:block!important;
  width:46px!important;
  min-width:46px!important;
  height:29px!important;
}
.inventory-type-field .item-type-select{
  position:absolute!important;
  inset:0!important;
  z-index:2!important;
  width:46px!important;
  height:29px!important;
  min-height:29px!important;
  padding:0!important;
  color:transparent!important;
  background:transparent!important;
  cursor:pointer!important;
}
.inventory-type-field:focus-within .item-type-select{
  width:118px!important;
  z-index:7!important;
  padding:2px 5px!important;
  color:var(--ui-text)!important;
  background:var(--ui-field)!important;
}
.inventory-type-field .item-type-icon-display{
  position:absolute!important;
  inset:0!important;
  z-index:3!important;
  display:flex!important;
  width:46px!important;
  height:29px!important;
  align-items:center!important;
  justify-content:center!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  pointer-events:none!important;
}
.inventory-type-field:focus-within .item-type-icon-display{opacity:0!important}
.item-type-icon-display svg,
.item-type-badge svg{
  display:block!important;
  width:31px!important;
  height:29px!important;
  fill:currentColor!important;
}
.item-type-badges,
.item-type-badge{
  width:46px!important;
  min-width:46px!important;
  height:29px!important;
  min-height:29px!important;
}
.item-type-badge{
  display:flex!important;
  padding:0!important;
  align-items:center!important;
  justify-content:center!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
#editorView.view-mode .item-type-select,
#editorView.view-mode .item-type-icon-display{display:none!important}
#editorView.view-mode .item-type-badges{display:flex!important}

/* Every row now has a disclosure. */
.inventory-name-line.has-expand{
  grid-template-columns:minmax(0,1fr) 28px!important;
}
.item-config-panel{
  display:grid!important;
  gap:9px!important;
  padding:9px 10px 10px!important;
  border-top:1px solid var(--ui-border)!important;
  background:transparent!important;
}
.item-notes-field{
  display:grid!important;
  grid-template-columns:86px minmax(0,1fr)!important;
  gap:8px!important;
  align-items:start!important;
}
.item-notes-field>span,
.item-detail-label,
.profile-config-label{
  color:var(--ui-secondary)!important;
  font-family:var(--font-heading)!important;
  font-size:10px!important;
  font-weight:750!important;
  letter-spacing:.025em!important;
  text-transform:uppercase!important;
}
.item-notes-field>span{padding-top:6px!important}
.item-notes-field textarea{
  width:100%!important;
  min-height:52px!important;
  max-height:130px!important;
  padding:6px 8px!important;
  resize:vertical!important;
  font-size:11px!important;
  line-height:1.3!important;
}
.weapon-config-flat,
.armor-config-flat{
  display:grid!important;
  gap:7px!important;
  min-width:0!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
}
.item-detail-toolbar{
  display:flex!important;
  min-height:28px!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:8px!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
}
.profile-config-label{margin:5px 0 2px!important}
.weapon-profile{
  padding:7px!important;
  border:1px solid var(--ui-border)!important;
  border-radius:5px!important;
  background:rgba(255,255,255,.12)!important;
}
html[data-theme="dark"] .weapon-profile{background:rgba(255,255,255,.025)!important}
.armor-config-body{padding:0!important}
.armor-core-fields-flat{
  grid-template-columns:120px!important;
  margin:0 0 6px!important;
}
.item-config-section-head,
.weapon-config-head{display:none!important}

@media(max-width:1000px) and (min-width:721px){
  .inventory-head,
  .inventory-main{
    grid-template-columns:44px minmax(190px,1fr) 46px 58px 70px 70px 28px!important;
    gap:5px!important;
  }
  #editorView.view-mode .inventory-main{
    grid-template-columns:44px minmax(210px,1fr) 46px 58px 70px 70px 0!important;
  }
  .inventory-type-field,
  .inventory-type-field .item-type-icon-display,
  .item-type-badges,
  .item-type-badge{
    width:44px!important;
    min-width:44px!important;
  }
}
@media(max-width:720px){
  .inventory-main,
  #editorView.view-mode .inventory-main{
    grid-template-columns:54px minmax(0,1fr)!important;
  }
  .inventory-type-field{
    grid-column:1!important;
    grid-row:1!important;
    width:54px!important;
    min-width:54px!important;
  }
  .inventory-name-field{
    grid-column:2!important;
    grid-row:1!important;
  }
  .inventory-qty-field{grid-column:1!important}
  .inventory-weight-field{grid-column:2!important}
  .inventory-price-field{grid-column:1!important}
  .item-move{grid-column:2!important}
  .inventory-remove{grid-column:2!important;justify-self:end!important}
  .inventory-type-field .item-type-icon-display,
  .item-type-badges,
  .item-type-badge{
    width:54px!important;
    min-width:54px!important;
  }
  .item-notes-field{
    grid-template-columns:minmax(0,1fr)!important;
    gap:4px!important;
  }
  .item-notes-field>span{padding-top:0!important}
}
@media print{
  .inventory-head,
  .inventory-main{
    grid-template-columns:9mm minmax(48mm,1fr) 8mm 11mm 13mm 14mm 6mm!important;
  }
  .item-config-panel{padding:1.5mm!important;gap:1.5mm!important}
  .item-notes-field textarea{min-height:9mm!important;font-size:7pt!important}
}


/* ===== v84 armor settings in one compact row ===== */
.armor-config-flat{
  display:grid!important;
  grid-template-columns:auto 122px minmax(0,1fr)!important;
  gap:10px!important;
  align-items:end!important;
}
.armor-config-flat>.item-detail-label{
  align-self:center!important;
  white-space:nowrap!important;
}
.armor-config-flat>.armor-config-body{
  display:contents!important;
}
.armor-config-flat .armor-core-fields-flat{
  display:block!important;
  margin:0!important;
}
.armor-config-flat .armor-core-fields-flat .profile-field{
  min-width:0!important;
}
.armor-config-flat .armor-core-fields-flat input{
  width:100%!important;
  height:29px!important;
}
.armor-config-flat .armor-locations{
  display:grid!important;
  grid-template-columns:auto repeat(6,max-content)!important;
  gap:6px 12px!important;
  min-width:0!important;
  min-height:29px!important;
  margin:0!important;
  padding:4px 8px!important;
  align-items:center!important;
}
.armor-config-flat .armor-locations-title{
  grid-column:auto!important;
  margin:0 2px 0 0!important;
  white-space:nowrap!important;
}
.armor-config-flat .armor-location-toggle{
  gap:3px!important;
  font-size:10px!important;
}
.armor-config-flat .armor-location-toggle input{
  width:16px!important;
  min-width:16px!important;
  height:16px!important;
  min-height:16px!important;
}

@media(max-width:1000px){
  .armor-config-flat{
    grid-template-columns:auto 110px minmax(0,1fr)!important;
    gap:7px!important;
  }
  .armor-config-flat .armor-locations{
    grid-template-columns:auto repeat(3,minmax(70px,1fr))!important;
    gap:4px 8px!important;
  }
  .armor-config-flat .armor-locations-title{
    grid-row:1/3!important;
    align-self:center!important;
  }
}
@media(max-width:720px){
  .armor-config-flat{
    grid-template-columns:minmax(0,1fr) 110px!important;
    align-items:end!important;
  }
  .armor-config-flat>.item-detail-label{
    grid-column:1!important;
  }
  .armor-config-flat .armor-core-fields-flat{
    grid-column:2!important;
  }
  .armor-config-flat .armor-locations{
    grid-column:1/-1!important;
    grid-template-columns:auto repeat(2,minmax(0,1fr))!important;
  }
  .armor-config-flat .armor-locations-title{
    grid-row:1/4!important;
  }
}
@media print{
  .armor-config-flat{
    grid-template-columns:24mm 21mm minmax(0,1fr)!important;
    gap:1.5mm!important;
  }
  .armor-config-flat .armor-locations{
    grid-template-columns:14mm repeat(6,max-content)!important;
    gap:1mm 2mm!important;
    min-height:6mm!important;
    padding:.7mm 1mm!important;
  }
}


/* v84.1 keep DR label and value in the same horizontal row */
.armor-config-flat .armor-core-fields-flat .profile-field{
  display:grid!important;
  grid-template-columns:auto minmax(0,1fr)!important;
  gap:5px!important;
  align-items:center!important;
  min-height:29px!important;
}
.armor-config-flat .armor-core-fields-flat .profile-field>label{
  margin:0!important;
  white-space:nowrap!important;
}
.armor-config-flat .armor-core-fields-flat input{
  min-width:0!important;
}


/* ===== v85 inventory view-mode disclosure cleanup ===== */
.inventory-name-line:not(.has-expand){
  display:block!important;
}
#editorView.view-mode .item-config-panel:not(:has(.item-notes-field, .weapon-config-flat, .armor-config-flat)){
  display:none!important;
}
.item-type-icon-display svg path,
.item-type-badge svg path{
  fill:currentColor!important;
}


/* ===== v86 explicit signs in weapon damage modifier fields ===== */
[data-signed-modifier]{
  font-variant-numeric:tabular-nums lining-nums!important;
  text-align:center!important;
}


/* ===== v87 characteristics fit + view interaction + robust inventory zebra ===== */

/* Shift the HP / Will / Per / FP half left and fit current HP / FP cleanly. */
.characteristics-card .stat-pair{
  grid-template-columns:27px 55px 34px 36px 52px 52px 39px!important;
  gap:3px!important;
  width:100%!important;
  min-width:0!important;
}
.characteristics-card .stat-pair>*{
  min-width:0!important;
}
.characteristics-card .stat-value,
.characteristics-card .stat-current{
  width:100%!important;
  min-width:0!important;
  padding-left:3px!important;
  padding-right:3px!important;
}
.characteristics-card .stat-label{
  font-size:14px!important;
}
.characteristics-card .stat-cost{
  overflow:visible!important;
  white-space:nowrap!important;
  font-size:9px!important;
}
.characteristics-card .stat-current-wrap,
.characteristics-card .stat-current-spacer{
  width:52px!important;
  min-width:52px!important;
}

/* Current HP and FP intentionally stay interactive in view mode. */
#editorView.view-mode .characteristics-card .stat-current[data-view-interactive]{
  pointer-events:auto!important;
  cursor:text!important;
  border:1px solid var(--ui-border)!important;
  background:var(--ui-field)!important;
  color:var(--ui-text)!important;
  -webkit-text-fill-color:var(--ui-text)!important;
  opacity:1!important;
}

/* Inventory remains draggable while viewing the sheet. */
#editorView.view-mode .inventory-item[data-drag-kind="inventory"]{
  cursor:grab!important;
}
#editorView.view-mode .inventory-item[data-drag-kind="inventory"]:active{
  cursor:grabbing!important;
}
#editorView.view-mode .inventory-item[data-drag-kind="inventory"] .item-type-badges,
#editorView.view-mode .inventory-item[data-drag-kind="inventory"] .inventory-cell-total{
  cursor:grab!important;
}

/* True alternating item backgrounds. The same color covers expanded contents. */
.inventory-section-body > .inventory-item:nth-child(odd){
  --inventory-row-bg:var(--row-stripe-a);
}
.inventory-section-body > .inventory-item:nth-child(even){
  --inventory-row-bg:var(--row-stripe-b);
}
.inventory-section-body > .inventory-item,
.inventory-section-body > .inventory-item > .inventory-main,
.inventory-section-body > .inventory-item > .item-config-panel{
  background:var(--inventory-row-bg)!important;
}
.inventory-section-body > .inventory-item > .item-config-panel .weapon-config-flat,
.inventory-section-body > .inventory-item > .item-config-panel .armor-config-flat,
.inventory-section-body > .inventory-item > .item-config-panel .weapon-profile,
.inventory-section-body > .inventory-item > .item-config-panel .armor-config-body,
.inventory-section-body > .inventory-item > .item-config-panel .armor-locations{
  background:transparent!important;
}
.inventory-section-body > .inventory-item.is-open{
  background:var(--inventory-row-bg)!important;
}
.inventory-section-body > .inventory-item.is-open > .inventory-main,
.inventory-section-body > .inventory-item.is-open > .item-config-panel{
  background:var(--inventory-row-bg)!important;
}

/* Preserve the alternating row background in print as well. */
@media print{
  .inventory-section-body > .inventory-item:nth-child(odd){
    --inventory-row-bg:rgba(0,0,0,.025);
  }
  .inventory-section-body > .inventory-item:nth-child(even){
    --inventory-row-bg:rgba(0,0,0,.055);
  }
}


/* v87.1 apply zebra to the actual rendered inventory containers */
#inventoryWorn > .inventory-item:nth-child(odd),
#inventoryBag > .inventory-item:nth-child(odd){
  --inventory-row-bg:var(--row-stripe-a);
}
#inventoryWorn > .inventory-item:nth-child(even),
#inventoryBag > .inventory-item:nth-child(even){
  --inventory-row-bg:var(--row-stripe-b);
}
#inventoryWorn > .inventory-item,
#inventoryBag > .inventory-item,
#inventoryWorn > .inventory-item > .inventory-main,
#inventoryBag > .inventory-item > .inventory-main,
#inventoryWorn > .inventory-item > .item-config-panel,
#inventoryBag > .inventory-item > .item-config-panel{
  background:var(--inventory-row-bg)!important;
}
#inventoryWorn > .inventory-item > .item-config-panel .weapon-config-flat,
#inventoryBag > .inventory-item > .item-config-panel .weapon-config-flat,
#inventoryWorn > .inventory-item > .item-config-panel .armor-config-flat,
#inventoryBag > .inventory-item > .item-config-panel .armor-config-flat,
#inventoryWorn > .inventory-item > .item-config-panel .weapon-profile,
#inventoryBag > .inventory-item > .item-config-panel .weapon-profile,
#inventoryWorn > .inventory-item > .item-config-panel .armor-config-body,
#inventoryBag > .inventory-item > .item-config-panel .armor-config-body,
#inventoryWorn > .inventory-item > .item-config-panel .armor-locations,
#inventoryBag > .inventory-item > .item-config-panel .armor-locations{
  background:transparent!important;
}
@media print{
  #inventoryWorn > .inventory-item:nth-child(odd),
  #inventoryBag > .inventory-item:nth-child(odd){
    --inventory-row-bg:rgba(0,0,0,.025);
  }
  #inventoryWorn > .inventory-item:nth-child(even),
  #inventoryBag > .inventory-item:nth-child(even){
    --inventory-row-bg:rgba(0,0,0,.055);
  }
}


/* ===== v88 JSON import on manager landing page ===== */
.manager-primary-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:wrap;
}
.manager-import{
  display:inline-flex!important;
  min-height:38px;
  padding:7px 14px;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(239,210,124,.62);
  border-radius:7px;
  color:#f2e5bd;
  background:rgba(12,20,28,.34);
  box-shadow:0 3px 8px rgba(0,0,0,.18);
  font-weight:700;
  cursor:pointer;
}
.manager-import:hover{
  border-color:#efd27c;
  color:#fff5d1;
  background:rgba(30,43,55,.7);
}
.manager-import:focus-within{
  outline:2px solid #efd27c;
  outline-offset:2px;
}
@media(max-width:720px){
  .manager-title-row{
    align-items:stretch!important;
  }
  .manager-primary-actions{
    width:100%;
    justify-content:stretch;
  }
  .manager-primary-actions .manager-create,
  .manager-primary-actions .manager-import{
    flex:1 1 180px;
    width:auto;
  }
}


/* ===== v89 top dashboard recomposition =====
   Row 1: characteristics | square portrait | compact languages
   Row 2: encumbrance | active defenses | armor
*/
.hero-dashboard{
  display:grid!important;
  grid-template-columns:350px 310px minmax(420px,1fr)!important;
  grid-template-areas:
    "character portrait languages"
    "encumbrance combat combat"!important;
  gap:10px!important;
  align-items:start!important;
}

.dashboard-stats,
.dashboard-profile{
  display:contents!important;
}

.characteristics-card{
  grid-area:character!important;
  min-width:0!important;
}

.dashboard-encumbrance{
  grid-area:encumbrance!important;
  min-width:0!important;
  align-self:start!important;
}

.dashboard-profile .portrait-card{
  grid-area:portrait!important;
  width:100%!important;
  height:auto!important;
  min-width:0!important;
  align-self:start!important;
}

.languages-card{
  grid-area:languages!important;
  width:100%!important;
  height:100%!important;
  min-width:0!important;
  align-self:stretch!important;
}

.dashboard-combat{
  grid-area:combat!important;
  display:grid!important;
  grid-template-columns:minmax(470px,1.35fr) minmax(300px,.9fr)!important;
  gap:10px!important;
  min-width:0!important;
}

.dashboard-combat>.active-defense-card,
.dashboard-combat>.armor-defense-card{
  width:100%!important;
  min-width:0!important;
}

/* Portrait image itself is square. */
.dashboard-profile .portrait-card .block-body{
  display:block!important;
  height:auto!important;
  padding:6px!important;
}

.dashboard-profile .portrait{
  width:100%!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  aspect-ratio:1 / 1!important;
  flex:none!important;
}

.dashboard-profile .portrait img{
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  object-fit:cover!important;
}

/* Languages no longer spend most of the width on the language name. */
.languages-card .block-body{
  display:flex!important;
  min-height:0!important;
  height:calc(100% - 27px)!important;
  flex-direction:column!important;
  gap:5px!important;
}

.languages-card .language-head,
.languages-card .language-row{
  gap:5px!important;
}

.languages-card .language-row input,
.languages-card .language-row select{
  min-width:0!important;
}

.languages-card .social-compact-field{
  flex:1 1 auto!important;
}

.languages-card .social-compact-field textarea{
  min-height:52px!important;
  max-height:78px!important;
}

/* Armor stays compact beside active defenses. */
.armor-defense-card .dr-grid{
}

.armor-defense-card .dr-row{
}

@media(max-width:1180px){
  .hero-dashboard{
    grid-template-columns:335px 285px minmax(365px,1fr)!important;
  }
  .dashboard-combat{
    grid-template-columns:minmax(430px,1.25fr) minmax(280px,.85fr)!important;
  }
  .languages-card .language-head,
  .languages-card .language-row{
  }
}

@media(max-width:1000px){
  .hero-dashboard{
    grid-template-columns:minmax(330px,.95fr) minmax(280px,.8fr)!important;
    grid-template-areas:
      "character portrait"
      "encumbrance languages"
      "combat combat"!important;
  }
  .dashboard-combat{
    grid-template-columns:minmax(430px,1.2fr) minmax(280px,.8fr)!important;
  }
  .languages-card{
    height:auto!important;
  }
  .languages-card .block-body{
    height:auto!important;
  }
}

@media(max-width:760px){
  .hero-dashboard{
    grid-template-columns:minmax(0,1fr)!important;
    grid-template-areas:
      "character"
      "portrait"
      "languages"
      "encumbrance"
      "combat"!important;
  }
  .dashboard-profile .portrait-card{
    width:min(100%,360px)!important;
    justify-self:center!important;
  }
  .dashboard-combat{
    grid-template-columns:minmax(0,1fr)!important;
  }
  .languages-card .language-head{
    display:none!important;
  }
  .languages-card .language-row{
    grid-template-columns:minmax(0,1fr) minmax(82px,.62fr)!important;
  }
}

@media print{
  .hero-dashboard{
    grid-template-columns:37mm 34mm minmax(0,1fr)!important;
    grid-template-areas:
      "character portrait languages"
      "encumbrance combat combat"!important;
    gap:1.5mm!important;
  }
  .dashboard-combat{
    grid-template-columns:1.2fr .8fr!important;
    gap:1.5mm!important;
  }
  .dashboard-profile .portrait{
    aspect-ratio:1 / 1!important;
  }
  .languages-card .language-head,
  .languages-card .language-row{
    grid-template-columns:minmax(18mm,1fr) 13mm 13mm 7mm!important;
  }
}


/* v89.1 final alignment: fill the characteristics cell and shorten language rows */
.characteristics-card{
  height:100%!important;
  align-self:stretch!important;
}
.languages-card .language-head,
.languages-card .language-row{
  grid-template-columns:160px 92px 92px 38px!important;
  justify-content:start!important;
}
@media(max-width:1180px){
  .languages-card .language-head,
  .languages-card .language-row{
    grid-template-columns:145px 84px 84px 36px!important;
  }
}
@media(max-width:1000px){
  .languages-card .language-head,
  .languages-card .language-row{
    grid-template-columns:minmax(120px,1fr) 84px 84px 36px!important;
  }
}


/* ===== v90 stretched armor and proper top-row collapsing ===== */

/* The second-row combat cells share one height. */
.dashboard-combat{
  align-items:stretch!important;
}
.dashboard-combat>.active-defense-card,
.dashboard-combat>.armor-defense-card{
  height:100%!important;
  min-height:0!important;
  align-self:stretch!important;
}

/* Armor fills its cell instead of leaving an empty lower-right hole. */
.armor-defense-card{
  display:flex!important;
  flex-direction:column!important;
}
.armor-defense-card>.block-title{
  flex:0 0 auto!important;
}
.armor-defense-card>.block-body{
  display:flex!important;
  min-height:0!important;
  height:auto!important;
  flex:1 1 auto!important;
  flex-direction:column!important;
  padding:7px 8px 8px!important;
}
.armor-defense-card .dr-grid{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  grid-template-rows:repeat(3,minmax(0,1fr))!important;
  min-height:0!important;
  height:100%!important;
  flex:1 1 auto!important;
  gap:6px 10px!important;
  align-content:stretch!important;
}
.armor-defense-card .dr-row{
  display:grid!important;
  grid-template-columns:minmax(54px,1fr) 44px!important;
  grid-template-rows:auto minmax(18px,auto)!important;
  min-height:0!important;
  padding:5px 6px!important;
  align-content:center!important;
  border-radius:5px!important;
  background:rgba(255,255,255,.055)!important;
}
html[data-theme="dark"] .armor-defense-card .dr-row{
  background:rgba(255,255,255,.035)!important;
}
.armor-defense-card .dr-source{
  min-height:18px!important;
  max-height:none!important;
  line-height:1.2!important;
  white-space:normal!important;
}

/* A collapsed upper card is only its title, never an empty stretched panel. */
.characteristics-card.collapsed,
.dashboard-profile .portrait-card.collapsed,
.languages-card.collapsed{
  height:27px!important;
  min-height:27px!important;
  max-height:27px!important;
  align-self:start!important;
  overflow:hidden!important;
}
.characteristics-card.collapsed>.block-title,
.dashboard-profile .portrait-card.collapsed>.block-title,
.languages-card.collapsed>.block-title{
  height:27px!important;
  min-height:27px!important;
  border-radius:5px!important;
}
.characteristics-card.collapsed>.block-body,
.dashboard-profile .portrait-card.collapsed>.block-body,
.languages-card.collapsed>.block-body{
  display:none!important;
}

/* Open cards still fill the first row evenly. */
.characteristics-card:not(.collapsed),
.dashboard-profile .portrait-card:not(.collapsed),
.languages-card:not(.collapsed){
  height:100%!important;
  min-height:0!important;
  align-self:stretch!important;
}

/* Collapsed armor also shrinks correctly despite the stretching rules above. */
.armor-defense-card.collapsed{
  height:27px!important;
  min-height:27px!important;
  max-height:27px!important;
  align-self:start!important;
  overflow:hidden!important;
}
.armor-defense-card.collapsed>.block-body{
  display:none!important;
}

@media(max-width:1000px){
  .dashboard-combat{
    align-items:stretch!important;
  }
}
@media(max-width:760px){
  .dashboard-combat>.active-defense-card,
  .dashboard-combat>.armor-defense-card{
    height:auto!important;
  }
  .armor-defense-card .dr-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    grid-template-rows:auto!important;
  }
}
@media print{
  .armor-defense-card .dr-row{
    padding:1mm!important;
  }
}


/* ===== Low HP and FP status effects ===== */
:root{
  --status-hp:#a83535;
  --status-hp-soft:#f8e3e1;
  --status-fp:#a65a12;
  --status-fp-soft:#fff0d6;
}
html[data-theme="dark"]{
  --status-hp:#ff8f87;
  --status-hp-soft:#4b2b2e;
  --status-fp:#ffbd69;
  --status-fp-soft:#493825;
}
html[data-theme="blue"]{
  --status-hp:#a9343c;
  --status-hp-soft:#f8e2e5;
  --status-fp:#a25714;
  --status-fp-soft:#ffefd8;
}
html[data-theme="forest"]{
  --status-hp:#a23838;
  --status-hp-soft:#f5e4df;
  --status-fp:#965b16;
  --status-fp-soft:#f8ecd3;
}
.health-status-list{
  display:flex;
  min-width:0;
  margin-top:5px;
  gap:4px;
  flex-wrap:wrap;
}
.health-status{
  display:inline-flex;
  min-width:0;
  min-height:19px;
  padding:3px 6px;
  align-items:center;
  border:1px solid currentColor;
  border-radius:4px;
  font-family:var(--font-ui);
  font-size:9.5px;
  font-weight:700;
  line-height:1.15;
}
.health-status-hp{
  color:var(--status-hp);
  background:var(--status-hp-soft);
}
.health-status-fp{
  color:var(--status-fp);
  background:var(--status-fp-soft);
}
.characteristics-card .stat-current.is-low-hp,
#editorView.view-mode .characteristics-card .stat-current.is-low-hp{
  border-color:var(--status-hp)!important;
  color:var(--status-hp)!important;
  background:var(--status-hp-soft)!important;
  box-shadow:inset 0 0 0 1px var(--status-hp)!important;
}
.characteristics-card .stat-current.is-low-fp,
#editorView.view-mode .characteristics-card .stat-current.is-low-fp{
  border-color:var(--status-fp)!important;
  color:var(--status-fp)!important;
  background:var(--status-fp-soft)!important;
  box-shadow:inset 0 0 0 1px var(--status-fp)!important;
}
.dashboard-encumbrance .encumbrance-controls{
  grid-template-columns:minmax(0,1fr) minmax(92px,.75fr) 48px!important;
}
.effective-move-field{
  min-width:0;
}
.effective-move-display{
  display:flex;
  min-width:0;
  min-height:30px;
  padding:3px 5px;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  border:1px solid var(--ui-border);
  border-radius:4px;
  background:var(--ui-field);
  text-align:center;
}
.effective-move-display strong{
  color:var(--ui-text);
  font-family:var(--font-value);
  font-size:15px!important;
  font-weight:800;
  line-height:1;
}
.effective-move-display .field-meta{
  margin-top:2px;
  color:var(--ui-secondary)!important;
  font-size:9px!important;
  line-height:1.1!important;
  white-space:nowrap;
}
.active-defense-card .defense-dodge .defense-total-meta{
  white-space:normal!important;
  text-overflow:clip!important;
}
@media(max-width:760px){
  .dashboard-encumbrance .encumbrance-controls{
    grid-template-columns:minmax(0,1fr) minmax(104px,.7fr) 54px!important;
  }
}
@media(max-width:420px){
  .health-status-list{
    flex-direction:column;
  }
  .health-status{
    width:100%;
  }
}
@media print{
  .health-status-list{
    margin-top:1mm!important;
    gap:.8mm!important;
  }
  .health-status{
    min-height:4mm!important;
    padding:.4mm 1mm!important;
    border-color:#777!important;
    color:#222!important;
    background:#f2f2f2!important;
    font-size:6pt!important;
  }
  .characteristics-card .stat-current.is-low-hp,
  .characteristics-card .stat-current.is-low-fp{
    border-color:#555!important;
    color:#000!important;
    background:#f2f2f2!important;
    box-shadow:none!important;
  }
  .dashboard-encumbrance .encumbrance-controls{
    grid-template-columns:minmax(0,1fr) 18mm 10mm!important;
  }
  .effective-move-display{
    min-height:6mm!important;
    padding:.5mm!important;
    border-color:#777!important;
    background:#fff!important;
  }
  .effective-move-display strong{
    color:#000!important;
    font-size:9pt!important;
  }
  .effective-move-display .field-meta{
    color:#333!important;
    font-size:5.5pt!important;
  }
}
