/* Registratură — admin UI
   Ledger vernacular: ruled rows, marginal sequence column, violet stamp for the code. */

.wizsp-wrap {
	--wz-ink: #171a1b;
	--wz-soft: #5c635f;
	--wz-rule: #dcdfd6;
	--wz-paper: #f6f7f3;
	--wz-stamp: #5a3e8e;
	--wz-stamp-bg: #ede7f6;
	--wz-in: #2f6b4f;
	--wz-out: #9a4b12;
	--wz-danger: #a61b2b;
	margin-right: 20px;
}

.wizsp-app {
	color: var(--wz-ink);
	font-size: 13px;
}

.wizsp-boot {
	color: var(--wz-soft);
	padding: 40px 0;
}

.wizsp-mono,
.wizsp-code,
.wizsp-num,
.wizsp-stamp {
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}

/* ---- header ---- */

.wizsp-head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 16px;
	border-bottom: 2px solid var(--wz-ink);
	padding: 14px 0 8px;
}

.wizsp-title {
	font-size: 23px;
	font-weight: 700;
	letter-spacing: -0.02em;
	margin: 0;
	padding: 0;
}

.wizsp-sub {
	font-size: 11px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wz-soft);
}

.wizsp-lang {
	display: flex;
	gap: 4px;
}

.wizsp-langbtn {
	border: 1px solid var(--wz-rule);
	background: #fff;
	color: var(--wz-soft);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.08em;
	padding: 4px 9px;
	cursor: pointer;
	border-radius: 2px;
}

.wizsp-langbtn.is-on {
	background: var(--wz-stamp);
	border-color: var(--wz-stamp);
	color: #fff;
}

.wizsp-tabs {
	display: flex;
	gap: 2px;
	border-bottom: 1px solid var(--wz-rule);
	margin-bottom: 16px;
}

.wizsp-tab {
	background: transparent;
	border: 0;
	border-bottom: 2px solid transparent;
	padding: 9px 14px;
	cursor: pointer;
	font-size: 13px;
	font-weight: 500;
	color: var(--wz-soft);
}

.wizsp-tab.is-on {
	color: var(--wz-ink);
	border-bottom-color: var(--wz-stamp);
}

.wizsp-tab:focus-visible,
.wizsp-langbtn:focus-visible {
	outline: 2px solid var(--wz-stamp);
	outline-offset: 1px;
}

.wizsp-flash {
	background: var(--wz-stamp-bg);
	border-left: 3px solid var(--wz-stamp);
	padding: 8px 12px;
	margin-bottom: 14px;
}

/* ---- panels & form ---- */

.wizsp-panel {
	background: #fff;
	border: 1px solid var(--wz-ink);
	padding: 14px;
	margin-bottom: 16px;
}

.wizsp-panel h2 {
	margin: 0 0 12px;
	font-size: 11px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--wz-soft);
}

.wizsp-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 10px;
}

.wizsp-f {
	display: flex;
	flex-direction: column;
	gap: 3px;
}

.wizsp-f label {
	font-size: 10px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--wz-soft);
}

.wizsp-f input,
.wizsp-f select {
	width: 100%;
	max-width: none;
}

.wizsp-span2 {
	grid-column: span 2;
}

.wizsp-span3 {
	grid-column: span 3;
}

.wizsp-inline {
	display: flex;
	gap: 6px;
	align-items: center;
	flex-wrap: wrap;
}

.wizsp-actions {
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
	border-top: 1px solid var(--wz-rule);
	margin-top: 14px;
	padding-top: 12px;
}

.wizsp-spacer {
	flex: 1;
}

.wizsp-hint {
	color: var(--wz-soft);
	font-size: 11px;
}

.wizsp-warn {
	color: var(--wz-danger);
	font-size: 12px;
}

.wizsp-danger {
	color: var(--wz-danger) !important;
}

.wizsp-muted {
	color: var(--wz-soft);
}

/* ---- stamp ---- */

.wizsp-stamp {
	display: inline-block;
	font-size: 12px;
	font-weight: 600;
	color: var(--wz-stamp);
	background: var(--wz-stamp-bg);
	border: 1.5px solid var(--wz-stamp);
	border-radius: 2px;
	padding: 1px 6px;
	white-space: nowrap;
	transform: rotate(-0.4deg);
}

