/* Phase-4 Thymeleaf panel — minimal baseline styles. */
body {
	margin: 0;
	font-family: Arial, Helvetica, sans-serif;
	background: #f4f5f7;
	color: #222;
}

.panel-login .login-box {
	max-width: 340px;
	margin: 8vh auto;
	padding: 24px;
	background: #fff;
	border: 1px solid #ddd;
	border-radius: 6px;
}

.login-box h1 {
	margin-top: 0;
	font-size: 20px;
}

.login-box label {
	display: block;
	margin: 12px 0 4px;
	font-size: 13px;
}

.login-box input {
	width: 100%;
	box-sizing: border-box;
	padding: 8px;
	border: 1px solid #ccc;
	border-radius: 4px;
}

.login-box button {
	margin-top: 16px;
	width: 100%;
	padding: 9px;
	border: 0;
	border-radius: 4px;
	background: #1a73e8;
	color: #fff;
	cursor: pointer;
}

.login-error {
	margin: 12px 0;
	padding: 8px;
	background: #fdecea;
	border: 1px solid #f5c6c0;
	border-radius: 4px;
	color: #a33;
	font-size: 13px;
}

.panel-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 10px 20px;
	background: #fff;
	border-bottom: 1px solid #ddd;
}

/* Sidebar layout (mirrors the legacy .portatif left menu): fixed dark
   sidebar on the left, header + content shifted right on panel pages.
   Admin and login pages keep the full-width layout. */
.panel-nav.portatif {
	position: fixed;
	left: 0;
	top: 0;
	bottom: 0;
	width: 190px;
	background: #3b4549;
	overflow-y: auto;
}

body:not(.panel-admin):not(.panel-login) .panel-header,
body:not(.panel-admin):not(.panel-login) .panel-content {
	margin-left: 190px;
}

/* Sidebar logo band.
   logo.png is a 150x60 tile with its own SOLID BLUE background (#1fa9db, no
   alpha). This block used to paint #fff behind it across the full 190px
   sidebar, so a 150px blue tile sat centred on white with ~20px of white
   showing either side -- against the #3b4549 sidebar that read as white bars
   around a too-small logo.
   The legacy panel did not have this: its rule pinned width:150px, exactly the
   logo, so the white never showed. The migration widened the sidebar to 190px
   and kept the block full-width.
   Matching the band to the logo's own blue makes the header one continuous
   brand strip at any sidebar width, which is what the 150px pin was achieving
   by coincidence. */
.portatifbaslik {
	margin: 0;
	height: 60px;
	line-height: 60px;
	text-align: center;
	background: #1fa9db;
	font-size: 14px;
	font-weight: normal;
}

.portatifbaslik img {
	display: block;
	margin: 0 auto;
	/* the tile is exactly 150x60; never let it scale up and blur */
	width: 150px;
	height: 60px;
}

.listeliste,
.listeliste ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.listeliste a {
	display: block;
	text-align: left;
	color: #77858b;
	text-decoration: none;
	border-bottom: 1px solid #444d51;
	padding: 14px 12px 14px 20px;
	font-size: 14px;
}

.listeliste a:hover,
.listeliste a.aktif,
.listeliste a.menuaktif {
	color: #fff;
}

/* collapsible submenus (legacy .ayarlarul): indented, slightly darker */
.ayarlarul {
	background: rgba(0, 0, 0, 0.15);
}

.ayarlarul a {
	padding-left: 36px;
	font-size: 13px;
}

/* group headers get a caret so they read as collapsible */
.listeliste a.acilir::after {
	content: "\25BE";
	float: right;
	opacity: 0.6;
}

/* legacy .havuz block: separated pool section at the bottom */
.listeliste ul.havuz {
	margin-top: 24px;
	background: rgba(0, 0, 0, 0.2);
	border-top: 1px solid rgba(0, 0, 0, 0.25);
}

.panel-content {
	padding: 20px;
}

/* Phase-4 slice 2: content list grid. */

.content-toolbar {
	display: flex;
	gap: 8px;
	margin: 12px 0;
}

.content-toolbar input[type="text"] {
	flex: 1;
	padding: 7px;
	border: 1px solid #ccc;
	border-radius: 4px;
}

.content-toolbar select,
.content-toolbar button {
	padding: 7px;
	border: 1px solid #ccc;
	border-radius: 4px;
	background: #fff;
}

.content-toolbar button {
	background: #1a73e8;
	border-color: #1a73e8;
	color: #fff;
	cursor: pointer;
}

