/*
 * mod_googledrive — Carpeta de Google Drive
 * Hereda la tipografía de la plantilla. Color de acento: --gd-accent (opción del módulo).
 */
.mod-gd {
	--gd-accent: #2f5d8a;
	--gd-ink: #1c2530;
	--gd-muted: #5a6573;
	--gd-line: #e3e7ec;
	--gd-surface: #ffffff;
	--gd-tint: color-mix(in srgb, var(--gd-accent) 8%, #fff);
	--gd-tint-strong: color-mix(in srgb, var(--gd-accent) 14%, #fff);
	--gd-radius: 12px;
	--gd-ease: cubic-bezier(.2, .7, .2, 1);

	color: var(--gd-ink);
	background: var(--gd-surface);
	border: 1px solid var(--gd-line);
	border-radius: var(--gd-radius);
	box-shadow: 0 1px 2px rgb(16 24 40 / .04), 0 4px 16px -6px rgb(16 24 40 / .08);
	padding: clamp(1rem, 2.5vw, 1.75rem);
	text-align: left;
}

.mod-gd *,
.mod-gd *::before,
.mod-gd *::after {
	box-sizing: border-box;
}

.mod-gd svg {
	display: block;
	flex: none;
}

.mod-gd a {
	color: inherit;
	text-decoration: none;
}

.mod-gd :focus-visible {
	outline: 2px solid var(--gd-accent);
	outline-offset: 2px;
}

.mod-gd__sr {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

/* Cabecera: dónde estoy + herramientas */
.mod-gd__head {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 1rem 1.5rem;
	padding-bottom: 1.1rem;
	margin-bottom: 1.25rem;
	border-bottom: 1px solid var(--gd-line);
}

.mod-gd__where {
	min-width: 0;
	flex: 1 1 16rem;
}

.mod-gd__path ol {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .15rem .4rem;
	margin: 0 0 .4rem;
	padding: 0;
	list-style: none;
	font-size: .85rem;
	color: var(--gd-muted);
}

.mod-gd__path li {
	display: flex;
	align-items: center;
	gap: .4rem;
	margin: 0;
}

.mod-gd__path li + li::before {
	content: "/";
	color: var(--gd-line);
	font-weight: 600;
}

.mod-gd__path a {
	color: var(--gd-muted);
	border-radius: 4px;
	transition: color .2s var(--gd-ease);
}

.mod-gd__path a:hover {
	color: var(--gd-accent);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.mod-gd__titlerow {
	display: flex;
	align-items: center;
	gap: .6rem;
}

.mod-gd__back {
	display: grid;
	place-items: center;
	width: 2.25rem;
	height: 2.25rem;
	flex: none;
	border: 1px solid var(--gd-line);
	border-radius: 50%;
	color: var(--gd-muted);
	transition: color .2s var(--gd-ease), border-color .2s var(--gd-ease), background-color .2s var(--gd-ease);
}

.mod-gd__back:hover {
	color: var(--gd-accent);
	border-color: var(--gd-accent);
	background: var(--gd-tint);
}

.mod-gd__title {
	font-size: clamp(1.15rem, 2.2vw, 1.4rem);
	font-weight: 600;
	line-height: 1.25;
	letter-spacing: -.01em;
	overflow-wrap: anywhere;
}

.mod-gd__count {
	margin: .35rem 0 0;
	font-size: .85rem;
	color: var(--gd-muted);
}

.mod-gd__tools {
	display: flex;
	align-items: center;
	gap: .5rem;
	flex: 0 1 22rem;
	min-width: 0;
}

.mod-gd__search {
	position: relative;
	flex: 1 1 auto;
	min-width: 0;
	margin: 0;
	color: var(--gd-muted);
}

.mod-gd__search svg {
	position: absolute;
	left: .8rem;
	top: 50%;
	transform: translateY(-50%);
	pointer-events: none;
}

.mod-gd .mod-gd__search input {
	width: 100%;
	height: 2.75rem;
	margin: 0;
	padding: 0 .9rem 0 2.5rem;
	font: inherit;
	font-size: .95rem;
	color: var(--gd-ink);
	background: #f6f8fa;
	border: 1px solid transparent;
	border-radius: 999px;
	box-shadow: none;
	transition: border-color .2s var(--gd-ease), background-color .2s var(--gd-ease), box-shadow .2s var(--gd-ease);
}

.mod-gd .mod-gd__search input::placeholder {
	color: var(--gd-muted);
	opacity: 1;
}

.mod-gd .mod-gd__search input:focus {
	outline: none;
	background: #fff;
	border-color: var(--gd-accent);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--gd-accent) 18%, transparent);
}




/* Grupos */
.mod-gd__group + .mod-gd__group {
	margin-top: 1.75rem;
}

.mod-gd .mod-gd__label {
	margin: 0 0 .75rem;
	padding: 0;
	font-family: inherit;
	font-size: .75rem;
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--gd-muted);
}

.mod-gd ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.mod-gd li {
	margin: 0;
}

/* Carpetas: tarjetas */
.mod-gd__folders {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 15rem), 1fr));
	gap: .75rem;
}