.wizsp-stamp-lg {
	font-size: 16px;
	padding: 4px 10px;
}

.wizsp-voidtag {
	color: var(--wz-danger);
	font-size: 11px;
	margin-top: 3px;
}

/* ---- filters ---- */

.wizsp-filters {
	display: flex;
	gap: 6px;
	align-items: center;
	flex-wrap: wrap;
	margin-bottom: 10px;
}

.wizsp-search {
	flex: 1;
	min-width: 200px;
}

/* ---- table ---- */

.wizsp-table {
	width: 100%;
	border-collapse: collapse;
	background: #fff;
	border-top: 1px solid var(--wz-ink);
	border-bottom: 2px solid var(--wz-ink);
}

.wizsp-table thead th {
	text-align: left;
	font-size: 10px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--wz-soft);
	background: var(--wz-paper);
	padding: 7px 10px;
	border-bottom: 1px solid var(--wz-rule);
	white-space: nowrap;
}

.wizsp-table td {
	padding: 8px 10px;
	border-bottom: 1px solid var(--wz-rule);
	vertical-align: top;
}

.wizsp-table tr.is-void td {
	opacity: 0.55;
	text-decoration: line-through;
}

.wizsp-table tr.is-void .wizsp-voidtag {
	text-decoration: none;
}

.wizsp-num {
	white-space: nowrap;
	font-size: 12px;
	font-weight: 600;
	border-right: 1px solid var(--wz-rule);
	width: 130px;
}

.wizsp-num small {
	display: block;
	font-weight: 400;
	color: var(--wz-soft);
	font-size: 10px;
}

.wizsp-dir {
	display: inline-block;
	font-size: 9px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	padding: 0 4px;
	border: 1px solid currentColor;
	border-radius: 2px;
}

.wizsp-dir.IN {
	color: var(--wz-in);
}

.wizsp-dir.OUT {
	color: var(--wz-out);
}

.wizsp-subj {
	font-weight: 600;
}

.wizsp-meta {
	font-size: 11px;
	color: var(--wz-soft);
	margin-top: 2px;
}

.wizsp-row-actions {
	text-align: right;
	white-space: nowrap;
}

.wizsp-row-actions .button-link {
	margin-left: 8px;
}

.wizsp-pager {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 10px 0;
	color: var(--wz-soft);
}

/* ---- overview ---- */

.wizsp-yearbar {
	margin-bottom: 12px;
}

.wizsp-kpis {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	gap: 8px;
	margin-bottom: 14px;
}

.wizsp-kpi {
	background: #fff;
	border: 1px solid var(--wz-rule);
	border-top: 3px solid var(--wz-ink);
	padding: 10px 12px;
}

.wizsp-kpi b {
	display: block;
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: 22px;
	line-height: 1.1;
}

.wizsp-kpi.small b {
	font-size: 15px;
	padding-top: 5px;
}

.wizsp-kpi span {
	font-size: 10px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wz-soft);
}

.wizsp-kpi.in {
	border-top-color: var(--wz-in);
}

.wizsp-kpi.in b {
	color: var(--wz-in);
}

.wizsp-kpi.out {
	border-top-color: var(--wz-out);
}

.wizsp-kpi.out b {
	color: var(--wz-out);
}

.wizsp-kpi.muted {
	border-top-color: var(--wz-rule);
}

.wizsp-kpi.muted b {
	color: var(--wz-soft);
}

.wizsp-alert {
	background: #fff;
	border-left: 3px solid var(--wz-danger);
	border-top: 1px solid var(--wz-rule);
	border-right: 1px solid var(--wz-rule);
	border-bottom: 1px solid var(--wz-rule);
	padding: 10px 12px;
	margin-bottom: 14px;
}

.wizsp-alert p {
	margin: 4px 0 0;
}

.wizsp-ok {
	color: var(--wz-in);
	border-left: 3px solid var(--wz-in);
	background: #fff;
	padding: 8px 12px;
	margin-bottom: 14px;
}

.wizsp-cols {
	display: grid;
	grid-template-columns: 2fr 1fr 1fr;
	gap: 12px;
}

.wizsp-card {
	background: #fff;
	border: 1px solid var(--wz-rule);
	padding: 14px;
}