.content-grid {
	width: 100%;
	border-collapse: collapse;
	background: #fff;
}

.content-grid th,
.content-grid td {
	padding: 8px 10px;
	border-bottom: 1px solid #eee;
	text-align: left;
	font-size: 14px;
}

.content-grid th {
	background: #fafafa;
	border-bottom: 1px solid #ddd;
}

.content-status {
	display: inline-block;
	padding: 2px 8px;
	border-radius: 10px;
	font-size: 12px;
}

.status-published {
	background: #e6f4ea;
	color: #1e7e34;
}

.status-processing {
	background: #fff8e1;
	color: #b26a00;
}

.status-pending {
	background: #eceff1;
	color: #546e7a;
}

.content-empty {
	padding: 20px;
	color: #666;
}

.content-pager {
	display: flex;
	align-items: center;
	gap: 14px;
	margin-top: 14px;
}

.content-pager a {
	color: #1a73e8;
	text-decoration: none;
}

.pager-info {
	color: #444;
}

/* Phase-4 slice 3: edit form + saved banner. */
.content-saved {
	margin: 12px 0;
	padding: 8px 12px;
	background: #e6f4ea;
	border: 1px solid #b7dfc0;
	border-radius: 4px;
	color: #1e7e34;
	font-size: 14px;
}

.content-edit-link {
	color: #1a73e8;
	text-decoration: none;
	font-size: 13px;
}

.edit-form {
	max-width: 640px;
	background: #fff;
	padding: 20px;
	border: 1px solid #ddd;
	border-radius: 6px;
}

.edit-form label,
.edit-form .edit-label {
	display: block;
	margin: 12px 0 4px;
	font-size: 13px;
	font-weight: bold;
}

.edit-form input[type="text"],
.edit-form textarea {
	width: 100%;
	box-sizing: border-box;
	padding: 8px;
	border: 1px solid #ccc;
	border-radius: 4px;
	font-family: inherit;
}

.edit-form label.edit-checkbox,
.edit-form .edit-category {
	display: block;
	font-weight: normal;
	margin: 6px 0;
}

.edit-form label.edit-checkbox input,
.edit-form .edit-category input {
	margin-right: 6px;
}

.edit-error {
	margin: 12px 0;
	padding: 8px 12px;
	background: #fdecea;
	border: 1px solid #f5c6c0;
	border-radius: 4px;
	color: #a33;
	font-size: 13px;
}

.edit-readonly input {
	background: #f4f5f7;
	color: #666;
}

.edit-actions {
	margin-top: 16px;
	display: flex;
	gap: 14px;
	align-items: center;
}

.edit-actions button {
	padding: 9px 18px;
	border: 0;
	border-radius: 4px;
	background: #1a73e8;
	color: #fff;
	cursor: pointer;
}

.edit-actions a {
	color: #666;
}

/* --- settings pages (Phase 4 slice 4) --- */

.settings-tabs {
	margin-bottom: 14px;
	display: flex;
	gap: 10px;
}

.settings-tabs a {
	padding: 6px 14px;
	border-radius: 4px;
	background: #e8eaed;
	color: #333;
	text-decoration: none;
}

.settings-tabs a.active {
	background: #1a73e8;
	color: #fff;
}

.settings-saved {
	margin-bottom: 12px;
	padding: 8px 12px;
	border-radius: 4px;
	background: #e6f4ea;
	color: #137333;
}

.settings-error {
	margin-bottom: 12px;
	padding: 8px 12px;
	border-radius: 4px;
	background: #fce8e6;
	color: #c5221f;
}