.mod-gd__folder {
	display: flex;
	align-items: center;
	gap: .85rem;
	height: 100%;
	min-height: 4rem;
	padding: .85rem 1rem;
	background: var(--gd-surface);
	border: 1px solid var(--gd-line);
	border-radius: 10px;
	cursor: pointer;
	transition: border-color .2s var(--gd-ease), background-color .2s var(--gd-ease), box-shadow .2s var(--gd-ease);
}

.mod-gd__folder:hover {
	border-color: color-mix(in srgb, var(--gd-accent) 45%, var(--gd-line));
	background: var(--gd-tint);
	box-shadow: 0 6px 18px -10px color-mix(in srgb, var(--gd-accent) 55%, transparent);
}

.mod-gd__folder-icon {
	display: grid;
	place-items: center;
	width: 2.5rem;
	height: 2.5rem;
	flex: none;
	border-radius: 9px;
	color: var(--gd-accent);
	background: var(--gd-tint-strong);
}

.mod-gd__folder-text,
.mod-gd__file-text {
	flex: 1;
	min-width: 0;
}

.mod-gd__name {
	display: block;
	font-weight: 500;
	line-height: 1.35;
	overflow-wrap: anywhere;
}

.mod-gd__meta {
	display: block;
	margin-top: .15rem;
	font-size: .8rem;
	line-height: 1.4;
	color: var(--gd-muted);
}

.mod-gd__chevron {
	color: var(--gd-muted);
	transition: color .2s var(--gd-ease), transform .2s var(--gd-ease);
}

.mod-gd__folder:hover .mod-gd__chevron {
	color: var(--gd-accent);
	transform: translateX(2px);
}

/* Documentos: lista */
.mod-gd__files {
	border: 1px solid var(--gd-line);
	border-radius: 10px;
	overflow: hidden;
}

.mod-gd__files li + li {
	border-top: 1px solid var(--gd-line);
}

.mod-gd__file {
	display: flex;
	align-items: center;
	gap: 1rem;
	min-height: 4.25rem;
	padding: .75rem 1rem;
	cursor: pointer;
	transition: background-color .2s var(--gd-ease);
}

.mod-gd__file:hover {
	background: #f7f9fb;
}

.mod-gd__badge {
	--c: #5b6573;
	position: relative;
	display: grid;
	place-items: center;
	width: 2.75rem;
	height: 2.75rem;
	flex: none;
	border-radius: 9px;
	color: var(--c);
	background: color-mix(in srgb, var(--c) 10%, #fff);
}

.mod-gd__badge[data-kind="pdf"] { --c: #b42318; }
.mod-gd__badge[data-kind="doc"] { --c: #1d4f91; }
.mod-gd__badge[data-kind="sheet"] { --c: #17663a; }
.mod-gd__badge[data-kind="slides"] { --c: #b54708; }
.mod-gd__badge[data-kind="image"] { --c: #6941a5; }
.mod-gd__badge[data-kind="video"] { --c: #a1245f; }
.mod-gd__badge[data-kind="audio"] { --c: #0e6e78; }
.mod-gd__badge[data-kind="archive"] { --c: #7a5a1e; }

.mod-gd__ext {
	position: absolute;
	left: 50%;
	bottom: .3rem;
	transform: translateX(-50%);
	padding: 0 .25rem;
	font-size: .58rem;
	font-weight: 700;
	line-height: 1.35;
	letter-spacing: .03em;
	color: #fff;
	background: var(--c);
	border-radius: 3px;
}

.mod-gd__download {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .4rem;
	min-width: 2.75rem;
	height: 2.5rem;
	padding: 0 .9rem;
	flex: none;
	font-size: .85rem;
	font-weight: 500;
	color: var(--gd-accent);
	border: 1px solid color-mix(in srgb, var(--gd-accent) 30%, var(--gd-line));
	border-radius: 999px;
	transition: color .2s var(--gd-ease), background-color .2s var(--gd-ease), border-color .2s var(--gd-ease);
}

.mod-gd__file:hover .mod-gd__download {
	color: #fff;
	background: var(--gd-accent);
	border-color: var(--gd-accent);
}

/* Avisos y vacíos */
.mod-gd__empty,
.mod-gd__notice {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: .6rem;
	padding: 2rem 1rem;
	text-align: center;
	color: var(--gd-muted);
}

.mod-gd__empty p,
.mod-gd__notice p {
	margin: 0;
	font-size: .95rem;
}

.mod-gd__notice {
	flex-direction: row;
	justify-content: center;
	padding: 1.25rem 1rem;
}

[hidden].mod-gd__empty,
.mod-gd [hidden] {
	display: none !important;
}

/* Móvil */
@media (max-width: 640px) {
	.mod-gd__tools {
		flex-basis: 100%;
	}

	.mod-gd__file {
		gap: .8rem;
		padding: .75rem .85rem;
	}

	.mod-gd__download {
		padding: 0;
		width: 2.75rem;
		height: 2.75rem;
	}

	.mod-gd__download-text {
		display: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	.mod-gd *,
	.mod-gd *::before,
	.mod-gd *::after {
		transition: none !important;
	}
}
