/*
 * =========================================================
 * PREMIUM QR CODES — THEME CONTRACT V2
 * =========================================================
 *
 * Canonical state:
 * html[data-pqr-theme="..."]
 *
 * Existing --pqr-* palette variables remain authoritative.
 * Application/tool CSS consumes the semantic aliases below.
 * =========================================================
 */

:root {

    /* Page / surfaces */
    --pqr-bg-page:
        var(--pqr-page, #f8faff);

    --pqr-bg-surface:
        var(--pqr-surface, #ffffff);

    --pqr-bg-elevated:
        var(--pqr-surface-solid, #ffffff);

    --pqr-bg-subtle:
        var(--pqr-surface-soft, #f8fafc);


    /* Text */
    --pqr-text-primary:
        var(--pqr-text, #172033);

    --pqr-text-secondary:
        var(--pqr-text-soft, #475569);

    --pqr-text-muted:
        var(--pqr-muted, #64748b);

    --pqr-text-on-primary:
        #ffffff;


    /* Borders */
    --pqr-border-default:
        var(--pqr-border, #e2e8f0);

    --pqr-border-subtle:
        var(
            --pqr-border-soft,
            var(--pqr-border, #e2e8f0)
        );


    /* Primary action */
    --pqr-action:
        var(--pqr-primary, #6366f1);

    --pqr-action-hover:
        var(--pqr-primary-dark, #4f46e5);

    --pqr-action-soft:
        var(--pqr-primary-soft, #eef2ff);


    /* Controls */
    --pqr-control-bg:
        var(--pqr-surface-solid, #ffffff);

    --pqr-control-bg-hover:
        var(--pqr-surface-soft, #f8fafc);

    --pqr-control-border:
        var(--pqr-border, #e2e8f0);

    --pqr-control-text:
        var(--pqr-text, #172033);

    --pqr-control-placeholder:
        var(--pqr-muted, #64748b);


    /* Status */
    --pqr-status-success:
        var(--pqr-success, #10b981);

    --pqr-status-danger:
        var(--pqr-danger, #dc2626);

    --pqr-status-warning:
        var(--pqr-warning, #d97706);


    /* Shadows */
    --pqr-shadow-card:
        var(
            --pqr-shadow,
            0 16px 42px rgba(15, 23, 42, .08)
        );

    --pqr-shadow-small:
        var(
            --pqr-shadow-sm,
            0 8px 24px rgba(15, 23, 42, .06)
        );


    /* Radius */
    --pqr-radius-control:
        var(--pqr-radius-sm, 10px);

    --pqr-radius-card:
        var(--pqr-radius, 16px);

    --pqr-radius-panel:
        var(--pqr-radius-lg, 22px);
}


/*
 * Theme-isolated content:
 * printable/rendered documents must not inherit app dark mode.
 */

.pqr-theme-isolated {
    color-scheme: light;
}


/*
 * Shared theme-aware primitives
 */

.pqr-theme-card {
    border:
        1px solid
        var(--pqr-border-default);

    border-radius:
        var(--pqr-radius-card);

    background:
        var(--pqr-bg-surface);

    color:
        var(--pqr-text-primary);

    box-shadow:
        var(--pqr-shadow-small);
}


.pqr-theme-panel {
    border:
        1px solid
        var(--pqr-border-default);

    border-radius:
        var(--pqr-radius-panel);

    background:
        var(--pqr-bg-surface);

    color:
        var(--pqr-text-primary);
}


.pqr-theme-input {
    border:
        1px solid
        var(--pqr-control-border);

    border-radius:
        var(--pqr-radius-control);

    background:
        var(--pqr-control-bg);

    color:
        var(--pqr-control-text);
}


.pqr-theme-input::placeholder {
    color:
        var(--pqr-control-placeholder);
}


.pqr-theme-muted {
    color:
        var(--pqr-text-muted);
}


.pqr-theme-secondary {
    color:
        var(--pqr-text-secondary);
}
