/* TrailsIQ Admin CSS */
@import "trailsiq-main.css";

body.toplevel_page_trailsiq #wpcontent,
body.trailsiq_page_trailsiq-maintenance #wpcontent,
body.trailsiq_page_trailsiq-import #wpcontent,
body.trailsiq_page_trailsiq-porter #wpcontent,
body.trailsiq_page_trailsiq-registry #wpcontent,
body.trailsiq_page_trailsiq-trails #wpcontent,
body.trailsiq_page_trailsiq-networks #wpcontent,
body.trailsiq_page_trailsiq-map #wpcontent,
body.trailsiq_page_trailsiq-settings #wpcontent,
body.trailsiq_page_trailsiq-weather #wpcontent,
body.trailsiq_page_trailsiq-structures #wpcontent,
body.trailsiq_page_trailsiq-lifts #wpcontent,
body.trailsiq_page_trailsiq-daily-report #wpcontent,
body.trailsiq_page_trailsiq-cloud #wpcontent,
body.trailsiq-cloud_page_trailsiq-cloud-tile-usage #wpcontent,
body.trailsiq-cloud_page_trailsiq-cloud-plans #wpcontent,
body.trailsiq-cloud_page_trailsiq-cloud-billing #wpcontent,
body.toplevel_page_trailsiq #wpbody {
	padding-left: 0 !important;
	background: #f7f8fc !important;
}

#wpbody-content .wrap,
#wpbody-content .trailsiq-wrap {
	font-family: 'DM Sans', sans-serif;
	max-width: 1400px;
	margin: 0;
}

.trailsiq-wrap a{
	color: var(--tiq-primary)
}
.trailsiq-wrap a:hover{
	color: var(--tiq-primary-dark)
}

.trailsiq-wrap .trailsiq-header {
	padding: 15px 10px;
	background-color: #f9fbff;
	border-bottom: solid 1px #e9eaf1;
	margin-bottom: 2rem;
}

.trailsiq-wrap .trailsiq-header .trailsiq-logo {
	height: 50px;
}
.trailsiq-title-group {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    height: 40px;
}
.trailsiq-tagline {
    font-size: 13px;
    font-weight: 400;
    color: var(--tiq-text-2);
    font-family: 'DM Sans', sans-serif;
    letter-spacing: 0.1px;
    line-height: 1;
    margin: 0;
}

.trailsiq-wrap .trailsiq-content {
	margin: 0 auto;
	max-width: 100%;
	padding: 0 2rem !important;
}

/* ── Admin footer ────────────────────────────────────────────
   Rendered by TrailsIQ_Admin::trailsiq_footer() on every plugin
   admin page. Sits inside the .trailsiq-content wrapper so it
   inherits the page padding and lines up with the page title. */
.trailsiq-admin-footer {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin: 32px 0 24px;
	padding: 16px 0 0;
	border-top: 1px solid #e5e7eb;
	font-size: 12px;
	color: #6b7280;
}

.trailsiq-admin-footer__brand {
	display: inline-flex;
	align-items: center;
	gap: 10px;
}

.trailsiq-admin-footer__logo {
	font-family: 'DM Sans', sans-serif;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: -0.2px;
	color: #1b2e1a;
}

.trailsiq-admin-footer__logo-iq {
	color: #dd9b36;
}

.trailsiq-admin-footer__version {
	color: #9ca3af;
}

.trailsiq-admin-footer__links {
	display: inline-flex;
	align-items: center;
	gap: 8px;
}

.trailsiq-admin-footer__links a {
	color: #6b7280;
	text-decoration: none;
	transition: color 0.12s;
}

.trailsiq-admin-footer__links a:hover {
	color: #1b2e1a;
	text-decoration: underline;
}

.trailsiq-admin-footer__sep {
	color: #d1d5db;
}
.trailsiq-title-text {
    font-size: 20px;
    font-weight: 700;
    color: var(--tiq-text);
    font-family: 'DM Sans', sans-serif;
    letter-spacing: -0.3px;
    line-height: 1;
}

.trailsiq-wrap h1 {
	font-family: 'DM Sans', sans-serif;
	font-size: 20px;
	font-weight: 700;
	color: var(--tiq-text);
	letter-spacing: -0.3px;
	display: flex !important;
	align-items: center !important;
	gap: 12px !important;
	line-height: 1 !important;
}

.trailsiq-logo .trailsiq-logo-trails { margin-right: 1px; }
.trailsiq-logo .trailsiq-logo-iq     { color: var(--tiq-primary); }
.trailsiq-lock-icon{
	color: var(--tiq-primary);
}

