/* ─── Hermes Dashboard custom styles on top of LCARS Classic ─── */

/* Layout: replaces duplicate #column-3 / #gap ids from template */
.lcars-column {
	flex: 1;
	margin-inline: auto;
	width: 100%;
}
.gap-row {
	margin-top: var(--divider-height);
}

/* ── Login Screen ── */
.login-screen { display: flex; min-height: 100vh; }
.login-main {
	flex: 1;
	display: flex;
	align-items: flex-start;
}
#login-screen .right-frame {
	display: flex;
	flex-direction: column;
	min-height: 0;
}
.login-form {
	display: flex;
	flex-direction: column;
	gap: 1rem;
	padding: 2rem;
	max-width: 400px;
}
.login-input-group label {
	display: block;
	font-size: var(--sub-fonts);
	color: var(--african-violet);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	margin-bottom: 0.3rem;
}
.lcars-input {
	width: 100%;
	padding: 0.6rem 1rem;
	background: black;
	border: 2px solid var(--gray);
	border-radius: 100px;
	color: var(--font-color);
	font-family: 'Antonio', sans-serif;
	font-size: 1rem;
	outline: none;
	transition: border-color 0.2s;
}
.lcars-input:focus { border-color: var(--african-violet); }
.lcars-input::placeholder { color: var(--gray); }

.login-btn {
	padding: 0.7rem 2rem;
	background: var(--golden-orange);
	color: black;
	font-family: 'Antonio', sans-serif;
	font-size: 1rem;
	font-weight: 700;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	border-radius: 100px;
	cursor: pointer;
	width: 100%;
	max-width: calc(var(--nav-width) * 2 + 1rem);
	align-self: flex-end;
}
.panel-logout {
	background: var(--red);
	color: black;
	border: none;
	font-family: inherit;
	font-size: inherit;
	font-weight: bold;
	cursor: pointer;
	width: 100%;
	height: 100%;
	min-height: 2.5rem;
	text-transform: uppercase;
}
.login-error {
	color: var(--tomato);
	font-size: var(--sub-fonts);
	min-height: 1.5rem;
}

/* ── Dashboard ── */
#dashboard { min-height: 100vh; }
#dashboard .left-frame-top {
	align-items: center;
}
#dashboard .right-frame {
	display: flex;
	flex-direction: column;
	min-height: 0;
}
#dashboard main {
	flex: 1;
	display: flex;
	flex-direction: column;
	min-height: 0;
}

/* ── Sidebar nav ── */
.sidebar-nav {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
	padding: var(--left-frame-padding);
}
.sidebar-btn {
	width: 100%;
	padding: 0.6rem 1rem;
	background: var(--bluey);
	color: black;
	font-family: 'Antonio', sans-serif;
	font-size: 0.85rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	border: none;
	border-radius: 100px;
	cursor: pointer;
	text-align: left;
	transition: filter 0.15s;
}
.sidebar-btn:hover { filter: brightness(115%); }
.sidebar-btn.active { background: var(--african-violet); }
.sidebar-btn[data-tab="memories"].active { background: var(--moonlit-violet); }

/* ── Panels ── */
.left-frame .panel-3,
.left-frame .panel-4,
.left-frame .panel-5 {
	padding: 0.5rem;
}

/* ── Screens ── */
.lcars-screen { display: none; flex-direction: column; }
.lcars-screen.active { display: flex; }

nav button[data-nav-tab].active {
	filter: brightness(115%);
}

.lcars-screen-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	flex-shrink: 0;
}

