/* Design system for the custom wizard + proposal panels. These blades are NOT
   scanned by Filament's precompiled Tailwind theme, so they must not rely on
   arbitrary utilities — everything they need is defined here, scoped under
   .adw, with dark mode via the panel's .dark class. */

.adw {
    --adw-border: rgb(17 24 39 / 0.10);
    --adw-text: #111827;
    --adw-text-2: #6b7280;
    --adw-card: rgb(17 24 39 / 0.02);
    --adw-track: rgb(17 24 39 / 0.08);
    color: var(--adw-text);
    font-size: 0.875rem;
    line-height: 1.5;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.dark .adw {
    --adw-border: rgb(255 255 255 / 0.12);
    --adw-text: #f3f4f6;
    --adw-text-2: #9ca3af;
    --adw-card: rgb(255 255 255 / 0.04);
    --adw-track: rgb(255 255 255 / 0.10);
}

/* ---- layout ---- */
.adw-card {
    border: 1px solid var(--adw-border);
    border-radius: 0.75rem;
    padding: 1rem;
    background: var(--adw-card);
}

.adw-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
}

@media (min-width: 700px) {
    .adw-grid { grid-template-columns: 1fr 1fr; }
    .adw-grid-3 { grid-template-columns: 1fr 1fr 1fr; }
}

/* ---- typography ---- */
.adw-kicker {
    font-size: 0.6875rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--adw-text-2);
    margin: 0 0 0.5rem;
}

.adw-title { font-weight: 600; margin: 0 0 0.25rem; }
.adw-muted { color: var(--adw-text-2); font-size: 0.8125rem; }

.adw-list {
    margin: 0.25rem 0 0;
    padding-left: 1.15rem;
    list-style: disc;
}

.adw-list li { margin-bottom: 0.3rem; }
.adw-list li::marker { color: var(--adw-text-2); }

/* ---- badges & banners ---- */
.adw-badge {
    display: inline-flex;
    align-items: center;
    padding: 0.1rem 0.6rem;
    border-radius: 9999px;
    font-size: 0.72rem;
    font-weight: 600;
    white-space: nowrap;
}

.adw-badge.success { background: rgb(22 163 74 / 0.12); color: #15803d; }
.adw-badge.warning { background: rgb(217 119 6 / 0.12); color: #b45309; }
.adw-badge.danger  { background: rgb(220 38 38 / 0.12); color: #b91c1c; }
.adw-badge.info    { background: rgb(29 78 216 / 0.10); color: #1d4ed8; }
.dark .adw-badge.success { color: #4ade80; }
.dark .adw-badge.warning { color: #fbbf24; }
.dark .adw-badge.danger  { color: #f87171; }
.dark .adw-badge.info    { color: #93c5fd; }

.adw-banner {
    border-radius: 0.75rem;
    border: 1px solid;
    padding: 0.875rem 1rem;
}

.adw-banner .adw-title { margin-bottom: 0.35rem; }
.adw-banner.success { border-color: rgb(22 163 74 / 0.35); background: rgb(22 163 74 / 0.07); }
.adw-banner.warning { border-color: rgb(217 119 6 / 0.35); background: rgb(217 119 6 / 0.07); }
.adw-banner.danger  { border-color: rgb(220 38 38 / 0.35); background: rgb(220 38 38 / 0.07); }

/* ---- score bars ---- */
.adw-score-head {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin-bottom: 0.85rem;
}

.adw-score-big { font-size: 1.85rem; font-weight: 700; line-height: 1; }

.adw-bar-row { display: flex; align-items: center; gap: 0.75rem; margin-bottom: 0.55rem; }
.adw-bar-label { width: 10.5rem; flex-shrink: 0; font-size: 0.75rem; color: var(--adw-text-2); }
.adw-bar-track { flex: 1; height: 0.55rem; border-radius: 9999px; background: var(--adw-track); }
.adw-bar-fill { height: 100%; border-radius: 9999px; }
.adw-bar-fill.success { background: #16a34a; }
.adw-bar-fill.warning { background: #d97706; }
.adw-bar-fill.danger  { background: #dc2626; }
.adw-bar-score { width: 2rem; flex-shrink: 0; text-align: right; font-size: 0.75rem; font-weight: 600; }

.adw-bar-missing {
    margin: -0.25rem 0 0.55rem 11.25rem;
    font-size: 0.72rem;
    color: var(--adw-text-2);
}

@media (max-width: 560px) {
    .adw-bar-label { width: 7rem; }
    .adw-bar-missing { margin-left: 7.75rem; }
}

/* ---- screenshot (shown whole, never cropped) ---- */
.adw-screenshot {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 0.5rem;
    border: 1px solid var(--adw-border);
}

/* ---- tables ---- */
.adw-table-wrap { overflow-x: auto; }

.adw-table { width: 100%; border-collapse: collapse; font-size: 0.8125rem; }

.adw-table th {
    text-align: left;
    font-size: 0.6875rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--adw-text-2);
    padding: 0.3rem 0.75rem 0.3rem 0;
}

.adw-table td {
    padding: 0.4rem 0.75rem 0.4rem 0;
    border-top: 1px solid var(--adw-border);
    vertical-align: top;
}

/* ---- stat tiles ---- */
.adw-stat .adw-kicker { margin-bottom: 0.25rem; }
.adw-stat-value { font-size: 1.15rem; font-weight: 600; }

/* ---- checks (tracking health) ---- */
.adw-check { display: flex; gap: 0.75rem; align-items: flex-start; }
.adw-check + .adw-check { margin-top: 0.65rem; }
.adw-check-icon { flex-shrink: 0; width: 1.25rem; text-align: center; font-weight: 700; }
.adw-check-icon.pass { color: #16a34a; }
.adw-check-icon.fail { color: #dc2626; }
.adw-check-icon.na { color: var(--adw-text-2); }

/* ---- diff panels (proposals) ---- */
.adw-diff { display: grid; grid-template-columns: 1fr; gap: 0.75rem; }
@media (min-width: 700px) { .adw-diff { grid-template-columns: 1fr 1fr; } }
.adw-diff-cell { border-radius: 0.5rem; padding: 0.75rem; background: var(--adw-card); border: 1px solid var(--adw-border); }
.adw-diff-cell.current { border-color: rgb(220 38 38 / 0.25); background: rgb(220 38 38 / 0.05); }
.adw-diff-cell.proposed { border-color: rgb(22 163 74 / 0.25); background: rgb(22 163 74 / 0.05); }
.adw-mono { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 0.8125rem; }

/* ---- spinner row ---- */
.adw-running { display: flex; align-items: center; gap: 0.6rem; color: var(--adw-text-2); }
.adw-spinner {
    width: 1rem; height: 1rem; flex-shrink: 0;
    border: 2px solid var(--adw-track);
    border-top-color: var(--adw-text-2);
    border-radius: 50%;
    animation: adw-spin 0.8s linear infinite;
}
@keyframes adw-spin { to { transform: rotate(360deg); } }
