/* 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;
}

.panel-nav ul {
	display: flex;
	gap: 18px;
	list-style: none;
	margin: 0;
	padding: 12px 20px;
	background: #fff;
	border-bottom: 1px solid #eee;
}

.panel-nav a {
	color: #1a73e8;
	text-decoration: none;
}

.panel-content {
	padding: 20px;
}

/* Phase-4 slice 2: content list grid. */
.panel-nav a.active {
	font-weight: bold;
	text-decoration: underline;
}

.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; }