.wizsp-card h2 {
	margin: 0 0 12px;
	font-size: 11px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wz-soft);
}

.wizsp-span {
	grid-column: 1 / -1;
}

.wizsp-chart {
	display: flex;
	align-items: flex-end;
	gap: 6px;
	height: 150px;
}

.wizsp-bar {
	flex: 1;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	height: 100%;
	text-align: center;
}

.wizsp-stack {
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	height: 100%;
}

.wizsp-seg {
	display: block;
	width: 100%;
	min-height: 0;
}

.wizsp-seg.in {
	background: var(--wz-in);
}

.wizsp-seg.out {
	background: var(--wz-out);
}

.wizsp-bar small {
	font-size: 10px;
	color: var(--wz-soft);
	padding-top: 4px;
}

.wizsp-legend {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 11px;
	color: var(--wz-soft);
	padding-top: 8px;
}

.wizsp-key {
	width: 10px;
	height: 10px;
	display: inline-block;
	margin-left: 10px;
}

.wizsp-key.in {
	background: var(--wz-in);
}

.wizsp-key.out {
	background: var(--wz-out);
}

.wizsp-rank {
	margin: 0;
	padding: 0;
	list-style: none;
}

.wizsp-rank li {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 4px 0;
	border-bottom: 1px solid var(--wz-rule);
}

.wizsp-rank .wizsp-code {
	font-size: 11px;
	font-weight: 600;
	color: var(--wz-stamp);
	width: 40px;
}

.wizsp-rank .wizsp-lbl {
	flex: 1;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	font-size: 12px;
}

.wizsp-rank .wizsp-track {
	width: 60px;
	height: 6px;
	background: var(--wz-rule);
}

.wizsp-rank .wizsp-track i {
	display: block;
	height: 100%;
	background: var(--wz-stamp);
}

.wizsp-rank b {
	width: 26px;
	text-align: right;
	font-family: ui-monospace, monospace;
	font-size: 12px;
}

@media screen and (max-width: 1200px) {
	.wizsp-kpis {
		grid-template-columns: repeat(4, 1fr);
	}

	.wizsp-cols {
		grid-template-columns: 1fr 1fr;
	}
}

@media screen and (max-width: 782px) {
	.wizsp-grid {
		grid-template-columns: 1fr 1fr;
	}

	.wizsp-span2,
	.wizsp-span3 {
		grid-column: span 2;
	}

	.wizsp-kpis {
		grid-template-columns: repeat(2, 1fr);
	}

	.wizsp-cols {
		grid-template-columns: 1fr;
	}
}

@media (prefers-reduced-motion: reduce) {
	.wizsp-app * {
		transition: none !important;
	}
}

/* ==================================================================
   Front end (shortcode). wp-admin supplies .button / input styling;
   on a theme page nothing does, so the app brings its own.
   ================================================================== */

.wizsp-front {
	background: var(--wz-paper);
	color: var(--wz-ink);
	max-width: 1280px;
	margin: 0 auto;
	padding: 20px 18px 60px;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
	line-height: 1.45;
	text-align: left;
}

.wizsp-front *,
.wizsp-front *::before,
.wizsp-front *::after {
	box-sizing: border-box;
}

.wizsp-front input[type="text"],
.wizsp-front input[type="number"],
.wizsp-front input[type="date"],
.wizsp-front input[type="password"],
.wizsp-front input:not([type]),
.wizsp-front select {
	width: 100%;
	background: #fff;
	border: 1px solid #b6bcae;
	border-radius: 2px;
	padding: 6px 8px;
	font-size: 13px;
	font-family: inherit;
	color: var(--wz-ink);
	line-height: 1.4;
	margin: 0;
	min-height: 32px;
	box-shadow: none;
}

.wizsp-front input:focus,
.wizsp-front select:focus {
	border-color: var(--wz-stamp);
	box-shadow: 0 0 0 2px var(--wz-stamp-bg);
	outline: none;
}

.wizsp-front .button,
.wizsp-front a.button {
	display: inline-block;
	background: #fff;
	border: 1px solid var(--wz-ink);
	border-radius: 2px;
	color: var(--wz-ink);
	padding: 6px 12px;
	font-size: 13px;
	font-weight: 500;
	font-family: inherit;
	line-height: 1.4;
	text-decoration: none;
	cursor: pointer;
	min-height: 32px;
}

