
* { box-sizing: border-box; margin: 0; padding: 0; }
body { background: #1a1410; font-family: 'Crimson Text', serif; color: #d4b896; overflow-x: hidden; }

#app { display: flex; flex-direction: column; height: 100vh; padding: 8px; gap: 6px; }

/* ── HEADER ── */
#header {
  display: flex; align-items: center; justify-content: space-between;
  border-bottom: 2px solid #c8a060; padding-bottom: 6px; flex-shrink: 0;
  background: linear-gradient(90deg, #1f1810 0%, #2a1e12 50%, #1f1810 100%);
}
#logo { display: flex; flex-direction: column; gap: 2px; }
#logo h1 { font-family: 'Cinzel', serif; font-size: 15px; font-weight: 700; color: #c8a060; letter-spacing: 2px; }
#logo p  { font-family: 'Crimson Text', serif; font-size: 14px; color: #7a6040; font-style: italic; }
#controls { display: flex; gap: 5px; flex-wrap: wrap; justify-content: flex-end; align-items: center; }
.btn {
  background: #2a1e10; border: 1px solid #c8a060; color: #c8a060;
  font-family: 'Cinzel', serif; font-size: 15px; padding: 4px 10px;
  cursor: pointer; transition: all .15s; letter-spacing: .5px;
}
.btn:hover { background: #3d2c18; border-color: #c8a060; color: #e8c080; }
.btn:active { transform: scale(.97); }
.btn.danger { border-color: #7a2020; color: #c06060; }
.btn.danger:hover { background: #3a1818; border-color: #c06060; }
.btn.success { border-color: #2a5a30; color: #70b878; }
.btn.success:hover { background: #1a3020; border-color: #70b878; }

/* ── BODY ── */
#body { display: flex; gap: 6px; flex: 1; min-height: 0; }

/* ── MAP AREA ── */
#map-wrap {
  flex: 1; position: relative;
  border: 2px solid #9a7850; background: #0d0a07;
  overflow: hidden; cursor: crosshair;
}
#map-canvas { display: block; image-rendering: pixelated; position: absolute; top:0; left:0; width:100%; height:100%; }
#zoom-label {
  position: absolute; bottom: 6px; left: 8px; font-family: 'Crimson Text', serif; font-size: 14px;
  color: #c8a060; pointer-events: none; z-index: 10;
  background: rgba(10,7,4,0.75); padding: 1px 6px; border: 1px solid #7a6040;
}

/* ── SIDEBAR ── */
#sidebar { width: 200px; flex-shrink: 0; display: flex; flex-direction: column; gap: 5px; overflow-y: auto; }
.panel {
  background: #1a1410; border: 1px solid #9a7850; padding: 8px; flex-shrink: 0;
  position: relative;
}
.panel::before {
  content: ''; position: absolute; inset: 0;
  background: repeating-linear-gradient(0deg, transparent, transparent 19px, rgba(107,76,42,0.06) 19px, rgba(107,76,42,0.06) 20px);
  pointer-events: none;
}
.panel-title {
  font-family: 'Cinzel', serif; font-size: 15px; color: #c8a060; letter-spacing: 1px;
  border-bottom: 1px solid #9a7850; padding-bottom: 4px; margin-bottom: 6px; font-weight: 600;
}
.stat-row { display: flex; justify-content: space-between; font-size: 15px; margin: 2px 0; color: #9a7a54; }
.stat-row span { color: #d4b896; font-weight: 600; }

/* Tile info panel */
#tile-name { font-family: 'Cinzel', serif; font-size: 14px; color: #d4a060; margin-bottom: 3px; font-weight: 600; }
#tile-type { font-size: 16px; color: #c8a060; margin-bottom: 5px; font-style: italic; }
#tile-desc { font-size: 14px; color: #9a8060; line-height: 1.5; white-space: pre-wrap; }
#tile-roll { margin-top: 5px; border-top: 1px solid #7a6040; padding-top: 5px; }
#tile-roll p { font-size: 14px; margin: 2px 0; color: #7a6040; }
.roll-result { color: #c8a060; font-weight: 600; }
.roll-danger { color: #c05050; }
.roll-treasure { color: #c8a030; }
.roll-exit { color: #508850; }
.roll-special { color: #8060a0; }

/* Log */
#log-body { font-size: 14px; color: #b09060; line-height: 1.7; max-height: 160px; overflow-y: auto;
  scrollbar-width: thin; scrollbar-color: #9a7850 #1a1410; }
#log-body p { margin: 1px 0; }
#log-body .li { color: #c8a060; }
#log-body .ld { color: #b04040; }
#log-body .lt { color: #b09030; }
#log-body .le { color: #408840; }
#log-body .ls { color: #7050a0; }

/* Legend */
.leg { display: flex; align-items: center; gap: 6px; margin: 3px 0; font-size: 14px; color: #8a6a48; }
.leg-swatch { width: 14px; height: 14px; flex-shrink: 0; border: 1px solid rgba(255,255,255,0.1); }

/* Dice */
#dice-area { display: flex; flex-direction: column; gap: 5px; }
.dice-row { display: flex; gap: 5px; flex-wrap: wrap; }
.dice-btn { font-size: 15px; padding: 4px 8px; }
#dice-result { font-family: 'Cinzel', serif; font-size: 16px; color: #c8a060; text-align: center; min-height: 22px; margin-top: 3px; }

.ctrl-group { display: flex; flex-direction: column; gap: 2px; align-items: center; }
.ctrl-label { font-family: 'Cinzel', serif; font-size: 12px; color: #c8a060; letter-spacing: 1px; }
select.btn { padding: 4px 6px; font-size: 15px; cursor: pointer; appearance: none; -webkit-appearance: none; min-width: 90px; text-align: center; }
#seed-row { font-size: 16px; color: #9a7850; margin-top: 5px; font-style: italic; }
#seed-val { color: #c8a060; }

#tooltip {
  position: fixed; background: #1a1410; border: 1px solid #c8a060;
  padding: 5px 9px; font-size: 14px; color: #c8a060; pointer-events: none;
  display: none; z-index: 100; max-width: 200px; line-height: 1.6;
  font-family: 'Crimson Text', serif;
}


#mission-overlay {
  position:fixed; inset:0; background:rgba(0,0,0,0.82); z-index:9000;
  display:flex; align-items:center; justify-content:center;
}
#mission-modal {
  background:#1a1208; border:2px solid #c8a060; border-radius:6px;
  width:min(680px,95vw); max-height:90vh; overflow-y:auto;
  padding:24px 28px; color:#c8a060; font-family:'Cinzel',serif;
  box-shadow:0 8px 40px rgba(0,0,0,0.8);
}
#mission-modal h2 { font-size:17px; color:#e8c070; margin:0 0 4px; letter-spacing:2px; }
#mission-modal .mission-subtitle { font-size:14px; color:#c8a060; margin:0 0 18px; letter-spacing:1px; }
.mission-card {
  border:1px solid #7a6040; border-radius:4px; padding:12px 14px;
  margin-bottom:10px; cursor:pointer; transition:border-color .15s, background .15s;
  background:#120e08;
}
.mission-card:hover { border-color:#c8780a; background:#1e1408; }
.mission-card.selected { border-color:#e8c070; background:#221808; }
.mission-card .mc-header { display:flex; align-items:baseline; gap:8px; margin-bottom:5px; }
.mission-card .mc-num { font-size:13px; color:#c8a060; min-width:22px; }
.mission-card .mc-name { font-size:13px; color:#e8b040; font-weight:600; }
.mission-card .mc-goal { font-size:14px; color:#9a7850; line-height:1.5; }
.mission-card .mc-rules { font-size:13px; color:#b09060; margin-top:6px; padding-top:6px;
  border-top:1px solid #2a1e10; display:none; line-height:1.6; }
.mission-card.selected .mc-rules { display:block; }
#mission-setting-row {
  margin:14px 0 6px; padding:12px 14px; border:1px solid #7a6040;
  border-radius:4px; background:#120e08; display:none;
}
#mission-setting-row label { font-size:14px; color:#c8a060; display:block; margin-bottom:8px; letter-spacing:1px; }
.setting-btns { display:flex; gap:8px; flex-wrap:wrap; }
.setting-btn {
  padding:6px 14px; border:1px solid #7a6040; border-radius:3px;
  background:#1a1208; color:#9a7850; font-family:'Cinzel',serif;
  font-size:14px; cursor:pointer; transition:all .15s;
}
.setting-btn:hover { border-color:#c8780a; color:#e8b040; }
.setting-btn.active { border-color:#e8c070; background:#2a1e08; color:#e8c070; }
#mission-start-btn {
  margin-top:16px; width:100%; padding:10px; font-family:'Cinzel',serif;
  font-size:13px; letter-spacing:2px; border:1px solid #c8a060;
  background:#2a1608; color:#e8b040; cursor:pointer; border-radius:3px;
  transition:all .15s; display:none;
}
#mission-start-btn:hover { background:#3a2010; border-color:#e8c070; color:#e8c070; }
#mission-start-btn:disabled { opacity:.4; cursor:not-allowed; }
#btn-mission-select {
  /* button in the toolbar to re-open mission screen */
}
