/* Discipulador FRONT premium — "a mesa do discipulador".
 * Camada visual sobre o CSS base do admin. Tudo escopado em .disc-front-root:
 * nada vaza para o tema e o tema não dita o ritmo aqui dentro.
 * Tipografia herdada do tema (sem fonte externa); paleta própria discreta. */

.disc-front-root {
	--disc-paper: #F8F7F3;
	--disc-ink: #18201B;
	--disc-pine: #315C4A;
	--disc-pine-deep: #27493A;
	--disc-sage: #718777;
	--disc-sand: #E8E0D1;
	--disc-gold: #9A7A3E;
	--disc-white: #FFFFFF;
	--disc-muted: #6F776F;
	--disc-border: #E3E0D7;
	--disc-danger: #8A3B2E;
	--disc-danger-bg: #FAF1EF;
	--disc-radius-sm: 10px;
	--disc-radius-md: 16px;
	--disc-radius-lg: 22px;
	--disc-shadow-soft: 0 4px 20px rgba(24, 32, 27, .05);
	--disc-shadow-card: 0 8px 30px rgba(24, 32, 27, .06);
	--disc-shadow-modal: 0 24px 70px rgba(24, 32, 27, .22);
	--disc-ease: 180ms ease;

	background: var(--disc-paper);
	color: var(--disc-ink);
	border: 0;
	border-radius: 0;
	padding: clamp(1.5rem, 4vw, 3rem) clamp(1rem, 4vw, 3rem) 3rem;
	margin: 0;
	width: 100%;
	max-width: none;
	box-sizing: border-box;
	font-family: inherit;
	font-size: 1rem;
	line-height: 1.6;
	box-shadow: none;
}
.disc-front-root .disc-app-hero, .disc-front-root .disc-app-shell {
	width: 100%;
	max-width: 1440px;
	margin-left: auto;
	margin-right: auto;
}
.disc-front-root *, .disc-front-root *::before, .disc-front-root *::after { box-sizing: border-box; }

/* Base editorial: herda a fonte do tema, só organiza o ritmo. */
.disc-front-root h1, .disc-front-root h2, .disc-front-root h3,
.disc-front-root p, .disc-front-root ul, .disc-front-root ol,
.disc-front-root dl, .disc-front-root dd, .disc-front-root dt {
	margin-top: 0;
	max-width: none;
	font-family: inherit;
}
.disc-front-root .disc-title {
	font-size: clamp(1.6rem, 2.6vw, 2.1rem);
	line-height: 1.18;
	font-weight: 800;
	letter-spacing: -.015em;
	color: var(--disc-ink);
}
.disc-front-root h2 { font-size: 1.1rem; font-weight: 700; letter-spacing: -.01em; }
.disc-front-root .disc-sub, .disc-front-root .disc-meta { color: var(--disc-muted); }
.disc-front-root a { text-decoration-thickness: 1px; text-underline-offset: 3px; }
.disc-front-root a:not(.disc-btn) { color: var(--disc-pine); }

