/**
 * PN License Manager - Frontend Styles
 *
 * Uses BEM (Block Element Modifier) naming convention
 * All spacing uses rem units for better accessibility
 */

/* ==========================================================================
   License Overview Page
   ========================================================================== */

.pn-licenses {
	margin: 0 0 2rem;
}

.pn-licenses__title {
	margin: 0 0 1.5rem;
	font-size: 1.5rem;
	font-weight: 600;
}

.pn-licenses__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.5rem;
	margin: 0 0 2rem;
}

/* License Card Component */
.pn-license-card {
	border: 0.0625rem solid;
	border-radius: 0.5rem;
	padding: 1.5rem;
	transition: box-shadow 0.3s ease, transform 0.2s ease;
}

.pn-license-card:hover {
	transform: translateY(-0.125rem);
}

.pn-license-card--expired {
	opacity: 0.8;
}

.pn-license-card__header {
	margin-bottom: 1rem;
}

.pn-license-card__key-wrapper {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	flex-wrap: wrap;
}

.pn-license-card__key {
	font-family: 'Courier New', monospace;
	font-size: 0.875rem;
	padding: 0.5rem;
	border-radius: 0.25rem;
	word-break: break-all;
	flex: 1;
	min-width: 0;
}

.pn-license-card__copy {
	display: inline-flex;
	align-items: center;
	gap: 0.25rem;
	padding: 0.375rem 0.75rem;
	font-size: 0.875rem;
	cursor: pointer;
	border: 0.0625rem solid;
	border-radius: 0.25rem;
	transition: background 0.2s ease, border-color 0.2s ease;
}

.pn-license-card__copy:hover {
	opacity: 0.8;
}

.pn-license-card__copy--success {
	opacity: 1;
}

.pn-license-card__copy--error {
	opacity: 1;
}

.pn-license-card__copy .dashicons {
	width: 1rem;
	height: 1rem;
	font-size: 1rem;
}

.pn-license-card__body {
	margin-bottom: 1rem;
}

.pn-license-card__product {
	margin: 0 0 1rem;
	font-size: 1.125rem;
	font-weight: 600;
}

.pn-license-card__meta {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	margin-bottom: 1rem;
}

.pn-license-card__status,
.pn-license-card__expiration {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 0.875rem;
}

.pn-license-card__label {
	font-weight: 600;
	opacity: 0.7;
}

.pn-license-card__value {
}

.pn-license-card__stats {
	display: flex;
	gap: 1.5rem;
	padding: 0.75rem;
	border-radius: 0.25rem;
	margin-bottom: 1rem;
}

.pn-license-card__stat {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
}

.pn-license-card__stat-label {
	font-size: 0.75rem;
	font-weight: 600;
	opacity: 0.7;
	text-transform: uppercase;
	letter-spacing: 0.025rem;
}

.pn-license-card__stat-value {
	font-size: 1.125rem;
	font-weight: 600;
}

.pn-license-card__notice {
	padding: 0.75rem;
	border-radius: 0.25rem;
	font-size: 0.875rem;
	margin-bottom: 1rem;
}

.pn-license-card__notice--error {
	border-left: 0.25rem solid;
}

.pn-license-card__footer {
	display: flex;
	gap: 0.5rem;
	flex-wrap: wrap;
}

.pn-license-card__button {
	flex: 1;
	min-width: fit-content;
	text-align: center;
}

/* License Status Badges */
.license-status {
	display: inline-block;
	padding: 0.25rem 0.75rem;
	font-size: 0.75rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.025rem;
	border-radius: 0.25rem;
}

.license-status--active {
}

.license-status--expired {
}

.license-status--disabled {
	opacity: 0.7;
}

.license-status--suspended {
}

/* Expiration Info */
.license-expiration {
	display: inline-block;
	font-size: 0.875rem;
}

.license-expiration--never {
	opacity: 0.7;
}

.license-expiration--expired {
	font-weight: 600;
}

.license-expiration--warning {
	font-weight: 600;
}

/* ==========================================================================
   License Details Page
   ========================================================================== */

.pn-license-details {
	max-width: 50rem;
}

.pn-license-details__back {
	margin-bottom: 1rem;
}

.pn-license-details__back a {
	text-decoration: none;
}

.pn-license-details__back a:hover {
	text-decoration: underline;
}

.pn-license-details__header {
	margin-bottom: 2rem;
}

.pn-license-details__title {
	margin: 0;
	font-size: 1.75rem;
	font-weight: 600;
}

/* License Section */
.pn-license-section {
	border: 0.0625rem solid;
	border-radius: 0.5rem;
	padding: 1.5rem;
	margin-bottom: 1.5rem;
}

.pn-license-section__title {
	margin: 0 0 1rem;
	font-size: 1.25rem;
	font-weight: 600;
}

.pn-license-section__empty {
	opacity: 0.7;
	font-style: italic;
}

