:root{
  --bg: #14110f;
  --bg-elevated: #1c1815;
  --bg-card: #221d19;
  --border: #342c24;
  --text: #ede6dc;
  --text-dim: #a99b8c;
  --text-faint: #766b60;
  --accent: #c98a3a;
  --accent-bright: #e3a860;
  --crimson: #a3352f;
  --crimson-bright: #c94a42;
  --green: #6b8f5a;
  --font-display: Georgia, 'Iowan Old Style', 'Times New Roman', serif;
  --font-body: -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif;
  --font-mono: 'SF Mono', Consolas, 'Courier New', monospace;
}

*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  background:var(--bg);
  color:var(--text);
  font-family:var(--font-body);
  line-height:1.55;
  min-height:100vh;
}

a{color:var(--accent-bright);}
a:hover{color:var(--accent);}

.app{display:flex;min-height:100vh;}

/* Sidebar */
.sidebar{
  width:250px;
  flex-shrink:0;
  background:var(--bg-elevated);
  border-right:1px solid var(--border);
  padding:28px 0;
  position:sticky;
  top:0;
  height:100vh;
  overflow-y:auto;
}
.brand{
  padding:0 24px 20px;
  border-bottom:1px solid var(--border);
  margin-bottom:16px;
}
.brand-mark{
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:8px;
}
.brand-title{
  font-family:var(--font-display);
  font-size:17px;
  color:var(--text);
  letter-spacing:0.01em;
}
.brand-sub{
  font-size:11px;
  color:var(--text-faint);
  text-transform:uppercase;
  letter-spacing:0.08em;
}
nav.navlist{padding:0 12px;}
.navlist button{
  display:flex;
  align-items:center;
  gap:10px;
  width:100%;
  text-align:left;
  background:none;
  border:none;
  color:var(--text-dim);
  font-family:var(--font-body);
  font-size:13.5px;
  padding:10px 12px;
  border-radius:6px;
  cursor:pointer;
  margin-bottom:2px;
  transition:background 0.15s, color 0.15s;
}
.navlist button:hover{background:var(--bg-card);color:var(--text);}
.navlist button.active{background:var(--bg-card);color:var(--accent-bright);font-weight:600;}
.navlist .count{
  margin-left:auto;
  font-size:11px;
  color:var(--text-faint);
  font-family:var(--font-mono);
}

.main{flex:1;padding:36px 44px;max-width:1180px;}
.view{display:none;}
.view.active{display:block;}

h1.page-title{
  font-family:var(--font-display);
  font-size:28px;
  margin:0 0 6px;
  color:var(--text);
}
p.page-desc{color:var(--text-dim);margin:0 0 28px;font-size:14.5px;max-width:760px;}

/* Stat cards */
.stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:32px;}
.stat-card{
  background:var(--bg-card);
  border:1px solid var(--border);
  border-radius:10px;
  padding:16px 18px;
}
.stat-num{font-family:var(--font-display);font-size:26px;color:var(--accent-bright);}
.stat-label{font-size:11.5px;color:var(--text-faint);text-transform:uppercase;letter-spacing:0.06em;margin-top:4px;}

/* Cards / tables */
.card{
  background:var(--bg-card);
  border:1px solid var(--border);
  border-radius:10px;
  padding:20px 22px;
  margin-bottom:16px;
}
.card.cult{border-color:rgba(163,53,47,0.4);background:linear-gradient(180deg, rgba(163,53,47,0.06), var(--bg-card) 40px);}

.entity-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:10px;flex-wrap:wrap;}
.entity-name{font-family:var(--font-display);font-size:18px;color:var(--text);}
.entity-tag{font-size:10.5px;text-transform:uppercase;letter-spacing:0.06em;color:var(--text-faint);border:1px solid var(--border);padding:2px 8px;border-radius:20px;}

