/**
 * Neo-Social — Βιβλιοθήκη Αρχείων.
 *
 * Ακολουθεί το χρώμα του Πυρήνα όπου υπάρχει, με δικό της fallback ώστε να
 * φαίνεται σωστά και σε θέμα που δεν ορίζει μεταβλητές.
 */

.nslb-wrap {
	/* Χωρίς το inline του πρόσθετου: το χρώμα του Neo-Social (--neo-primary). */
	--nslb-primary: var(--neo-primary, #1D9E75);
	--nslb-on-primary: #fff;
	--nslb-hover: #1a8e69;
	--nslb-tint-line: #5dcaa5;
	--nslb-ink: #1a1f24;
	--nslb-muted: #5b6670;
	--nslb-line: #e3e6ea;
	--nslb-surface: #fff;
	--nslb-soft: #f5f7f8;
	--nslb-tint: #e1f5ee;
	--nslb-tint-ink: #085041;
	color: var(--nslb-ink);
	font-size: 15px;
	line-height: 1.5;
}

.nslb-wrap * { box-sizing: border-box; }
.nslb-wrap .dashicons { width: 18px; height: 18px; font-size: 18px; vertical-align: -4px; }

/* --- Καρτέλες --- */
.nslb-nav { display: flex; gap: 4px; padding: 5px; margin: 0 0 16px; background: var(--nslb-soft); border-radius: 999px; }
.nslb-nav-btn {
	flex: 1; display: inline-flex; align-items: center; justify-content: center; gap: 6px;
	padding: 9px 14px; border-radius: 999px; text-decoration: none; color: var(--nslb-muted); font-weight: 500;
}
.nslb-nav-btn:hover { color: var(--nslb-ink); }
.nslb-nav-btn.is-active { background: var(--nslb-primary); color: var(--nslb-on-primary); }

/* --- Κουμπιά --- */
.nslb-btn {
	display: inline-flex; align-items: center; gap: 6px; padding: 8px 14px;
	border: 1px solid var(--nslb-line); border-radius: 8px; background: var(--nslb-surface);
	color: var(--nslb-ink); text-decoration: none; font-size: 14px; cursor: pointer; line-height: 1.3;
}
.nslb-btn:hover { border-color: #c9ced4; color: var(--nslb-ink); }
.nslb-btn.is-primary { background: var(--nslb-primary); border-color: var(--nslb-primary); color: var(--nslb-on-primary); }
.nslb-btn.is-primary:hover { background: var(--nslb-hover); border-color: var(--nslb-hover); color: var(--nslb-on-primary); }

.nslb-icon-btn {
	display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px;
	border: 1px solid transparent; border-radius: 8px; background: none; color: var(--nslb-muted);
	cursor: pointer; text-decoration: none; padding: 0;
}
.nslb-icon-btn:hover { background: var(--nslb-soft); color: var(--nslb-ink); }
.nslb-icon-btn.is-danger:hover { background: #fdeaea; color: #a32d2d; }
.nslb-inline-form { display: inline; margin: 0; }

/* --- Μηνύματα --- */
.nslb-notice { display: flex; align-items: flex-start; gap: 8px; padding: 10px 14px; border-radius: 8px; margin-bottom: 14px; }
.nslb-notice.is-ok { background: var(--nslb-tint); color: var(--nslb-tint-ink); }
.nslb-notice.is-error { background: #fdeaea; color: #a32d2d; }

/* --- Αναζήτηση και φίλτρα --- */
.nslb-filters { margin-bottom: 16px; }
.nslb-search { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; }
.nslb-search .dashicons { color: var(--nslb-muted); flex: none; }
.nslb-search input[type="search"] {
	flex: 1; min-width: 0; padding: 9px 12px; border: 1px solid var(--nslb-line);
	border-radius: 8px; font-size: 15px; background: var(--nslb-surface);
}

.nslb-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; }
.nslb-chip {
	padding: 5px 13px; border: 1px solid var(--nslb-line); border-radius: 999px;
	text-decoration: none; color: var(--nslb-muted); font-size: 14px; background: var(--nslb-surface);
}
.nslb-chip:hover { color: var(--nslb-ink); }
.nslb-chip.is-active { background: var(--nslb-tint); border-color: var(--nslb-tint-line); color: var(--nslb-tint-ink); }

.nslb-selects { display: flex; flex-wrap: wrap; gap: 8px; }
.nslb-selects select { padding: 8px 10px; border: 1px solid var(--nslb-line); border-radius: 8px; background: var(--nslb-surface); font-size: 14px; }

/* --- Λίστα αρχείων --- */
.nslb-list { border: 1px solid var(--nslb-line); border-radius: 12px; background: var(--nslb-surface); overflow: hidden; }
.nslb-file { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-top: 1px solid var(--nslb-line); }
.nslb-file:first-child { border-top: 0; }

.nslb-thumb { flex: none; width: 48px; height: 48px; border-radius: 8px; overflow: hidden; display: flex; align-items: center; justify-content: center; background: var(--nslb-soft); }
.nslb-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.nslb-thumb.is-icon .dashicons { width: 24px; height: 24px; font-size: 24px; color: var(--nslb-primary); }

.nslb-file-main { flex: 1; min-width: 0; }
.nslb-file-title { font-weight: 600; word-break: break-word; }
.nslb-file-tags { display: flex; flex-wrap: wrap; gap: 6px; margin: 4px 0; }
.nslb-tag {
	display: inline-flex; align-items: center; gap: 4px; padding: 2px 9px; border-radius: 999px;
	font-size: 12px; background: var(--nslb-soft); color: var(--nslb-muted);
}
.nslb-tag.is-cat { background: var(--nslb-tint); color: var(--nslb-tint-ink); }
.nslb-tag .dashicons { width: 14px; height: 14px; font-size: 14px; vertical-align: -2px; }

.nslb-file-meta { font-size: 12px; color: var(--nslb-muted); }
.nslb-file-meta .dashicons { width: 14px; height: 14px; font-size: 14px; vertical-align: -2px; margin-right: 2px; }
.nslb-dot { color: #b9c0c7; }
.nslb-owner { color: var(--nslb-tint-ink); text-decoration: none; font-weight: 500; }
.nslb-owner-go .dashicons { width: 12px; height: 12px; font-size: 12px; }
.nslb-file-acts { flex: none; display: flex; align-items: center; gap: 2px; }

/* --- Άδειο --- */
.nslb-empty { text-align: center; padding: 30px 16px; color: var(--nslb-muted); }
.nslb-empty .dashicons { width: 32px; height: 32px; font-size: 32px; color: #c3cad1; }
.nslb-empty-title { font-weight: 600; color: var(--nslb-ink); margin: 8px 0 2px; }
.nslb-empty-hint { margin: 0; font-size: 14px; }

.nslb-more { text-align: center; margin: 14px 0 0; }
.nslb-back a { color: var(--nslb-muted); text-decoration: none; font-size: 14px; }
.nslb-owner-title { font-size: 20px; margin: 6px 0 14px; }

/* --- Τα αρχεία μου --- */
.nslb-mine-head {
	display: flex; flex-wrap: wrap; align-items: center; gap: 10px;
	padding: 14px; border: 1px solid var(--nslb-line); border-radius: 12px;
	background: var(--nslb-surface); margin-bottom: 14px;
}
.nslb-as { display: flex; align-items: center; gap: 8px; margin: 0; }
.nslb-as label { font-size: 13px; color: var(--nslb-muted); }
.nslb-as select { padding: 7px 10px; border: 1px solid var(--nslb-line); border-radius: 8px; max-width: 220px; background: var(--nslb-surface); }
.nslb-as-name { font-weight: 600; }
.nslb-mine-acts { display: flex; gap: 8px; margin-left: auto; }

.nslb-space { flex: 1 0 100%; }
.nslb-space-row { display: flex; justify-content: space-between; font-size: 12px; color: var(--nslb-muted); }
.nslb-bar { height: 6px; border-radius: 999px; background: var(--nslb-soft); margin-top: 4px; overflow: hidden; }
.nslb-bar i { display: block; height: 6px; background: var(--nslb-primary); border-radius: 999px; }

.nslb-crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: 14px; margin-bottom: 10px; }
.nslb-crumbs a { color: var(--nslb-muted); text-decoration: none; }
.nslb-crumbs a:last-child { color: var(--nslb-ink); font-weight: 500; }

.nslb-folders { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 10px; margin-bottom: 14px; }
.nslb-folder { border: 1px solid var(--nslb-line); border-radius: 10px; padding: 10px 12px; background: var(--nslb-surface); }
.nslb-folder-link { display: flex; align-items: center; gap: 8px; text-decoration: none; color: var(--nslb-ink); font-weight: 600; }
.nslb-folder-link .dashicons { color: var(--nslb-primary); width: 20px; height: 20px; font-size: 20px; }
.nslb-folder-name { word-break: break-word; }
.nslb-folder-meta { font-size: 12px; color: var(--nslb-muted); margin: 4px 0; }
.nslb-folder-foot { display: flex; align-items: center; justify-content: space-between; gap: 6px; }

/* --- Φόρμες --- */
.nslb-panel { border: 1px solid var(--nslb-line); border-radius: 12px; background: var(--nslb-surface); padding: 14px; margin-bottom: 14px; }
.nslb-panel-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.nslb-panel-head h3 { margin: 0; font-size: 16px; }
.nslb-panel-foot { display: flex; gap: 8px; margin: 14px 0 0; }

.nslb-field { display: flex; flex-direction: column; gap: 4px; margin-bottom: 12px; }
.nslb-field > label { font-size: 13px; color: var(--nslb-muted); }
.nslb-field input[type="text"],
.nslb-field input[type="file"],
.nslb-field select,
.nslb-field textarea {
	width: 100%; padding: 9px 11px; border: 1px solid var(--nslb-line); border-radius: 8px;
	font-size: 15px; font-family: inherit; background: var(--nslb-surface); color: var(--nslb-ink);
}
.nslb-field textarea { resize: vertical; }
.nslb-hint { font-size: 12px; color: var(--nslb-muted); }
.nslb-field[hidden] { display: none; }

.nslb-checks { display: flex; flex-wrap: wrap; gap: 12px; }
.nslb-check { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; }
.nslb-file-name { color: var(--nslb-muted); font-size: 14px; margin: 0 0 12px; }
.nslb-file-error { color: #a32d2d; font-size: 13px; }

.nslb-embed-top { margin: 0 0 12px; }
.nslb-profile-btn .dashicons { vertical-align: -4px; }

/* --- Το θέμα του site δεν υπογραμμίζει τα δικά μας κουμπιά --- */
.nslb-wrap a.nslb-nav-btn,
.nslb-wrap a.nslb-nav-btn:hover,
.nslb-wrap a.nslb-nav-btn:focus,
.nslb-wrap a.nslb-btn,
.nslb-wrap a.nslb-btn:hover,
.nslb-wrap a.nslb-btn:focus,
.nslb-wrap a.nslb-chip,
.nslb-wrap a.nslb-chip:hover,
.nslb-wrap a.nslb-chip:focus,
.nslb-wrap a.nslb-icon-btn,
.nslb-wrap a.nslb-icon-btn:hover,
.nslb-wrap .nslb-folder-link,
.nslb-wrap .nslb-folder-link:hover,
.nslb-wrap .nslb-crumbs a,
.nslb-wrap .nslb-crumbs a:hover,
.nslb-wrap .nslb-owner,
.nslb-wrap .nslb-back a { text-decoration: none !important; box-shadow: none; }

.nslb-wrap .nslb-crumbs a:hover,
.nslb-wrap .nslb-owner:hover { color: var(--nslb-tint-ink); text-decoration: underline !important; }

/* --- Φόρμες: κενό πριν από το κουμπί, «σβηστό» κουτάκι ροής --- */
.nslb-feed { margin-top: 4px; }
.nslb-check.is-off { color: var(--nslb-muted); opacity: 0.7; }
.nslb-panel-foot { margin-top: 18px; }
.nslb-note { display: flex; gap: 6px; font-size: 13px; color: var(--nslb-muted); background: var(--nslb-soft); padding: 8px 10px; border-radius: 8px; margin: 4px 0 0; }
.nslb-note .dashicons { flex: none; }
.nslb-folder-acts { display: inline-flex; align-items: center; gap: 2px; }
.nslb-hint[hidden] { display: none; }

/* --- Κάδος --- */
.nslb-trash-link {
	flex: 1 0 100%; display: inline-flex; align-items: center; gap: 6px;
	font-size: 13px; color: var(--nslb-muted); text-decoration: none !important;
}
.nslb-trash-link:hover { color: var(--nslb-ink); }
.nslb-panel-foot .nslb-inline-form { display: inline-block; }

/* --- Κοινή χρήση με άτομα --- */
.nslb-tag.is-share { background: #e7eef7; color: #0c447c; }
.nslb-share-note { font-size: 13px; color: var(--nslb-muted); font-style: italic; margin: 2px 0; }
.nslb-people { display: flex; flex-wrap: wrap; gap: 6px; }
.nslb-person {
	display: inline-flex; align-items: center; gap: 4px; padding: 3px 4px 3px 10px;
	border-radius: 999px; background: #e7eef7; color: #0c447c; font-size: 13px;
}
.nslb-person .dashicons { width: 16px; height: 16px; font-size: 16px; }
.nslb-person .nslb-icon-btn { width: 24px; height: 24px; color: #0c447c; }
.nslb-checks.is-people { flex-direction: column; gap: 6px; max-height: 220px; overflow: auto; }
.nslb-share-search { margin: 0; }

/* --- Προειδοποίηση χώρου --- */
.nslb-warn {
	flex: 1 0 100%; display: flex; align-items: center; gap: 8px;
	padding: 9px 12px; border-radius: 8px; font-size: 13px;
	background: #faeeda; color: #854f0b;
}
.nslb-warn.is-full { background: #fdeaea; color: #a32d2d; }
.nslb-bar.is-warn i { background: #ba7517; }

/* --- Επιλογή, μαζικές ενέργειες, λήξη, λήψεις --- */
.nslb-pick { flex: none; display: inline-flex; align-items: center; margin: 0; }
.nslb-pick input { width: 16px; height: 16px; margin: 0 !important; }
.nslb-file.is-expired { opacity: 0.72; }
.nslb-tag.is-expiry { background: #faeeda; color: #854f0b; }
.nslb-file.is-expired .nslb-tag.is-expiry { background: #fdeaea; color: #a32d2d; }
.nslb-who-link { color: inherit; text-decoration: none !important; }
.nslb-who-link:hover { color: var(--nslb-tint-ink); }

.nslb-bulk {
	display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap;
	margin-top: 10px; padding: 10px 12px; border: 1px solid var(--nslb-line);
	border-radius: 10px; background: var(--nslb-surface);
}
.nslb-bulk-count { font-size: 13px; color: var(--nslb-muted); }
.nslb-bulk-count.is-on { color: var(--nslb-ink); font-weight: 500; }
.nslb-bulk-acts { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.nslb-bulk select { padding: 8px 10px; border: 1px solid var(--nslb-line); border-radius: 8px; background: var(--nslb-surface); max-width: 220px; }
.nslb-btn.is-danger { color: #a32d2d; border-color: #e7c9c9; }
.nslb-btn.is-danger:hover { background: #fdeaea; border-color: #d99; }
.nslb-bulk-form { margin: 0; }

.nslb-who { list-style: none; margin: 0 0 10px; padding: 0; }
.nslb-who li { display: flex; align-items: center; gap: 8px; padding: 7px 0; border-top: 1px solid var(--nslb-line); }
.nslb-who li:first-child { border-top: 0; }
.nslb-who-name { flex: 1; min-width: 0; }
.nslb-who-date { font-size: 12px; color: var(--nslb-muted); }

/* --- Ουρά ανεβάσματος --- */
.nslb-drop {
	position: relative; display: flex; flex-direction: column; align-items: center; gap: 4px;
	padding: 20px 14px; border: 1px dashed var(--nslb-line); border-radius: 10px;
	text-align: center; color: var(--nslb-muted); background: var(--nslb-surface); cursor: pointer;
}
.nslb-drop:hover, .nslb-drop.is-over { border-color: var(--nslb-primary); background: var(--nslb-soft); }
.nslb-drop .dashicons { width: 22px; height: 22px; font-size: 22px; color: var(--nslb-primary); }
.nslb-drop-text { color: var(--nslb-ink); }
.nslb-drop input[type="file"] { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; }

.nslb-queue { border: 1px solid var(--nslb-line); border-radius: 10px; margin-bottom: 12px; }
.nslb-queue[hidden] { display: none; }
.nslb-qrow { display: flex; align-items: center; gap: 10px; padding: 9px 12px; border-top: 1px solid var(--nslb-line); }
.nslb-qrow:first-child { border-top: 0; }
.nslb-qrow > .dashicons { flex: none; color: var(--nslb-muted); }
.nslb-qrow.is-ok > .dashicons { color: var(--nslb-primary); }
.nslb-qrow.is-err > .dashicons { color: #a32d2d; }
.nslb-qmain { flex: 1; min-width: 0; }
.nslb-qmain input[type="text"] { width: 100%; padding: 6px 9px; border: 1px solid var(--nslb-line); border-radius: 6px; font-size: 14px; }
.nslb-qtitle { font-weight: 500; }
.nslb-qmeta { font-size: 12px; color: var(--nslb-muted); word-break: break-all; }
.nslb-qok { font-size: 12px; color: var(--nslb-tint-ink); }
.nslb-queue-note { font-size: 12px; color: var(--nslb-muted); }
.nslb-qrow .nslb-bar { height: 5px; margin-top: 5px; }
.nslb-qrow .nslb-bar i { height: 5px; }

/*
 * --- Κουτάκια ---
 * Πολλά θέματα βάζουν στο label display:block και μηδενίζουν το margin του
 * checkbox, οπότε το κουτάκι κολλάει πάνω στο κείμενο. Εδώ ορίζονται ρητά,
 * με αρκετή ειδικότητα ώστε να μην τα πατάει το θέμα.
 */
.nslb-wrap label.nslb-check,
.nslb-wrap .nslb-field > label.nslb-check {
	display: inline-flex !important;
	align-items: center;
	gap: 8px;
	margin: 0;
	font-size: 14px;
	color: var(--nslb-ink);
	cursor: pointer;
	line-height: 1.4;
}
.nslb-wrap label.nslb-check input[type="checkbox"] {
	flex: none;
	margin: 0 !important;
	width: 16px;
	height: 16px;
	position: static;
	vertical-align: middle;
}
.nslb-wrap label.nslb-check.is-off { color: var(--nslb-muted); cursor: default; }
.nslb-wrap .nslb-checks { gap: 10px 18px; }

/* --- Κωδικός --- */
.nslb-tag.is-lock { background: #faeeda; color: #854f0b; }
.nslb-thumb.is-lock .dashicons { color: #ba7517; }
.nslb-pw-row { display: flex; gap: 6px; align-items: center; }
.nslb-pw-row input { flex: 1; min-width: 0; }
.nslb-pw-row .nslb-icon-btn { border: 1px solid var(--nslb-line); }
.nslb-pw-state { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; color: #854f0b; margin-bottom: 6px; }
.nslb-pw input[disabled] { opacity: 0.5; }

.nslb-modal {
	position: fixed; inset: 0; z-index: 100000; background: rgba(0, 0, 0, 0.45);
	display: flex; align-items: center; justify-content: center; padding: 16px;
	font-size: 15px; line-height: 1.5; color: #1a1f24;
	--nslb-primary: var(--neo-primary, #1D9E75); --nslb-on-primary: #fff; --nslb-hover: #1a8e69; --nslb-line: #e3e6ea; --nslb-muted: #5b6670;
	--nslb-soft: #f5f7f8; --nslb-surface: #fff; --nslb-ink: #1a1f24; --nslb-tint: #e1f5ee; --nslb-tint-ink: #085041; --nslb-tint-line: #5dcaa5;
}
.nslb-modal * { box-sizing: border-box; }
.nslb-modal .dashicons { width: 18px; height: 18px; font-size: 18px; vertical-align: -4px; }
.nslb-modal-box { background: #fff; border-radius: 12px; padding: 18px; width: 100%; max-width: 380px; box-shadow: 0 10px 40px rgba(0, 0, 0, 0.2); }
.nslb-modal-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 4px; }
.nslb-modal-head .dashicons-lock { color: #ba7517; }
.nslb-modal .nslb-hint { display: block; margin: 0 0 12px; font-size: 13px; color: #5b6670; }
.nslb-modal .nslb-field { display: flex; flex-direction: column; gap: 4px; margin-bottom: 10px; }
.nslb-modal .nslb-field label { font-size: 13px; color: #5b6670; }
.nslb-modal input { width: 100%; padding: 10px 12px; border: 1px solid #d6dadf; border-radius: 8px; font-size: 15px; }
.nslb-modal .nslb-btn {
	display: inline-flex; align-items: center; gap: 6px; padding: 9px 14px; border: 1px solid #e3e6ea;
	border-radius: 8px; background: #fff; color: #1a1f24; text-decoration: none !important; font-size: 14px; cursor: pointer;
}
.nslb-modal .nslb-btn.is-primary { background: var(--nslb-primary); border-color: var(--nslb-primary); color: var(--nslb-on-primary); }
.nslb-modal .nslb-btn[disabled] { opacity: 0.6; cursor: default; }
.nslb-modal .nslb-icon-btn { width: 32px; height: 32px; border: 0; background: none; cursor: pointer; border-radius: 8px; color: #5b6670; }
.nslb-modal .nslb-file-error { color: #a32d2d; font-size: 13px; margin: 0 0 10px; }
.nslb-modal .nslb-notice { display: flex; gap: 8px; padding: 10px 12px; border-radius: 8px; background: var(--nslb-tint); color: var(--nslb-tint-ink); margin: 0 0 12px; }
.nslb-modal-acts { display: flex; gap: 8px; flex-wrap: wrap; }

@media (max-width: 600px) {
	.nslb-mine-acts { margin-left: 0; width: 100%; }
	.nslb-mine-acts .nslb-btn { flex: 1; justify-content: center; }
	.nslb-selects select, .nslb-selects .nslb-btn { flex: 1 1 45%; }
	.nslb-file { align-items: flex-start; }
	.nslb-file-acts { flex-direction: column; }
	.nslb-thumb { width: 40px; height: 40px; }
}