/* ── Layout ─────────────────────────────────────────────────────────────── */
.trailsiq-wrap { max-width: 1400px; }
.trailsiq-wrap .wp-heading-inline { font-size: 1.4rem; }
.trailsiq-logo { font-size: 1.2rem; }

/* ── Dashboard cards ────────────────────────────────────────────────────── */
.trailsiq-cards {
	display: flex;
	gap: 16px;
	flex-wrap: wrap;
	margin: 24px 0;
}
.trailsiq-card {
	background: #fff;
	border: 1px solid #ddd;
	border-radius: 8px;
	padding: 20px 24px;
	min-width: 140px;
	text-align: center;
	box-shadow: 0 1px 3px rgba(0,0,0,.06);
}
.trailsiq-card__num {
	font-size: 2rem;
	font-weight: 700;
	color: #1d2327;
	line-height: 1;
	margin-bottom: 6px;
}
.trailsiq-card__num--green { color: #4caf50; }
.trailsiq-card__num--grey  { color: #888; }
.trailsiq-card__label {
	font-size: 0.8rem;
	text-transform: uppercase;
	letter-spacing: .05em;
	color: #666;
}
.trailsiq-card--action {
	display: flex;
	align-items: center;
	justify-content: center;
	background: #1d2327;
	border-color: #1d2327;
}
.trailsiq-card--action a {
	color: #fff;
	text-decoration: none;
	font-weight: 600;
	font-size: 0.88rem;
}
.trailsiq-card--action a:hover { text-decoration: underline; }

.trailsiq-card-box {
    background: var(--tiq-surface);
    border: 1px solid var(--tiq-border);
    border-radius: 12px;
    overflow: hidden;
}
.trailsiq-card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 14px 18px;
    border-bottom: 1px solid var(--tiq-border-soft);
}
.trailsiq-card-title-group {
    display: flex;
    align-items: baseline;
    gap: 8px;
    min-width: 0;
}
.trailsiq-card-title {
    font-size: 13px;
    font-weight: 700;
    color: var(--tiq-text);
    white-space: nowrap;
    font-family: var(--tiq-font-body);
}
.trailsiq-card-sub {
    font-size: 12px;
    color: var(--tiq-text-3);
    white-space: nowrap;
}
.trailsiq-best-tag {
    font-size: 12px;
    color: var(--text-3-aa);
    white-space: nowrap;
    flex-shrink: 0;
}
.trailsiq-card-body {
    padding: 16px 18px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

/* ── Section ────────────────────────────────────────────────────────────── */
.trailsiq-section {
	background: #fff;
	border: 1px solid #ddd;
	border-radius: 8px;
	padding: 24px;
	margin-bottom: 24px;
	box-shadow: 0 1px 3px rgba(0,0,0,.06);
}
.trailsiq-section h2 { margin: 0 0 16px; font-size: 1rem; }

/* ── Table ───────────────────────────────────────────────────────────────── */
.trailsiq-table th, .trailsiq-table td { vertical-align: middle; }
.trailsiq-table .column-name { width: 220px; }
.trailsiq-sub { color: #888; font-size: 0.8rem; display: block; }
.trailsiq-actions { white-space: nowrap; }
.trailsiq-actions .button { margin-right: 4px; }

/* ── Dot / badge ─────────────────────────────────────────────────────────── */
.trailsiq-dot {
	display: inline-block;
	width: 10px;
	height: 10px;
	border-radius: 50%;
	margin-right: 6px;
	vertical-align: middle;
	flex-shrink: 0;
}
.trailsiq-badge {
	display: inline-block;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	padding: 2px 8px;
	border-radius: 20px;
	color: #fff;
}
.trailsiq-badge--easy     { background: #4caf50; }
.trailsiq-badge--moderate { background: #2196f3; }
.trailsiq-badge--hard     { background: #111; }
.trailsiq-badge--expert   { background: #e45419; }

/* Status dot */
.trailsiq-status-dot {
	display: inline-block;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	margin-right: 5px;
	vertical-align: middle;
}
.trailsiq-status-dot--public             { background: #4caf50; }
.trailsiq-status-dot--under_construction { background: #c2410c; }
.trailsiq-status-dot--planned            { background: #7c3aed; }
.trailsiq-status-dot--hidden             { background: #aaa; }

/* ── Empty state ─────────────────────────────────────────────────────────── */
.trailsiq-empty { color: #666; font-style: italic; margin: 20px 0; }

/* ── Code snippet ────────────────────────────────────────────────────────── */
.trailsiq-code {
	display: inline-block;
	background: #f0f0f1;
	border: 1px solid #ddd;
	border-radius: 4px;
	padding: 6px 12px;
	font-size: 1rem;
	margin: 4px 0 8px;
}

/* ── Import page ─────────────────────────────────────────────────────────── */
.trailsiq-import-layout {
	max-width: 720px;
}
.trailsiq-drop-zone {
	border: 2px dashed #ccc;
	border-radius: 10px;
	padding: 48px 40px;
	text-align: center;
	cursor: pointer;
	background: #fafafa;
	margin-bottom: 20px;
	transition: border-color .2s, background .2s;
}
.trailsiq-drop-zone:hover,
.trailsiq-drop-zone.over {
	border-color: #e45419;
	background: #fff5f2;
}
.trailsiq-drop-zone__icon { font-size: 2.5rem; margin-bottom: 10px; }
.trailsiq-drop-zone strong { display: block; font-size: 1.05rem; color: #333; margin-bottom: 6px; }
.trailsiq-drop-zone p { color: #888; font-size: 0.9rem; margin: 0; }

.trailsiq-import-form { padding: 24px; }
.trailsiq-import-form h2 { margin: 0 0 20px; }

.trailsiq-preview {
	background: #f9f9f9;
	border: 1px solid #eee;
	border-radius: 6px;
	padding: 12px 16px;
	margin: 16px 0;
}
.trailsiq-preview strong { display: block; margin-bottom: 8px; font-size: 0.85rem; color: #555; }
.trailsiq-preview ul { margin: 0; padding: 0; list-style: none; display: flex; gap: 20px; flex-wrap: wrap; }
.trailsiq-preview li { font-size: 0.85rem; color: #333; }
.trailsiq-preview li span { font-weight: 700; }

.trailsiq-status {
	margin-top: 16px;
	padding: 16px;
	border-radius: 8px;
	font-size: 0.95rem;
}
.trailsiq-status.success { background: #edfaef; border: 1px solid #4caf50; color: #1e6b26; }
.trailsiq-status.error   { background: #fce8e8; border: 1px solid #d63638; color: #8b0000; }
.trailsiq-status.loading { background: #f0f6ff; border: 1px solid #2196f3; color: #1a5276; }

/* ── Import queue ────────────────────────────────────────────────────────── */
.trailsiq-queue {
	background: #fff;
	border: 1px solid #ddd;
	border-radius: 8px;
	padding: 20px;
	margin-bottom: 16px;
}
.tiq-queue-footer { display: flex; gap: 10px; margin-top: 14px; }

.tiq-queue-item {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	padding: 12px;
	border: 1px solid #e0e0e0;
	border-radius: 8px;
	margin-bottom: 8px;
	background: #fafafa;
	cursor: pointer;
	transition: border-color .15s, background .15s;
}
.tiq-queue-item.active   { border-color: #2196f3; background: #f0f6ff; }
.tiq-queue-item.done     { border-color: #4caf50; background: #f0fff4; }
.tiq-queue-item.failed   { border-color: #d63638; background: #fff0f0; }
.tiq-queue-item.uploading { opacity: .6; pointer-events: none; }

.tiq-queue-item__icon { font-size: 1.5rem; line-height: 1; margin-top: 2px; }
.tiq-queue-item__body { flex: 1; min-width: 0; }
.tiq-queue-item__top  { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.tiq-queue-item__top .regular-text { flex: 1; min-width: 160px; margin: 0; }
.tiq-queue-item__stats {
	margin-top: 6px;
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
}
.tiq-stat {
	font-size: 0.78rem;
	color: #555;
	background: #f0f0f1;
	border-radius: 4px;
	padding: 2px 8px;
}
.tiq-parsing { font-size: 0.78rem; color: #888; font-style: italic; }
.tiq-ok  { color: #1e6b26; font-size: 0.82rem; font-weight: 600; }
.tiq-err { color: #8b0000; font-size: 0.82rem; font-weight: 600; }

/* Small drop zone (used in trail-edit re-import) */
.trailsiq-drop-zone--small {
	padding: 18px 20px;
}
.trailsiq-drop-zone--small strong { font-size: 0.9rem; }

/* Preview map on import page */
.trailsiq-preview-map-wrap {
	border: 1px solid #ddd;
	border-radius: 8px;
	overflow: hidden;
	margin-bottom: 16px;
}

/* ── GPS Recording ───────────────────────────────────────────────────────── */
.trailsiq-gps-section { margin-top: 16px; }

.trailsiq-gps-toggle {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 8px 16px;
	border: 1px solid #c3c4c7;
	border-radius: 6px;
	background: #fff;
	color: #3c434a;
	font-size: 13px;
	cursor: pointer;
	transition: border-color .15s, background .15s;
}
.trailsiq-gps-toggle:hover  { border-color: #e45419; color: #e45419; }
.trailsiq-gps-toggle.active { border-color: #e45419; background: #fff5f2; color: #e45419; }

.trailsiq-gps-panel {
	margin-top: 12px;
	border: 1px solid #ddd;
	border-radius: 10px;
	overflow: hidden;
	background: #fff;
}

.tiq-gps-map-wrap { position: relative; }
#tiq-gps-map { height: 320px; }

.tiq-gps-accuracy {
	position: absolute;
	top: 8px;
	left: 8px;
	padding: 3px 8px;
	border-radius: 4px;
	font-size: 11px;
	font-weight: 600;
	pointer-events: none;
}
.tiq-gps-accuracy.good { background: #edfaef; color: #1e6b26; }
.tiq-gps-accuracy.ok   { background: #fff8e5; color: #7a5c00; }
.tiq-gps-accuracy.poor { background: #fce8e8; color: #8b0000; }

.tiq-gps-toolbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 10px 14px;
	border-top: 1px solid #eee;
	flex-wrap: wrap;
}

.tiq-gps-stats { display: flex; gap: 14px; }
.tiq-gps-stat  { font-size: 13px; color: #555; }
.tiq-gps-stat strong { color: #1d2327; }

.tiq-gps-btns { display: flex; gap: 6px; }

.tiq-gps-btn {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	padding: 6px 12px;
	border-radius: 5px;
	border: 1px solid transparent;
	font-size: 12px;
	font-weight: 600;
	cursor: pointer;
	transition: opacity .15s;
}
.tiq-gps-btn:disabled { opacity: .4; cursor: default; }

.tiq-gps-btn--start { background: #4caf50; color: #fff; border-color: #3d8b40; }
.tiq-gps-btn--start.recording { background: #e45419; border-color: #b83c10; animation: tiq-pulse 1.4s infinite; }
.tiq-gps-btn--pause { background: #fff; color: #3c434a; border-color: #c3c4c7; }
.tiq-gps-btn--pause.paused { background: #fff8e5; color: #7a5c00; border-color: #e6c000; }
.tiq-gps-btn--stop  { background: #2271b1; color: #fff; border-color: #135e96; }

@keyframes tiq-pulse {
	0%, 100% { opacity: 1; }
	50%       { opacity: .65; }
}

/* ── Trail edit layout ───────────────────────────────────────────────────── */
.trailsiq-edit-layout {
	display: flex;
	gap: 20px;
	align-items: flex-start;
}
.trailsiq-edit-main    { flex: 1; min-width: 0; }
.trailsiq-edit-sidebar { width: 300px; flex-shrink: 0; }

.trailsiq-stats-table { margin-bottom: 16px; }
.trailsiq-stats-table td { padding: 5px 8px; font-size: 0.88rem; }
.trailsiq-stat-label { color: #666; width: 50%; }
.trailsiq-stat-val   { font-weight: 600; }
.trailsiq-stat-unit  { font-weight: 400; color: #888; font-size: 0.8em; margin-left: 2px; }

/* Delete button colour */
.trailsiq-delete-btn { color: #d63638 !important; border-color: #d63638 !important; }
.trailsiq-delete-btn:hover { background: #d63638 !important; color: #fff !important; }

@media ( max-width: 900px ) {
	.trailsiq-edit-layout { flex-direction: column; }
	.trailsiq-edit-sidebar { width: 100%; }
}

/* ── Schema editor (custom fields per type) ──────────────── */
.tiq-schema-row[hidden] { display: none; }

.tiq-schema-inner {
	padding: 16px 18px;
}

.tiq-schema-hint {
	margin: 0 0 12px;
	font-size: 12px;
	color: #646970;
}

.tiq-schema-empty {
	padding: 14px;
	background: #fff;
	border: 1px dashed #c3c4c7;
	border-radius: 6px;
	color: #646970;
	font-size: 13px;
}

.tiq-schema-fields {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.tiq-schema-field {
	background: #fff;
	border: 1px solid #c3c4c7;
	border-radius: 6px;
	padding: 12px 14px;
}

.tiq-schema-field-row {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
	gap: 10px;
	align-items: end;
}

.tiq-schema-label {
	display: block;
	font-size: 12px;
	font-weight: 600;
	color: #1d2327;
	margin-bottom: 0;
}

.tiq-schema-label input[type="text"],
.tiq-schema-label select,
.tiq-schema-label textarea {
	display: block;
	margin-top: 4px;
	width: 100%;
}

.tiq-schema-label--req {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 13px;
	font-weight: 400;
	padding-bottom: 6px;
}

.tiq-schema-field-actions {
	margin-top: 10px;
	display: flex;
	gap: 6px;
	justify-content: flex-end;
}

.tiq-schema-footer {
	margin-top: 14px;
	display: flex;
	gap: 8px;
	align-items: center;
	flex-wrap: wrap;
}

.tiq-schema-msg {
	font-size: 13px;
}