/* Hero contextual: marca à esquerda, ações no canto superior direito. */
.disc-app-hero {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 1rem 1.5rem;
	margin: 0 0 1.25rem;
}
.disc-app-hero-main { max-width: 46rem; min-width: 0; }
.disc-app-actions {
	display: flex;
	align-items: center;
	gap: .55rem;
	flex-shrink: 0;
	padding-top: .2rem;
}
.disc-app-actions .disc-btn { white-space: nowrap; }
.disc-app-actions .disc-app-toggle { margin: 0; }
.disc-app-brand {
	margin: 0 0 .15rem;
	font-size: .78rem;
	font-weight: 800;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--disc-pine);
}
.disc-app-brand::after {
	content: "";
	display: block;
	width: 2.2rem;
	height: 2px;
	margin-top: .45rem;
	background: var(--disc-gold);
	border-radius: 2px;
}
.disc-app-tagline { margin: 0; color: var(--disc-muted); font-size: 1.02rem; line-height: 1.55; }
.disc-bell { position: relative; margin-top: 0; }
.disc-bell > summary { list-style: none; cursor: pointer; display: inline-flex; align-items: center; gap: .4rem; padding: .5em .8em; border: 1px solid var(--disc-border); border-radius: 999px; background: var(--disc-white); }
.disc-bell > summary::-webkit-details-marker { display: none; }
.disc-bell > summary svg { width: 20px; height: 20px; }
.disc-bell-badge { background: var(--disc-danger, #8A3B2E); color: #fff; border-radius: 999px; font-size: .75rem; font-weight: 800; padding: .1em .55em; }
.disc-bell-panel { position: absolute; right: 0; top: calc(100% + 8px); width: min(370px, 82vw); z-index: 60; margin-top: 0; background: var(--disc-white); border: 1px solid var(--disc-border); border-radius: var(--disc-radius-md); box-shadow: var(--disc-shadow-card); padding: 1rem 1.1rem; display: grid; gap: .8rem; }
.disc-bell-panel li.is-read { opacity: .65; }
.disc-app-brand .disc-logo { max-height: 52px; width: auto; max-width: 100%; }
.disc-app-brand .disc-logo-dark { display: none; }
.disc-front-root[data-disc-app-appearance="dark"] .disc-app-brand .disc-logo-clean { display: none; }
.disc-front-root[data-disc-app-appearance="dark"] .disc-app-brand .disc-logo-dark { display: inline-block; }

/* Navegação: controle segmentado claro, sem peso administrativo. */
.disc-app-nav {
	display: flex;
	gap: .25rem;
	flex-wrap: wrap;
	margin: 0 0 1.75rem;
	padding: .35rem;
	background: var(--disc-white);
	border: 1px solid var(--disc-border);
	border-radius: 999px;
	box-shadow: var(--disc-shadow-soft);
}
.disc-app-nav .disc-btn {
	border: 0;
	border-radius: 999px;
	background: transparent;
	color: var(--disc-muted);
	font-weight: 650;
	padding: .6em 1.15em;
	transition: background var(--disc-ease), color var(--disc-ease);
}
.disc-app-nav .disc-btn:hover { background: var(--disc-paper); color: var(--disc-ink); border-color: transparent; }
.disc-app-nav .disc-btn-primary,
.disc-app-nav .disc-btn-primary:hover {
	background: var(--disc-pine);
	color: #fff;
	box-shadow: 0 4px 14px rgba(49, 92, 74, .28);
}
.disc-app-nav a.disc-btn, .disc-app-nav a.disc-btn:hover, .disc-app-nav a.disc-btn:visited {
	text-decoration: none !important;
	box-shadow: none !important;
}
.disc-front-root a.disc-btn, .disc-front-root a.disc-btn:hover, .disc-front-root a.disc-btn:visited,
.disc-front-root .disc-shortcuts a, .disc-front-root .disc-shortcuts a:hover {
	text-decoration: none !important;
	box-shadow: none !important;
}

/* Conteúdo ocupa o shell; sem coluna dupla com o tema. */
.disc-front-root .disc {
	max-width: none;
	width: 100%;
	margin: 0;
	padding: 0;
	background: transparent;
	font-size: inherit;
}
.disc-front-root .disc-head {
	align-items: flex-end;
	gap: 1rem 1.5rem;
	margin: 0 0 1.5rem;
	padding-bottom: 1.25rem;
	border-bottom: 1px solid var(--disc-border);
}
.disc-front-root .disc-head .disc-btn { flex-shrink: 0; }

/* Indicadores editoriais: número grande, rótulo pequeno, sem peso financeiro. */
.disc-front-root .disc-stats {
	gap: 0;
	background: var(--disc-white);
	border: 1px solid var(--disc-border);
	border-radius: var(--disc-radius-md);
	box-shadow: var(--disc-shadow-soft);
	overflow: hidden;
	margin-bottom: 1.25rem;
}
.disc-front-root .disc-stat {
	background: transparent;
	border: 0;
	border-radius: 0;
	border-left: 1px solid var(--disc-border);
	padding: 1.15rem 1.35rem;
	gap: .15rem;
}
.disc-front-root .disc-stat:first-child { border-left: 0; }
.disc-front-root .disc-stat-num {
	font-size: clamp(1.9rem, 3vw, 2.4rem);
	font-weight: 800;
	letter-spacing: -.02em;
	line-height: 1;
	color: var(--disc-ink);
}
.disc-front-root .disc-stat .disc-stat-num { color: var(--disc-ink); }
.disc-front-root .disc-stat.alert .disc-stat-num { color: var(--disc-danger); }
.disc-front-root .disc-stat-label {
	font-size: .78rem;
	font-weight: 650;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--disc-muted);
}

/* Cartões discretos, respiro generoso. */
.disc-front-root .disc-card {
	background: var(--disc-white);
	border: 1px solid var(--disc-border);
	border-radius: var(--disc-radius-md);
	box-shadow: var(--disc-shadow-soft);
	padding: 1.4rem 1.5rem;
	margin-bottom: 1.25rem;
}
.disc-front-root .disc-grid { gap: 1.25rem; margin-bottom: 1.25rem; }
.disc-front-root .disc-mini { gap: .7rem; }
.disc-front-root .disc-mini a { font-weight: 650; }
.disc-front-root .disc-empty-mini { margin-top: .6em; }
.disc-front-root .disc-shortcuts { gap: .6rem; margin: 1.1rem 0 .4rem; }

/* Tabela refinada: cabeçalho editorial, linhas com respiro, hover suave. */
.disc-front-root .disc-table {
	border: 1px solid var(--disc-border);
	border-radius: var(--disc-radius-md);
	box-shadow: var(--disc-shadow-soft);
	overflow: hidden;
}
.disc-front-root .disc-table th {
	background: transparent;
	border-bottom: 1px solid var(--disc-border);
	color: var(--disc-muted);
	font-size: .75rem;
	font-weight: 750;
	letter-spacing: .08em;
	text-transform: uppercase;
	padding: 1rem 1.2rem;
}
.disc-front-root .disc-table td { padding: 1rem 1.2rem; }
.disc-front-root .disc-table tbody tr { transition: background var(--disc-ease); }
.disc-front-root .disc-table tbody tr:hover { background: var(--disc-paper); }
.disc-front-root .disc-table td a { font-weight: 700; color: var(--disc-ink); }
.disc-front-root .disc-table td a:hover { color: var(--disc-pine); }

/* Selos comedidos: texto primeiro, cor só como sussurro. */
.disc-front-root .disc-badge {
	font-size: .74rem;
	font-weight: 750;
	letter-spacing: .05em;
	text-transform: uppercase;
	padding: .3em .9em;
	background: var(--disc-paper);
	border-color: var(--disc-border);
	color: var(--disc-muted);
}

/* Perfil: nome amplo, meta serena, abas como índice editorial. */
.disc-front-root .disc-profile-head { margin-bottom: 1.1rem; }
.disc-front-root #profile-name { font-size: clamp(1.7rem, 3vw, 2.3rem); letter-spacing: -.015em; }
.disc-front-root .disc-next {
	background: var(--disc-white);
	border: 1px solid var(--disc-border);
	border-left: 3px solid var(--disc-gold);
	border-radius: var(--disc-radius-sm);
}
.disc-front-root .disc-tabs {
	gap: .25rem;
	border-bottom: 1px solid var(--disc-border);
	margin: 1.25rem 0 1.5rem;
}
.disc-front-root .disc-tab { color: var(--disc-muted); transition: color var(--disc-ease); }
.disc-front-root .disc-tab:hover { color: var(--disc-ink); }
.disc-front-root .disc-tab[aria-selected="true"] { color: var(--disc-pine); }
.disc-front-root .disc-defs { gap: .55rem 1.25rem; }
.disc-front-root .disc-defs dt { color: var(--disc-muted); font-weight: 650; font-size: .85rem; }

/* Timeline: trilho sutil, marcadores com anel, datas discretas. */
.disc-front-root .disc-timeline { border-left-color: var(--disc-border); gap: 1rem; }
.disc-front-root .disc-timeline > li {
	border-color: var(--disc-border);
	box-shadow: var(--disc-shadow-soft);
	padding: 1.1rem 1.25rem;
	transition: box-shadow var(--disc-ease), transform var(--disc-ease);
}
.disc-front-root .disc-timeline > li:hover { box-shadow: var(--disc-shadow-card); }
.disc-front-root .disc-timeline > li::before {
	width: 12px; height: 12px;
	border: 3px solid var(--disc-paper);
	outline: 2px solid var(--disc-sage);
	background: var(--disc-sage);
}
.disc-front-root .disc-timeline > li.t-followup::before { outline-color: var(--disc-gold); background: var(--disc-gold); }

/* Formulários confortáveis, foco evidente. */
.disc-front-root .disc-form { gap: 1.1rem; }
.disc-front-root .disc-form label { gap: .45rem; font-weight: 650; font-size: .94rem; }
.disc-front-root .disc-form .hint { font-size: .84rem; }
.disc-front-root .disc-toolbar input[type="search"],
.disc-front-root .disc-toolbar select,
.disc-front-root .disc-form input,
.disc-front-root .disc-form select,
.disc-front-root .disc-form textarea {
	border: 1px solid var(--disc-border);
	border-radius: var(--disc-radius-sm);
	padding: .72em 1em;
	font-size: 1rem;
	background: var(--disc-white);
	color: var(--disc-ink);
	transition: border-color var(--disc-ease), box-shadow var(--disc-ease);
}
.disc-front-root .disc-form input::placeholder,
.disc-front-root .disc-form textarea::placeholder { color: var(--disc-muted); opacity: .75; }
.disc-front-root .disc-form input:focus,
.disc-front-root .disc-form select:focus,
.disc-front-root .disc-form textarea:focus,
.disc-front-root .disc-toolbar input:focus,
.disc-front-root .disc-toolbar select:focus {
	outline: none;
	border-color: var(--disc-pine);
	box-shadow: 0 0 0 3px rgba(49, 92, 74, .12);
}
.disc-front-root .disc-toolbar { gap: .8rem; margin-bottom: 1.25rem; }
.disc-front-root #ai-output, .disc-front-root #pf-ai-output {
	width: 100%;
	min-height: 190px;
	line-height: 1.65;
}
.disc-front-root #ai-key { min-width: min(340px, 100%); }

