/* ============================================================
   ITALIA XV — foglio di stile condiviso delle schede di fazione
   Palette e caratteri allineati a index.html
   Collegare con:  <link rel="stylesheet" href="italiaxv-corte.css">
   ============================================================ */

:root{
  /* --- palette index.html --- */
  --night:#080705;
  --night-2:#100c08;
  --wine:#4f0908;
  --wine-2:#250504;
  --gold:#d3a64d;
  --gold-bright:#f0cf7a;
  --gold-dark:#72501d;
  --paper:#dbc79e;
  --paper-soft:#bca476;
  --line:rgba(211,166,77,.48);
  --line-soft:rgba(211,166,77,.26);
  --shadow:0 26px 75px rgba(0,0,0,.62);

  /* --- derivati per la scheda --- */
  --panel:#12100c;          /* fondo dei pannelli */
  --panel-2:#0c0a07;
  --field:rgba(8,7,5,.92);  /* fondo dei campi editabili */
  --accent:var(--gold-bright);
  --ink:var(--paper);
  --muted:#9c885c;
  --red:#c1121f;
  --green:#3f7a4a;
  --blue:#3d6a8c;
  --radius:0px;             /* la grafica del sito è squadrata */
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}

body{
  margin:0;
  color:var(--paper);
  font-family:"EB Garamond",Georgia,"Times New Roman",serif;
  font-size:17px;
  background:
    radial-gradient(circle at 50% -8%, rgba(148,61,24,.22), transparent 33rem),
    radial-gradient(circle at 12% 42%, rgba(126,52,18,.14), transparent 28rem),
    radial-gradient(circle at 88% 44%, rgba(55,70,72,.12), transparent 30rem),
    linear-gradient(180deg,#090806 0%,#100b07 46%,#070605 100%);
  background-attachment:fixed;
}
body::after{
  content:"";
  position:fixed;
  inset:0;
  z-index:-1;
  pointer-events:none;
  background:
    linear-gradient(90deg,rgba(0,0,0,.55),transparent 16%,transparent 84%,rgba(0,0,0,.55)),
    repeating-linear-gradient(0deg,rgba(255,255,255,.012) 0 1px,transparent 1px 4px);
}
a{color:var(--gold-bright)}

.page{max-width:1240px;margin:0 auto;padding:26px 18px 64px}

/* ---------------- barra di navigazione (uguale a index) --------------- */
.topbar{
  position:sticky;top:0;z-index:50;min-height:76px;
  display:flex;align-items:center;gap:20px;
  padding:0 30px 0 116px;
  background:linear-gradient(180deg,rgba(5,4,3,.98),rgba(10,8,5,.95));
  border-bottom:1px solid var(--line);
  box-shadow:0 12px 35px rgba(0,0,0,.42);
}
.gonfalone{
  position:absolute;top:0;left:22px;width:76px;height:104px;
  display:grid;place-items:center;padding-bottom:20px;
  text-decoration:none;font-family:"Cinzel",serif;font-size:30px;font-weight:600;
  color:var(--gold-bright);
  background:linear-gradient(180deg,#6b0b0a 0%,#3a0706 100%);
  border:1px solid var(--gold-dark);border-top:0;
  box-shadow:inset 0 0 0 2px rgba(240,207,122,.13),0 10px 24px rgba(0,0,0,.48);
  clip-path:polygon(0 0,100% 0,100% 76%,50% 100%,0 76%);
}
.main-nav{width:100%;display:flex;align-items:center;justify-content:center;gap:clamp(18px,3vw,48px);white-space:nowrap}
.main-nav a{
  position:relative;padding:29px 0 25px;text-decoration:none;
  font-family:"Cinzel",serif;font-size:clamp(11px,1.1vw,15px);letter-spacing:.025em;color:#d8bc7a;
  transition:color .18s ease;
}
.main-nav a::after{content:"";position:absolute;left:50%;right:50%;bottom:18px;height:1px;background:var(--gold-bright);transition:left .18s ease,right .18s ease}
.main-nav a:hover,.main-nav a:focus-visible{color:#fff0bd}
.main-nav a:hover::after,.main-nav a:focus-visible::after{left:0;right:0}

/* ---------------------------- intestazione ---------------------------- */
header.hero{
  position:relative;
  border:1px solid var(--line);
  background:
    linear-gradient(135deg,rgba(98,22,17,.42),transparent 62%),
    linear-gradient(180deg,rgba(17,12,8,.96),rgba(7,6,5,.98));
  box-shadow:var(--shadow),inset 0 0 70px rgba(103,48,14,.10);
  overflow:hidden;
}
.hero::before,.hero::after{content:"";position:absolute;width:74px;height:74px;pointer-events:none;z-index:2}
.hero::before{left:8px;top:8px;border-left:1px solid var(--gold);border-top:1px solid var(--gold)}
.hero::after{right:8px;bottom:8px;border-right:1px solid var(--gold);border-bottom:1px solid var(--gold)}
.hero-inner{display:grid;grid-template-columns:150px 1fr;gap:26px;align-items:center;padding:30px 34px;position:relative;z-index:1}

/* lo stemma riprende la forma del gonfalone del sito */
.seal{
  width:132px;height:164px;
  display:grid;place-items:center;padding:12px 12px 26px;
  background:linear-gradient(180deg,rgba(255,247,216,.12),rgba(78,41,17,.30));
  border:1px solid var(--gold-dark);
  box-shadow:inset 0 0 0 1px rgba(240,207,122,.18),0 12px 26px rgba(0,0,0,.5);
  clip-path:polygon(0 0,100% 0,100% 82%,50% 100%,0 82%);
}
.seal img{width:100%;height:100%;object-fit:contain;display:block;filter:drop-shadow(0 3px 5px rgba(0,0,0,.55))}

h1{
  margin:0;font-family:"Cinzel",serif;font-weight:600;
  font-size:clamp(28px,4.4vw,50px);letter-spacing:.05em;text-transform:uppercase;line-height:1.02;
  color:var(--gold-bright);text-shadow:0 3px 12px rgba(0,0,0,.7);
}
.subtitle{margin-top:9px;color:var(--paper-soft);font-size:clamp(16px,1.6vw,20px);font-style:italic}
.player-line{margin-top:10px;color:var(--paper);font-size:16px}
.player-line strong{color:var(--gold-bright);font-family:"Cinzel",serif;font-size:14px;letter-spacing:.04em;text-transform:uppercase}
.player-line span{display:inline-block;min-width:170px;border-bottom:1px dotted rgba(211,166,77,.5);padding:0 4px}

.badges{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.badge{
  border:1px solid var(--line-soft);background:rgba(0,0,0,.34);
  padding:6px 12px;border-radius:999px;color:var(--paper);font-size:13px;
}
.badge strong{color:var(--gold-bright);font-family:"Cinzel",serif;letter-spacing:.03em}
.court-return-row{margin-top:22px}
.court-return{
  display:inline-flex;
  align-items:center;
  padding:6px 12px;
  border:1px solid var(--line-soft);
  border-radius:999px;
  color:var(--paper);
  background:rgba(0,0,0,.34);
  font-family:"Cinzel",serif;
  font-size:12px;
  font-weight:600;
  letter-spacing:.04em;
  line-height:1.2;
  text-decoration:none;
}
.court-return:hover,.court-return:focus-visible{
  color:var(--gold-bright);
  border-color:var(--gold);
  background:rgba(107,23,23,.42);
}

/* ------------------------------ barra strumenti ----------------------- */
.toolbar{
  position:relative;z-index:40;margin:16px 0;padding:11px;
  border:1px solid var(--line-soft);
  background:linear-gradient(180deg,rgba(17,12,8,.94),rgba(8,7,5,.94));
  display:flex;gap:8px;flex-wrap:wrap;
  box-shadow:0 10px 30px rgba(0,0,0,.34);
}
button,.btn{
  border:1px solid var(--line-soft);
  background:linear-gradient(180deg,#3a0706,#1d0403);
  color:var(--paper);
  font-family:"Cinzel",serif;font-size:13px;letter-spacing:.03em;
  padding:9px 14px;cursor:pointer;border-radius:0;
  transition:border-color .16s ease,background .16s ease,color .16s ease;
}
button:hover,.btn:hover{border-color:var(--gold-bright);background:linear-gradient(180deg,#6b0b0a,#320605);color:#fff0bd}
button:focus-visible,.btn:focus-visible{outline:2px solid var(--gold-bright);outline-offset:2px}
button.primary{background:linear-gradient(180deg,#7a0f0d,#3a0706);border-color:var(--gold);color:#f8e6b4;font-weight:600}
button.danger{background:linear-gradient(180deg,#8d0d18,#3d0509)}
button.green{background:linear-gradient(180deg,#2f5236,#16281a)}

/* ------------------------------- sezioni ------------------------------ */
.grid{display:grid;gap:18px}
.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.split{display:grid;grid-template-columns:1.2fr .8fr;gap:18px}

details.section{
  position:relative;margin:18px 0;
  border:1px solid var(--line);
  background:linear-gradient(180deg,rgba(11,9,6,.94),rgba(5,5,4,.97));
  box-shadow:var(--shadow),inset 0 0 70px rgba(103,48,14,.07);
  color:var(--paper);
}
details.section::before,details.section::after{content:"";position:absolute;width:52px;height:52px;pointer-events:none;z-index:2}
details.section::before{left:7px;top:7px;border-left:1px solid var(--gold);border-top:1px solid var(--gold)}
details.section::after{right:7px;bottom:7px;border-right:1px solid var(--gold);border-bottom:1px solid var(--gold)}

details.section>summary{
  list-style:none;cursor:pointer;
  padding:17px 26px;
  background:linear-gradient(180deg,#6b0b0a 0%,#3a0706 100%);
  border-bottom:1px solid var(--line-soft);
  font-family:"Cinzel",serif;font-size:clamp(15px,1.6vw,20px);font-weight:600;letter-spacing:.05em;
  color:var(--gold-bright);
  display:flex;align-items:center;justify-content:space-between;gap:10px;
}
details.section>summary::-webkit-details-marker{display:none}
details.section>summary::after{content:"\25BE";font-size:16px;color:var(--gold);transition:transform .2s}
details.section:not([open])>summary::after{transform:rotate(-90deg)}
details.section>summary:hover{color:#fff0bd}
.section-body{padding:24px 26px}

/* area riservata al master */
.private-box{border-color:rgba(193,18,31,.55)!important}
.private-box>summary{
  background:
    repeating-linear-gradient(45deg,rgba(0,0,0,.22) 0 6px,transparent 6px 12px),
    linear-gradient(180deg,#8d0d18,#3d0509)!important;
  color:#ffe9b8!important;
}
.private-note{
  border:1px solid rgba(193,18,31,.45);
  background:rgba(90,8,10,.30);
  color:#f2d7b6;padding:13px 15px;margin-bottom:16px;font-size:15px;
}

/* --------------------------- schede e riquadri ------------------------ */
.card{
  border:1px solid var(--line-soft);
  background:linear-gradient(135deg,rgba(98,22,17,.16),transparent 66%),linear-gradient(180deg,#17110c,#0c0907);
  box-shadow:inset 0 0 22px rgba(0,0,0,.55);
  padding:16px;min-height:100%;
}
.card h3,h3{
  margin:0 0 11px;font-family:"Cinzel",serif;font-weight:600;
  font-size:16px;letter-spacing:.05em;text-transform:uppercase;color:var(--gold-bright);
}
h4{margin:0 0 6px;font-family:"Cinzel",serif;font-weight:600;font-size:14px;letter-spacing:.03em;color:var(--gold-bright)}
.mini,.tree-note,.internal-note{font-size:13px;color:var(--muted);margin-top:5px;line-height:1.45}
.internal-note{margin:0 0 14px}
.meta{font-size:12px;color:var(--muted);margin-bottom:5px}

.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.kpi{
  border:1px solid var(--line-soft);
  background:linear-gradient(180deg,rgba(29,19,11,.95),rgba(9,8,6,.95));
  box-shadow:inset 0 0 18px rgba(0,0,0,.6);
  padding:14px;text-align:center;
}
.kpi .num{font-family:"Cinzel",serif;font-size:30px;font-weight:700;color:var(--gold-bright);line-height:1.1}
.kpi .label{font-family:"Cinzel",serif;font-size:11px;text-transform:uppercase;color:var(--muted);letter-spacing:.07em;margin-top:6px}

.pill,.name-chip{
  display:inline-block;border-radius:999px;padding:3px 10px;margin:2px;
  border:1px solid var(--line-soft);background:rgba(78,41,17,.34);
  color:var(--paper);font-size:12px;
}
.name-chip{cursor:help}
.hover-hint{cursor:help;text-decoration:underline dotted rgba(240,207,122,.45);text-underline-offset:3px}

.warn{
  border:1px solid rgba(193,18,31,.4);background:rgba(90,8,10,.26);
  color:#f0d3ae;padding:11px 14px;margin:10px 0;font-size:14px;
}

/* ------------------------------- moduli -------------------------------- */
label{
  display:block;font-family:"Cinzel",serif;font-weight:600;font-size:11px;
  color:var(--muted);margin-bottom:6px;text-transform:uppercase;letter-spacing:.08em;
}
input,select,textarea{
  width:100%;
  border:1px solid rgba(211,166,77,.30);
  background:var(--field);
  color:#ead6a3;
  padding:9px 11px;border-radius:2px;
  font-family:"EB Garamond",Georgia,serif;font-size:16px;
  box-shadow:inset 0 0 14px rgba(0,0,0,.6);
}
input:focus,select:focus,textarea:focus{
  outline:none;border-color:var(--gold-bright);
  box-shadow:0 0 0 2px rgba(211,166,77,.14),inset 0 0 14px rgba(0,0,0,.6);
}
select option{background:#12100c;color:#ead6a3}
textarea{min-height:92px;resize:vertical;line-height:1.45}
input[type=checkbox]{width:auto;transform:scale(1.15);accent-color:#8d0d18;box-shadow:none}
.field{margin-bottom:13px}
.readonly-calc{
  background:rgba(78,41,17,.34)!important;color:var(--gold-bright)!important;
  font-weight:700;text-align:center;
}
.output{
  width:100%;min-height:260px;background:#070605;color:#e6cf9b;
  border:1px solid var(--line-soft);font-family:Consolas,"Courier New",monospace;
  font-size:13px;white-space:pre-wrap;border-radius:0;
}

/* ------------------------------- tabelle ------------------------------- */
table{
  width:100%;border-collapse:collapse;
  border:1px solid var(--line-soft);
  background:rgba(8,7,5,.55);
}
th,td{border-bottom:1px solid rgba(211,166,77,.16);padding:9px;vertical-align:top;text-align:left}
th{
  background:linear-gradient(180deg,#3a0706,#1d0403);
  color:var(--gold-bright);
  font-family:"Cinzel",serif;font-size:11px;font-weight:600;
  text-transform:uppercase;letter-spacing:.07em;
}
td input,td select,td textarea{font-size:15px;padding:7px 8px}
td textarea{min-height:44px}
tr:last-child td{border-bottom:0}
.row-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:11px}
.resource-table td:nth-child(n+2),.resource-table th:nth-child(n+2){text-align:right}

/* --------------------------- albero genealogico ------------------------ */
.genealogy-board,.family-tree{
  border:1px solid var(--line-soft);
  background:linear-gradient(180deg,rgba(15,12,8,.9),rgba(7,6,5,.94));
  box-shadow:inset 0 0 40px rgba(0,0,0,.6);
  padding:16px;overflow:auto;
}
.genealogy-root{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.tree{display:flex;flex-direction:column;align-items:center;gap:12px;min-width:720px}
.tree-row{display:flex;gap:16px;justify-content:center;align-items:stretch;position:relative}
.connector{height:16px;border-left:2px solid rgba(211,166,77,.4)}

.root-person,.person,.dynasty-person,.branch-card{
  border:1px solid rgba(211,166,77,.30);
  background:linear-gradient(180deg,#17110c,#0c0907);
  box-shadow:inset 0 0 16px rgba(0,0,0,.55);
  padding:11px 12px;
}
.root-person,.person{text-align:center;min-width:180px}
.root-person strong,.person strong,.dynasty-person strong{
  display:block;font-family:"Cinzel",serif;font-weight:600;color:var(--gold-bright);font-size:15px;line-height:1.15;
}
.root-person span,.person span,.dynasty-person span{display:block;margin-top:4px;font-size:12px;color:var(--paper-soft);line-height:1.3}
.branch-card{min-height:116px}
.branch-card h4{margin:0 0 5px;font-size:13px;line-height:1.2;color:var(--gold-bright)}
.branch-grid{display:grid;grid-template-columns:repeat(4,minmax(190px,1fr));gap:10px;min-width:860px}

.dynasty-focus{
  border:1px solid var(--gold-dark);
  background:linear-gradient(135deg,rgba(98,22,17,.34),transparent 64%),linear-gradient(180deg,#1a130d,#0b0907);
  box-shadow:inset 0 0 30px rgba(0,0,0,.55);
  padding:14px;margin-bottom:14px;
}
.dynasty-focus h4{margin:0 0 10px;text-align:center;text-transform:uppercase;letter-spacing:.08em;font-size:13px}
.dynasty-couple{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.ruling-children{display:grid;grid-template-columns:1.3fr repeat(3,1fr);gap:8px}
.dynasty-person{min-height:80px;text-align:center;position:relative}
.dynasty-person.current-ruler{
  border:1px solid var(--gold-bright);
  background:linear-gradient(180deg,#3a0706,#170403);
  box-shadow:inset 0 0 0 1px rgba(240,207,122,.16),0 8px 20px rgba(0,0,0,.5);
}
.dynasty-person.current-ruler strong{font-size:17px}

.collateral{margin-top:14px;border:1px dashed rgba(211,166,77,.38);background:rgba(8,7,5,.5);padding:12px}
.collateral h4{margin:0 0 7px}
.name-cloud{display:flex;gap:5px;flex-wrap:wrap}
.desc-list{margin:0;padding-left:16px;color:var(--paper-soft);font-size:13px;line-height:1.4}
.desc-list li::marker{color:var(--gold-dark)}

.age-tag{display:block;margin-top:5px;font-size:11px;line-height:1.2;color:var(--muted);font-style:italic;letter-spacing:.01em}
.dynasty-person.current-ruler .age-tag,.heir-card .age-tag,.heir-child.promised .age-tag{font-weight:700;color:var(--accent)}

/* defunti: la carta si spegne, il nome resta leggibile */
.deceased,.deceased-card{
  background:linear-gradient(180deg,#141210,#0a0908)!important;
  border-color:rgba(150,140,125,.30)!important;
  box-shadow:inset 0 0 18px rgba(0,0,0,.7)!important;
}
.deceased strong,.dead-name,.is-dead{color:#b9b1a3!important}
.deceased-card .meta,.deceased-card .desc-list{color:#8d8578!important}
.death-date{display:block;margin-top:6px;color:#9a9184;font-size:11px;font-style:italic;letter-spacing:.02em}
.death-date::before{content:"\2020 ";font-weight:700;font-style:normal}

/* --------------------------- pannello fedeltà -------------------------- */
.fidelity-box{transition:background .25s,border-color .25s,color .25s}
.fidelity-box.fid-3{background:linear-gradient(180deg,#2c5b33,#16301c)!important;border-color:#6bbf6a!important;color:#e6f7e3!important}
.fidelity-box.fid-2{background:linear-gradient(180deg,#24492a,#122616)!important;border-color:#4d9a55!important;color:#dcf0da!important}
.fidelity-box.fid-1{background:linear-gradient(180deg,#1c3a22,#0e1d12)!important;border-color:#37703f!important;color:#d3e6d1!important}
.fidelity-box.fid-0{background:linear-gradient(180deg,#221d16,#0d0b09)!important;border-color:#6b6151!important;color:#e4dbc8!important}
.fidelity-box.fid--1{background:linear-gradient(180deg,#5a1013,#2b0507)!important;border-color:#96222a!important;color:#f6e0d8!important}
.fidelity-box.fid--2{background:linear-gradient(180deg,#7d0f16,#3a060a)!important;border-color:#bd2a32!important;color:#fdeae4!important}
.fidelity-box.fid--3{background:linear-gradient(180deg,#a80c17,#57070c)!important;border-color:#f0424c!important;color:#fff3ef!important}
.fidelity-box .num,.fidelity-box .label{color:inherit!important}
input.fidelity-input{font-weight:700;border-width:2px;text-align:center}

.faction-bonus-panel{margin:0 0 14px}
.faction-bonus-panel .card{border:1px solid var(--gold-dark);background:linear-gradient(135deg,rgba(98,22,17,.30),transparent 62%),linear-gradient(180deg,#1a130d,#0b0907)}
.gov-compact{display:grid;grid-template-columns:1fr;gap:10px;align-items:stretch;margin-top:16px}
.gov-effects{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}

/* ------------------------------- utilità ------------------------------- */
.hidden{display:none!important}
.view-public .private-area,.view-public .only-master{display:none!important}
body.view-public .private-col{display:none!important}
body.view-public tr.master-only-row{display:none!important}
.print-note{display:none}
footer{
  margin-top:32px;padding-top:20px;text-align:center;
  border-top:1px solid rgba(211,166,77,.22);
  color:#c8a95f;font-size:15px;font-style:italic;
}

/* ------------------------- larghezze delle tabelle --------------------- */
table[data-table="internalPolitics"]{table-layout:fixed;width:100%}
table[data-table="internalPolitics"] th,
table[data-table="internalPolitics"] td{vertical-align:top;white-space:normal;overflow-wrap:anywhere}
table[data-table="internalPolitics"] th:nth-child(1),
table[data-table="internalPolitics"] td:nth-child(1){width:20%;min-width:170px}
table[data-table="internalPolitics"] th:nth-child(2),
table[data-table="internalPolitics"] td:nth-child(2){width:22%;min-width:180px}
table[data-table="internalPolitics"] th:nth-child(3),
table[data-table="internalPolitics"] td:nth-child(3){width:20%;min-width:170px}
table[data-table="internalPolitics"] th:nth-child(4),
table[data-table="internalPolitics"] td:nth-child(4){width:auto;min-width:300px}
table[data-table="internalPolitics"] th:nth-child(5),
table[data-table="internalPolitics"] td:nth-child(5){width:46px;min-width:46px;text-align:center;padding-left:4px;padding-right:4px}
table[data-table="internalPolitics"] td:last-child button{width:34px;min-width:34px;padding:7px 0}
table[data-table="internalPolitics"] textarea,
table[data-table="internalPolitics"] input{width:100%;max-width:100%;white-space:pre-wrap;overflow-wrap:anywhere}
table[data-table="internalPolitics"] textarea.internal-name,
table[data-table="internalPolitics"] textarea.internal-area,
table[data-table="internalPolitics"] textarea.internal-leader{min-height:78px;line-height:1.25;resize:vertical}
table[data-table="internalPolitics"] textarea.internal-name,
table[data-table="internalPolitics"] textarea.internal-leader{font-weight:650}
table[data-table="internalPolitics"] textarea.relation-desc{min-height:124px;line-height:1.3;resize:vertical}

table[data-table="army"]{table-layout:fixed;width:100%}
table[data-table="army"] th,
table[data-table="army"] td{vertical-align:top;white-space:normal;overflow-wrap:anywhere}
table[data-table="army"] th:nth-child(1),table[data-table="army"] td:nth-child(1){width:9%;min-width:95px}
table[data-table="army"] th:nth-child(2),table[data-table="army"] td:nth-child(2){width:16%;min-width:160px}
table[data-table="army"] th:nth-child(3),table[data-table="army"] td:nth-child(3){width:5%;min-width:58px}
table[data-table="army"] th:nth-child(4),table[data-table="army"] td:nth-child(4){width:7%;min-width:76px}
table[data-table="army"] th:nth-child(5),table[data-table="army"] td:nth-child(5){width:8%;min-width:90px}
table[data-table="army"] th:nth-child(6),table[data-table="army"] td:nth-child(6){width:7%;min-width:78px}
table[data-table="army"] th:nth-child(7),table[data-table="army"] td:nth-child(7){width:10%;min-width:105px}
table[data-table="army"] th:nth-child(8),table[data-table="army"] td:nth-child(8){width:7%;min-width:78px}
table[data-table="army"] th:nth-child(9),table[data-table="army"] td:nth-child(9){width:27%;min-width:260px}
table[data-table="army"] th:nth-child(10),table[data-table="army"] td:nth-child(10){width:4%;min-width:44px;text-align:center;padding-left:4px;padding-right:4px}
table[data-table="army"] select.unitType{min-width:0;width:100%}
table[data-table="army"] input.unitQty,
table[data-table="army"] input.mercenaryCost,
table[data-table="army"] input.unitTurns,
table[data-table="army"] input.unitAutoMaint{max-width:100%;text-align:center}
table[data-table="army"] td:nth-child(9) textarea{min-height:104px;line-height:1.35;resize:vertical}
table[data-table="army"] td:last-child button{width:34px;min-width:34px;padding:7px 0}

table[data-table="navy"] th:nth-child(2),table[data-table="navy"] td:nth-child(2){min-width:210px;width:24%}
table[data-table="navy"] th:nth-child(3),table[data-table="navy"] td:nth-child(3){min-width:70px;width:80px}
table[data-table="navy"] select.shipType{min-width:205px}
table[data-table="navy"] input.shipQty{max-width:80px}

table[data-table="buildings"] th:nth-child(2),table[data-table="buildings"] td:nth-child(2){min-width:230px}
table[data-table="buildings"] th:nth-child(4),table[data-table="buildings"] td:nth-child(4){min-width:160px}
table[data-table="buildings"] th:nth-child(5),table[data-table="buildings"] td:nth-child(5){min-width:360px}
table[data-table="buildings"] th:nth-child(6),table[data-table="buildings"] td:nth-child(6),
table[data-table="buildings"] th:nth-child(7),table[data-table="buildings"] td:nth-child(7){min-width:70px}
table[data-table="buildings"] textarea.buildingEffects{min-height:74px}

/* ------------------------------ responsive ----------------------------- */
@media (max-width:1080px){
  .topbar{padding-left:104px;padding-right:14px}
  .main-nav{justify-content:flex-start;overflow-x:auto;gap:28px;scrollbar-width:none}
  .main-nav::-webkit-scrollbar{display:none}
}
@media (max-width:900px){
  .hero-inner{grid-template-columns:1fr;text-align:center;padding:24px 20px}
  .seal{margin:0 auto}
  .badges{justify-content:center}
  .grid.two,.grid.three,.split,.kpi-grid,.gov-compact{grid-template-columns:1fr}
  .branch-grid{grid-template-columns:1fr;min-width:0}
  .ruling-children{grid-template-columns:1fr}
  .tree{min-width:0}
  .toolbar{position:relative}
  .page{padding:16px 10px 40px}
  table{font-size:14px;display:block;overflow:auto}
  .section-body{padding:18px 14px}
  details.section::before,details.section::after{display:none}
}
@media (max-width:680px){
  .topbar{min-height:66px;padding-left:90px}
  .gonfalone{left:12px;width:64px;height:90px;font-size:25px}
  .main-nav a{padding:24px 0 20px;font-size:11px}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* -------------------------------- stampa ------------------------------- */
@media print{
  body{background:#fff;color:#111}
  body::after{display:none}
  .toolbar,.no-print,.private-area,.topbar{display:none!important}
  .page{max-width:none;padding:0}
  details.section{break-inside:avoid;box-shadow:none;border-color:#999;background:#fff;color:#111}
  details.section>summary{background:#eee;color:#111}
  details.section::before,details.section::after{display:none}
  .card,.kpi,.branch-card,.dynasty-person,.root-person,.person{background:#fff!important;color:#111!important;border-color:#bbb!important;box-shadow:none!important}
  .card h3,h1,h4,.kpi .num,.root-person strong,.dynasty-person strong,.branch-card h4{color:#111!important}
  input,select,textarea{background:#fff!important;color:#111!important;box-shadow:none!important}
  th{background:#e6e6e6!important;color:#111!important}
  .hero{box-shadow:none;background:#fff}
  .hero-inner{padding:14px}
  .print-note{display:block}
}

/* ============================================================
   SCHEDE DI PRESENTAZIONE — storia, albero, fazioni interne
   ============================================================ */

/* ------------------------ storia della casata ------------------------- */
.storia{max-width:76ch;margin:0 auto;font-size:18px;line-height:1.64;color:var(--paper)}
.storia p{margin:0 0 1.05em}
.storia p:last-child{margin-bottom:0}
.storia p:first-of-type::first-letter{
  float:left;
  font-family:"Cinzel",serif;font-weight:700;
  font-size:4.1em;line-height:.8;
  margin:.05em .14em 0 0;
  color:var(--gold-bright);
  text-shadow:0 4px 14px rgba(0,0,0,.8);
}
.storia strong{color:var(--gold-bright);font-weight:600}
.storia em{color:#e9d3a0}

.motto{
  max-width:76ch;margin:0 auto 22px;padding:14px 20px;
  border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);
  font-family:"Cinzel",serif;font-size:15px;letter-spacing:.06em;
  text-align:center;color:var(--gold-bright);font-style:italic;
}

.claim{
  max-width:76ch;margin:26px auto 0;padding:16px 20px;
  border:1px solid rgba(193,18,31,.42);border-left:3px solid var(--gold);
  background:linear-gradient(135deg,rgba(98,22,17,.26),transparent 70%),rgba(8,7,5,.5);
}
.claim h4{margin:0 0 8px;font-size:12px;letter-spacing:.1em;text-transform:uppercase}
.claim p{margin:0;font-size:16px;line-height:1.55;color:var(--paper-soft)}

/* --------------------------- fazioni interne -------------------------- */
.factions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.faction{
  border:1px solid var(--line-soft);
  background:linear-gradient(135deg,rgba(98,22,17,.16),transparent 66%),linear-gradient(180deg,#17110c,#0c0907);
  box-shadow:inset 0 0 22px rgba(0,0,0,.55);
  padding:18px;
}
.faction h4{margin:0 0 3px;font-size:16px;letter-spacing:.03em}
.faction .where{
  display:block;margin-bottom:10px;
  font-family:"Cinzel",serif;font-size:11px;letter-spacing:.09em;
  text-transform:uppercase;color:var(--muted);
}
.faction .lead{display:block;margin-bottom:9px;font-size:15px;color:#e9d3a0}
.faction .lead::before{content:"\2014\00a0";color:var(--gold-dark)}
.faction p{margin:0;font-size:15px;line-height:1.5;color:var(--paper-soft)}

@media (max-width:900px){
  .factions{grid-template-columns:1fr}
  .storia{font-size:17px}
  .storia p:first-of-type::first-letter{font-size:3.4em}
}

/* ---------- vocabolario condiviso per alberi e ordinamenti ------------- */
.tree-columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px;align-items:start}
.tree-group{
  border:1px solid var(--gold-dark);
  background:linear-gradient(135deg,rgba(98,22,17,.30),transparent 64%),linear-gradient(180deg,#1a130d,#0b0907);
  box-shadow:inset 0 0 30px rgba(0,0,0,.55);
  padding:14px;margin-bottom:14px;
}
.tree-group>h4:first-child,.tree-group-title{
  margin:0 0 10px;text-align:center;text-transform:uppercase;
  letter-spacing:.08em;font-size:13px;font-family:"Cinzel",serif;font-weight:600;color:var(--gold-bright);
}
.tree-subgroup{margin-top:12px;border:1px dashed rgba(211,166,77,.38);background:rgba(8,7,5,.5);padding:12px}
.tree-subgroup h5{
  margin:0 0 8px;font-family:"Cinzel",serif;font-weight:600;font-size:12px;
  letter-spacing:.07em;text-transform:uppercase;color:var(--gold-bright);
}
.people-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px}
.role{
  display:block;margin-top:4px;
  font-family:"Cinzel",serif;font-size:10px;letter-spacing:.08em;
  text-transform:uppercase;color:var(--gold);
}
.promised{border-color:rgba(240,207,122,.55)}
.info-table{border:0;background:none}
.info-table td{border-bottom:1px solid rgba(211,166,77,.16);padding:8px 10px;font-size:15px;color:var(--paper-soft)}
.info-table td:first-child{
  width:32%;font-family:"Cinzel",serif;font-size:11px;letter-spacing:.07em;
  text-transform:uppercase;color:var(--muted);vertical-align:middle;
}
.info-table tr:last-child td{border-bottom:0}

/* coppie affiancate dentro una scheda persona (rami Malaspina) */
.couple-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px}
.couple-grid>div{
  border:1px solid rgba(211,166,77,.22);
  background:rgba(8,7,5,.45);
  padding:9px 10px;text-align:center;
}
.couple-grid>div>strong{
  display:block;font-family:"Cinzel",serif;font-weight:600;
  color:var(--gold-bright);font-size:14px;line-height:1.15;
}
.couple-grid>div>span{display:block;margin-top:4px;font-size:12px;color:var(--paper-soft);line-height:1.3}
.dynasty-person:has(>.couple-grid){padding:9px;background:none;border-style:dashed}

/* nota araldica a due colonne (Malaspina: Spino Fiorito e Spino Secco) */
.heraldry{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;
  margin-bottom:14px;padding:14px;
  border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);
  font-size:14px;line-height:1.5;color:var(--paper-soft);
}
.heraldry strong{font-family:"Cinzel",serif;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--gold-bright)}
