/**
 * Doc Library — front-end styles (DOCman-style browser, list, gallery, audio).
 */
.doclib {
	--doclib-accent: #1a78c2;
	--doclib-accent-dark: #156099;
	--doclib-border: #e6e8eb;
	--doclib-stripe: #f6f8fa;
	--doclib-text: #1f2933;
	--doclib-muted: #6b7280;
	color: var(--doclib-text);
	font-size: 15px;
	line-height: 1.5;
}
.doclib * { box-sizing: border-box; }
.doclib a { text-decoration: none; }

/* Icons */
.doclib-icon { width: 20px; height: 20px; fill: currentColor; vertical-align: middle; }
.doclib-kind-folder, .doclib-folder-ico { color: var(--doclib-accent); }
.doclib-kind-pdf   { color: #d6332e; }
.doclib-kind-word  { color: #2b6cb0; }
.doclib-kind-excel { color: #1f8a4c; }
.doclib-kind-ppt   { color: #d2691e; }
.doclib-kind-text  { color: #555d66; }
.doclib-kind-archive { color: #8c6d1f; }
.doclib-kind-image { color: #7a3fbf; }
.doclib-kind-audio { color: #0a7d8c; }
.doclib-kind-video { color: #b3306b; }
.doclib-kind-code  { color: #135e96; }
.doclib-kind-file, .doclib-kind-none { color: #8a9099; }

/* Headings + breadcrumb */
.doclib-heading {
	font-size: 1.6em;
	font-weight: 700;
	margin: 0 0 .6em;
	display: flex;
	align-items: center;
	gap: 8px;
}
.doclib-breadcrumb { font-size: .9em; color: var(--doclib-muted); margin-bottom: 4px; }
.doclib-breadcrumb a { color: var(--doclib-accent); }
.doclib-breadcrumb .doclib-sep { margin: 0 4px; color: #b5bcc4; }
.doclib-breadcrumb .doclib-current { color: var(--doclib-text); }

/* Folder list (categories) */
.doclib-folders-list { list-style: none; margin: 0 0 18px; padding: 0; }
.doclib-folder-row { border-bottom: 1px solid var(--doclib-border); }
.doclib-folder-row:nth-child(odd) { background: var(--doclib-stripe); }
.doclib-folder-row a {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 11px 14px;
	color: var(--doclib-accent);
}
.doclib-folder-row a:hover { background: #eef4fb; }
.doclib-folder-name { font-weight: 500; }

/* Search bar (collapsible) */
.doclib-searchbar {
	border: 1px solid var(--doclib-border);
	border-radius: 6px;
	background: var(--doclib-stripe);
	margin-bottom: 14px;
}
.doclib-searchbar > summary {
	cursor: pointer;
	padding: 11px 14px;
	color: var(--doclib-muted);
	list-style: none;
	user-select: none;
}
.doclib-searchbar > summary::-webkit-details-marker { display: none; }
.doclib-searchbar > summary::before { content: "\25B8"; margin-right: 8px; }
.doclib-searchbar[open] > summary::before { content: "\25BE"; }
.doclib-search { display: flex; gap: 8px; padding: 0 14px 14px; flex-wrap: wrap; align-items: center; }
.doclib-search input[type="search"] {
	flex: 1 1 240px;
	padding: 8px 12px;
	border: 1px solid var(--doclib-border);
	border-radius: 5px;
}
.doclib-search button {
	background: var(--doclib-accent);
	color: #fff;
	border: 0;
	padding: 8px 16px;
	border-radius: 5px;
	cursor: pointer;
}
.doclib-search button:hover { background: var(--doclib-accent-dark); }
.doclib-clear { color: var(--doclib-muted); font-size: .9em; }

/* Document list (striped rows + View/Download) */
.doclib-doc-list { list-style: none; margin: 0; padding: 0; }
.doclib-doc-row {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 9px 14px;
	border-bottom: 1px solid var(--doclib-border);
}
.doclib-doc-row:nth-child(odd) { background: var(--doclib-stripe); }
.doclib-doc-ico { display: inline-flex; flex: 0 0 auto; }
.doclib-doc-title { flex: 1 1 auto; color: var(--doclib-accent); min-width: 0; word-break: break-word; }
.doclib-doc-title:hover { text-decoration: underline; }
.doclib-doc-action { flex: 0 0 auto; }

/* Buttons */
.doclib-btn {
	display: inline-block;
	padding: 5px 14px;
	border-radius: 4px;
	font-size: .85em;
	font-weight: 600;
	color: #fff;
	background: var(--doclib-accent);
	border: 1px solid var(--doclib-accent-dark);
	line-height: 1.4;
}
.doclib-btn:hover { background: var(--doclib-accent-dark); color: #fff; }
.doclib-btn-view { background: #2a93d5; border-color: #1f78b4; }
.doclib-nofile { color: var(--doclib-muted); font-size: .85em; }

/* Pagination */
.doclib-pagination { display: flex; flex-wrap: wrap; gap: 6px; margin: 18px 0 4px; }
.doclib-pagination .page-numbers {
	display: inline-block;
	min-width: 34px;
	text-align: center;
	padding: 6px 10px;
	border: 1px solid var(--doclib-border);
	border-radius: 4px;
	color: var(--doclib-accent);
	background: #fff;
}
.doclib-pagination .page-numbers.current { background: var(--doclib-accent); color: #fff; border-color: var(--doclib-accent-dark); }
.doclib-pagination .page-numbers.dots { border: 0; }
.doclib-pagination a.page-numbers:hover { background: #eef4fb; }

/* Grid (cards) */
.doclib-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 16px; }
.doclib-card { border: 1px solid var(--doclib-border); border-radius: 8px; padding: 14px; display: flex; flex-direction: column; gap: 8px; background: #fff; }
.doclib-card-thumb img { width: 100%; height: 130px; object-fit: cover; border-radius: 6px; }
.doclib-card-badge { display: flex; align-items: center; justify-content: center; height: 110px; background: var(--doclib-stripe); border-radius: 6px; }
.doclib-card-badge .doclib-icon { width: 48px; height: 48px; }
.doclib-card-title { font-size: 1em; margin: 0; }
.doclib-card-title a { color: var(--doclib-text); }
.doclib-card-meta { display: flex; gap: 10px; font-size: .82em; color: var(--doclib-muted); }
.doclib-card .doclib-btn { text-align: center; margin-top: auto; }

/* Gallery (images + videos) — 3-column grid */
.doclib-gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
@media (max-width: 820px) { .doclib-gallery { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px) { .doclib-gallery { grid-template-columns: 1fr; } }
.doclib-gallery-item { position: relative; border-radius: 8px; overflow: hidden; aspect-ratio: 4 / 3; background: var(--doclib-stripe); }
.doclib-gallery-item.is-hidden { display: none; }
.doclib-gallery-link { display: block; width: 100%; height: 100%; }
.doclib-gallery-item img { width: 100%; height: 100%; object-fit: cover; display: block; }
.doclib-gallery-morewrap { text-align: center; margin-top: 18px; }
.doclib-gallery-more {
	cursor: pointer; border: 1px solid var(--doclib-border); background: #fff; color: var(--doclib-text);
	border-radius: 22px; padding: 9px 22px; font-weight: 600; font-size: .9em;
}
.doclib-gallery-more:hover { border-color: var(--doclib-accent); color: var(--doclib-accent); }
.doclib-gallery-overlay {
	position: absolute; inset: 0; opacity: 0; transition: opacity .15s ease;
	background: linear-gradient(to bottom, rgba(0,0,0,.45), rgba(0,0,0,0) 28%, rgba(0,0,0,0) 62%, rgba(0,0,0,.55));
	pointer-events: none;
}
.doclib-gallery-item:hover .doclib-gallery-overlay { opacity: 1; }
.doclib-gallery-overlay > * { pointer-events: auto; }
.doclib-gallery-top { position: absolute; top: 8px; right: 8px; display: flex; align-items: center; gap: 8px; }
.doclib-gallery-like {
	display: inline-flex; align-items: center; gap: 5px; cursor: pointer; border: 0;
	background: rgba(0,0,0,.4); color: #fff !important; border-radius: 6px; padding: 5px 9px; font-size: .82em;
}
.doclib-gallery-like svg { fill: none; stroke: #fff; stroke-width: 1.8; }
.doclib-gallery-like.is-liked svg { fill: #e0245e; stroke: #e0245e; }
.doclib-gallery-like .doclib-like-count { color: #fff; }
.doclib-gallery-dl { display: inline-flex; background: rgba(0,0,0,.4); color: #fff; border-radius: 6px; padding: 6px; }
.doclib-gallery-dl:hover { background: var(--doclib-accent); color: #fff; }
.doclib-gallery-bottom { position: absolute; left: 10px; right: 10px; bottom: 8px; }
.doclib-gallery-bottom a { color: #fff; font-size: .85em; font-weight: 600; text-shadow: 0 1px 3px rgba(0,0,0,.6); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; display: block; }

/* Aligned file table (all non-image types; audio gets a play button) */
.doclib-file-table { width: 100%; --fcols: 68px minmax(200px,3fr) 64px 56px minmax(80px,0.85fr) minmax(64px,0.7fr) minmax(64px,0.6fr) minmax(96px,1.1fr) 56px 56px; }
.doclib-file-head,
.doclib-file-row {
	display: grid;
	grid-template-columns: var(--fcols);
	align-items: center;
	gap: 14px;
}
.doclib-file-head {
	padding: 8px 6px;
	border-bottom: 2px solid var(--doclib-border);
	font-size: .72em; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--doclib-muted);
}
.doclib-file-row { position: relative; padding: 14px 6px; min-height: 76px; border-bottom: 1px solid var(--doclib-border); }
.doclib-file-row:hover { background: var(--doclib-stripe); }
.doclib-ta-r { text-align: right; }
.doclib-ta-c { text-align: center; }
.doclib-muted { color: var(--doclib-muted); }

.doclib-file-media { position: relative; width: 60px; height: 60px; border-radius: 8px; overflow: hidden; background: var(--doclib-stripe); display: flex; align-items: center; justify-content: center; }
.doclib-file-media img { width: 60px; height: 60px; object-fit: cover; }
.doclib-file-ico .doclib-icon { width: 48px; height: 48px; }
.doclib-audio-play {
	position: absolute; inset: 0; margin: auto; width: 40px; height: 40px; border-radius: 50%;
	border: 0; background: rgba(26,120,194,.92); color: #fff;
	display: inline-flex; align-items: center; justify-content: center; cursor: pointer; padding: 0;
	opacity: 1; transition: background .12s ease, transform .12s ease;
}
.doclib-audio-play:hover { background: var(--doclib-accent-dark); transform: scale(1.06); }
.doclib-audio-play svg { fill: currentColor; }
.doclib-audio-play .doclib-ico-pause { display: none; }
.doclib-file-row.is-playing .doclib-audio-play .doclib-ico-play { display: none; }
.doclib-file-row.is-playing .doclib-audio-play .doclib-ico-pause { display: block; }

.doclib-file-track { min-width: 0; }
.doclib-file-track a { color: var(--doclib-text); font-weight: 600; display: block; overflow-wrap: anywhere; word-break: break-word; line-height: 1.35; }
.doclib-file-track a:hover { color: var(--doclib-accent); }
.doclib-audio-time, .doclib-file-size { color: var(--doclib-muted); font-size: .85em; font-variant-numeric: tabular-nums; }
.doclib-file-type { color: var(--doclib-muted); font-size: .82em; font-weight: 600; }
.doclib-file-set { min-width: 0; color: var(--doclib-muted); font-size: .8em; font-weight: 600; overflow-wrap: anywhere; word-break: break-word; line-height: 1.3; }
.doclib-file-lang { min-width: 0; color: var(--doclib-accent); font-size: .78em; font-weight: 700; letter-spacing: .02em; overflow-wrap: anywhere; word-break: break-word; line-height: 1.3; }
.doclib-file-author, .doclib-file-cats { min-width: 0; color: var(--doclib-muted); font-size: .85em; overflow-wrap: anywhere; word-break: break-word; line-height: 1.3; }
.doclib-file-cats a { color: var(--doclib-muted); }
.doclib-file-cats a:hover { color: var(--doclib-accent); }

/* Like: red heart, prominent */
.doclib-file-likes { justify-self: center; }
.doclib-audio-like {
	display: inline-flex; align-items: center; gap: 5px;
	background: none; border: 0; cursor: pointer; color: #e0245e; font-size: .85em; padding: 4px 6px;
}
.doclib-audio-like svg { fill: none; stroke: #e0245e; stroke-width: 1.8; transition: fill .12s ease, transform .1s ease; }
.doclib-audio-like:hover svg { transform: scale(1.12); }
.doclib-audio-like.is-liked svg { fill: #e0245e; }
.doclib-like-count { font-variant-numeric: tabular-nums; color: var(--doclib-muted); }

/* Download: blue button */
.doclib-file-dl { justify-self: end; }
.doclib-audio-dl {
	width: 38px; height: 38px; border-radius: 8px;
	background: var(--doclib-accent); color: #fff;
	display: inline-flex; align-items: center; justify-content: center; transition: background .12s ease;
}
.doclib-audio-dl:hover { background: var(--doclib-accent-dark); color: #fff; }

/* Audio progress bar pinned to the bottom of the row */
.doclib-audio-progress { position: absolute; left: 6px; right: 6px; bottom: 0; height: 4px; background: transparent; cursor: pointer; }
.doclib-file-row.is-playing .doclib-audio-progress { background: #e3e7eb; }
.doclib-audio-fill { display: block; height: 100%; width: 0; background: var(--doclib-accent); border-radius: 2px; }

@media (max-width: 820px) {
	.doclib-file-table { --fcols: 60px minmax(120px,1fr) 56px 56px 48px; }
	.doclib-file-media { width: 52px; height: 52px; }
	.doclib-file-media img { width: 52px; height: 52px; }
	.doclib-file-ico .doclib-icon { width: 42px; height: 42px; }
	.doclib-file-head .h-type,
	.doclib-file-head .h-set,
	.doclib-file-head .h-lang,
	.doclib-file-head .h-author,
	.doclib-file-head .h-cat,
	.doclib-file-type,
	.doclib-file-set,
	.doclib-file-lang,
	.doclib-file-author,
	.doclib-file-cats { display: none; }
}

/* Document detail (Pixabay-style) */
/* On document/category permalink pages: hide the theme's page title/header and
   any constrained width, and remove the top gap they leave behind. */
body.doclib-fullwidth-page .wp-block-post-title,
body.doclib-fullwidth-page .entry-title,
body.doclib-fullwidth-page .page-title,
body.doclib-fullwidth-page .wp-block-post-date,
body.doclib-fullwidth-page .wp-block-post-featured-image,
body.doclib-fullwidth-page header.entry-header { display: none !important; }
body.doclib-fullwidth-page main,
body.doclib-fullwidth-page main > .wp-block-group,
body.doclib-fullwidth-page .wp-block-post-content,
body.doclib-fullwidth-page .entry-content { max-width: none; margin-top: 0 !important; padding-top: 0 !important; }
body.doclib-fullwidth-page .wp-block-spacer { display: none !important; }
body.doclib-fullwidth-page .doclib { margin-top: 0; }

/* Video items in the gallery grid */
.doclib-gallery-item.is-video { position: relative; }
.doclib-gallery-video { width: 100%; height: 100%; object-fit: cover; display: block; background: #11181f; }
.doclib-gallery-item.is-playing .doclib-gallery-video { object-fit: contain; background: #000; }
.doclib-gallery-item.is-playing .doclib-gallery-play,
.doclib-gallery-item.is-playing .doclib-gallery-overlay { opacity: 0; pointer-events: none; }
.doclib-gallery-video-ph { display: flex; align-items: center; justify-content: center; aspect-ratio: 16 / 9; background: #11181f; color: #9aa7b4; }
.doclib-gallery-embedicon { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; background: #2b3a4a; color: #fff; }
.doclib-gallery-embedicon svg { width: 42%; height: 42%; opacity: .9; }
.doclib-gallery-poster { width: 100%; height: 100%; object-fit: cover; display: block; background: #11181f; }
.doclib-gallery-video-ph .doclib-icon { width: 40px; height: 40px; }
.doclib-gallery-play { position: absolute; inset: 0; margin: auto; width: 48px; height: 48px; border-radius: 50%; background: rgba(0,0,0,.55); color: #fff; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: opacity .15s, background .15s; }
.doclib-gallery-play:hover { background: rgba(0,0,0,.78); }

.doclib-related-title { margin-top: 28px; }

/* File set list (document detail, above Related files) */
.doclib-fileset-title { margin-top: 24px; }
.doclib-fileset { list-style: none; margin: 0 0 8px; padding: 0; border: 1px solid var(--doclib-border); border-radius: 10px; overflow: hidden; }
.doclib-fileset-item { display: flex; align-items: center; gap: 12px; padding: 11px 14px; font-size: .92em; }
.doclib-fileset-item + .doclib-fileset-item { border-top: 1px solid var(--doclib-border); }
.doclib-fileset-item .doclib-doc-ico { flex: 0 0 auto; color: var(--doclib-muted); display: inline-flex; }
.doclib-fileset-item .doclib-doc-ico .doclib-icon { width: 22px; height: 22px; }
.doclib-fileset-name { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.doclib-fileset-type { flex: 0 0 auto; font-size: .76em; font-weight: 700; color: var(--doclib-muted); background: var(--doclib-stripe); border-radius: 4px; padding: 2px 7px; }
.doclib-fileset-size { flex: 0 0 auto; color: var(--doclib-muted); font-size: .85em; min-width: 64px; text-align: right; }
.doclib-fileset-dl { flex: 0 0 auto; }
@media (max-width: 560px) {
	.doclib-fileset-size { display: none; }
}

/* Top search bar (detail / category pages) */
.doclib-top-search {
	display: flex; align-items: center; max-width: 720px; margin: 0 auto 22px;
	background: #fff; border: 1px solid var(--doclib-border); border-radius: 10px; overflow: hidden;
	box-shadow: 0 4px 16px rgba(0,0,0,.06);
}
.doclib-top-search-ico { display: flex; align-items: center; padding: 0 6px 0 14px; color: #6b7280; }
.doclib-top-search input[type="search"] { flex: 1 1 auto; border: 0; padding: 12px 10px; font-size: 1em; min-width: 0; background: transparent; color: var(--doclib-text); }
.doclib-top-search input[type="search"]:focus { outline: none; }
.doclib-top-search select { border: 0; border-left: 1px solid var(--doclib-border); background: #fff; padding: 0 10px; color: var(--doclib-text); max-width: 140px; cursor: pointer; }
.doclib-top-search button { border: 0; background: var(--doclib-accent); color: #fff; padding: 0 22px; align-self: stretch; font-weight: 600; cursor: pointer; }
.doclib-top-search button:hover { background: var(--doclib-accent-dark); }

.doclib-detail-page {
	width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	padding: 0 clamp(16px, 4vw, 56px);
	box-sizing: border-box;
}
.doclib-detail { display: grid; grid-template-columns: 1fr 360px; gap: 28px; align-items: start; }
.doclib-detail-extra { margin-top: 30px; }
.doclib-detail-main { min-width: 0; }
.doclib-detail-title { font-size: 1.7em; font-weight: 800; margin: 0 0 16px; }

.doclib-detail-preview { border-radius: 12px; overflow: hidden; background: #11181f; position: relative; margin-bottom: 22px; }
.doclib-detail-preview.is-image { background: var(--doclib-stripe); }
.doclib-detail-preview.is-image img { width: 100%; height: auto; display: block; }
.doclib-detail-preview.is-pdf iframe { width: 100%; height: 560px; border: 0; display: block; background: #fff; }
.doclib-detail-preview.is-video { background: #000; }
.doclib-detail-preview.is-video video { width: 100%; max-height: 70vh; display: block; background: #000; }
.doclib-detail-preview.doclib-embed-video { aspect-ratio: 16 / 9; height: auto; max-height: 70vh; }
.doclib-detail-preview.doclib-embed-video iframe { width: 100%; height: 100%; border: 0; display: block; }
.doclib-detail-preview.doclib-embed-video > * { max-width: 100%; }
.doclib-detail-preview.is-file { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; min-height: 240px; background: var(--doclib-stripe); color: var(--doclib-muted); }
.doclib-detail-fileico .doclib-icon { width: 72px; height: 72px; }
.doclib-detail-filename { font-weight: 600; color: var(--doclib-text); word-break: break-word; padding: 0 16px; text-align: center; }

/* Audio player preview */
.doclib-detail-preview.is-audio { min-height: 280px; background-color: #2b3a4a; background-size: cover; background-position: center; display: flex; flex-direction: column; justify-content: flex-end; padding: 20px; }
.doclib-detail-play {
	position: absolute; left: 0; right: 0; top: 0; bottom: 56px; margin: auto;
	width: 64px; height: 64px; border-radius: 50%; border: 0; cursor: pointer;
	background: var(--doclib-accent); color: #fff; display: inline-flex; align-items: center; justify-content: center; opacity: .96;
}
.doclib-detail-play:hover { background: var(--doclib-accent-dark); }
.doclib-detail-play svg { fill: currentColor; }
.doclib-detail-play .doclib-ico-pause { display: none; }
.doclib-detail-player.is-playing .doclib-detail-play .doclib-ico-play { display: none; }
.doclib-detail-player.is-playing .doclib-detail-play .doclib-ico-pause { display: block; }
.doclib-player-bar { position: relative; display: flex; align-items: center; gap: 10px; color: #fff; }
.doclib-player-bar .doclib-audio-cur, .doclib-player-bar .doclib-audio-dur { font-size: .82em; font-variant-numeric: tabular-nums; min-width: 36px; }
.doclib-player-bar .doclib-audio-dur { text-align: right; }
.doclib-player-bar .doclib-audio-progress { position: static; flex: 1 1 auto; height: 6px; border-radius: 3px; background: rgba(255,255,255,.35); cursor: pointer; }
.doclib-player-bar .doclib-audio-fill { background: #fff; }

.doclib-detail-desc { margin-top: 18px; color: var(--doclib-text); line-height: 1.7; }

/* Right info panel */
.doclib-detail-side { border: 1px solid var(--doclib-border); border-radius: 12px; padding: 18px; background: #fff; }
.doclib-agree-row { display: flex; gap: 8px; align-items: flex-start; font-size: .88em; color: var(--doclib-muted); margin-bottom: 12px; cursor: pointer; }
.doclib-agree-row input { margin-top: 3px; }
.doclib-detail-download {
	display: block; width: 100%; box-sizing: border-box; text-align: center;
	background: var(--doclib-accent); color: #fff; border: 0; cursor: pointer;
	font-family: inherit; font-size: 1rem; font-weight: 700; line-height: 1.2;
	-webkit-appearance: none; appearance: none;
	padding: 13px 18px; border-radius: 8px; transition: background .12s ease;
}
.doclib-detail-download:hover { background: var(--doclib-accent-dark); color: #fff; }
.doclib-detail-download:disabled { opacity: .6; cursor: default; }
.doclib-detail:not(.agreed) .doclib-dl-gated { opacity: .5; pointer-events: none; }
.doclib-shake { animation: doclib-shake .4s; }
@keyframes doclib-shake { 0%,100%{transform:translateX(0)} 25%{transform:translateX(-5px)} 75%{transform:translateX(5px)} }

.doclib-detail-actions { display: flex; flex-wrap: wrap; gap: 8px; margin: 14px 0 6px; }
.doclib-detail-actions .doclib-audio-like { font-size: .95em; }
.doclib-detail-act {
	display: inline-flex; align-items: center; gap: 6px; cursor: pointer;
	background: var(--doclib-stripe); border: 1px solid var(--doclib-border); color: var(--doclib-text);
	border-radius: 8px; padding: 6px 12px; font-size: .88em;
}
.doclib-detail-act:hover { border-color: var(--doclib-accent); color: var(--doclib-accent); }
.doclib-detail-act svg { stroke: currentColor; }
.doclib-detail-save.is-saved { color: var(--doclib-accent); border-color: var(--doclib-accent); }
.doclib-detail-save.is-saved svg { fill: var(--doclib-accent); stroke: var(--doclib-accent); }

/* Share menu */
.doclib-share-wrap { position: relative; display: inline-flex; }
.doclib-share-menu {
	position: absolute; top: calc(100% + 6px); left: 0; z-index: 20;
	min-width: 170px; background: #fff; border: 1px solid var(--doclib-border);
	border-radius: 10px; box-shadow: 0 10px 30px rgba(0,0,0,.14); padding: 6px;
	display: flex; flex-direction: column;
}
.doclib-share-menu[hidden] { display: none; }
.doclib-share-net, .doclib-share-copy {
	display: block; text-align: left; width: 100%; background: none; border: 0; cursor: pointer;
	padding: 8px 12px; border-radius: 6px; font-size: .9em; color: var(--doclib-text);
	border-left: 3px solid transparent;
}
.doclib-share-net:hover, .doclib-share-copy:hover { background: var(--doclib-stripe); color: var(--doclib-text); }
.doclib-share-facebook { border-left-color: #1877f2; }
.doclib-share-x { border-left-color: #000; }
.doclib-share-linkedin { border-left-color: #0a66c2; }
.doclib-share-whatsapp { border-left-color: #25d366; }
.doclib-share-telegram { border-left-color: #229ed9; }
.doclib-share-email { border-left-color: #ea4335; }
.doclib-share-copy { border-top: 1px solid var(--doclib-border); margin-top: 4px; }

.doclib-detail-meta { list-style: none; margin: 14px 0 0; padding: 14px 0 0; border-top: 1px solid var(--doclib-border); }
.doclib-detail-meta li { display: flex; justify-content: space-between; padding: 5px 0; font-size: .9em; }
.doclib-detail-meta li span { color: var(--doclib-muted); }
.doclib-detail-meta li b { color: var(--doclib-text); font-weight: 600; }

.doclib-detail-author { display: flex; align-items: center; gap: 10px; margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--doclib-border); }
.doclib-detail-author img { border-radius: 50%; }
.doclib-detail-author span { font-weight: 600; }

.doclib-detail-files { list-style: none; margin: 14px 0 0; padding: 14px 0 0; border-top: 1px solid var(--doclib-border); }
.doclib-detail-files li { display: flex; align-items: center; gap: 8px; padding: 6px 0; font-size: .9em; }
.doclib-detail-files .doclib-file-name { flex: 1 1 auto; min-width: 0; }
.doclib-detail-files .doclib-doc-ico .doclib-icon { width: 20px; height: 20px; }

@media (max-width: 820px) {
	.doclib-detail { grid-template-columns: 1fr; }
	.doclib-detail-preview.is-pdf iframe { height: 70vw; }
	.doclib-top-search { flex-wrap: wrap; }
	.doclib-top-search select { flex: 1 0 50%; border-left: 0; border-top: 1px solid var(--doclib-border); max-width: none; }
	.doclib-top-search button { flex: 1 0 40%; padding: 11px; }
}

/* ---------------- Home (Pixabay-style) ---------------- */
.doclib-layout-home { --doclib-hero-from: #0e5aa0; --doclib-hero-to: #1c86c9; }
/* Full-bleed hero: breaks out of the theme container so it spans the page on
   any template (constrained or full-width). */
.doclib-layout-home .doclib-hero {
	width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	background: linear-gradient(135deg, var(--doclib-hero-from), var(--doclib-hero-to));
	padding: 56px 20px 44px;
	color: #fff;
	box-sizing: border-box;
}
.doclib-hero-inner { max-width: 880px; margin: 0 auto; text-align: center; }
.doclib-hero-title { color: #fff; font-size: 2.2em; font-weight: 800; margin: 0 0 22px; line-height: 1.2; }
/* Language switcher (dropdown) */
.doclib-langs { position: relative; display: inline-block; }
.doclib-langs > summary { list-style: none; cursor: pointer; display: inline-flex; align-items: center; gap: 7px; padding: 6px 12px; border-radius: 20px; font-weight: 600; font-size: .9em; user-select: none; }
.doclib-langs > summary::-webkit-details-marker { display: none; }
.doclib-lang-globe { display: inline-flex; opacity: .85; }
.doclib-lang-caret { display: inline-flex; transition: transform .15s ease; }
.doclib-langs[open] > summary .doclib-lang-caret { transform: rotate(180deg); }
.doclib-lang-menu { position: absolute; right: 0; z-index: 60; margin-top: 6px; min-width: 190px; max-height: 60vh; overflow-y: auto; background: #fff; color: #1f2933; border: 1px solid var(--doclib-border); border-radius: 12px; box-shadow: 0 10px 32px rgba(0,0,0,.18); padding: 6px; }
.doclib-lang-item { display: block; padding: 8px 12px; border-radius: 8px; text-decoration: none; color: #1f2933; font-size: .92em; font-weight: 500; white-space: nowrap; }
.doclib-lang-item:hover { background: var(--doclib-stripe); color: #1f2933; }
.doclib-lang-item.is-active { background: var(--doclib-accent); color: #fff; }

/* On the blue hero */
.doclib-hero { position: relative; }
.doclib-hero-langs { position: absolute; top: 14px; right: 18px; z-index: 6; display: flex; align-items: center; gap: 10px; }
.doclib-hero-langs-label { color: #fff; font-size: .85em; font-weight: 600; opacity: .92; }
.doclib-hero-langs .doclib-langs > summary { background: rgba(255,255,255,.16); color: #fff; }
.doclib-hero-langs .doclib-langs > summary:hover { background: rgba(255,255,255,.28); }
@media (max-width: 640px) {
	.doclib-hero-langs { position: static; justify-content: flex-end; margin: 0 0 10px; padding: 0 14px; }
	.doclib-hero-langs-label { display: none; }
}

/* On the light top bar (category / file detail) — anchored top-right like the homepage */
.doclib-top-bar { display: flex; align-items: center; justify-content: flex-end; gap: 10px; max-width: 900px; margin: 0 auto 10px; }
.doclib-top-langs-label { font-size: .85em; font-weight: 600; color: var(--doclib-muted, #5b6b7b); }
.doclib-top-bar .doclib-langs > summary { background: rgba(120,130,140,.12); color: var(--doclib-text); }
.doclib-top-bar .doclib-langs > summary:hover { background: rgba(120,130,140,.2); }

.doclib-hero-tabs-wrap { display: flex; align-items: center; gap: 4px; max-width: 800px; margin: 0 auto 16px; }
.doclib-hero-tabs { display: flex; flex-wrap: nowrap; gap: 4px; justify-content: flex-start; overflow-x: auto; scroll-behavior: smooth; -ms-overflow-style: none; scrollbar-width: none; flex: 1 1 auto; }
.doclib-hero-tabs::-webkit-scrollbar { display: none; height: 0; }
.doclib-tabs-nav { flex: 0 0 auto; width: 32px; height: 32px; border: 0; border-radius: 50%; background: rgba(255,255,255,.16); color: #fff; cursor: pointer; display: flex; align-items: center; justify-content: center; padding: 0; transition: background .15s, opacity .15s; }
.doclib-tabs-nav:hover { background: rgba(255,255,255,.3); }
.doclib-tabs-nav.is-disabled { opacity: 0; pointer-events: none; }
.doclib-hero-tabs .doclib-tab { color: #e7edf3; font-weight: 600; font-size: .92em; white-space: nowrap; padding: 7px 14px; border-radius: 20px; flex: 0 0 auto; }
.doclib-hero-tabs .doclib-tab:hover { background: rgba(255,255,255,.14); color: #fff; }
.doclib-hero-tabs .doclib-tab.is-active { background: #fff; color: #1f2933; }
.doclib-hero-search { display: flex; align-items: center; gap: 0; max-width: 760px; margin: 0 auto; background: #fff; border-radius: 10px; overflow: hidden; box-shadow: 0 8px 30px rgba(0,0,0,.18); }
.doclib-hero-search-ico { display: flex; align-items: center; padding: 0 8px 0 16px; color: #6b7280; }
.doclib-hero-search input[type="search"] { flex: 1 1 auto; border: 0; padding: 15px 10px; font-size: 1em; min-width: 0; color: #1f2933; background: transparent; }
.doclib-hero-search input[type="search"]:focus { outline: none; }
.doclib-hero-search select { border: 0; border-left: 1px solid var(--doclib-border); background: #fff; padding: 0 12px; color: #1f2933; max-width: 150px; cursor: pointer; }
.doclib-hero-search button { -webkit-appearance: none; appearance: none; border: 0; border-radius: 0; box-shadow: none; outline: 0; margin: 0; background: var(--doclib-accent); color: #fff; padding: 0 26px; align-self: stretch; font-weight: 600; cursor: pointer; }
.doclib-hero-search button:hover { background: var(--doclib-accent-dark); }
.doclib-hero-chips { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin-top: 18px; }
.doclib-hero-chips .doclib-chip { color: #e7edf3; font-size: .85em; padding: 5px 13px; border-radius: 16px; background: rgba(255,255,255,.14); }
.doclib-hero-chips .doclib-chip:hover { background: rgba(255,255,255,.28); color: #fff; }
/* Full-bleed body so the homepage content spans the page too. */
.doclib-home-body {
	width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	padding: 32px clamp(16px, 4vw, 56px) 0;
	box-sizing: border-box;
}
.doclib-section-title { font-size: 1.35em; font-weight: 700; margin: 8px 0 18px; }
.doclib-back-home { margin-top: 16px; }
.doclib-back-home a { color: var(--doclib-accent); }
.doclib-cat-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 16px; }
.doclib-cat-card { display: flex; align-items: center; justify-content: space-between; gap: 12px; border: 1px solid var(--doclib-border); border-radius: 10px; padding: 18px 18px; background: #fff; transition: box-shadow .15s ease, transform .15s ease; }
.doclib-cat-card:hover { box-shadow: 0 6px 20px rgba(0,0,0,.08); transform: translateY(-2px); }
.doclib-cat-card-info { display: flex; flex-direction: column; min-width: 0; }
.doclib-cat-card-name { font-weight: 700; color: var(--doclib-text); font-size: 1.05em; word-break: break-word; }
.doclib-cat-card-count { color: var(--doclib-muted); font-size: .85em; margin-top: 2px; }
.doclib-cat-card-ico { color: var(--doclib-accent); flex: 0 0 auto; }
.doclib-cat-card-ico .doclib-icon { width: 40px; height: 40px; }
@media (max-width: 600px) {
	.doclib-layout-home .doclib-hero { padding: 34px 14px 28px; }
	.doclib-hero-title { font-size: 1.5em; }
	.doclib-hero-search { flex-wrap: wrap; }
	.doclib-hero-search select { max-width: none; flex: 1 0 50%; border-left: 0; border-top: 1px solid var(--doclib-border); }
	.doclib-hero-search button { flex: 1 0 40%; padding: 12px; }
}

/* Detail description (localised) */
.doclib-detail-summary { margin: 0 0 12px; font-size: 1.02em; font-weight: 600; line-height: 1.55; color: var(--doclib-text, #1f2933); }
.doclib-detail-desc { margin: 0 0 14px; color: var(--doclib-muted, #5b6b7b); font-size: .95em; line-height: 1.55; }

/* Download request message + built-in CAPTCHA */
.doclib-dl-msg{margin:.5rem 0 0;font-size:.92rem;color:#334155;}
.doclib-dl-note{margin-bottom:.35rem;color:#b45309;}
.doclib-cap{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;}
.doclib-cap-input{width:5rem;padding:.35rem .5rem;border:1px solid #cbd5e1;border-radius:.4rem;}
.doclib-cap-go{padding:.35rem .8rem;border:0;border-radius:.4rem;background:#2563eb;color:#fff;cursor:pointer;}
.doclib-cap-go:hover{background:#1d4ed8;}

/* Ad slots */
.doclib-ad{margin:22px 0;text-align:center;}
.doclib-ad img{max-width:100%;height:auto;}
.doclib-ad:empty{display:none;}
.doclib-file-adrow{padding:14px 6px;text-align:center;border-bottom:1px solid var(--doclib-border);}
.doclib-ad-detail-above-download{margin:0 0 16px;}
.doclib-ad-detail-below-download{margin:18px 0 0;}
.doclib-ad-top{margin:22px auto;}
