*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root {
  --parchment:#f4ead0; --parchment-dark:#e8d8a8; --parchment-deep:#d9c48a;
  --ink:#2b1d0e; --ink-muted:#5c3d1e; --ink-faint:#8a6340;
  --red-wax:#8b2020; --gold:#b8860b; --gold-light:#d4a820; --gold-pale:#f0d080;
  --green-moss:#3a5228; --green-moss-light:#4e6e38;
  --shadow:rgba(43,29,14,0.18); --shadow-deep:rgba(43,29,14,0.35);
}
body {
  font-family:'Crimson Text',Georgia,serif;
  background-color:#1a1208;
  background-image:radial-gradient(ellipse at 20% 20%,rgba(90,60,20,0.4) 0%,transparent 60%),
    radial-gradient(ellipse at 80% 80%,rgba(60,40,10,0.4) 0%,transparent 60%);
  min-height:100vh; color:var(--ink);
}
.page-wrap { max-width:980px; margin:0 auto; padding:2rem 1.5rem 4rem; }

/* HEADER */
.site-header { text-align:center; margin-bottom:2.5rem; }
.header-banner {
  background:linear-gradient(180deg,#2a1a08 0%,#1a0e04 100%);
  border:2px solid var(--gold); border-radius:4px;
  padding:2rem 2rem 1.5rem; position:relative; overflow:hidden;
}
.header-banner::before {
  content:''; position:absolute; inset:6px;
  border:1px solid rgba(184,134,11,0.3); border-radius:2px; pointer-events:none;
}
.corner-ornament { position:absolute; width:36px; height:36px; opacity:0.7; }
.corner-ornament.tl { top:8px; left:8px; }
.corner-ornament.tr { top:8px; right:8px; transform:scaleX(-1); }
.corner-ornament.bl { bottom:8px; left:8px; transform:scaleY(-1); }
.corner-ornament.br { bottom:8px; right:8px; transform:scale(-1); }
.site-title {
  font-family:'Cinzel',serif; font-size:2.8rem; font-weight:700;
  color:var(--gold-light); letter-spacing:0.12em;
  text-shadow:0 0 30px rgba(212,168,32,0.4),2px 2px 0 rgba(0,0,0,0.8);
  line-height:1.1; margin-bottom:0.3rem;
}
.site-subtitle {
  font-family:'Crimson Text',serif; font-style:italic; font-size:1.15rem;
  color:var(--parchment-deep); letter-spacing:0.06em; opacity:0.85;
}
.divider-ornament {
  display:flex; align-items:center; gap:.75rem; margin:.8rem 0 0; justify-content:center;
}
.divider-ornament::before,.divider-ornament::after {
  content:''; flex:1; max-width:120px; height:1px;
  background:linear-gradient(90deg,transparent,var(--gold),transparent);
}
.divider-gem { color:var(--gold); font-size:1rem; }

/* TREASURY */
.treasury-panel {
  background:linear-gradient(145deg,#f7eecc,#ecddb0);
  border:2px solid var(--gold); border-radius:4px;
  padding:1.25rem 1.5rem; margin-bottom:1.75rem; position:relative;
  box-shadow:0 4px 20px var(--shadow-deep),inset 0 1px 0 rgba(255,255,255,0.4);
}
.treasury-panel::before {
  content:'Tesoreria di New Dawn';
  position:absolute; top:-11px; left:50%; transform:translateX(-50%);
  background:var(--gold); color:var(--ink);
  font-family:'Cinzel',serif; font-size:.7rem; font-weight:600;
  letter-spacing:.15em; padding:1px 14px; border-radius:2px; white-space:nowrap;
}
.stats-row { display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; }
.stat-box { text-align:center; padding:.5rem; }
.stat-box+.stat-box { border-left:1px solid var(--parchment-deep); }
.stat-label { font-family:'Cinzel',serif; font-size:.65rem; letter-spacing:.12em; color:var(--ink-muted); text-transform:uppercase; margin-bottom:4px; }
.stat-value { font-family:'Cinzel',serif; font-size:1.25rem; font-weight:600; color:var(--ink); }
.stat-value.warn { color:var(--red-wax); }
.stat-value.good { color:var(--green-moss); }
.stat-value.gold-col { color:var(--gold); }
.stat-sub { font-size:.82rem; color:var(--green-moss); font-style:italic; margin-top:2px; }

/* FILTERS */
.filter-row { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:1.5rem; align-items:center; }
.filter-label { font-family:'Cinzel',serif; font-size:.7rem; letter-spacing:.1em; color:var(--parchment-deep); text-transform:uppercase; margin-right:4px; }
.filter-btn {
  font-family:'Cinzel',serif; font-size:.72rem; letter-spacing:.08em;
  padding:5px 14px; border-radius:2px; border:1px solid rgba(184,134,11,0.5);
  background:rgba(30,15,5,0.6); color:var(--parchment-dark); cursor:pointer; transition:all .18s;
}
.filter-btn:hover { border-color:var(--gold); background:rgba(184,134,11,0.15); color:var(--gold-pale); }
.filter-btn.active { background:var(--gold); color:var(--ink); border-color:var(--gold); font-weight:600; }

/* SECTION */
.section-heading {
  font-family:'Cinzel',serif; font-size:.8rem; letter-spacing:.2em; color:var(--gold);
  text-transform:uppercase; margin:1.75rem 0 .75rem;
  display:flex; align-items:center; gap:.75rem;
}
.section-heading::after { content:''; flex:1; height:1px; background:linear-gradient(90deg,rgba(184,134,11,0.5),transparent); }

/* GRID */
.buildings-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:12px; }

.building-card {
  background:linear-gradient(160deg,#f2e5c0,#e8d49a);
  border:1.5px solid var(--parchment-deep); border-radius:3px; padding:.9rem 1rem;
  cursor:pointer; transition:all .2s; position:relative;
  box-shadow:0 2px 8px var(--shadow),inset 0 1px 0 rgba(255,255,255,0.5);
}
.building-card:hover { border-color:var(--gold); transform:translateY(-2px); box-shadow:0 6px 18px var(--shadow-deep); }
.building-card.selected {
  background:linear-gradient(160deg,#2a1a08,#1e1206);
  border:2px solid var(--gold);
  box-shadow:0 0 0 3px rgba(184,134,11,0.2),0 6px 20px var(--shadow-deep);
}
.building-card.selected .b-name { color:var(--gold-light); }
.building-card.selected .b-cost { color:var(--gold-pale); }
.building-card.selected .b-time { color:var(--parchment-dark); }
.building-card.selected .b-req { background:rgba(184,134,11,0.12); color:var(--parchment-dark); border-color:rgba(184,134,11,0.35); }
.building-card.selected .phase-city { background:rgba(80,60,160,0.3); color:#c0b0ff; }
.building-card.selected .phase-village { background:rgba(40,80,30,0.4); color:#a0d080; }
.building-card.selected .income-badge { color:#80d090; }
.building-card.selected .sel-mark { display:flex; }

.sel-mark {
  display:none; position:absolute; top:8px; right:8px;
  width:20px; height:20px; background:var(--gold); border-radius:50%;
  align-items:center; justify-content:center;
}
.sel-mark::after { content:'✓'; font-size:11px; color:var(--ink); font-weight:700; }

.b-name { font-family:'Cinzel',serif; font-size:.82rem; font-weight:600; color:var(--ink); margin-bottom:6px; line-height:1.3; padding-right:22px; }
.b-row { display:flex; justify-content:space-between; align-items:center; margin-bottom:5px; }
.b-cost { font-family:'Crimson Text',serif; font-size:.95rem; font-weight:600; color:var(--ink-muted); }
.b-time { font-family:'Crimson Text',serif; font-size:.85rem; font-style:italic; color:var(--ink-faint); }
.b-badges { display:flex; gap:5px; flex-wrap:wrap; align-items:center; margin-bottom:5px; }
.phase-city,.phase-village { font-family:'Cinzel',serif; font-size:.6rem; letter-spacing:.1em; padding:2px 7px; border-radius:2px; font-weight:600; }
.phase-city { background:rgba(80,60,160,0.15); color:#3a2d80; border:1px solid rgba(80,60,160,0.3); }
.phase-village { background:rgba(40,80,30,0.15); color:var(--green-moss); border:1px solid rgba(40,80,30,0.3); }
.income-badge { font-family:'Crimson Text',serif; font-size:.8rem; color:var(--green-moss-light); font-style:italic; }
.b-req { font-family:'Crimson Text',serif; font-size:.78rem; font-style:italic; color:var(--ink-muted); background:rgba(43,29,14,0.08); border:1px solid rgba(43,29,14,0.12); border-radius:2px; padding:2px 7px; margin-top:4px; }
.b-req::before { content:'⚙ '; font-style:normal; font-size:.7rem; }
.empty-msg { grid-column:1/-1; text-align:center; padding:3rem; font-style:italic; color:var(--parchment-deep); opacity:.7; }

/* BUILT BUILDINGS */
.building-card.built {
  background:linear-gradient(160deg,#2a2016,#1e1a0e);
  border:1.5px solid rgba(184,134,11,0.35);
  cursor:default; opacity:.85;
}
.building-card.built:hover { transform:none; box-shadow:0 2px 8px var(--shadow); border-color:rgba(184,134,11,0.45); }
.building-card.built .b-name { color:var(--parchment-deep); }
.building-card.built .b-cost { color:var(--ink-faint); }
.building-card.built .b-time { color:rgba(138,99,64,0.6); }
.built-stamp {
  position:absolute; top:8px; right:8px;
  font-family:'Cinzel',serif; font-size:.55rem; letter-spacing:.08em;
  padding:2px 7px; border-radius:2px;
  background:rgba(58,82,40,0.35); color:#80a060;
  border:1px solid rgba(58,82,40,0.5);
}
.built-dates {
  font-family:'Crimson Text',serif; font-size:.78rem; font-style:italic;
  color:rgba(184,134,11,0.55); margin-top:4px;
}
/* calendar: historical (already built) */
.cal-day.hist-start { background:rgba(80,60,20,0.45); color:#c8a040; font-weight:600; }
.cal-day.hist-end   { background:rgba(60,40,10,0.45); color:#a07830; font-weight:600; }
.cal-day.hist-mid   { background:rgba(60,50,20,0.18); }
.cal-event-entry.hist .cal-event-date { color:rgba(184,134,11,0.65); }
.cal-event-entry.hist .cal-event-name { color:var(--ink-faint); }

/* SECTION COLLAPSIBLE */
.section-toggle {
  font-family:'Cinzel',serif; font-size:.8rem; letter-spacing:.2em; color:var(--gold);
  text-transform:uppercase; margin:1.75rem 0 0;
  display:flex; align-items:center; gap:.75rem;
  cursor:pointer; user-select:none; background:none; border:none; width:100%; text-align:left;
  padding:0; transition:opacity .15s;
}
.section-toggle:hover { opacity:.8; }
.section-toggle::after { content:''; flex:1; height:1px; background:linear-gradient(90deg,rgba(184,134,11,0.5),transparent); }
.section-toggle .toggle-arrow { font-size:.7rem; transition:transform .2s; display:inline-block; margin-left:2px; }
.section-toggle.open .toggle-arrow { transform:rotate(90deg); }
.section-body { overflow:hidden; max-height:0; transition:max-height .35s ease; }
.section-body.open { max-height:9999px; }
.section-body .buildings-grid { margin-top:.75rem; margin-bottom:.5rem; }

/* LOCKED CARDS */
.building-card.locked {
  opacity:.5; cursor:not-allowed;
  filter:saturate(0.3);
}
.building-card.locked:hover { transform:none; box-shadow:0 2px 8px var(--shadow); border-color:var(--parchment-deep); }
.b-lock {
  font-family:'Crimson Text',serif; font-size:.76rem; font-style:italic;
  color:var(--red-wax); background:rgba(139,32,32,0.08);
  border:1px solid rgba(139,32,32,0.2); border-radius:2px;
  padding:2px 7px; margin-top:5px;
}
.b-lock::before { content:'🔒 '; font-style:normal; font-size:.7rem; }

/* HEADER CAL BUTTON */
.header-cal-btn {
  font-family:'Cinzel',serif; font-size:.72rem; letter-spacing:.1em;
  padding:6px 16px; border-radius:2px; border:1px solid rgba(184,134,11,0.7);
  background:rgba(184,134,11,0.12); color:var(--gold-pale); cursor:pointer;
  transition:all .2s; margin-top:.75rem; display:inline-block;
}
.header-cal-btn:hover { border-color:var(--gold); background:rgba(184,134,11,0.22); color:var(--gold-light); }
.plan-panel {
  background:linear-gradient(145deg,#1e1008,#150c04);
  border:2px solid var(--gold); border-radius:4px;
  padding:1.25rem 1.5rem; margin-top:2rem;
  box-shadow:0 -2px 20px rgba(0,0,0,0.4),0 4px 20px var(--shadow-deep);
}
.plan-top { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; flex-wrap:wrap; }
.plan-summary { flex:1; }
.plan-title { font-family:'Cinzel',serif; font-size:.75rem; letter-spacing:.12em; color:var(--gold); text-transform:uppercase; margin-bottom:4px; }
.plan-detail { font-family:'Crimson Text',serif; font-style:italic; color:var(--parchment-dark); font-size:.95rem; }
.plan-income { font-family:'Crimson Text',serif; font-style:italic; color:#80c890; font-size:.9rem; margin-top:2px; }
.plan-time { font-family:'Crimson Text',serif; font-style:italic; color:#c8b870; font-size:.9rem; margin-top:2px; }
.plan-actions { display:flex; gap:10px; flex-shrink:0; align-items:center; flex-wrap:wrap; }
.plan-btn {
  font-family:'Cinzel',serif; font-size:.78rem; letter-spacing:.1em;
  padding:10px 20px; border-radius:3px; border:1px solid var(--gold);
  background:linear-gradient(160deg,var(--gold),#9a7008);
  color:var(--ink); cursor:pointer; font-weight:600;
  transition:all .2s; white-space:nowrap; box-shadow:0 2px 8px rgba(0,0,0,0.4);
}
.plan-btn:hover { background:linear-gradient(160deg,var(--gold-light),var(--gold)); transform:translateY(-1px); box-shadow:0 4px 14px rgba(184,134,11,0.4); }
.plan-btn:active { transform:translateY(0); }
.cal-btn {
  font-family:'Cinzel',serif; font-size:.78rem; letter-spacing:.1em;
  padding:10px 20px; border-radius:3px; border:1px solid rgba(184,134,11,0.6);
  background:transparent; color:var(--gold-pale); cursor:pointer; font-weight:600;
  transition:all .2s; white-space:nowrap;
}
.cal-btn:hover { border-color:var(--gold); background:rgba(184,134,11,0.12); color:var(--gold-light); }

/* CODA */
.queue-section { margin-top:1rem; border-top:1px solid rgba(184,134,11,0.25); padding-top:.9rem; display:none; }
.queue-section.visible { display:block; }
.queue-title { font-family:'Cinzel',serif; font-size:.68rem; letter-spacing:.15em; color:rgba(184,134,11,0.7); text-transform:uppercase; margin-bottom:.5rem; }
.queue-list { display:flex; flex-direction:column; gap:4px; }
.queue-item {
  display:flex; align-items:center; gap:10px;
  font-family:'Crimson Text',serif; font-size:.88rem;
  color:var(--parchment-dark); padding:3px 6px; border-radius:2px;
  background:rgba(255,255,255,0.03);
}
.queue-item .qi-num { font-family:'Cinzel',serif; font-size:.65rem; color:var(--gold); min-width:18px; }
.queue-item .qi-name { flex:1; }
.queue-item .qi-dates { font-style:italic; color:rgba(212,168,32,0.65); font-size:.82rem; white-space:nowrap; }
.queue-item .qi-drag { cursor:grab; color:rgba(184,134,11,0.4); padding:0 2px; user-select:none; }
.queue-item.dragging { opacity:.4; }
.queue-item.drag-over { border-top:2px solid var(--gold); }
.queue-item.drag-blocked { border-top:2px solid var(--red-wax); background:rgba(139,32,32,0.08); }

/* MODAL OVERLAY */
.modal-overlay {
  display:none; position:fixed; inset:0;
  background:rgba(10,6,2,0.85); z-index:1000;
  align-items:center; justify-content:center;
  backdrop-filter:blur(2px);
}
.modal-overlay.open { display:flex; }

/* CALENDAR MODAL */
.cal-modal {
  background:linear-gradient(145deg,#f7eecc,#e8d9a5);
  border:2px solid var(--gold); border-radius:4px;
  width:min(820px,95vw); max-height:90vh;
  overflow-y:auto; position:relative;
  box-shadow:0 20px 60px rgba(0,0,0,0.7);
}
.cal-modal-header {
  background:linear-gradient(180deg,#2a1a08,#1a0e04);
  border-bottom:2px solid var(--gold);
  padding:1rem 1.5rem; display:flex; align-items:center; justify-content:space-between;
  position:sticky; top:0; z-index:10;
}
.cal-modal-title { font-family:'Cinzel',serif; font-size:1.1rem; font-weight:600; color:var(--gold-light); letter-spacing:.1em; }
.cal-modal-subtitle { font-family:'Crimson Text',serif; font-style:italic; color:var(--parchment-deep); font-size:.9rem; }
.cal-close {
  font-family:'Cinzel',serif; font-size:1.2rem; color:var(--gold); background:none;
  border:none; cursor:pointer; padding:4px 10px; border-radius:2px; line-height:1;
  transition:background .15s;
}
.cal-close:hover { background:rgba(184,134,11,0.2); }

.cal-body { padding:1.25rem 1.5rem 1.5rem; }

/* year nav */
.cal-year-nav { display:flex; align-items:center; justify-content:center; gap:1rem; margin-bottom:1.25rem; }
.cal-year-btn { font-family:'Cinzel',serif; font-size:.9rem; padding:4px 14px; border-radius:2px; border:1px solid rgba(43,29,14,0.3); background:rgba(43,29,14,0.06); color:var(--ink-muted); cursor:pointer; transition:all .15s; }
.cal-year-btn:hover { border-color:var(--gold); color:var(--gold); }
.cal-year-label { font-family:'Cinzel',serif; font-size:1rem; font-weight:600; color:var(--ink); }

/* months grid */
.cal-months { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
@media(max-width:600px){ .cal-months { grid-template-columns:repeat(2,1fr); } }

.cal-month { border:1px solid rgba(43,29,14,0.2); border-radius:3px; overflow:hidden; }
.cal-month-header {
  background:linear-gradient(135deg,#2a1a08,#1a0e04);
  color:var(--gold-light); font-family:'Cinzel',serif; font-size:.72rem;
  letter-spacing:.12em; text-transform:uppercase; text-align:center;
  padding:5px 4px;
}
.cal-month-header .season-tag { font-size:.58rem; color:var(--parchment-deep); display:block; font-family:'Crimson Text',serif; font-style:italic; letter-spacing:.05em; }
.cal-days { display:grid; grid-template-columns:repeat(6,1fr); }
.cal-day {
  aspect-ratio:1; display:flex; align-items:center; justify-content:center;
  font-family:'Crimson Text',serif; font-size:.82rem; color:var(--ink-muted);
  border:0.5px solid rgba(43,29,14,0.08); cursor:default; position:relative;
  transition:background .1s;
}
.cal-day.today { background:#d4a82022; color:var(--gold); font-weight:600; }
.cal-day.today::after { content:''; position:absolute; bottom:2px; left:50%; transform:translateX(-50%); width:4px; height:4px; background:var(--gold); border-radius:50%; }
.cal-day.event { background:#8b202018; }
.cal-day.event-start { background:#3a522820; font-weight:600; color:var(--green-moss); }
.cal-day.event-end { background:#5c1a1a20; font-weight:600; color:var(--red-wax); }
.cal-day.event-mid { background:rgba(58,82,40,0.08); }
.cal-day.foundation { background:rgba(184,134,11,0.18); color:var(--gold); font-weight:600; }

/* legend */
.cal-legend { display:flex; gap:1.25rem; flex-wrap:wrap; margin-bottom:1rem; font-family:'Crimson Text',serif; font-size:.85rem; color:var(--ink-muted); }
.legend-item { display:flex; align-items:center; gap:5px; }
.legend-dot { width:10px; height:10px; border-radius:2px; flex-shrink:0; }

/* event list */
.cal-event-list { margin-top:1.25rem; border-top:1px solid rgba(43,29,14,0.2); padding-top:1rem; }
.cal-event-list-title { font-family:'Cinzel',serif; font-size:.7rem; letter-spacing:.15em; color:var(--ink-muted); text-transform:uppercase; margin-bottom:.6rem; }
.cal-event-entry { display:flex; gap:10px; align-items:baseline; padding:4px 0; border-bottom:.5px solid rgba(43,29,14,0.1); }
.cal-event-date { font-family:'Cinzel',serif; font-size:.7rem; color:var(--gold); min-width:140px; }
.cal-event-name { font-family:'Crimson Text',serif; font-size:.92rem; color:var(--ink-muted); font-style:italic; }
.cal-event-dur { font-family:'Crimson Text',serif; font-size:.8rem; color:var(--ink-faint); }

/* DAY TOOLTIP */
.cal-day { cursor:default; }
.cal-day.has-events { cursor:pointer; }
.cal-day.has-events::before { content:''; position:absolute; top:2px; right:2px; width:4px; height:4px; background:var(--gold); border-radius:50%; opacity:.7; }
.day-tooltip {
  display:none; position:fixed; z-index:2000;
  background:linear-gradient(145deg,#2a1a08,#1a0e04);
  border:1px solid var(--gold); border-radius:3px;
  padding:.5rem .75rem; max-width:240px;
  font-family:'Crimson Text',serif; font-size:.85rem; color:var(--parchment-dark);
  box-shadow:0 4px 16px rgba(0,0,0,0.6); pointer-events:none;
  line-height:1.4;
}
.day-tooltip.visible { display:block; }
.day-tooltip-date { font-family:'Cinzel',serif; font-size:.65rem; letter-spacing:.1em; color:var(--gold); margin-bottom:4px; }
.day-tooltip-item { padding:1px 0; }
.day-tooltip-item + .day-tooltip-item { border-top:.5px solid rgba(184,134,11,0.2); margin-top:3px; padding-top:3px; }

/* COLLAPSIBLE EVENT LIST */
.cal-event-toggle {
  display:flex; align-items:center; gap:.75rem; cursor:pointer;
  font-family:'Cinzel',serif; font-size:.7rem; letter-spacing:.15em;
  color:var(--ink-muted); text-transform:uppercase; margin-bottom:0;
  background:none; border:none; width:100%; text-align:left; padding:0;
  user-select:none;
}
.cal-event-toggle .ev-arrow { font-size:.65rem; transition:transform .2s; display:inline-block; margin-left:4px; }
.cal-event-toggle.open .ev-arrow { transform:rotate(90deg); }
.cal-event-body { overflow:hidden; max-height:0; transition:max-height .3s ease; }
.cal-event-body.open { max-height:9999px; }

/* DIARY MODAL */
.diary-modal {
  background:linear-gradient(160deg,#3d2810,#2a1a08);
  border:2px solid var(--gold); border-radius:4px;
  width:min(740px,95vw); height:82vh;
  display:flex; flex-direction:column;
  box-shadow:0 20px 60px rgba(0,0,0,0.8);
  background-image:
    repeating-linear-gradient(45deg,rgba(0,0,0,0.03) 0,rgba(0,0,0,0.03) 2px,transparent 2px,transparent 8px),
    repeating-linear-gradient(-45deg,rgba(0,0,0,0.03) 0,rgba(0,0,0,0.03) 2px,transparent 2px,transparent 8px),
    linear-gradient(160deg,#3d2810,#2a1a08);
}
.diary-modal-header {
  background:linear-gradient(180deg,rgba(0,0,0,0.4),rgba(0,0,0,0.2));
  border-bottom:2px solid var(--gold);
  padding:1rem 1.5rem; display:flex; align-items:center; justify-content:space-between;
  flex-shrink:0; backdrop-filter:blur(4px);
}
.diary-modal-title { font-family:'Cinzel',serif; font-size:1.1rem; font-weight:700; color:var(--gold-light); letter-spacing:.12em; }
.diary-modal-subtitle { font-family:'Crimson Text',serif; font-style:italic; color:var(--parchment-deep); font-size:.85rem; }
.diary-add-btn {
  font-family:'Cinzel',serif; font-size:.7rem; letter-spacing:.1em;
  padding:6px 14px; border-radius:2px; border:1px solid var(--gold);
  background:linear-gradient(160deg,var(--gold),#9a7008);
  color:var(--ink); cursor:pointer; font-weight:600; transition:all .18s; white-space:nowrap;
}
.diary-add-btn:hover { background:linear-gradient(160deg,var(--gold-light),var(--gold)); }

/* filter bar */
.diary-filter-bar {
  display:flex; align-items:center; gap:8px; flex-wrap:wrap;
  padding:.6rem 1.5rem; border-bottom:1px solid rgba(184,134,11,0.18);
  flex-shrink:0; background:rgba(0,0,0,0.15);
}
.diary-filter-label { font-family:'Cinzel',serif; font-size:.6rem; letter-spacing:.1em; color:rgba(184,134,11,0.55); text-transform:uppercase; flex-shrink:0; }
.diary-year-chips { display:flex; gap:5px; flex-wrap:wrap; flex:1; }
.diary-chip {
  font-family:'Cinzel',serif; font-size:.62rem; letter-spacing:.07em;
  padding:2px 10px; border-radius:20px; border:1px solid rgba(184,134,11,0.3);
  background:rgba(30,15,5,0.5); color:var(--parchment-deep); cursor:pointer; transition:all .14s;
}
.diary-chip:hover { border-color:var(--gold); color:var(--gold-pale); }
.diary-chip.active { background:var(--gold); color:var(--ink); border-color:var(--gold); font-weight:600; }
.diary-filter-clear { font-family:'Cinzel',serif; font-size:.58rem; letter-spacing:.07em; padding:2px 9px; border-radius:20px; border:1px solid rgba(139,32,32,0.45); background:rgba(139,32,32,0.08); color:rgba(210,90,90,0.8); cursor:pointer; transition:all .14s; flex-shrink:0; }
.diary-filter-clear:hover { background:rgba(139,32,32,0.18); color:#e08080; }

/* scrollable entry area */
.diary-body { flex:1; overflow-y:auto; padding:1.1rem 1.5rem; }
.diary-entries-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(255px,1fr)); gap:10px; align-content:start; }
.diary-entry {
  background:rgba(244,234,208,0.05); border-left:3px solid rgba(184,134,11,0.6);
  padding:.7rem .9rem; border-radius:0 3px 3px 0; position:relative;
  transition:background .14s;
}
.diary-entry:hover { background:rgba(244,234,208,0.09); border-left-color:var(--gold); }
.diary-entry-date { font-family:'Cinzel',serif; font-size:.6rem; letter-spacing:.12em; color:var(--gold); margin-bottom:.28rem; }
.diary-entry-title { font-family:'Cinzel',serif; font-size:.78rem; font-weight:600; color:var(--parchment-dark); line-height:1.35; padding-right:18px; }
.diary-entry-text { font-family:'Crimson Text',serif; font-size:.93rem; color:rgba(217,196,138,0.75); line-height:1.55; white-space:pre-wrap; margin-top:.4rem; padding-top:.4rem; border-top:.5px solid rgba(184,134,11,0.2); }
.diary-entry-del { position:absolute; top:4px; right:5px; background:none; border:none; color:rgba(139,32,32,0.35); cursor:pointer; font-size:.82rem; line-height:1; transition:color .13s; padding:2px 5px; }
.diary-entry-del:hover { color:var(--red-wax); }
.diary-empty { font-family:'Crimson Text',serif; font-style:italic; color:rgba(217,196,138,0.32); text-align:center; padding:3.5rem 1rem; font-size:1rem; grid-column:1/-1; }

/* ADD ENTRY SUB-MODAL */
.add-entry-modal {
  background:linear-gradient(160deg,#3d2810,#2a1a08);
  border:2px solid var(--gold); border-radius:4px;
  width:min(460px,95vw); box-shadow:0 20px 60px rgba(0,0,0,0.9);
}

/* form elements */
.diary-date-row { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.diary-date-label { font-family:'Cinzel',serif; font-size:.65rem; letter-spacing:.1em; color:var(--parchment-deep); text-transform:uppercase; }
.diary-select {
  font-family:'Cinzel',serif; font-size:.72rem; padding:5px 10px; border-radius:2px;
  border:1px solid rgba(184,134,11,0.5); background:rgba(30,15,5,0.8);
  color:var(--parchment-dark); cursor:pointer; appearance:none;
}
.diary-select:focus { outline:none; border-color:var(--gold); }
input[type=number].diary-select { -moz-appearance:textfield; }
input[type=number].diary-select::-webkit-outer-spin-button,
input[type=number].diary-select::-webkit-inner-spin-button { -webkit-appearance:none; margin:0; }
.diary-textarea {
  width:100%; min-height:110px; padding:.65rem .85rem; margin-top:.75rem;
  font-family:'Crimson Text',serif; font-size:1rem; line-height:1.6;
  background:rgba(244,234,208,0.05); border:1px solid rgba(184,134,11,0.4);
  border-radius:2px; color:var(--parchment-dark); resize:vertical;
}
.diary-textarea:focus { outline:none; border-color:var(--gold); background:rgba(244,234,208,0.08); }
.diary-textarea::placeholder { color:rgba(217,196,138,0.3); font-style:italic; }
.diary-submit {
  font-family:'Cinzel',serif; font-size:.75rem; letter-spacing:.1em;
  padding:8px 22px; border-radius:2px; border:1px solid var(--gold);
  background:linear-gradient(160deg,var(--gold),#9a7008);
  color:var(--ink); cursor:pointer; font-weight:600; transition:all .2s;
}
.diary-submit:hover { background:linear-gradient(160deg,var(--gold-light),var(--gold)); }

/* DB bar */
.db-bar { display:flex; gap:8px; align-items:center; flex-wrap:wrap; flex-shrink:0; }
.db-label { font-family:'Cinzel',serif; font-size:.6rem; letter-spacing:.1em; color:rgba(184,134,11,0.45); text-transform:uppercase; flex:1; }
.db-btn { font-family:'Cinzel',serif; font-size:.63rem; letter-spacing:.07em; padding:4px 11px; border-radius:2px; border:1px solid rgba(184,134,11,0.35); background:rgba(30,15,5,0.6); color:var(--parchment-deep); cursor:pointer; transition:all .14s; }
.db-btn:hover { border-color:var(--gold); color:var(--gold-pale); }
.diary-btn { font-family:'Cinzel',serif; font-size:.72rem; letter-spacing:.1em; padding:6px 16px; border-radius:2px; border:1px solid rgba(184,134,11,0.7); background:rgba(184,134,11,0.08); color:var(--gold-pale); cursor:pointer; transition:all .2s; display:inline-block; margin-top:.5rem; }
.diary-btn:hover { border-color:var(--gold); background:rgba(184,134,11,0.18); color:var(--gold-light); }

/* calendar event entry diary type */
.cal-event-entry.diary-ev .cal-event-date { color:#a07830; }
.cal-event-entry.diary-ev .cal-event-name { color:var(--ink-faint); font-style:italic; }

/* scrollbar */
::-webkit-scrollbar { width:8px; }
::-webkit-scrollbar-track { background:#0e0804; }
::-webkit-scrollbar-thumb { background:var(--gold); border-radius:4px; }
.cal-modal ::-webkit-scrollbar-track { background:var(--parchment-deep); }
.cal-modal ::-webkit-scrollbar-thumb { background:var(--gold); }
.diary-modal ::-webkit-scrollbar-track { background:#1a0e04; }
.diary-modal ::-webkit-scrollbar-thumb { background:var(--gold); }

/* ── TREASURY: 5 colonne ── */
.stats-row { grid-template-columns: repeat(5,1fr); }

/* ── TIPO EVENTO NEL DIARIO ── */
.diary-type-row {
  display:flex; align-items:center; gap:10px; margin-bottom:.7rem; flex-wrap:wrap;
}
.diary-type-btns { display:flex; gap:6px; }
.dtype-btn {
  font-family:'Cinzel',serif; font-size:.65rem; letter-spacing:.07em;
  padding:4px 12px; border-radius:20px; border:1px solid rgba(184,134,11,0.35);
  background:rgba(30,15,5,0.5); color:var(--parchment-deep); cursor:pointer; transition:all .15s;
}
.dtype-btn:hover { border-color:var(--gold); color:var(--gold-pale); }
.dtype-btn.active[data-type="neutral"] { background:rgba(184,134,11,0.2); border-color:var(--gold); color:var(--gold-pale); }
.dtype-btn.active[data-type="income"]  { background:rgba(40,90,30,0.4);  border-color:#6db060; color:#a0e090; }
.dtype-btn.active[data-type="expense"] { background:rgba(120,30,30,0.4); border-color:#c06060; color:#f09090; }

.diary-amount-row {
  display:flex; align-items:center; gap:10px; margin-bottom:.7rem;
}

/* ── DIARY CARD CON IMPORTO ── */
.diary-entry-amount {
  font-family:'Cinzel',serif; font-size:.72rem; font-weight:600;
  margin-top:.3rem; padding:1px 0;
}
.diary-entry-amount.income  { color:#70c060; }
.diary-entry-amount.expense { color:#e07070; }