/* Botões: hierarquia clara, gestos calmos. */
.disc-front-root .disc-btn {
	border-radius: var(--disc-radius-sm);
	padding: .68em 1.25em;
	font-weight: 700;
	border: 1px solid var(--disc-border);
	background: var(--disc-white);
	transition: background var(--disc-ease), border-color var(--disc-ease), box-shadow var(--disc-ease), transform 150ms ease;
}
.disc-front-root .disc-btn:hover { border-color: var(--disc-sage); box-shadow: var(--disc-shadow-soft); }
.disc-front-root .disc-btn:active { transform: translateY(1px); }
.disc-front-root .disc-btn-primary { background: var(--disc-pine); border-color: var(--disc-pine); color: #fff; }
.disc-front-root .disc-btn-primary:hover { background: var(--disc-pine-deep); border-color: var(--disc-pine-deep); box-shadow: 0 6px 18px rgba(49, 92, 74, .25); }
.disc-front-root .disc-btn-danger { color: var(--disc-danger); border-color: #E4C4BC; background: var(--disc-white); }
.disc-front-root .disc-btn-danger:hover { background: var(--disc-danger-bg); border-color: var(--disc-danger); }
.disc-front-root .disc-btn-ghost { color: var(--disc-muted); }
.disc-front-root .disc-btn-ghost:hover { color: var(--disc-ink); }
.disc-front-root .disc-item-actions { gap: .55rem; margin-top: .9rem; }

/* Paginação discreta. */
.disc-front-root .disc-pager { gap: .9rem; margin: 0 0 1.5rem; }
.disc-front-root .disc-pager span { font-size: .87rem; }

/* Toast: pílula serena no topo do fluxo. */
.disc-front-root .disc-toast {
	border-radius: 999px;
	padding: .75em 1.4em;
	max-width: 640px;
	box-shadow: var(--disc-shadow-card);
	font-weight: 600;
}
.disc-front-root .disc-toast.err { background: var(--disc-danger); }

/* Modal: véu suave, diálogo com respiro, mobile sem aperto. */
.disc-front-root .disc-modal-backdrop {
	background: rgba(24, 32, 27, .48);
	backdrop-filter: blur(2px);
	padding: 6vh 1rem 1rem;
}
.disc-front-root .disc-modal-backdrop[hidden] { display: none; }
.disc-front-root .disc-modal {
	background: var(--disc-paper);
	border: 1px solid var(--disc-border);
	border-radius: var(--disc-radius-lg);
	box-shadow: var(--disc-shadow-modal);
	max-width: 580px;
	padding: 1.6rem 1.7rem;
}
.disc-front-root .disc-modal-head { margin-bottom: 1.2rem; }
.disc-front-root .disc-modal-head h2 { font-size: 1.3rem; }
.disc-front-root .disc-confirm-actions { gap: .7rem; margin-top: 1.4rem; }

/* Estados: vazios humanos, erros acionáveis, carregamento sem salto. */
.disc-front-root .disc-state {
	border-radius: var(--disc-radius-md);
	padding: 2rem 1.5rem;
}
.disc-front-root .disc-state strong { display: block; font-size: 1.05rem; margin-bottom: .3em; color: var(--disc-ink); }
.disc-front-root .disc-error {
	background: var(--disc-danger-bg);
	border: 1px solid #E4C4BC;
	border-left: 3px solid var(--disc-danger);
	color: var(--disc-danger);
	text-align: left;
}
.disc-front-root .disc-state[id$="-loading"] { animation: disc-pulse 1.6s ease-in-out infinite; }
@keyframes disc-pulse { 0%, 100% { opacity: 1; } 50% { opacity: .55; } }

/* IA: identidade própria e discreta — apoio, nunca robô. */
.disc-front-root #ai-work,
.disc-front-root #ai-result-card,
.disc-front-root #pf-cont-card { position: relative; overflow: hidden; }
.disc-front-root #ai-work::before,
.disc-front-root #ai-result-card::before,
.disc-front-root #pf-cont-card::before {
	content: "";
	position: absolute;
	top: 0; left: 0; right: 0;
	height: 3px;
	background: linear-gradient(90deg, var(--disc-pine), var(--disc-sage) 60%, var(--disc-gold));
	opacity: .8;
}
.disc-front-root #ai-config-msg { min-height: 1.4em; }

/* Biblioteca herdada com o mesmo respiro. */
.disc-front-root .disc-lib { gap: 1rem; }

/* Responsivo: hierarquia redesenhada, não apenas reduzida. */
@media (max-width: 1024px) {
	.disc-front-root { max-width: 100%; }
	.disc-front-root .disc-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.disc-front-root .disc-stat:nth-child(3) { border-left: 0; }
	.disc-front-root .disc-stat:nth-child(n+3) { border-top: 1px solid var(--disc-border); }
	.disc-front-root .disc-grid { grid-template-columns: 1fr; }
}
@media (max-width: 1023.98px) {
	.disc-app-hero { flex-wrap: nowrap; align-items: center; }
	.disc-app-hero-main { min-width: 0; flex: 1 1 auto; }
	.disc-app-actions { flex-shrink: 0; }
	.disc-app-actions .disc-menu-toggle { margin-right: auto; }
}
@media (max-width: 640px) {
	.disc-front-root { border-radius: 0; padding: 1.1rem .95rem 1.4rem; }
	.disc-app-hero { margin-bottom: 1rem; }
	.disc-app-tagline { display: none; }
	.disc-app-nav {
		flex-wrap: nowrap;
		overflow-x: auto;
		border-radius: 14px;
		scrollbar-width: thin;
	}
	.disc-app-nav .disc-btn { white-space: nowrap; flex-shrink: 0; }
	.disc-front-root .disc-head { flex-direction: column; align-items: stretch; }
	.disc-front-root .disc-card { padding: 1.15rem 1.1rem; }
	.disc-front-root .disc-form-row { grid-template-columns: 1fr; }
	.disc-front-root .disc-modal { padding: 1.25rem 1.1rem; }
	.disc-front-root .disc-modal-backdrop { padding: 4vh .6rem .6rem; }
	.disc-front-root .disc-item-actions .disc-btn { flex: 1 1 auto; justify-content: center; }
}
@media (max-width: 380px) {
	.disc-front-root .disc-stats { grid-template-columns: 1fr; }
	.disc-front-root .disc-stat { border-left: 0; border-top: 1px solid var(--disc-border); }
	.disc-front-root .disc-stat:first-child { border-top: 0; }
}

/* Acessibilidade: movimento respeitado, foco sempre visível. */
@media (prefers-reduced-motion: reduce) {
	.disc-front-root *, .disc-front-root *::before, .disc-front-root *::after {
		animation-duration: .01ms;
		transition-duration: .01ms;
	}
	.disc-front-root .disc-state[id$="-loading"] { animation: none; }
}

/* Rede (Fase 5): árvore viva da comunidade, mesma identidade. */
.disc-net-tree, .disc-front-root .disc-net-tree ul { list-style: none; margin: 0; padding: 0; }
.disc-front-root .disc-net-node { margin: 0; }
.disc-front-root .disc-net-node > summary {
	cursor: pointer;
	padding: .7rem .9rem;
	border-radius: var(--disc-radius-sm);
	list-style: none;
	transition: background var(--disc-ease);
}
.disc-front-root .disc-net-node > summary::-webkit-details-marker { display: none; }
.disc-front-root .disc-net-node > summary::before {
	content: "+";
	display: inline-block;
	width: 1.4em;
	color: var(--disc-gold);
	font-weight: 800;
}
.disc-front-root .disc-net-node[open] > summary::before { content: "–"; }
.disc-front-root .disc-net-node > summary:hover { background: var(--disc-paper); }
.disc-front-root .disc-net-kids {
	margin: 0 0 .4rem 1.1rem;
	padding-left: 1.1rem;
	border-left: 2px solid var(--disc-sand);
	display: grid;
	gap: .15rem;
}
.disc-front-root .disc-net-leaf { padding: .35rem .9rem; color: var(--disc-muted); }
/* Login standalone: centralizado, sem tema. */
body.disc-standalone { margin: 0; background: var(--disc-paper, #F8F7F3); }
.disc-standalone-wrap { min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 1.5rem .9rem; }
.disc-standalone-wrap .disc-front-root { margin: 0; width: 100%; max-width: 520px; }
.disc-standalone-card { display: grid; gap: .9rem; }
.disc-standalone-card .disc-btn { width: 100%; justify-content: center; }
.disc-front-root #rede-edit-toggle { margin-bottom: 1rem; }
.disc-front-root .disc-net-tools {
	display: flex;
	gap: .5rem;
	align-items: center;
	flex-wrap: wrap;
	padding: .3rem .9rem .5rem;
}
.disc-front-root .disc-net-grip {
	cursor: grab;
	color: var(--disc-gold);
	font-weight: 800;
	letter-spacing: .1em;
	padding: 0 .4em 0 0;
	user-select: none;
}
.disc-front-root .disc-net-grip:active { cursor: grabbing; }
.disc-front-root .disc-net-drop {
	outline: 2px dashed var(--disc-pine);
	outline-offset: 2px;
	border-radius: var(--disc-radius-sm);
	background: var(--disc-paper);
}
.disc-front-root .disc-net-rootdrop {
	border: 2px dashed var(--disc-border);
	border-radius: var(--disc-radius-sm);
	padding: .8rem 1rem;
	margin-bottom: 1rem;
	color: var(--disc-muted);
	text-align: center;
}
.disc-front-root .disc-net-tools select, .disc-front-root .disc-net-tools input {
	border: 1px solid var(--disc-border);
	border-radius: var(--disc-radius-sm);
	padding: .45em .8em;
	font-size: .9rem;
	background: var(--disc-white);
	color: var(--disc-ink);
	max-width: 100%;
}
@media (max-width: 640px) {
	.disc-front-root .disc-net-kids { margin-left: .5rem; padding-left: .7rem; }
}

/* ============ MODO ESCURO DO APP (chave própria, sem depender do tema) ============ */
.disc-front-root[data-disc-app-appearance="dark"] {
	--disc-paper: #141816;
	--disc-ink: #ECE7DA;
	--disc-pine: #93B79E;
	--disc-pine-deep: #7AA184;
	--disc-sage: #9AAFA0;
	--disc-sand: #232B26;
	--disc-gold: #C6A45E;
	--disc-white: #1C221F;
	--disc-muted: #A9B5AC;
	--disc-border: #2E362F;
	--disc-danger: #E39A8B;
	--disc-danger-bg: #2A1D1A;
	--disc-shadow-soft: 0 4px 20px rgba(0, 0, 0, .35);
	--disc-shadow-card: 0 8px 30px rgba(0, 0, 0, .4);
	--disc-shadow-modal: 0 24px 70px rgba(0, 0, 0, .55);
}
/* O CSS base define as variáveis claras no .disc interno: aqui elas são
 * reafirmadas no escuro (especificidade maior), senão cards/tabelas/modais
 * continuam brancos com o modo dark ligado. */
.disc-front-root[data-disc-app-appearance="dark"] .disc {
	--disc-paper: #141816;
	--disc-ink: #ECE7DA;
	--disc-pine: #93B79E;
	--disc-pine-deep: #7AA184;
	--disc-sage: #9AAFA0;
	--disc-sand: #232B26;
	--disc-gold: #C6A45E;
	--disc-white: #1C221F;
	--disc-muted: #A9B5AC;
	--disc-border: #2E362F;
	--disc-danger: #E39A8B;
	--disc-danger-bg: #2A1D1A;
	--disc-shadow-soft: 0 4px 20px rgba(0, 0, 0, .35);
	--disc-shadow-card: 0 8px 30px rgba(0, 0, 0, .4);
	--disc-shadow-modal: 0 24px 70px rgba(0, 0, 0, .55);
}
.disc-front-root[data-disc-app-appearance="dark"] .disc-btn-primary:hover { background: var(--disc-pine-deep); border-color: var(--disc-pine-deep); }
.disc-front-root[data-disc-app-appearance="dark"] .disc-btn-danger,
.disc-front-root[data-disc-app-appearance="dark"] .disc-error,
.disc-front-root[data-disc-app-appearance="dark"] .disc-stat.alert .disc-stat-num { color: var(--disc-danger); }
.disc-front-root[data-disc-app-appearance="dark"] .disc-btn-danger,
.disc-front-root[data-disc-app-appearance="dark"] .disc-error { border-color: #5A3530; }
.disc-front-root[data-disc-app-appearance="dark"] .disc-toast.err { background: #5A2B25; }
.disc-front-root[data-disc-app-appearance="dark"] .disc-badge {
	background: var(--disc-sand);
	border-color: var(--disc-border);
	color: var(--disc-muted);
}
.disc-front-root[data-disc-app-appearance="dark"] .disc-toast { background: #2E362F; color: #fff; }

/* Acabamento: CTAs com presença, números tabulares, cartões que respiram. */
.disc-front-root .disc-shortcuts .disc-btn { padding: .78em 1.4em; letter-spacing: .01em; }
.disc-front-root .disc-stat-num { font-variant-numeric: tabular-nums; }
.disc-front-root .disc-grid .disc-card { transition: box-shadow var(--disc-ease), transform var(--disc-ease); }
.disc-front-root .disc-grid .disc-card:hover { box-shadow: var(--disc-shadow-card); }
.disc-front-root .disc-app-side .disc-btn-primary { box-shadow: 0 6px 18px rgba(49, 92, 74, .25); }
.disc-front-root[data-disc-app-appearance="dark"] .disc-app-side .disc-btn-primary { box-shadow: 0 6px 18px rgba(0, 0, 0, .45); }

/* ============ MENU HAMBÚRGUER (só mobile/tablet; desktop intacto) ============ */
.disc-menu-toggle { display: none; }
@media (max-width: 1023.98px) {
	.disc-menu-toggle {
		display: inline-flex; align-items: center; justify-content: center;
		width: 46px; height: 46px;
		border-radius: 12px;
		border: 1px solid var(--disc-border);
		background: var(--disc-white);
		color: var(--disc-ink);
		cursor: pointer;
		box-shadow: var(--disc-shadow-soft);
	}
	.disc-menu-toggle:hover { border-color: var(--disc-pine); color: var(--disc-pine); }
	.disc-menu-toggle svg { width: 22px; height: 22px; }
	.disc-menu-toggle .close { display: none; }
	.disc-menu-toggle[aria-expanded="true"] .open { display: none; }
	.disc-menu-toggle[aria-expanded="true"] .close { display: block; }
	.disc-app-side .disc-app-nav { display: none; }
	.disc-app-side .disc-app-nav.open {
		display: flex;
		flex-direction: column;
		align-items: stretch;
		gap: .4rem;
		margin-top: .8rem;
		background: var(--disc-white);
		border: 1px solid var(--disc-border);
		border-radius: var(--disc-radius-md);
		padding: .8rem;
		box-shadow: var(--disc-shadow-card);
	}
	.disc-app-side .disc-app-nav.open .disc-btn { justify-content: flex-start; border-radius: 10px; }
}
@media (min-width: 1024px) {
	.disc-menu-toggle { display: none; }
}

/* ============ SHELL COM SIDEBAR LATERAL (desktop) ============ */
.disc-app-shell { display: block; }
.disc-app-topbar {
	display: flex;
	align-items: center;
	gap: .9rem;
	margin: 0 0 1.25rem;
}
.disc-app-brand { display: inline-flex; align-items: center; gap: .6rem; min-width: 0; }
.disc-app-brand img { max-height: 2.6rem; width: auto; }
.disc-app-brand span {
	font-weight: 800;
	letter-spacing: .14em;
	text-transform: uppercase;
	font-size: .82rem;
	color: var(--disc-pine);
	white-space: nowrap;
}
.disc-app-tagline { margin: 0 0 1.5rem; color: var(--disc-muted); max-width: 60rem; }
.disc-app-toggle {
	margin-left: auto;
	flex: none;
	width: 44px; height: 44px;
	border-radius: 999px;
	border: 1px solid var(--disc-border);
	background: transparent;
	color: var(--disc-ink);
	cursor: pointer;
	display: inline-flex; align-items: center; justify-content: center;
}
.disc-app-toggle:hover { border-color: var(--disc-pine); color: var(--disc-pine); }
.disc-app-toggle svg { width: 20px; height: 20px; }
.disc-app-toggle .moon { display: none; }
.disc-front-root[data-disc-app-appearance="dark"] .disc-app-toggle .sun { display: none; }
.disc-front-root[data-disc-app-appearance="dark"] .disc-app-toggle .moon { display: block; }
@media (min-width: 1024px) {
	.disc-app-shell {
		display: grid;
		grid-template-columns: 230px minmax(0, 1fr);
		gap: clamp(1.25rem, 3vw, 2.5rem);
		align-items: start;
	}
	.disc-app-side {
		position: sticky;
		top: 1rem;
		display: flex;
		flex-direction: column;
		gap: 1.1rem;
		background: var(--disc-white);
		border: 1px solid var(--disc-border);
		border-radius: var(--disc-radius-md);
		padding: 1.25rem 1rem;
		box-shadow: var(--disc-shadow-soft);
	}
	.disc-app-nav {
		flex-direction: column;
		align-items: stretch;
		flex-wrap: nowrap;
		background: transparent;
		border: 0;
		box-shadow: none;
		padding: 0;
		margin: 0;
		gap: .3rem;
	}
	.disc-app-nav .disc-btn { justify-content: flex-start; border-radius: 10px; }
	.disc-app-nav .disc-btn-primary { border-left: 3px solid var(--disc-gold); }
	.disc-app-main { min-width: 0; }
	.disc-app-main .disc-app-tagline { margin-bottom: 1.25rem; }
}