.field-label{font-size:11px;text-transform:uppercase;letter-spacing:0.06em;color:var(--accent);margin:12px 0 4px;font-weight:600;}
.field-body{font-size:13.5px;color:var(--text-dim);}
.field-body a{word-break:break-word;}

.status-select{
  background:var(--bg-elevated);
  border:1px solid var(--border);
  color:var(--text);
  padding:6px 10px;
  border-radius:6px;
  font-size:12.5px;
  font-family:var(--font-body);
}
.status-select.status-not-contacted{color:var(--text-faint);}
.status-select.status-contacted{color:var(--accent-bright);}
.status-select.status-responded{color:#7fb0d8;}
.status-select.status-scheduled{color:#c9a13a;}
.status-select.status-completed{color:var(--green);}
.status-select.status-declined{color:var(--crimson-bright);}

.notes-box{
  width:100%;
  background:var(--bg-elevated);
  border:1px solid var(--border);
  color:var(--text);
  border-radius:6px;
  padding:8px 10px;
  font-family:var(--font-body);
  font-size:12.5px;
  margin-top:8px;
  resize:vertical;
  min-height:44px;
}

.toolbar{display:flex;gap:10px;margin-bottom:20px;flex-wrap:wrap;align-items:center;}
.search-input{
  flex:1;
  min-width:220px;
  background:var(--bg-card);
  border:1px solid var(--border);
  color:var(--text);
  padding:9px 14px;
  border-radius:8px;
  font-size:13.5px;
}
.filter-select{
  background:var(--bg-card);
  border:1px solid var(--border);
  color:var(--text);
  padding:9px 12px;
  border-radius:8px;
  font-size:13px;
}

/* Outline */
.outline-part{margin-bottom:26px;}
.outline-part h3{font-family:var(--font-display);color:var(--accent-bright);font-size:16px;border-bottom:1px solid var(--border);padding-bottom:8px;margin-bottom:12px;}
.outline-chapter{margin-bottom:14px;padding-left:14px;border-left:2px solid var(--border);}
.outline-chapter.cult{border-left-color:var(--crimson);}
.outline-chapter h4{margin:0 0 4px;font-size:14.5px;color:var(--text);}
.outline-chapter p{margin:0;font-size:13px;color:var(--text-dim);}

/* Notes / research markdown view */
.md-content{font-size:14px;color:var(--text-dim);}
.md-content h1,.md-content h2,.md-content h3{color:var(--text);font-family:var(--font-display);}
.md-content h2{border-bottom:1px solid var(--border);padding-bottom:6px;margin-top:28px;}
.md-content table{width:100%;border-collapse:collapse;margin:16px 0;font-size:12.5px;}
.md-content th,.md-content td{border:1px solid var(--border);padding:8px 10px;text-align:left;vertical-align:top;}
.md-content th{background:var(--bg-elevated);color:var(--accent-bright);}
.md-content code{background:var(--bg-elevated);padding:1px 5px;border-radius:4px;font-size:12px;}
.md-content li{margin-bottom:4px;}

.badge-priority{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:26px;height:26px;
  border-radius:50%;
  background:var(--accent);
  color:var(--bg);
  font-family:var(--font-mono);
  font-weight:700;
  font-size:12px;
  flex-shrink:0;
}

.export-btn{
  background:var(--accent);
  color:var(--bg);
  border:none;
  padding:9px 16px;
  border-radius:8px;
  font-size:13px;
  font-weight:600;
  cursor:pointer;
}
.export-btn:hover{background:var(--accent-bright);}

::-webkit-scrollbar{width:10px;height:10px;}
::-webkit-scrollbar-track{background:var(--bg);}
::-webkit-scrollbar-thumb{background:var(--border);border-radius:6px;}

@media (max-width: 860px){
  .app{flex-direction:column;}
  .sidebar{width:100%;height:auto;position:relative;}
  .stats-row{grid-template-columns:repeat(2,1fr);}
  .main{padding:24px 18px;}
}