.wizsp-front .button:hover,
.wizsp-front a.button:hover {
	background: var(--wz-ink);
	color: #fff;
}

.wizsp-front .button:disabled {
	opacity: 0.4;
	cursor: default;
}

.wizsp-front .button:disabled:hover {
	background: #fff;
	color: var(--wz-ink);
}

.wizsp-front .button-primary {
	background: var(--wz-stamp);
	border-color: var(--wz-stamp);
	color: #fff;
}

.wizsp-front .button-primary:hover {
	background: #463070;
	border-color: #463070;
	color: #fff;
}

.wizsp-front .button-link {
	background: none;
	border: 0;
	padding: 0;
	color: var(--wz-stamp);
	font-size: 12px;
	font-family: inherit;
	cursor: pointer;
	text-decoration: underline;
	min-height: 0;
}

.wizsp-front .button:focus-visible,
.wizsp-front .button-link:focus-visible {
	outline: 2px solid var(--wz-stamp);
	outline-offset: 2px;
}

.wizsp-front label {
	font-weight: inherit;
}

.wizsp-front .wizsp-f label input[type="checkbox"],
.wizsp-front input[type="radio"] {
	width: auto;
	min-height: 0;
	margin-right: 6px;
}

.wizsp-front table,
.wizsp-front .wizsp-table {
	margin: 0;
	font-size: 13px;
}

.wizsp-front .wizsp-table td,
.wizsp-front .wizsp-table th {
	line-height: 1.4;
}

.wizsp-front .notice {
	background: #fff;
	border-left: 4px solid var(--wz-danger);
	padding: 10px 12px;
}

.wizsp-front-foot {
	font-size: 12px;
	color: var(--wz-soft);
	padding-top: 16px;
}

.wizsp-front-foot a {
	color: var(--wz-stamp);
}

.wizsp-gate {
	max-width: 340px;
	margin: 40px auto;
	background: #fff;
	border: 1px solid var(--wz-ink);
	border-top: 4px solid var(--wz-stamp);
	padding: 20px;
}

.wizsp-gate p {
	margin: 0 0 14px;
}

.wizsp-gate label {
	display: block;
	font-size: 11px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wz-soft);
	margin-bottom: 10px;
}

.wizsp-gate .login-remember label {
	text-transform: none;
	letter-spacing: 0;
	font-size: 12px;
}

.wizsp-gate input[type="submit"] {
	background: var(--wz-stamp);
	border: 1px solid var(--wz-stamp);
	border-radius: 2px;
	color: #fff;
	padding: 8px 16px;
	font-size: 13px;
	font-weight: 500;
	cursor: pointer;
	width: 100%;
}

/* ---- attachments ---- */

.wizsp-clip.has-files {
	font-weight: 700;
}

.wizsp-drawer > td {
	background: var(--wz-paper);
	border-bottom: 1px solid var(--wz-ink) !important;
}

.wizsp-files {
	margin: 0 0 10px;
	padding: 0;
	list-style: none;
}

.wizsp-files li {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
	padding: 5px 0;
	border-bottom: 1px solid var(--wz-rule);
}

.wizsp-files a {
	font-weight: 600;
	color: var(--wz-stamp);
}

.wizsp-files .wizsp-meta {
	margin: 0;
}

.wizsp-hash {
	font-family: ui-monospace, monospace;
	font-size: 10px;
	color: var(--wz-soft);
	background: #fff;
	border: 1px solid var(--wz-rule);
	padding: 0 4px;
	margin-left: auto;
}

.wizsp-upload input[type="file"] {
	font-size: 12px;
	max-width: 320px;
}

.wizsp-front .wizsp-upload input[type="file"] {
	width: auto;
	border: 1px solid var(--wz-rule);
	background: #fff;
	padding: 4px;
	border-radius: 2px;
}

/* ---- critical exposure banner ---- */

.wizsp-alert-critical {
	border-left-width: 5px;
	background: #fff5f5;
}

.wizsp-alert-critical b {
	color: var(--wz-danger);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-size: 11px;
}

.wizsp-alert-critical p {
	margin: 6px 0 0;
}
