/* Dashboard widget chrome — global so lazy-loaded child components keep the same look. */

.pl-sub-dashboard {
    --pl-bg: transparent;
    --pl-card: #151921;
    --pl-border: rgba(255, 255, 255, 0.08);
    --pl-text: #ffffff;
    --pl-text-muted: #8b95a5;
    --pl-green: #00ff9d;
    --pl-orange: #ff9500;
    --pl-purple: #a855f7;
    --pl-blue: #3b82f6;
    --pl-red: #ff4d4d;
    --pl-yellow: #fbbf24;
    --pl-radius: 10px;
}

.pl-sub-dashboard--light {
    --pl-card: #ffffff;
    --pl-border: rgba(0, 0, 0, 0.08);
    --pl-text: #111827;
    --pl-text-muted: #6b7280;
    --pl-green: #059669;
    --pl-orange: #ea580c;
    --pl-purple: #9333ea;
    --pl-blue: #0284c7;
    --pl-red: #dc2626;
    --pl-yellow: #d97706;
}

.pl-usage-card {
    background: var(--site-foreground-color);
    border: 1px solid var(--pl-border);
    border-radius: var(--pl-radius);
    padding: 1.125rem 1.25rem 1rem;
    display: flex;
    flex-direction: column;
    min-height: 170px;
}

.pl-usage-card--green { border-color: rgba(0, 255, 157, 0.15); }
.pl-usage-card--orange { border-color: rgba(255, 149, 0, 0.15); }
.pl-usage-card--purple { border-color: rgba(168, 85, 247, 0.15); }
.pl-usage-card--blue { border-color: rgba(59, 130, 246, 0.15); }

.pl-sub-dashboard--light .pl-usage-card--green { background: #ecfdf5; border-color: rgba(16, 185, 129, 0.25); }
.pl-sub-dashboard--light .pl-usage-card--orange { background: #fff7ed; border-color: rgba(249, 115, 22, 0.25); }
.pl-sub-dashboard--light .pl-usage-card--purple { background: #faf5ff; border-color: rgba(168, 85, 247, 0.25); }
.pl-sub-dashboard--light .pl-usage-card--blue { background: #f0f9ff; border-color: rgba(14, 165, 233, 0.25); }

.pl-usage-card__header {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    margin-bottom: 0.75rem;
}

.pl-usage-card__icon {
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    font-size: 1rem;
    flex-shrink: 0;
}

.pl-usage-card__header .pl-usage-card__icon {
    margin-bottom: 0;
}

.pl-usage-card--green .pl-usage-card__icon { color: var(--pl-green); background: rgba(0, 255, 157, 0.12); }
.pl-usage-card--orange .pl-usage-card__icon { color: var(--pl-orange); background: rgba(255, 149, 0, 0.12); }
.pl-usage-card--purple .pl-usage-card__icon { color: var(--pl-purple); background: rgba(168, 85, 247, 0.12); }
.pl-usage-card--blue .pl-usage-card__icon { color: var(--pl-blue); background: rgba(59, 130, 246, 0.12); }

.pl-usage-card__title {
    font-size: 0.8rem;
    color: var(--pl-text-muted);
    margin-bottom: 0;
}

.pl-usage-card__header .pl-usage-card__title {
    min-width: 0;
}

.pl-usage-card__value {
    font-size: 1.5rem;
    font-weight: 600;
    color: var(--pl-text);
    line-height: 1.2;
    margin-bottom: 0.2rem;
}

.pl-usage-card__loading {
    font-size: 1rem;
    font-weight: 500;
    color: var(--pl-text-muted);
}

.pl-usage-card__subtext {
    font-size: 0.75rem;
    color: var(--pl-text-muted);
    margin-bottom: 0.75rem;
}

.pl-usage-card__progress {
    height: 4px;
    background: rgba(255, 255, 255, 0.08);
    border-radius: 999px;
    overflow: hidden;
    margin-bottom: 0.85rem;
}

.pl-sub-dashboard--light .pl-usage-card__progress {
    background: rgba(0, 0, 0, 0.06);
}

.pl-usage-card__progress-bar {
    height: 100%;
    border-radius: 999px;
    transition: width 0.3s ease;
}

.pl-usage-card--green .pl-usage-card__progress-bar { background: var(--pl-green); }
.pl-usage-card--orange .pl-usage-card__progress-bar { background: var(--pl-orange); }
.pl-usage-card--purple .pl-usage-card__progress-bar { background: var(--pl-purple); }
.pl-usage-card--blue .pl-usage-card__progress-bar { background: var(--pl-blue); }

.pl-usage-card__link {
    font-size: 0.8rem;
    font-weight: 500;
    cursor: pointer;
    text-decoration: none;
    margin-top: auto;
}

.pl-usage-card--green .pl-usage-card__link { color: var(--pl-green); }
.pl-usage-card--orange .pl-usage-card__link { color: var(--pl-orange); }
.pl-usage-card--purple .pl-usage-card__link { color: var(--pl-purple); }
.pl-usage-card--blue .pl-usage-card__link { color: var(--pl-blue); }

.pl-usage-card__link:hover {
    opacity: 0.85;
    text-decoration: none;
}

.pl-sub-panel {
    background: var(--site-foreground-color);
    border: 1px solid var(--pl-border);
    border-radius: var(--pl-radius);
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.pl-sub-dashboard--light .pl-sub-panel {
    box-shadow: rgba(0, 0, 0, 0.06) 0 2px 8px;
}

.pl-sub-panel__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1rem 1.25rem 0.75rem;
    gap: 1rem;
}

.pl-sub-panel__title {
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--pl-text);
    margin: 0;
    display: flex;
    align-items: center;
    gap: 0.45rem;
}

.pl-sub-panel__title-icon {
    font-size: 0.9rem;
}

.pl-sub-panel__title-icon--danger { color: var(--pl-red); }
.pl-sub-panel__title-icon--success { color: var(--pl-green); }
.pl-sub-panel__title-icon--caution { color: var(--pl-yellow); }

.pl-sub-panel__link {
    font-size: 0.8rem;
    color: var(--pl-green);
    cursor: pointer;
    text-decoration: none;
    white-space: nowrap;
}

.pl-sub-panel__link--danger {
    color: var(--pl-red);
}

.pl-sub-panel__link:hover {
    opacity: 0.85;
    text-decoration: none;
}

.pl-sub-panel__body {
    padding: 0 1.25rem 1.25rem;
    flex: 1;
}

.pl-sub-panel__body--flush {
    padding: 0;
}

.pl-attention-list {
    list-style: none;
    margin: 0 0 1rem;
    padding: 0;
}

.pl-attention-list__item {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0.7rem 0;
    border-bottom: 1px solid var(--pl-border);
    cursor: pointer;
    transition: background 0.15s ease;
}

.pl-attention-list__item:last-child {
    border-bottom: none;
}

.pl-attention-list__item:hover {
    opacity: 0.9;
}

.pl-attention-list__dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex-shrink: 0;
}

.pl-attention-list__dot--danger { background: var(--pl-red); }
.pl-attention-list__dot--warning { background: var(--pl-orange); }
.pl-attention-list__dot--caution { background: var(--pl-yellow); }
.pl-attention-list__dot--info { background: var(--pl-blue); }

.pl-attention-list__text {
    flex: 1;
    font-size: 0.85rem;
    color: var(--pl-text);
}

.pl-attention-list__chevron {
    font-size: 0.75rem;
    color: var(--pl-text-muted);
}

.pl-sub-panel__cta {
    appearance: none;
    -webkit-appearance: none;
    font-family: inherit;
    width: 100%;
    padding: 0.65rem 1rem;
    font-size: 0.85rem;
    font-weight: 500;
    color: var(--pl-text);
    background: transparent;
    border: 1px solid var(--pl-border);
    border-radius: 8px;
    cursor: pointer;
    transition: background 0.15s ease;
}

.pl-sub-panel__cta:hover {
    background: rgba(255, 255, 255, 0.04);
}

.pl-sub-dashboard--light .pl-sub-panel__cta:hover {
    background: rgba(0, 0, 0, 0.03);
}

.pl-ops-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}

.pl-ops-stat {
    padding: 0.25rem 0;
}

.pl-ops-stat__header {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    margin-bottom: 0.35rem;
}

.pl-ops-stat__icon {
    font-size: 0.9rem;
    color: var(--pl-text-muted);
    flex-shrink: 0;
    line-height: 1;
}

.pl-ops-stat__label {
    font-size: 0.72rem;
    color: var(--pl-text-muted);
    min-width: 0;
}

.pl-ops-stat__value {
    font-size: 1.35rem;
    font-weight: 600;
    color: var(--pl-text);
    line-height: 1.1;
    margin-bottom: 0.25rem;
}

.pl-ops-stat__change {
    font-size: 0.72rem;
}

.pl-ops-stat__change--positive { color: var(--pl-green); }
.pl-ops-stat__change--negative { color: var(--pl-orange); }

.pl-sub-panel--activity {
    margin-bottom: 1.5rem;
}

.pl-sub-panel--activity table,
.pl-activity-table {
    width: 100%;
    border-collapse: collapse;
    color: var(--pl-text);
}

.pl-sub-panel--activity table thead th,
.pl-activity-table thead th {
    font-size: 0.68rem;
    font-weight: 500;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--pl-text-muted);
    border: none;
    border-bottom: 1px solid var(--pl-border);
    padding: 0.75rem 1.25rem;
    background: transparent;
    text-align: left;
}

