/* Discipulador admin — SaaS premium + editorial. Escopo .disc (não vaza para o WP). */
.disc {
	--disc-bg: #F8F7F3;
	--disc-ink: #18201B;
	--disc-pine: #315C4A;
	--disc-sage: #547766;
	--disc-sand: #E8E0D1;
	--disc-gold: #9A7A3E;
	--disc-white: #FFFFFF;
	--disc-muted: #5c665f;
	--disc-line: #ddd6c6;
	--disc-radius: 10px;
	background: var(--disc-bg);
	color: var(--disc-ink);
	max-width: 1100px;
	font-size: 15px;
	line-height: 1.55;
}
.disc-title { font-size: 1.7rem; line-height: 1.2; margin: 0 0 .2em; color: var(--disc-ink); font-weight: 700; }
.disc-sub { color: var(--disc-muted); margin: 0; }
.disc-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; margin: 1rem 0 1.2rem; flex-wrap: wrap; }
.disc-back { color: var(--disc-pine); text-decoration: none; font-weight: 600; }
.disc-back:hover { text-decoration: underline; }

/* Botões */
.disc-btn {
	display: inline-flex; align-items: center; gap: .4em;
	border: 1px solid var(--disc-line); border-radius: 8px;
	background: var(--disc-white); color: var(--disc-ink);
	padding: .55em 1em; font-size: .95rem; font-weight: 600; cursor: pointer;
}
.disc-btn:hover { border-color: var(--disc-sage); }
.disc-btn-primary { background: var(--disc-pine); border-color: var(--disc-pine); color: #fff; }
.disc-btn-primary:hover { background: #27493a; border-color: #27493a; }
.disc-btn-danger { color: #8A3B2E; border-color: #d8b9b3; }
.disc-btn-ghost { border-color: transparent; }
.disc-btn:disabled { opacity: .55; cursor: not-allowed; }
.disc :focus-visible { outline: 3px solid var(--disc-gold); outline-offset: 2px; }

/* Toolbar / campos */
.disc-toolbar { display: flex; gap: .7rem; flex-wrap: wrap; margin-bottom: 1rem; }
.disc-toolbar input[type="search"], .disc-toolbar select,
.disc-form input, .disc-form select, .disc-form textarea {
	border: 1px solid var(--disc-line); border-radius: 8px;
	padding: .55em .8em; font-size: 1rem; background: var(--disc-white); color: var(--disc-ink);
	max-width: 100%;
}
.disc-form { display: grid; gap: .9rem; }
.disc-form label { display: grid; gap: .3rem; font-weight: 600; }
.disc-form .hint { font-weight: 400; color: var(--disc-muted); font-size: .85rem; }
.disc-form textarea { min-height: 110px; resize: vertical; }
.disc-form-row { display: grid; gap: .9rem; grid-template-columns: 1fr 1fr; }
@media (max-width: 600px) { .disc-form-row { grid-template-columns: 1fr; } }

/* Cards / estados */
.disc-card { background: var(--disc-white); border: 1px solid var(--disc-line); border-radius: var(--disc-radius); padding: 1.1rem 1.2rem; margin-bottom: 1rem; }
.disc-state { background: var(--disc-white); border: 1px dashed var(--disc-line); border-radius: var(--disc-radius); padding: 1.4rem; text-align: center; color: var(--disc-muted); margin-bottom: 1rem; }
.disc-error { border-style: solid; border-color: #d8b9b3; color: #8A3B2E; text-align: left; }
.disc-cards { list-style: none; margin: 0 0 1rem; padding: 0; display: grid; gap: .8rem; }
.disc-cards > li { background: var(--disc-white); border: 1px solid var(--disc-line); border-radius: var(--disc-radius); padding: 1rem 1.1rem; }
.disc-cards h3 { margin: 0 0 .3em; font-size: 1.05rem; }
.disc-meta { color: var(--disc-muted); font-size: .88rem; margin: 0 0 .5em; }
.disc-item-actions { display: flex; gap: .5rem; flex-wrap: wrap; margin-top: .7rem; }

/* Badges com rótulo textual (não só cor) */
.disc-badge {
	display: inline-block; border-radius: 999px; padding: .15em .8em;
	font-size: .8rem; font-weight: 700; letter-spacing: .02em;
	border: 1px solid var(--disc-line); background: var(--disc-sand); color: var(--disc-ink);
}
.disc-badge.st-ativo { background: #e3ece6; border-color: #b9cfc0; color: #23402f; }
.disc-badge.st-pausado { background: #f3ecdc; border-color: #d9c9a6; color: #6b5320; }
.disc-badge.st-concluído { background: #e8e4f0; border-color: #c6bde0; color: #463d6b; }
.disc-badge.st-arquivado { background: #eee; border-color: #ccc; color: #666; }
.disc-badge.k-observacao { background: #e7eef5; border-color: #bccfdd; color: #2c4257; }
.disc-badge.k-encontro { background: #e3ece6; border-color: #b9cfc0; color: #23402f; }
.disc-badge.k-oracao { background: #f0e9f4; border-color: #d3c4de; color: #5b3f6e; }
.disc-badge.f-done { background: #e3ece6; border-color: #b9cfc0; color: #23402f; }
.disc-badge.f-open { background: #fdf3e3; border-color: #e4cf9f; color: #7a5c1e; }

/* Tabela (desktop) -> cards (mobile) */
.disc-table-wrap { overflow-x: auto; }
.disc-table { width: 100%; border-collapse: collapse; background: var(--disc-white); border: 1px solid var(--disc-line); border-radius: var(--disc-radius); overflow: hidden; }
.disc-table th, .disc-table td { text-align: left; padding: .8rem .9rem; border-bottom: 1px solid var(--disc-line); vertical-align: middle; }
.disc-table th { background: var(--disc-sand); font-size: .85rem; text-transform: uppercase; letter-spacing: .04em; }
.disc-table tr:last-child td { border-bottom: 0; }
.disc-table .row-actions { display: flex; gap: .4rem; justify-content: flex-end; white-space: nowrap; }
@media (max-width: 700px) {
	.disc-table thead { position: absolute; left: -9999px; }
	.disc-table, .disc-table tbody, .disc-table tr, .disc-table td { display: block; width: 100%; }
	.disc-table tr { border-bottom: 2px solid var(--disc-sand); padding: .4rem 0; }
	.disc-table td { border-bottom: 0; padding: .35rem .9rem; }
	.disc-table td[data-label]::before { content: attr(data-label) ": "; font-weight: 700; font-size: .85rem; color: var(--disc-muted); }
	.disc-table .row-actions { justify-content: flex-start; padding-bottom: .8rem; }
}

/* Perfil */
.disc-profile-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; flex-wrap: wrap; margin-bottom: .8rem; }
.disc-profile-actions { display: flex; gap: .6rem; align-items: center; }
.disc-next { border-left: 4px solid var(--disc-gold); }
.disc-tabs { display: flex; gap: .3rem; border-bottom: 2px solid var(--disc-sand); margin: 1rem 0; flex-wrap: wrap; }
.disc-tab { border: 0; background: transparent; padding: .7em 1.1em; font-size: 1rem; font-weight: 600; color: var(--disc-muted); cursor: pointer; border-bottom: 3px solid transparent; margin-bottom: -2px; }
.disc-tab[aria-selected="true"] { color: var(--disc-pine); border-bottom-color: var(--disc-pine); }
.disc-defs { display: grid; grid-template-columns: 180px 1fr; gap: .4rem 1rem; margin: 0; }
.disc-defs dt { font-weight: 700; }
.disc-defs dd { margin: 0; }
@media (max-width: 600px) { .disc-defs { grid-template-columns: 1fr; } }

/* Timeline */
.disc-timeline { list-style: none; margin: 0 0 1rem; padding: 0 0 0 1.4rem; border-left: 2px solid var(--disc-sand); display: grid; gap: .8rem; }
.disc-timeline > li { position: relative; background: var(--disc-white); border: 1px solid var(--disc-line); border-radius: var(--disc-radius); padding: .9rem 1rem; }
.disc-timeline > li::before {
	content: ""; position: absolute; left: calc(-1.4rem - 6px); top: 1.1rem;
	width: 10px; height: 10px; border-radius: 50%;
	background: var(--disc-sage); border: 2px solid var(--disc-bg);
}
.disc-timeline > li.t-followup::before { background: var(--disc-gold); }
.disc-timeline .t-date { color: var(--disc-muted); font-size: .85rem; }

/* Paginação */
.disc-pager { display: flex; gap: .8rem; align-items: center; margin: 0 0 1.5rem; }
.disc-pager span { color: var(--disc-muted); }

/* Toast + modal */
.disc-toast {
	position: sticky; top: 32px; z-index: 50;
	background: var(--disc-ink); color: #fff; border-radius: 8px;
	padding: .7em 1.1em; margin-bottom: 1rem; max-width: 640px;
}
.disc-toast.err { background: #8A3B2E; }
.disc-modal-backdrop { position: fixed; inset: 0; background: rgba(24,32,27,.55); z-index: 100; display: flex; align-items: flex-start; justify-content: center; padding: 8vh 1rem 1rem; }
.disc-modal-backdrop[hidden] { display: none; }
.disc-modal { background: var(--disc-bg); border-radius: 12px; max-width: 560px; width: 100%; max-height: 84vh; overflow: auto; padding: 1.3rem 1.4rem; }
.disc-modal-head { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-bottom: 1rem; }
.disc-modal-head h2 { margin: 0; font-size: 1.25rem; }
.disc-confirm-actions { display: flex; gap: .6rem; justify-content: flex-end; margin-top: 1rem; }

/* Dashboard */
.disc-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: .8rem; margin-bottom: 1rem; }
.disc-stat { background: var(--disc-white); border: 1px solid var(--disc-line); border-radius: var(--disc-radius); padding: .9rem 1rem; display: grid; gap: .1rem; }
.disc-stat-num { font-size: 1.8rem; font-weight: 800; color: var(--disc-pine); line-height: 1.1; }
.disc-stat.alert .disc-stat-num { color: #8A3B2E; }
.disc-stat-label { color: var(--disc-muted); font-size: .88rem; }
.disc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; margin-bottom: 1rem; }
.disc-grid .disc-card { margin-bottom: 0; }
.disc-grid h2 { font-size: 1.05rem; margin: 0 0 .6em; }
.disc-mini { list-style: none; margin: 0; padding: 0; display: grid; gap: .55rem; }
.disc-mini a { color: var(--disc-pine); font-weight: 600; }
.disc-empty-mini { color: var(--disc-muted); margin: .4em 0 0; }
.disc-shortcuts { display: flex; gap: .6rem; flex-wrap: wrap; margin-bottom: .6rem; }
@media (max-width: 800px) {
	.disc-stats { grid-template-columns: repeat(2, 1fr); }
	.disc-grid { grid-template-columns: 1fr; }
}

/* Biblioteca */
.disc-lib { list-style: none; margin: 0; padding: 0; display: grid; gap: .8rem; }
.disc-lib-item { display: grid; grid-template-columns: 160px 1fr; gap: 1rem; align-items: start; }
.disc-lib-item h2 { margin: 0 0 .3em; font-size: 1.15rem; }
.disc-lib-item h2 a { color: var(--disc-ink); text-decoration: none; }
.disc-lib-item h2 a:hover { color: var(--disc-pine); text-decoration: underline; }
.disc-lib-thumb { width: 160px; height: auto; border-radius: 8px; }
@media (max-width: 600px) { .disc-lib-item { grid-template-columns: 1fr; } }

/* Assistente IA (Fase 2) */
#ai-output { width: 100%; min-height: 180px; resize: vertical; }
#pf-ai-output { width: 100%; min-height: 180px; resize: vertical; }
#ai-key { min-width: min(340px, 100%); }
#ai-config-msg { min-height: 1.4em; }

/* Popup de resultado da IA: leitura confortável, dourado discreto. */
.disc-ai-result { position: relative; padding-top: .4rem; }
.disc-ai-result::before {
	content: ""; position: absolute; top: -1.3rem; left: -1.4rem; right: -1.4rem;
	height: 3px; border-radius: 0 0 4px 4px;
	background: linear-gradient(90deg, var(--disc-pine), var(--disc-sage) 60%, var(--disc-gold));
	opacity: .85;
}
.disc-ai-text {
	width: 100%;
	min-height: 220px;
	resize: vertical;
	font-size: 1.02rem;
	line-height: 1.7;
	padding: .9em 1.1em;
}
.disc-ai-loading p { text-align: center; color: var(--disc-muted); animation: disc-pulse 1.6s ease-in-out infinite; }
@keyframes disc-pulse { 0%, 100% { opacity: 1; } 50% { opacity: .5; } }

/* Rede (Fase 5, admin): mesma árvore, contida no .disc. */
.disc .disc-net-tree, .disc .disc-net-tree ul { list-style: none; margin: 0; padding: 0; }
.disc .disc-net-node > summary { cursor: pointer; padding: .6rem .8rem; border-radius: 8px; list-style: none; }
.disc .disc-net-node > summary::-webkit-details-marker { display: none; }
.disc .disc-net-node > summary::before { content: "+"; display: inline-block; width: 1.4em; color: var(--disc-gold); font-weight: 800; }
.disc .disc-net-node[open] > summary::before { content: "–"; }
.disc .disc-net-node > summary:hover { background: var(--disc-bg); }
.disc .disc-net-kids { margin: 0 0 .4rem 1.1rem; padding-left: 1.1rem; border-left: 2px solid var(--disc-sand); display: grid; gap: .15rem; }
