        /* === Component classes (plain CSS, no @apply — Tailwind v4 compatible) === */
        .lp-table {
  width: 100%;
  border-spacing: 0 8px;
  border-collapse: separate;
}
        .lp-table th {
            font-size: 10px; font-weight: 700; color: #94a3b8;
            text-transform: uppercase; letter-spacing: 0.1em;
            padding: 0.75rem 1rem; text-align: left;
        }
        .lp-table td {
            background-color: rgba(255, 255, 255, 0.4);
            backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
            padding: 1rem;
            border-top: 1px solid rgba(255, 255, 255, 0.2);
            border-bottom: 1px solid rgba(255, 255, 255, 0.2);
            transition: all 300ms;
        }
        .lp-table td:first-child {
            border-left: 1px solid rgba(255, 255, 255, 0.2);
            border-radius: 1rem 0 0 1rem;
        }
        .lp-table td:last-child {
            border-right: 1px solid rgba(255, 255, 255, 0.2);
            border-radius: 0 1rem 1rem 0;
        }
        .lp-table td:only-child {
            border-radius: 1rem;
        }
        .lp-table tr:hover td { background-color: rgba(255, 255, 255, 0.6); }
        .lp-input {
            width: 100%; margin-top: 0.25rem;
            padding: 0.75rem 1rem;
            background-color: rgba(255, 255, 255, 0.5);
            border: 1px solid rgba(148, 163, 184, 0.5);
            border-radius: 0.75rem;
            font-size: 0.875rem;
            outline: none;
            transition: all 300ms;
            box-sizing: border-box;
        }
        .lp-input:focus {
            box-shadow: 0 0 0 2px rgba(0, 88, 187, 0.2);
            border-color: rgba(0, 88, 187, 0.4);
        }
        .lp-label {
            font-size: 10px; color: #64748b; font-weight: 700;
            text-transform: uppercase; letter-spacing: 0.05em;
            display: block; margin-bottom: 0.25rem;
        }
        .lp-card {
            background: rgba(255, 255, 255, 0.45);
            backdrop-filter: blur(24px); -webkit-backdrop-filter: blur(24px);
            border: 1px solid rgba(172, 173, 177, 0.2);
            box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.04);
            border-radius: 1rem; padding: 2rem;
            position: relative; overflow: hidden;
        }
        .lp-page-title {
            font-size: 1.875rem; font-weight: 800;
            letter-spacing: -0.05em; margin-bottom: 0.5rem;
        }
        .lp-btn-primary {
            display: inline-flex; align-items: center; justify-content: center;
            padding: 0.75rem 1.5rem;
            background: linear-gradient(to bottom right, #0058bb, #004ca4);
            color: white; border: none; border-radius: 0.75rem;
            font-size: 0.75rem; font-weight: 700;
            box-shadow: 0 10px 15px -3px rgba(0, 88, 187, 0.2);
            cursor: pointer; transition: all 300ms;
        }
        .lp-btn-primary:hover {
            box-shadow: 0 10px 15px -3px rgba(0, 88, 187, 0.4);
            transform: translateY(-2px);
        }
        .lp-btn-primary:active { transform: scale(0.95); }
        .lp-btn-outline {
            display: inline-flex; align-items: center; justify-content: center;
            padding: 0.75rem 1.5rem;
            background-color: rgba(255, 255, 255, 0.4);
            backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
            border: 1px solid rgba(148, 163, 184, 0.5);
            color: #475569; border-radius: 0.75rem;
            font-size: 0.75rem; font-weight: 700;
            cursor: pointer; transition: all 300ms;
        }
        .lp-btn-outline:hover {
            background-color: rgba(255, 255, 255, 0.6);
            transform: translateY(-2px);
        }
        .lp-btn-outline:active { transform: scale(0.95); }
        .lp-btn-danger {
            display: inline-flex; align-items: center; justify-content: center;
            padding: 0.75rem 1.5rem;
            background-color: rgba(179, 27, 37, 0.1);
            color: #b31b25;
            border: 1px solid rgba(179, 27, 37, 0.2);
            border-radius: 0.75rem;
            font-size: 0.75rem; font-weight: 700;
            cursor: pointer; transition: all 300ms;
        }
        .lp-btn-danger:hover { background-color: rgba(179, 27, 37, 0.2); }
        .nav-item {
            display: flex; align-items: center; gap: 0.75rem;
            padding: 0.75rem 1rem; color: #64748b;
            border-radius: 0.75rem; cursor: pointer;
            transition: all 300ms;
        }
        .nav-item:hover { background-color: rgba(255, 255, 255, 0.6); }
        .nav-item.active {
            color: #0058bb !important;
            background-color: rgba(255, 255, 255, 0.8);
            box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
            border-left: 4px solid #0058bb;
        }
        /* Toast notification */
        #toastContainer {
            position: fixed; top: 1rem; right: 1rem; z-index: 9999;
            display: flex; flex-direction: column; gap: 0.5rem;
            pointer-events: none;
        }
        .toast {
            padding: 12px 24px; color: white; border-radius: 12px;
            font-size: 12px; font-weight: 700;
            box-shadow: 0 4px 12px rgba(0,0,0,0.15);
            transition: all 300ms ease;
            opacity: 0; transform: translateX(20px);
            pointer-events: auto;
        }
        .toast.show { opacity: 1; transform: translateX(0); }
        .toast-success { background: #0058bb; }
        .toast-error { background: #b31b25; }
        .toast-warning { background: #d97706; }
        .toast-info { background: #1e293b; }

        /* Page transition animation */
        @keyframes pageFadeIn {
            from { opacity: 0; transform: translateY(12px); }
            to   { opacity: 1; transform: translateY(0); }
        }
        .page.active {
            animation: pageFadeIn 0.35s ease-out;
        }

        /* Progress circle transition */
        #progressCircle {
            transition: stroke-dashoffset 0.8s ease-in-out;
        }

        /* Keyboard focus styles for nav items */
        .nav-item:focus-visible {
            outline: 2px solid #0058bb;
            outline-offset: 2px;
        }
        .nav-item { outline: none; }

        /* Skeleton loading shimmer animation */
        @keyframes shimmer {
            0% { background-position: -200px 0; }
            100% { background-position: calc(200px + 100%) 0; }
        }
        .skeleton {
            background: linear-gradient(90deg, #f0f0f6 25%, #e7e8ee 50%, #f0f0f6 75%);
            background-size: 200px 100%;
            animation: shimmer 1.5s infinite;
            border-radius: 0.5rem;
        }

        /* === A2: Visibility helpers === */
        .u-hidden { display: none !important; }

        /* === A2: Toast undo variant === */
        .toast--undo {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 12px;
        }
        .toast-undo-btn {
            background: rgba(255,255,255,0.25);
            border: 1px solid rgba(255,255,255,0.4);
            color: white;
            border-radius: 8px;
            padding: 4px 12px;
            font-size: 11px;
            font-weight: 700;
            cursor: pointer;
            white-space: nowrap;
        }

        /* === Background animated orbs === */
        @keyframes orbFloat {
            0%, 100% { transform: translate(0, 0) scale(1); }
            25% { transform: translate(30px, -40px) scale(1.05); }
            50% { transform: translate(-20px, 20px) scale(0.95); }
            75% { transform: translate(40px, -10px) scale(1.02); }
        }
        .bg-orb {
            position: fixed;
            border-radius: 50%;
            filter: blur(120px);
            pointer-events: none;
            z-index: -1;
            opacity: 0.6;
            animation: orbFloat 20s ease-in-out infinite;
        }
        .bg-orb:nth-child(1) {
            width: 50vw; height: 50vw;
            top: -10%; right: -10%;
            background: rgba(108, 159, 255, 0.12);
            animation-delay: 0s;
            animation-duration: 25s;
        }
        .bg-orb:nth-child(2) {
            width: 40vw; height: 40vw;
            bottom: -15%; left: -10%;
            background: rgba(111, 251, 133, 0.08);
            animation-delay: -5s;
            animation-duration: 20s;
        }
        .bg-orb:nth-child(3) {
            width: 30vw; height: 30vw;
            top: 40%; left: 30%;
            background: rgba(150, 218, 255, 0.06);
            animation-delay: -10s;
            animation-duration: 30s;
        }

        /* === Glass card shine effect === */
        .lp-card::before {
            content: '';
            position: absolute;
            top: 0; left: -50%;
            width: 50%; height: 100%;
            background: linear-gradient(90deg, transparent, rgba(255,255,255,0.15), transparent);
            transform: skewX(-15deg);
            transition: left 0.6s ease;
            pointer-events: none;
        }
        .lp-card:hover::before {
            left: 150%;
        }

        /* === Improved focus ring === */
        *:focus-visible {
            outline: 2px solid var(--color-primary, #0058bb);
            outline-offset: 2px;
            border-radius: 4px;
        }

        /* === Nav item animation === */
        .nav-item {
            position: relative;
            overflow: hidden;
        }
        .nav-item::after {
            content: '';
            position: absolute;
            left: 0; top: 0;
            width: 3px; height: 100%;
            background: var(--color-primary, #0058bb);
            transform: scaleY(0);
            transition: transform 0.2s ease;
        }
        .nav-item.active::after,
        .nav-item[aria-current="page"]::after {
            transform: scaleY(1);
        }

        /* === Page transition enhancement === */
        @keyframes pageSlideIn {
            from { opacity: 0; transform: translateY(8px); }
            to { opacity: 1; transform: translateY(0); }
        }
        .page.active {
            animation: pageSlideIn 0.3s ease-out;
        }

        /* === Card stagger (for dashboard cards) === */
        #dashboardCards > div > div {
            animation: pageSlideIn 0.4s ease-out both;
        }
        #dashboardCards > div > div:nth-child(1) { animation-delay: 0.05s; }
        #dashboardCards > div > div:nth-child(2) { animation-delay: 0.1s; }
        #dashboardCards > div > div:nth-child(3) { animation-delay: 0.15s; }

        /* === Smooth input focus === */
        .lp-input {
            transition: border-color 0.3s ease, box-shadow 0.3s ease, transform 0.2s ease;
        }
        .lp-input:focus {
            transform: translateY(-1px);
        }

        /* === Button press feedback === */
        .lp-btn-primary:active {
            transform: scale(0.97);
        }
        .lp-btn-outline:active {
            transform: scale(0.97);
        }

        /* === Scroll reveal animation === */
        @keyframes revealUp {
            from { opacity: 0; transform: translateY(40px); }
            to { opacity: 1; transform: translateY(0); }
        }
        .reveal {
            opacity: 0;
            transform: translateY(40px);
            transition: opacity 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94),
                        transform 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94);
        }
        .reveal.visible {
            opacity: 1;
            transform: translateY(0);
        }
    