/* License Key Display */
.pn-license-key-display {
	display: flex;
	align-items: center;
	gap: 1rem;
	flex-wrap: wrap;
}

.pn-license-key-display__key {
	font-family: 'Courier New', monospace;
	font-size: 1.125rem;
	padding: 0.75rem 1rem;
	border-radius: 0.25rem;
	border: 0.0625rem solid;
	flex: 1;
	min-width: 15rem;
}

.pn-license-key-display__copy {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
}

/* License Info Table */
.pn-license-info-table,
.pn-license-features-table {
	width: 100%;
	border-collapse: collapse;
}

.pn-license-info-table th,
.pn-license-features-table th {
	text-align: left;
	padding: 0.75rem 1rem 0.75rem 0;
	font-weight: 600;
	opacity: 0.7;
	width: 40%;
	vertical-align: top;
}

.pn-license-info-table td,
.pn-license-features-table td {
	padding: 0.75rem 0;
	border-bottom: 0.0625rem solid;
}

.pn-license-info-table tr:last-child td,
.pn-license-features-table tr:last-child td {
	border-bottom: none;
}

.pn-license-expiration-info {
	margin-top: 0.5rem;
}

/* Domain Management */
.license-domains {
	display: grid;
	gap: 1rem;
}

.license-domains__empty {
	opacity: 0.7;
	font-style: italic;
}

/* Domain Card */
.license-domain-card {
	border: 0.0625rem solid;
	border-radius: 0.25rem;
	padding: 1rem;
}

.license-domain-card__header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 0.75rem;
	gap: 1rem;
	flex-wrap: wrap;
}

.license-domain-card__domain {
	font-weight: 600;
	font-size: 1rem;
	word-break: break-all;
}

.license-domain-card__status {
	display: inline-block;
	padding: 0.25rem 0.5rem;
	font-size: 0.75rem;
	font-weight: 600;
	text-transform: uppercase;
	border-radius: 0.25rem;
}

.license-domain-card__status--active {
}

.license-domain-card__status--inactive {
	opacity: 0.7;
}

.license-domain-card__status--suspended {
}

.license-domain-card__meta {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
	gap: 0.75rem;
	margin-bottom: 0.75rem;
}

.license-domain-card__meta-item {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
}

.license-domain-card__meta-label {
	font-size: 0.75rem;
	font-weight: 600;
	opacity: 0.7;
	text-transform: uppercase;
}

.license-domain-card__meta-value {
	font-size: 0.875rem;
}

.license-domain-card__actions {
	margin-top: 1rem;
	padding-top: 1rem;
	border-top: 0.0625rem solid;
}

.license-domain-card__deactivate {
}

.license-domain-card__deactivate:hover {
	opacity: 0.8;
}

/* Activation Instructions */
.license-activation-instructions {
	border: 0.0625rem solid;
	border-radius: 0.25rem;
	padding: 1rem;
	margin-top: 1.5rem;
}

.license-activation-instructions h3 {
	margin: 0 0 0.75rem;
	font-size: 1rem;
	font-weight: 600;
}

.license-activation-instructions ol {
	margin: 0 0 0.75rem 1.25rem;
	padding: 0;
}

.license-activation-instructions li {
	margin-bottom: 0.5rem;
	font-size: 0.875rem;
}

.license-activation-instructions .description {
	font-size: 0.875rem;
	opacity: 0.7;
}

/* Inactive Licenses Section */
.pn-licenses__inactive-section {
	margin-top: 2rem;
}

.pn-licenses__toggle-inactive {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.75rem 1rem;
	text-decoration: none !important;
	border: 0.0625rem solid;
	border-radius: 0.25rem;
	font-weight: 600;
	transition: opacity 0.2s ease;
}

.pn-licenses__toggle-inactive:hover {
	opacity: 0.8;
	text-decoration: none !important;
}

.pn-licenses__toggle-inactive:focus {
	text-decoration: none !important;
	outline: none;
}

.pn-licenses__toggle-inactive .dashicons {
	transition: transform 0.3s ease;
}

.pn-licenses__toggle-inactive.is-open .dashicons {
	transform: rotate(180deg);
}

.pn-licenses__grid--inactive {
	margin-top: 1.5rem;
}

/* ==========================================================================
   Responsive Design
   ========================================================================== */

@media screen and (max-width: 48rem) {
	.pn-licenses__grid {
		grid-template-columns: 1fr;
	}

	.pn-license-card__stats {
		flex-direction: column;
		gap: 0.75rem;
	}

	.pn-license-domain-card__header {
		flex-direction: column;
		align-items: flex-start;
	}

	.pn-license-key-display {
		flex-direction: column;
		align-items: stretch;
	}

	.pn-license-key-display__key {
		min-width: 100%;
	}
}

/* ==========================================================================
   Print Styles
   ========================================================================== */

@media print {
	.pn-license-card__copy,
	.pn-license-key-display__copy,
	.license-domain-card__deactivate,
	.pn-license-details__back {
		display: none;
	}
}