.pl-sub-panel--activity table tbody td,
.pl-activity-table tbody td {
    font-size: 0.82rem;
    border: none;
    border-bottom: 1px solid var(--pl-border);
    padding: 0.75rem 1.25rem;
    vertical-align: middle;
}

.pl-sub-panel--activity table tbody tr:last-child td,
.pl-activity-table tbody tr:last-child td {
    border-bottom: none;
}

.pl-sub-panel--activity table tbody tr:hover td,
.pl-activity-table tbody tr:hover td {
    background: rgba(255, 255, 255, 0.02);
}

.pl-sub-dashboard--light .pl-sub-panel--activity table tbody tr:hover td,
.pl-sub-dashboard--light .pl-activity-table tbody tr:hover td {
    background: rgba(0, 0, 0, 0.02);
}

.pl-sub-panel--activity table tbody a,
.pl-activity-table tbody a {
    color: var(--pl-green);
    cursor: pointer;
    text-decoration: none;
}

.pl-activity-row {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
}

.pl-activity-icon {
    width: 28px;
    height: 28px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 6px;
    font-size: 0.8rem;
    flex-shrink: 0;
}

.pl-activity-icon--danger { color: var(--pl-red); background: rgba(255, 77, 77, 0.12); }
.pl-activity-icon--success { color: var(--pl-green); background: rgba(0, 255, 157, 0.12); }
.pl-activity-icon--info { color: var(--pl-blue); background: rgba(59, 130, 246, 0.12); }
.pl-activity-icon--caution { color: var(--pl-yellow); background: rgba(251, 191, 36, 0.12); }

.pl-activity-footer {
    text-align: center;
    font-size: 0.78rem;
    color: var(--pl-text-muted);
    padding: 0.85rem 1.25rem 1rem;
    border-top: 1px solid var(--pl-border);
}
