/*
 * Linkify Basketball League — front-end news manager (ported from the League Manager portal).
 * Primary colour follows the plugin's accent colour.
 */
:root {
	--lbl-pw-primary:        var(--bl-accent, #0077AF);
	--lbl-pw-primary-dark:   color-mix(in srgb, var(--lbl-pw-primary) 82%, #000);
	--lbl-pw-primary-light:  color-mix(in srgb, var(--lbl-pw-primary) 12%, #fff);
	--lbl-pw-success:        #16a34a;
	--lbl-pw-success-light:  #f0fdf4;
	--lbl-pw-danger:         #dc2626;
	--lbl-pw-danger-light:   #fef2f2;
	--lbl-pw-warning:        #d97706;
	--lbl-pw-warning-light:  #fffbeb;
	--lbl-pw-bg:             #f8fafc;
	--lbl-pw-surface:        #ffffff;
	--lbl-pw-border:         #e2e8f0;
	--lbl-pw-border-dark:    #cbd5e1;
	--lbl-pw-text:           #0f172a;
	--lbl-pw-text-secondary: #64748b;
	--lbl-pw-text-muted:     #94a3b8;
	--lbl-pw-shadow:         0 1px 3px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.04);
	--lbl-pw-shadow-modal:   0 20px 60px rgba(0,0,0,.18);
	--lbl-pw-font:           inherit;
	--lbl-pw-transition:     0.15s ease;
}
.lbl-portal-widget { font-family: var(--lbl-pw-font); color: var(--lbl-pw-text); box-sizing: border-box; }
.lbl-portal-widget *, .lbl-portal-widget *::before, .lbl-portal-widget *::after,
#lbl-news-modal, #lbl-news-modal * { box-sizing: border-box; }
#lbl-news-modal { max-width: none !important; margin: 0 !important; position: fixed; inset: 0; width: 100%; height: 100%; z-index: 999999; align-items: center; justify-content: center; padding: 20px; box-sizing: border-box; }
.lbl-portal-widget, #lbl-news-modal {
	--lbl-pw-primary-dark:  color-mix(in srgb, var(--lbl-pw-primary) 82%, #000);
	--lbl-pw-primary-light: color-mix(in srgb, var(--lbl-pw-primary) 12%, #fff);
}
#lbl-news-modal .lbl-pw-modal-backdrop { background: var(--lbl-nm-overlay, rgba(0,0,0,.6)); }
.lbl-news-box { position: relative; background: var(--lbl-nm-bg, #fff); color: var(--lbl-pw-text); width: 100%; max-width: var(--lbl-nm-width, 680px); max-height: 92vh; display: flex; flex-direction: column; overflow: hidden; z-index: 1; box-shadow: 0 25px 60px rgba(0,0,0,.3); border-radius: var(--lbl-nm-radius, 0); }
.lbl-news-box__head { display: flex; align-items: center; justify-content: space-between; padding: 18px 24px; border-bottom: 1px solid var(--lbl-nm-line, #e5e7eb); background: var(--lbl-nm-head-bg, transparent); flex-shrink: 0; }
#lbl-news-modal .lbl-news-box__title { margin: 0; padding: 0; font-size: 17px; font-weight: 700; line-height: 1.3; color: var(--lbl-nm-title, #111827); border: none; }
.lbl-news-box__body { padding: 20px 24px; overflow-y: auto; flex: 1; }
.lbl-news-box__foot { display: flex; align-items: center; justify-content: flex-end; gap: 10px; padding: 14px 24px; border-top: 1px solid var(--lbl-nm-line, #e5e7eb); background: var(--lbl-nm-foot-bg, transparent); flex-shrink: 0; }
.lbl-news-image-area { border: 2px dashed var(--lbl-pw-border-dark); padding: 20px; text-align: center; position: relative; cursor: pointer; background: var(--lbl-nm-field-alt, #fafafa); }
.lbl-news-required { color: var(--lbl-pw-danger); }
.lbl-pw-notice { padding: 12px 16px; border-left: 4px solid var(--lbl-pw-primary); background: var(--lbl-pw-primary-light); }
.lbl-pw-news-filters { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 12px; }
.lbl-pw-news-table td, .lbl-pw-news-table th { vertical-align: middle; }
@media (max-width: 700px) {
	.lbl-pw-news-table th:nth-child(3), .lbl-pw-news-table td:nth-child(3),
	.lbl-pw-news-table th:nth-child(5), .lbl-pw-news-table td:nth-child(5) { display: none; }
}
/* ── Section header ──────────────────────────────────────── */
.lbl-pw-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 24px;
	gap: 12px;
	flex-wrap: wrap;
}
.lbl-pw-title {
	font-size: 22px;
	font-weight: 700;
	color: var(--lbl-pw-text);
	margin: 0;
	letter-spacing: -.01em;
	line-height: 1.3;
}
/* ── Feedback / alert bar ────────────────────────────────── */
.lbl-pw-alert {
	display: none;
	padding: 12px 16px;
	border-radius: 0 !important;
	font-size: 14px;
	font-weight: 500;
	margin-bottom: 16px;
	border-left: 4px solid;
}
.lbl-pw-alert--success {
	background: var(--lbl-pw-success-light);
	border-color: var(--lbl-pw-success);
	color: #14532d;
}
.lbl-pw-alert--error {
	background: var(--lbl-pw-danger-light);
	border-color: var(--lbl-pw-danger);
	color: #991b1b;
}
.lbl-pw-alert--info {
	background: var(--lbl-pw-primary-light);
	border-color: var(--lbl-pw-primary);
	color: #1e3a8a;
}
.lbl-pw-alert--warning {
	background: var(--lbl-pw-warning-light);
	border-color: var(--lbl-pw-warning);
	color: #92400e;
}
/* ── Card ────────────────────────────────────────────────── */
.lbl-pw-card {
	background: var(--lbl-pw-surface);
	border: 1px solid var(--lbl-pw-border);
	border-radius: 0 !important;
	box-shadow: var(--lbl-pw-shadow);
}
.lbl-pw-card__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 16px 20px;
	border-bottom: 1px solid var(--lbl-pw-border);
	background: var(--lbl-pw-bg);
	gap: 12px;
	flex-wrap: wrap;
}
.lbl-pw-card__title {
	font-size: 14px;
	font-weight: 700;
	color: var(--lbl-pw-text);
	margin: 0;
	display: flex;
	align-items: center;
	gap: 8px;
}
.lbl-pw-card__body {
	padding: 20px;
}
/* ── Buttons ─────────────────────────────────────────────── */
.lbl-pw-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	padding: 9px 18px;
	font-size: 14px;
	font-weight: 600;
	font-family: var(--lbl-pw-font);
	border: none;
	border-radius: var(--lbl-pw-radius-btn, 0px) !important;
	cursor: pointer;
	text-decoration: none;
	white-space: nowrap;
	transition: background var(--lbl-pw-transition), transform var(--lbl-pw-transition), box-shadow var(--lbl-pw-transition);
	line-height: 1.4;
}
.lbl-pw-btn:disabled {
	opacity: .55;
	cursor: not-allowed;
	transform: none !important;
}
.lbl-pw-btn--primary {
	background: var(--lbl-pw-primary);
	color: var(--lbl-pw-on-primary, #fff);
}
.lbl-pw-btn--primary:hover:not(:disabled) {
	background: var(--lbl-pw-primary-dark);
	transform: translateY(-1px);
	box-shadow: 0 4px 12px rgba(29,78,216,.25);
}
.lbl-pw-btn--success {
	background: var(--lbl-pw-success);
	color: #fff;
}
.lbl-pw-btn--success:hover:not(:disabled) {
	background: #15803d;
	transform: translateY(-1px);
	box-shadow: 0 4px 12px rgba(22,163,74,.25);
}
.lbl-pw-btn--danger {
	background: var(--lbl-pw-danger);
	color: #fff;
}
.lbl-pw-btn--danger:hover:not(:disabled) {
	background: #b91c1c;
}
.lbl-pw-btn--ghost {
	background: transparent;
	color: var(--lbl-pw-text-secondary);
	border: 1px solid var(--lbl-pw-border-dark);
}
.lbl-pw-btn--ghost:hover:not(:disabled) {
	background: var(--lbl-pw-bg);
	color: var(--lbl-pw-text);
	border-color: var(--lbl-pw-text-secondary);
}
.lbl-pw-btn--sm {
	padding: 6px 12px;
	font-size: 13px;
}
.lbl-pw-btn--lg {
	padding: 12px 24px;
	font-size: 15px;
	font-weight: 700;
}
.lbl-pw-btn--full {
	width: 100%;
}
/* Spinner inside button */
.lbl-pw-spin {
	display: inline-block;
	width: 14px;
	height: 14px;
	border: 2px solid rgba(255,255,255,.35);
	border-top-color: #fff;
	border-radius: 0 !important;
	animation: lbl-pw-spin .7s linear infinite;
	flex-shrink: 0;
}
@keyframes lbl-pw-spin { to { transform: rotate(360deg); } }
/* Icon button */
.lbl-pw-icon-btn {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 32px !important;
	height: 32px !important;
	padding: 0 !important;
	border: 1px solid var(--lbl-pw-border);
	border-radius: 0 !important;
	background: var(--lbl-pw-surface);
	color: var(--lbl-pw-text-secondary);
	cursor: pointer;
	transition: all var(--lbl-pw-transition);
	flex-shrink: 0;
}
.lbl-pw-icon-btn:hover {
	background: var(--lbl-pw-primary);
	border-color: var(--lbl-pw-primary);
	color: #fff;
}
.lbl-pw-icon-btn--danger:hover {
	background: var(--lbl-pw-danger);
	border-color: var(--lbl-pw-danger);
}
.lbl-pw-icon-btn--danger {
	color: var(--lbl-pw-danger);
	border-color: var(--lbl-pw-danger);
}
/* Small variant for action columns */
.lbl-pw-icon-btn--sm {
	width: 26px !important;
	height: 26px !important;
	font-size: 13px;
}
/* Dashicons inside icon buttons */
.lbl-pw-icon-btn .dashicons {
	font-size: 16px;
	width: 16px;
	height: 16px;
	line-height: 1;
	pointer-events: none;
}
.lbl-pw-icon-btn--sm .dashicons {
	font-size: 14px;
	width: 14px;
	height: 14px;
}
.lbl-pw-icon-btn:hover .dashicons {
	color: #fff;
}
/* ── Form elements ───────────────────────────────────────── */
.lbl-pw-label {
	display: block;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .04em;
	color: var(--lbl-pw-text-secondary);
	margin-bottom: 6px;
}
.lbl-pw-input,
.lbl-pw-select,
.lbl-pw-textarea {
	display: block;
	width: 100%;
	padding: 10px 14px;
	font-size: 14px;
	font-family: var(--lbl-pw-font);
	color: var(--lbl-pw-text);
	background: var(--lbl-pw-surface);
	border: 1px solid var(--lbl-pw-border-dark);
	border-radius: var(--lbl-pw-radius-field, 0px) !important;
	box-sizing: border-box;
	transition: border-color var(--lbl-pw-transition), box-shadow var(--lbl-pw-transition);
	line-height: 1.5;
}
.lbl-pw-input:focus,
.lbl-pw-select:focus,
.lbl-pw-textarea:focus {
	outline: none;
	border-color: var(--lbl-pw-primary);
	box-shadow: 0 0 0 3px rgba(29,78,216,.1);
}
.lbl-pw-textarea {
	resize: vertical;
	min-height: 80px;
}
.lbl-pw-select {
	-webkit-appearance: none;
	appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%2364748b' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 12px center;
	padding-right: 36px;
	cursor: pointer;
}
.lbl-pw-field {
	display: flex;
	flex-direction: column;
}
.lbl-pw-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
}
.lbl-pw-grid--full {
	grid-column: 1 / -1;
}
@media (max-width: 600px) {
	.lbl-pw-grid { grid-template-columns: 1fr; }
}
/* ── Badges / pills ──────────────────────────────────────── */
.lbl-pw-badge {
	display: inline-flex;
	align-items: center;
	padding: 2px 10px;
	border-radius: 0 !important;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .02em;
	white-space: nowrap;
}
.lbl-pw-badge--blue    { background: var(--lbl-pw-primary-light); color: var(--lbl-pw-primary); }
.lbl-pw-badge--green   { background: var(--lbl-pw-success-light); color: var(--lbl-pw-success); }
.lbl-pw-badge--red     { background: var(--lbl-pw-danger-light);  color: var(--lbl-pw-danger);  }
.lbl-pw-badge--amber   { background: var(--lbl-pw-warning-light); color: var(--lbl-pw-warning); }
.lbl-pw-badge--grey    { background: #f1f5f9; color: var(--lbl-pw-text-secondary); }
/* ── Modal base (used by footer-injected modals) ─────────── */
.lbl-pw-modal-overlay {
	display: none;
	position: fixed;
	top: 0; left: 0;
	width: 100%; height: 100%;
	z-index: 999999;
	align-items: center;
	justify-content: center;
	padding: 20px;
	box-sizing: border-box;
}
.lbl-pw-modal-backdrop {
	position: absolute;
	top: 0; left: 0;
	width: 100%; height: 100%;
	background: rgba(15,23,42,.5);
	backdrop-filter: blur(2px);
}
.lbl-pw-modal-box {
	position: relative;
	background: var(--lbl-pw-surface);
	border-radius: 0 !important;
	box-shadow: var(--lbl-pw-shadow-modal);
	width: 100%;
	max-width: 640px;
	max-height: 92vh;
	display: flex;
	flex-direction: column;
	overflow: hidden;
	z-index: 1;
}
.lbl-pw-modal-box--sm { max-width: 460px; }
.lbl-pw-modal-box--lg { max-width: 780px; }
.lbl-pw-modal-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 18px 24px;
	border-bottom: 1px solid var(--lbl-pw-border);
	flex-shrink: 0;
}
.lbl-pw-modal-title {
	font-size: 17px;
	font-weight: 700;
	color: var(--lbl-pw-text);
	margin: 0;
}
.lbl-pw-modal-close {
	background: none;
	border: none;
	font-size: 24px;
	line-height: 1;
	color: var(--lbl-pw-text-muted);
	cursor: pointer;
	padding: 2px 6px;
	border-radius: 0 !important;
	transition: color var(--lbl-pw-transition), background var(--lbl-pw-transition);
}
.lbl-pw-modal-close:hover {
	color: var(--lbl-pw-text);
	background: var(--lbl-pw-bg);
}
.lbl-pw-modal-body {
	padding: 20px 24px;
	overflow-y: auto;
	flex: 1;
}
.lbl-pw-modal-footer {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 10px;
	padding: 16px 24px;
	border-top: 1px solid var(--lbl-pw-border);
	background: var(--lbl-pw-bg);
	flex-shrink: 0;
}
/* ── New widget helpers ─────────────────────────────────── */
.lbl-pw-grid--3 { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.lbl-pw-field-hint { margin:4px 0 0; font-size:12px; color:var(--lbl-pw-text-muted); }
.lbl-pw-card__header { padding:14px 20px; border-bottom:1px solid var(--lbl-pw-border); background:var(--lbl-pw-bg); border-radius: 0 !important; display:flex; align-items:center; font-size:14px; font-weight:600; color:var(--lbl-pw-text); }
.lbl-pw-btn--active { background:var(--lbl-pw-primary) !important; color:#fff !important; border-color:var(--lbl-pw-primary) !important; }
.lbl-pw-badge--gk  { background:#dbeafe; color:#005f8a; }
.lbl-pw-badge--def { background:#dcfce7; color:#15803d; }
.lbl-pw-badge--mid { background:#fef9c3; color:#854d0e; }
.lbl-pw-badge--fwd { background:#fee2e2; color:#b91c1c; }
.lbl-pw-badge--teal { background:#ccfbf1; color:#0f766e; }
.lbl-pw-badge--green { background:#dcfce7; color:#15803d; }
.lbl-pw-badge--red { background:#fee2e2; color:#b91c1c; }
.lbl-pw-badge--blue { background:#dbeafe; color:#005f8a; }
.lbl-pw-badge--amber { background:#fef3c7; color:#92400e; }
.lbl-pw-badge--grey { background:#f1f5f9; color:#64748b; }
.lbl-pw-modal-box--sm { max-width:420px; }
/* ── Contenteditable news content area ──────────────────────────────────── */
#lbl-news-content[contenteditable] {
	resize: none;
	outline: none;
}
#lbl-news-content[contenteditable]:focus {
	outline: none;
	border-color: var(--lbl-pw-primary);
	box-shadow: 0 0 0 3px rgba(29,78,216,.1);
}
#lbl-news-content[contenteditable]:empty:before {
	content: attr(data-placeholder);
	color: #9ca3af;
	pointer-events: none;
}
#lbl-news-content img {
	max-width: 100%;
	height: auto;
	vertical-align: middle;
}
#lbl-news-modal .lbl-pw-field { margin-bottom: 14px; }
/* ── Login form for visitors ── */
.lbl-news-login { max-width: 420px; }
.lbl-news-login form p { margin: 0 0 14px; }
.lbl-news-login label { display: block; font-size: 12px; font-weight: 600; letter-spacing: .04em; color: var(--lbl-pw-text-secondary); margin-bottom: 6px; }
.lbl-news-login input[type="text"], .lbl-news-login input[type="password"] { display: block; width: 100%; box-sizing: border-box; padding: 10px 14px; font-size: 14px; color: var(--lbl-pw-text); background: var(--lbl-pw-surface); border: 1px solid var(--lbl-pw-border-dark); border-radius: var(--lbl-pw-radius-field, 0px); }
.lbl-news-login input[type="text"]:focus, .lbl-news-login input[type="password"]:focus { outline: none; border-color: var(--lbl-pw-primary); box-shadow: 0 0 0 3px var(--lbl-pw-primary-light); }
.lbl-news-login .login-remember label { display: inline-flex; align-items: center; gap: 6px; font-weight: 400; letter-spacing: 0; }
.lbl-news-login input[type="submit"] { padding: 10px 22px; font-size: 14px; font-weight: 600; border: 0; cursor: pointer; background: var(--lbl-pw-primary); color: var(--lbl-pw-on-primary, #fff); border-radius: var(--lbl-pw-radius-btn, 0px); }
.lbl-news-login input[type="submit"]:hover { background: var(--lbl-pw-primary-dark); }
.lbl-news-login__lost { font-size: 13px; }