.settings-form {
	max-width: 480px;
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.settings-form input[type="text"], .settings-form select {
	padding: 7px 9px;
	border: 1px solid #ccc;
	border-radius: 4px;
}

.settings-hint {
	margin: 0;
	font-size: 12px;
	color: #777;
}

.settings-save {
	margin-top: 10px;
	padding: 9px 18px;
	border: 0;
	border-radius: 4px;
	background: #1a73e8;
	color: #fff;
	cursor: pointer;
	align-self: flex-start;
}

/* --- simple pages (Phase 4 slice 5) --- */

.ann, .mesajlar {
	margin-bottom: 12px;
	padding: 12px 14px;
	border: 1px solid #e0e0e0;
	border-radius: 4px;
	background: #fff;
	max-width: 720px;
}

.anntitle, .mesajbaslik {
	font-weight: bold;
	color: #333;
}

.anndate {
	margin: 4px 0;
	font-size: 12px;
	color: #888;
}

.kisi {
	margin-left: 8px;
	color: #666;
	font-weight: normal;
}

.kisimail {
	color: #999;
	font-weight: normal;
}

.mesajbody {
	margin-top: 6px;
	white-space: pre-line;
}

.panel-empty {
	color: #777;
}

.settings-form textarea {
	padding: 7px 9px;
	border: 1px solid #ccc;
	border-radius: 4px;
	font-family: inherit;
}

/* Phase 4 slice 6: analytics / revenue */

.stats-range {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 12px 0 18px;
}

.stats-range a {
	color: #2c6fbb;
}

.stats-range input[type="text"] {
	width: 110px;
	padding: 6px 8px;
	border: 1px solid #ccc;
	border-radius: 4px;
}

.stats-range button {
	padding: 6px 14px;
	border: 1px solid #2c6fbb;
	border-radius: 4px;
	background: #2c6fbb;
	color: #fff;
	cursor: pointer;
}

.stats-chart {
	margin-bottom: 18px;
	max-width: 720px;
}

.stats-bar-row {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 4px 0;
}

.stats-bar-label {
	flex: 0 0 200px;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	font-size: 12px;
	color: #555;
}

.stats-bar-track {
	flex: 1;
	background: #eef2f6;
	border-radius: 3px;
	height: 14px;
}

.stats-bar {
	display: block;
	height: 14px;
	background: #2c6fbb;
	border-radius: 3px;
	min-width: 2px;
}

.stats-bar-value {
	flex: 0 0 48px;
	text-align: right;
	font-size: 12px;
	color: #333;
}

.stats-table {
	border-collapse: collapse;
	max-width: 720px;
	width: 100%;
}

.stats-table th, .stats-table td {
	border: 1px solid #ddd;
	padding: 6px 10px;
	text-align: left;
}

.stats-table thead th {
	background: #f4f6f8;
}

.stats-table tfoot td {
	font-weight: bold;
	background: #f4f6f8;
}

.stats-count {
	text-align: right;
}

.infoview {
	margin: 16px 0;
	padding: 14px 16px;
	border: 1px solid #cfe0f1;
	border-radius: 4px;
	background: #f0f6fc;
	color: #345;
	max-width: 720px;
}

/* Phase 4 slice 7: designs / video pool */

.themes-list {
	display: flex;
	flex-wrap: wrap;
	gap: 15px;
	padding: 15px 0;
}

.theme-item {
	background: #fff;
	border: 1px solid #e6e9ea;
	border-radius: 4px;
	width: 23%;
	min-width: 180px;
	padding: 8px;
	box-sizing: border-box;
}

.theme-item img {
	width: 100%;
	opacity: 0.9;
}

.theme-item:hover img {
	opacity: 1;
}

.theme-item-content {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-top: 8px;
}

.theme-name {
	font-size: 12px;
	color: #515a5e;
}

.theme-badge {
	font-size: 10px;
	color: #1fa9db;
}

.theme-item-bottom {
	margin-top: 10px;
	font-size: 12px;
}

.theme-item-bottom label {
	display: flex;
	align-items: center;
	gap: 6px;
	cursor: pointer;
}

.save-template-button {
	background: #3b4549;
	border: 0;
	color: #fff;
	padding: 8px 15px;
	border-radius: 3px;
	font-size: 13px;
	cursor: pointer;
}

.page-bottom {
	margin: 10px 0;
	text-align: right;
}

.category-filter {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	list-style: none;
	padding: 0;
	margin: 12px 0;
}

.category-filter a {
	display: block;
	padding: 5px 12px;
	border: 1px solid #d5dbdf;
	border-radius: 3px;
	color: #2c6fbb;
	text-decoration: none;
	font-size: 13px;
}

.category-filter a.selected {
	background: #2c6fbb;
	border-color: #2c6fbb;
	color: #fff;
}

.sayfalama {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 8px 0 14px;
	font-size: 13px;
}

.pool-grid {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
}

.isotopeitem {
	width: 23%;
	min-width: 170px;
}

.isotopeitem .pg {
	border: 1px solid #e6e9ea;
	border-radius: 4px;
	padding: 8px;
	background: #fff;
}

.isotopeitem .img img {
	width: 100%;
	height: 100px;
	object-fit: cover;
	background: #eef2f6;
}

.isotopeitem .title {
	font-size: 13px;
	margin: 6px 0 2px;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.isotopeitem .tarih {
	font-size: 11px;
	color: #999;
}

.isotopeitem .panelbuton {
	margin-top: 8px;
	width: 100%;
	padding: 6px 0;
	border: 1px solid #2c6fbb;
	border-radius: 3px;
	background: #2c6fbb;
	color: #fff;
	cursor: pointer;
}

/* Phase 4 slice 8: gallery images */

.gallery-tabs {
	display: flex;
	gap: 16px;
	margin-bottom: 10px;
}

.gallery-tabs a {
	color: #2c6fbb;
	text-decoration: none;
	font-size: 14px;
}

.gallery-tabs a.active {
	font-weight: bold;
	border-bottom: 2px solid #2c6fbb;
}

.gallery-upload {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 12px 0 18px;
}

.gallery-upload input[type="text"] {
	width: 140px;
	padding: 6px 8px;
	border: 1px solid #ccc;
	border-radius: 4px;
}

.gallery-upload button {
	padding: 6px 14px;
	border: 1px solid #2c6fbb;
	border-radius: 4px;
	background: #2c6fbb;
	color: #fff;
	cursor: pointer;
}

.gallery-grid {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin-bottom: 14px;
}

.gallery-item {
	width: 230px;
	border: 1px solid #e6e9ea;
	border-radius: 4px;
	background: #fff;
	padding: 8px;
	box-sizing: border-box;
}

.gallery-item img {
	width: 213px;
	height: 120px;
	object-fit: cover;
	background: #eef2f6;
}

.gallery-item label {
	display: block;
	font-size: 11px;
	color: #888;
	margin-top: 6px;
}

.gallery-item input[type="text"], .gallery-item input[type="number"], .gallery-item textarea {
	width: 100%;
	box-sizing: border-box;
	padding: 5px 7px;
	border: 1px solid #ccc;
	border-radius: 4px;
	font-size: 12px;
	font-family: inherit;
}

.gallery-delete {
	margin-top: 8px;
	padding: 5px 12px;
	border: 1px solid #b4433a;
	border-radius: 3px;
	background: #b4433a;
	color: #fff;
	font-size: 12px;
	cursor: pointer;
}

/* Phase 4 slice 9: video upload / content delete */
.content-upload-link {
	margin-left: 12px;
}

.content-delete-form {
	display: inline;
	margin-left: 8px;
}

.content-delete-link {
	background: none;
	border: none;
	color: #b4433a;
	cursor: pointer;
	padding: 0;
	font-size: inherit;
	text-decoration: underline;
}

.upload-form label,
.upload-form input[type="text"],
.upload-form textarea {
	display: block;
	margin-bottom: 6px;
}

.upload-category {
	display: inline-block;
	margin-right: 12px;
}

#uploadprogress {
	display: block;
	width: 320px;
	margin: 8px 0;
}

/* Phase 4 slice 10: admin panel (generic CRUD shell) */
.admin-tabs {
	margin-bottom: 12px;
}

.admin-tabs a,
.admin-tabs span {
	margin-right: 12px;
}

.admin-tabs .active {
	font-weight: bold;
}

.admin-index-grid,
.admin-crud-grid {
	border-collapse: collapse;
	width: 100%;
}

.admin-index-grid th,
.admin-index-grid td,
.admin-crud-grid th,
.admin-crud-grid td {
	border: 1px solid #ddd;
	padding: 4px 8px;
	text-align: left;
}

.admin-table-name {
	color: #777;
	font-family: monospace;
}

.admin-id-cell {
	font-family: monospace;
}

.admin-field {
	margin-bottom: 8px;
}

.admin-field label {
	display: block;
}

.admin-id-readonly {
	color: #777;
	font-family: monospace;
}

.admin-new-link {
	font-weight: bold;
}

/* Phase 4 slice 13: admin custom forms (dashboard + gallery approval queue) */
.admin-stat-value {
	font-family: monospace;
	text-align: right;
}

.admin-makale-filter {
	margin: 8px 0;
}

.admin-makale-deleted {
	color: #a00;
	font-weight: bold;
}

/* Phase 4 slice 14: admin user actions + reports */
.admin-kaydir-form,
.admin-toplu-form {
	margin: 8px 0;
}

.admin-impersonation-banner {
	background: #ffd;
	border: 1px solid #cc6;
	padding: 8px;
}

/* Unified DNS management (dns_domain registry) */
.dns-summary {
	list-style: none;
	margin: 8px 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}

.dns-summary li {
	border: 1px solid #ccc;
	padding: 6px 10px;
	min-width: 110px;
}

.dns-summary li span {
	display: block;
	font-size: 0.85em;
	color: #555;
}

.dns-summary li strong {
	font-size: 1.3em;
}

.dns-summary li.warn {
	border-color: #cc6;
	background: #ffd;
}

.dns-summary li.bad {
	border-color: #c66;
	background: #fdd;
}

.dns-filter,
.dns-bulk {
	margin: 8px 0;
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: 10px;
}

.dns-filter label {
	display: flex;
	flex-direction: column;
	font-size: 0.85em;
}

.dns-bulk {
	border: 1px solid #ccc;
	background: #f6f6f6;
	padding: 8px;
}

.dns-bulk form {
	display: flex;
	align-items: center;
	gap: 6px;
}

.dns-bulk-go {
	font-weight: bold;
}

/* Row tinting mirrors the STATUS column so problems are visible at a glance. */
.dns-domain-grid tr.expiring,
.dns-domain-grid tr.nsmismatch {
	background: #ffd;
}

.dns-domain-grid tr.expired,
.dns-domain-grid tr.error {
	background: #fdd;
}

.dns-domain-grid tr.pending,
.dns-domain-grid tr.transferpending {
	background: #eef;
}

.dns-domain-grid .dns-actions form {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	margin-right: 8px;
}

.dns-ns-actual,
.dns-last-error,
.dns-days,
.dns-authcode {
	display: block;
	font-size: 0.8em;
	color: #555;
}

.dns-last-error {
	color: #a00;
}

.dns-authcode {
	font-family: monospace;
}

/* Unified DNS: renewal pricing + registrar balance */
.dns-balances {
	margin: 8px 0;
	padding: 6px 8px;
	border: 1px solid #ccc;
	background: #f6f6f6;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 14px;
}

.dns-balances-label {
	font-weight: bold;
}

.dns-balance small {
	color: #555;
	margin-left: 4px;
}

.dns-balance.unknown strong {
	color: #777;
	font-weight: normal;
}

.dns-balance-error {
	display: block;
	color: #a00;
}

.dns-price.unaffordable {
	color: #a00;
	font-weight: bold;
}

.dns-price-unknown {
	color: #777;
}

.dns-quote .quote-price {
	font-size: 1.2em;
}

.dns-quote .quote-lowbalance,
.dns-quote .quote-price-unknown {
	color: #a00;
}

.dns-quote .quote-confirm {
	font-weight: bold;
}

/* Registry (RDAP) state on the unified DNS grid. Deliberately distinct from
   the STATUS colours: a grace/redemption domain is recoverable and must not
   read the same as one that is actually gone. */
.dns-status .dns-registry { display: block; font-size: 11px; margin-top: 2px; }
.dns-status .dns-registry.active { color: #6b7280; }
.dns-status .dns-registry.grace { color: #b45309; font-weight: 600; }
.dns-status .dns-registry.redemption { color: #c2410c; font-weight: 600; }
.dns-status .dns-registry.pendingdelete { color: #b91c1c; font-weight: 700; }
.dns-status .dns-registry.hold { color: #7c3aed; font-weight: 600; }
/* An unconfirmed answer is greyed out — it must not look like evidence. */
.dns-status .dns-registry.stale { opacity: .55; font-weight: 400; }
.dns-status .dns-registry-stale { display: block; font-size: 10px; color: #9ca3af; }
.dns-expire .dns-expire-registry { border-bottom: 1px dotted #9ca3af; }
/* The registry's verbatim registrar name — for a V_OTHER row it is the only
   identification there is, so it is shown, not hidden behind the slug. */
.dns-registrar .dns-registrar-name { display: block; font-size: 11px; color: #6b7280; }
.dns-registrar .dns-registrar-conflict { display: block; font-size: 11px; color: #b45309; font-weight: 600; }

/* ---------------------------------------------------------------- rich text
   The "İçerik" editor (static/panel/js/editor.js), replacing the legacy GWT
   RichTextWithToolbar. Deliberately styled to sit inside the existing form
   rhythm rather than look like a bolted-on third-party widget. */
.rte { border: 1px solid #c8ccd4; border-radius: 3px; background: #fff; margin-bottom: 14px; }
.rte-toolbar {
  display: flex; flex-wrap: wrap; align-items: center; gap: 2px;
  padding: 5px 6px; border-bottom: 1px solid #dfe3ea; background: #f6f7f9;
  border-radius: 3px 3px 0 0;
}
.rte-group { display: inline-flex; gap: 1px; padding-right: 6px; margin-right: 4px; border-right: 1px solid #dfe3ea; }
.rte-group:last-of-type { border-right: 0; }
.rte-btn {
  min-width: 26px; height: 26px; padding: 0 5px; cursor: pointer;
  border: 1px solid transparent; border-radius: 3px; background: transparent;
  font: 13px/24px arial, sans-serif; color: #333;
}
.rte-btn:hover { background: #e6eaf0; border-color: #c8ccd4; }
.rte-btn:active { background: #d8dee7; }
.rte-select {
  height: 26px; border: 1px solid #c8ccd4; border-radius: 3px;
  background: #fff; font: 12px arial, sans-serif; color: #333; max-width: 120px;
}
.rte-body {
  min-height: 320px; max-height: 70vh; overflow-y: auto; padding: 10px 12px;
  font: 14px/1.6 arial, sans-serif; outline: none;
}
.rte-body:focus { box-shadow: inset 0 0 0 2px #dbe6f5; }
.rte-body img { max-width: 100%; height: auto; }
.rte-body table { border-collapse: collapse; }
.rte-body table td { border: 1px solid #c8ccd4; padding: 4px; min-width: 40px; }
/* Source view reuses the backing textarea, so it must fill the same box. */
.rte textarea.rte-source {
  width: 100%; min-height: 320px; border: 0; padding: 10px 12px;
  font: 13px/1.5 "Courier New", monospace; resize: vertical; outline: none;
}
.rte-count { margin-left: auto; padding-right: 4px; font: 12px arial, sans-serif; color: #6b7280; }
.rte-count.short { color: #b45309; font-weight: 600; }

/* Article-image picker used by the toolbar's insert-image button — the legacy
   equivalent listed the article's own images (service.makaleResimleriAl). */
.rte-picker { display: none; position: fixed; inset: 0; z-index: 60; background: rgba(0,0,0,.45); }
.rte-picker.open { display: flex; align-items: center; justify-content: center; }
.rte-picker-inner {
  background: #fff; border-radius: 4px; padding: 16px; max-width: 720px;
  max-height: 80vh; overflow: auto; box-shadow: 0 8px 30px rgba(0,0,0,.3);
}
.rte-picker-inner h3 { margin: 0 0 12px; font: 600 15px arial, sans-serif; }
.rte-picker-grid { display: flex; flex-wrap: wrap; gap: 8px; }
.rte-picker-grid img {
  width: 120px; height: 90px; object-fit: cover; cursor: pointer;
  border: 2px solid transparent; border-radius: 3px;
}
.rte-picker-grid img:hover { border-color: #2563eb; }
.rte-picker-close { margin-top: 12px; }

/* ------------------------------------------------------------ cover photos
   Main + Facebook cover, mirroring the legacy edit page's two thumb slots
   (VideoEditSayfasi: editthumb/thimg1 and editthumb2/thimg2). */
.edit-covers { display: flex; flex-wrap: wrap; gap: 24px; margin: 6px 0 18px; }
.edit-cover { display: flex; flex-direction: column; gap: 6px; }
.edit-cover .edit-label { font: 600 13px arial, sans-serif; color: #374151; }
.edit-cover img {
  width: 240px; height: 135px; object-fit: cover;
  border: 1px solid #c8ccd4; border-radius: 3px; background: #f3f4f6;
}
.edit-cover .cover-missing {
  width: 240px; height: 135px; display: flex; align-items: center; justify-content: center;
  border: 1px dashed #c8ccd4; border-radius: 3px; color: #9ca3af;
  font: 13px arial, sans-serif; background: #fafbfc;
}
/* Per-image replace on the gallery page (legacy "değiştir"). */
.gallery-replace { display: flex; flex-direction: column; gap: 4px; margin-top: 6px; }
.gallery-replace label { font: 600 12px arial, sans-serif; color: #374151; }
.gallery-replace input[type=file] { font: 12px arial, sans-serif; }
.edit-cover .cover-size { font: 11px arial, sans-serif; color: #9ca3af; }
.edit-cover .cover-form { display: flex; align-items: center; gap: 6px; margin-top: 4px; }
.edit-cover .cover-form input[type=file] { font: 12px arial, sans-serif; max-width: 150px; }
.edit-cover .cover-enhance { background: #eef2ff; border: 1px solid #c7d2fe; color: #3730a3; }
.edit-cover .cover-enhance:hover { background: #e0e7ff; }