.lcars-heading {
	font-family: 'Antonio', sans-serif;
	font-weight: 700;
	font-size: 1.3rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.lcars-controls {
	display: flex;
	align-items: center;
	gap: 0.75rem;
}

.lcars-btn {
	padding: 0.4rem 1.2rem;
	background: var(--moonlit-violet);
	color: black;
	font-family: 'Antonio', sans-serif;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	border: none;
	border-radius: 100px;
	cursor: pointer;
	transition: filter 0.15s;
}
.lcars-btn:hover { filter: brightness(115%); }

.lcars-search-box {
	display: flex;
	align-items: center;
}
.lcars-input-sm {
	padding: 0.4rem 1rem;
	background: black;
	border: 2px solid var(--gray);
	border-radius: 100px;
	color: var(--font-color);
	font-family: 'Antonio', sans-serif;
	font-size: 0.8rem;
	outline: none;
	transition: border-color 0.2s;
}
.lcars-input-sm:focus { border-color: var(--african-violet); }
.lcars-input-sm::placeholder { color: var(--gray); }

/* ── Task stats ── */
.task-stats {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
	gap: 0.75rem;
	margin: 1rem 0;
}
.cal-stat {
	background: black;
	border-radius: 8px;
	padding: 1rem;
	text-align: center;
}
.cal-stat-value {
	font-family: 'Antonio', sans-serif;
	font-size: 2.2rem;
	font-weight: 700;
	line-height: 1;
}
.cal-stat-value.val-gold { color: var(--golden-orange); }
.cal-stat-value.val-violet { color: var(--african-violet); }
.cal-stat-value.val-bluey { color: var(--bluey); }
.cal-stat-value.val-tomato { color: var(--tomato); }
.cal-stat-label {
	font-size: 0.7rem;
	color: var(--gray);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	margin-top: 0.4rem;
}

/* ── Job list ── */
.lcars-job-list {
	background: black;
	border-radius: 8px;
	border: 1px solid var(--gray);
	overflow: hidden;
	margin-bottom: 1.5rem;
}
.job-item {
	display: grid;
	grid-template-columns: 4px 1fr auto auto;
	gap: 1rem;
	align-items: center;
	padding: 0.8rem 1.2rem;
	border-bottom: 1px solid var(--gray);
	transition: background 0.15s;
}
.job-item:last-child { border-bottom: none; }
.job-item:hover { background: rgba(136,153,255,0.04); }

.job-bar {
	width: 4px;
	height: 28px;
	border-radius: 100px;
}
.job-bar.active { background: var(--green); }
.job-bar.paused { background: var(--gray); }
.job-bar.scheduled { background: var(--golden-orange); animation: pulse-bar 1.5s infinite; }

@keyframes pulse-bar { 0%,100%{opacity:1} 50%{opacity:0.3} }

.job-name {
	font-family: 'Antonio', sans-serif;
	font-size: 0.9rem;
	font-weight: 500;
	color: var(--font-color);
}
.job-schedule {
	display: inline-block;
	padding: 0.2rem 0.8rem;
	background: rgba(255,153,0,0.12);
	border-radius: 100px;
	font-family: 'Antonio', sans-serif;
	font-size: 0.85rem;
	font-weight: 400;
	letter-spacing: 0.08em;
	color: var(--golden-orange);
	margin-top: 0.25rem;
}
.job-next {
	font-family: 'Antonio', sans-serif;
	font-size: 0.8rem;
	color: var(--sunflower);
	text-align: right;
}
.job-status {
	padding: 0.2rem 0.6rem;
	border-radius: 100px;
	font-size: 0.65rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	white-space: nowrap;
}
.job-status.active { background: rgba(153,153,51,0.2); color: var(--green); }
.job-status.paused { background: rgba(102,102,136,0.2); color: var(--gray); }
.job-status.scheduled { background: rgba(255,153,0,0.2); color: var(--golden-orange); }

.empty-state {
	text-align: center;
	padding: 2.5rem;
	color: var(--gray);
	font-size: 0.9rem;
}

/* ── Memories layout ── */
.memories-layout {
	display: grid;
	grid-template-columns: 260px 1fr;
	gap: 0;
	flex: 1;
	overflow: hidden;
	margin-top: 0.75rem;
}
.memories-list {
	border-right: 1px solid var(--gray);
	overflow-y: auto;
	padding: 0.75rem;
}
.files-layout {
	display: grid;
	grid-template-columns: 260px 1fr;
	gap: 0;
	flex: 1;
	overflow: hidden;
	margin-top: 0.75rem;
}
.files-list {
	border-right: 1px solid var(--gray);
	overflow-y: auto;
	padding: 0.75rem;
}
.memory-detail {
	flex: 1;
	overflow-y: auto;
	padding: 1rem 1.5rem;
	overflow: auto; /* Enables scrolling */
	scrollbar-width: none; /* Firefox */
	-ms-overflow-style: none; /* IE and Edge */
}

.memory-detail::-webkit-scrollbar {
	display: none;
}

.memory-detail-empty {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 100%;
	color: var(--gray);
	font-family: 'Antonio', sans-serif;
	font-size: 0.9rem;
	letter-spacing: 0.1em;
}

.memory-day-item {
	padding: 0.75rem 1rem;
	border-radius: 8px;
	cursor: pointer;
	transition: background 0.15s;
	margin-bottom: 0.25rem;
	border-left: 3px solid var(--african-violet);
}
.memory-day-item:nth-child(2n) { border-left-color: var(--bluey); }
.memory-day-item:nth-child(3n) { border-left-color: var(--golden-orange); }
.memory-day-item:nth-child(5n) { border-left-color: var(--moonlit-violet); }
.memory-day-item:hover { background: rgba(136,153,255,0.06); }
.memory-day-item.active { background: rgba(136,153,255,0.1); }

.file-item {
	padding: 0.75rem 1rem;
	border-radius: 8px;
	cursor: pointer;
	transition: background 0.15s;
	margin-bottom: 0.25rem;
	border-left: 3px solid var(--golden-orange);
}
.file-item:hover { background: rgba(255,153,0,0.06); }
.file-item.active { background: rgba(255,153,0,0.12); }
.file-item-title {
	font-family: 'Antonio', sans-serif;
	font-size: 0.85rem;
	font-weight: 500;
	color: var(--font-color);
	margin-bottom: 0.25rem;
	word-break: break-word;
}
.file-item-path,
.file-item-meta,
.file-detail-path {
	font-size: 0.7rem;
	color: var(--gray);
	word-break: break-word;
}
.file-item-meta,
.file-detail-path {
	margin-top: 0.25rem;
}

.memory-day-label {
	font-family: 'Antonio', sans-serif;
	font-size: 0.85rem;
	font-weight: 500;
	color: var(--font-color);
	margin-bottom: 0.25rem;
}
.memory-day-count {
	font-size: 0.7rem;
	color: var(--gray);
}

/* Memory detail */
.memory-detail-header {
	padding: 1rem 0;
	border-bottom: 1px solid var(--gray);
	margin-bottom: 1rem;
}
.memory-detail-title {
	font-family: 'Antonio', sans-serif;
	font-size: 1rem;
	font-weight: 500;
	color: var(--font-color);
	margin-bottom: 0.5rem;
}
.memory-detail-tags {
	display: flex;
	gap: 0.5rem;
}
.memory-tag {
	padding: 0.15rem 0.6rem;
	background: rgba(136,153,255,0.1);
	border-radius: 100px;
	font-size: 0.65rem;
	color: var(--bluey);
	text-transform: uppercase;
	letter-spacing: 0.06em;
}

.memory-msg {
	padding: 0.7rem 1rem;
	background: black;
	border-radius: 6px;
	margin-bottom: 0.5rem;
	font-size: 0.85rem;
	line-height: 1.5;
}
.memory-msg.user { border-left: 3px solid var(--bluey); }
.memory-msg.assistant { border-left: 3px solid var(--african-violet); }
.memory-msg-label {
	font-size: 0.65rem;
	color: var(--gray);
	text-transform: uppercase;
	letter-spacing: 0.06em;
	margin-bottom: 0.25rem;
}

/* ── Long-term memory ── */
.ltm-entry {
	padding: 0.6rem 1rem;
	background: black;
	border-radius: 6px;
	margin-bottom: 0.4rem;
	font-size: 0.85rem;
	line-height: 1.5;
	border-left: 3px solid var(--moonlit-violet);
}

.markdown-body {
	font-size: 0.9rem;
	line-height: 1.65;
	color: var(--font-color);
}
.markdown-body > *:first-child {
	margin-top: 0;
}
.markdown-body h1,
.markdown-body h2,
.markdown-body h3,
.markdown-body h4 {
	margin: 1.25rem 0 0.75rem;
}
.markdown-body p,
.markdown-body ul,
.markdown-body pre {
	margin: 0 0 1rem;
}
.markdown-body ul {
	padding-left: 1.5rem;
}
.markdown-body li {
	margin-bottom: 0.35rem;
}
.markdown-body pre {
	padding: 1rem;
	background: black;
	border: 1px solid var(--gray);
	border-radius: 8px;
	overflow-x: auto;
}
.markdown-body code {
	font-family: Consolas, 'Courier New', monospace;
	font-size: 0.9em;
}
.markdown-body :not(pre) > code {
	padding: 0.1rem 0.35rem;
	background: rgba(136,153,255,0.08);
	border-radius: 4px;
}
.markdown-body a {
	color: var(--bluey);
}

/* ── Tables ── */
.markdown-body table {
	width: 100%;
	border-collapse: collapse;
	margin: 1rem 0;
	font-size: 0.95em;
}
.markdown-body th {
	text-align: left;
	padding: 0.6rem 0.8rem;
	background: rgba(136, 153, 255, 0.1);
	border-bottom: 2px solid var(--bluey);
	color: var(--african-violet);
	text-transform: uppercase;
	letter-spacing: 0.05em;
}
.markdown-body td {
	padding: 0.5rem 0.8rem;
	border-bottom: 1px solid var(--gray);
	color: var(--font-color);
}
.markdown-body tr:hover td {
	background: rgba(136, 153, 255, 0.05);
}

/* ── Responsive ── */
@media (max-width: 750px) {
	.memories-layout { grid-template-columns: 1fr; }
	.files-layout { grid-template-columns: 1fr; }
	.memory-detail { display: none; }
	.lcars-screen-header { flex-direction: column; align-items: flex-start; }
	.lcars-controls { margin-top: 0.5rem; }
	.task-stats { grid-template-columns: repeat(2, 1fr); }
}
