/* _content/KLESSONSHUB/Components/Auth/LoginDisplay.razor.rz.scp.css */
.login-display[b-zd8181ml28] {
    display: flex;
    align-items: center;
    gap: 0.625rem;
}

.user-avatar[b-zd8181ml28] {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #E63719, #c42e10);
    flex-shrink: 0;
    box-shadow: 0 1px 4px rgba(0,0,0,.18);
}

.avatar-image[b-zd8181ml28] {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.avatar-initials[b-zd8181ml28] {
    font-size: 0.8rem;
    font-weight: 700;
    color: #fff;
    letter-spacing: 0.03em;
}

/* ── user info stack ─────────────────────────────── */
.user-info[b-zd8181ml28] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    line-height: 1;
}

.user-name[b-zd8181ml28] {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--dxds-color-content-primary-default-rest, #1a1a2e);
    white-space: nowrap;
}

/* ── role badge ──────────────────────────────────── */
.role-badge[b-zd8181ml28] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    padding: 2px 7px;
    border-radius: 20px;
    width: fit-content;
}

    /* Admin — KAEFER red */
    .role-badge--admin[b-zd8181ml28] {
        background-color: #fde8e5;
        color: #c42e10;
        border: 1px solid #f5b8b0;
    }

    /* Project Manager — KAEFER blue */
    .role-badge--manager[b-zd8181ml28] {
        background-color: #e0eef8;
        color: #0055a0;
        border: 1px solid #b3d1ed;
    }

    /* Viewer — neutral */
    .role-badge--viewer[b-zd8181ml28] {
        background-color: #f0f2f5;
        color: #5a6678;
        border: 1px solid #dde2ea;
    }

    /* No role — amber warning */
    .role-badge--none[b-zd8181ml28] {
        background-color: #fff4e0;
        color: #9a6000;
        border: 1px solid #ffd980;
    }

/* ── sign-out button ─────────────────────────────── */
.logout-icon-btn[b-zd8181ml28] {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    color: var(--dxbl-accent-color-130);
    text-decoration: none;
    transition: background-color 0.2s, color 0.2s;
    flex-shrink: 0;
}

    .logout-icon-btn:hover[b-zd8181ml28] {
        background-color: var(--dxbl-accent-color-100);
        color: #fff;
    }

.logout-icon[b-zd8181ml28] {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
}

.logout-tooltip[b-zd8181ml28] {
    position: absolute;
    top: calc(100% + 6px);
    right: 0;
    left: auto;
    transform: none;
    background-color: rgba(0, 0, 0, 0.75);
    color: #fff;
    font-size: 0.75rem;
    white-space: nowrap;
    padding: 3px 8px;
    border-radius: 4px;
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.15s;
    z-index: 100;
}

.logout-icon-btn:hover .logout-tooltip[b-zd8181ml28] {
    opacity: 1;
}


.user-avatar[b-zd8181ml28] {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: var(--dxbl-accent-color-100);
    flex-shrink: 0;
}

.avatar-image[b-zd8181ml28] {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.avatar-initials[b-zd8181ml28] {
    font-size: 0.75rem;
    font-weight: 600;
    color: #fff;
}

.user-name[b-zd8181ml28] {
    font-size: 0.875rem;
    color: var(--dxds-color-content-secondary-default-rest);
}

.logout-icon-btn[b-zd8181ml28] {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    color: var(--dxbl-accent-color-130);
    text-decoration: none;
    transition: background-color 0.2s, color 0.2s;
}

    .logout-icon-btn:hover[b-zd8181ml28] {
        background-color: var(--dxbl-accent-color-100);
        color: #fff;
    }

.logout-icon[b-zd8181ml28] {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
}

.logout-tooltip[b-zd8181ml28] {
    position: absolute;
    top: calc(100% + 6px);
    right: 0;
    left: auto;
    transform: none;
    background-color: rgba(0, 0, 0, 0.75);
    color: #fff;
    font-size: 0.75rem;
    white-space: nowrap;
    padding: 3px 8px;
    border-radius: 4px;
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.15s;
    z-index: 100;
}

.logout-icon-btn:hover .logout-tooltip[b-zd8181ml28] {
    opacity: 1;
}
/* _content/KLESSONSHUB/Components/Layout/Drawer.razor.rz.scp.css */
.drawer-container[b-x3oewhov2v] {
    height: 100%;
}

[b-x3oewhov2v] .navigation-drawer > .dxbl-drawer-panel {
    display: flex;
}

/* ── Mini (collapsed) sidebar: expand on hover ─────────────────
   The panel stays minimized (icon rail) by default. Hovering it
   visually expands the panel back to its full width, overlapping
   the page content, without changing the actual layout. */
[b-x3oewhov2v] .navigation-drawer.dxbl-drawer-mini > .dxbl-drawer-panel {
    transition: width var(--dxbl-drawer-animation-duration, 300ms) ease-in-out;
    z-index: 120;
}

    [b-x3oewhov2v] .navigation-drawer.dxbl-drawer-mini > .dxbl-drawer-panel:hover {
        width: var(--dxbl-drawer-panel-width) !important;
        box-shadow: 0.625rem 0 0.9375rem -0.1875rem rgba(0, 0, 0, 0.25);
    }
/* _content/KLESSONSHUB/Components/Layout/MainLayout.razor.rz.scp.css */
/* ── Page shell ─────────────────────────────────────────────── */
.page[b-6e2hy64djr] {
    height: 100%;
    min-height: 0;
}

/* ── Sidebar / Drawer — full KAEFER red ─────────────────────── */
[b-6e2hy64djr] .navigation-drawer {
    --dxbl-drawer-panel-width: 200px;
    --dxbl-drawer-panel-body-padding-x: 0;
    --dxbl-drawer-panel-body-padding-y: 0.5rem;
    --dxbl-drawer-panel-footer-bg: none;
    --dxbl-drawer-panel-header-bg: none;
    --dxbl-drawer-panel-header-padding-x: 0;
    --dxbl-drawer-panel-header-padding-y: 0;
    --dxbl-drawer-panel-header-min-height: 56px;
    --dxbl-drawer-separator-border-width: 0;
}

    [b-6e2hy64djr] .navigation-drawer > .dxbl-drawer-panel {
        background: #E63719;
    }

/* Sidebar header */
.navigation-drawer-header[b-6e2hy64djr] {
    align-items: center;
    display: flex;
    justify-content: space-between;
    min-height: 56px;
    padding: 0 1.25rem;
    width: 100%;
    border-bottom: 1px solid rgba(255,255,255,0.2);
    overflow: hidden;
}

.navigation-drawer-header a[b-6e2hy64djr] {
    text-decoration: none;
    display: flex;
    align-items: center;
}

.logo-link[b-6e2hy64djr] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    min-width: 0;
}

/* Tint logo white so it reads on the red background */
.app-logo[b-6e2hy64djr] {
    height: 46px;
    object-fit: contain;
    filter: brightness(0) invert(1);
    flex-shrink: 0;
}

.app-logo-full[b-6e2hy64djr] {
    height: 34px;
    width: 118px;
}

/* Compact KAEFER brand mark shown when the sidebar is collapsed (mini mode) */
.app-logo-mini[b-6e2hy64djr] {
    display: none;
    width: 32px;
    height: 32px;
}

/* Collapsed (mini) sidebar: show only the brand mark */
[b-6e2hy64djr] .navigation-drawer.dxbl-drawer-mini .app-logo-full {
    display: none;
}

[b-6e2hy64djr] .navigation-drawer.dxbl-drawer-mini .app-logo-mini {
    display: block;
}

/* On hover, the mini panel visually expands back to full width — swap the
   brand mark back to the full KAEFER logo to match the expanded menu. */
[b-6e2hy64djr] .navigation-drawer.dxbl-drawer-mini > .dxbl-drawer-panel:hover .app-logo-full {
    display: block;
}

[b-6e2hy64djr] .navigation-drawer.dxbl-drawer-mini > .dxbl-drawer-panel:hover .app-logo-mini {
    display: none;
}

/* Collapsed (mini) sidebar: keep menu icons visible (and centered), hide item
   labels. When the panel expands on hover, labels fade back in and the
   icon returns to its normal left-aligned position. */
[b-6e2hy64djr] .navigation-drawer.dxbl-drawer-mini .menu .dxbl-menu-item > .dxbl-btn {
    justify-content: center;
}

[b-6e2hy64djr] .navigation-drawer.dxbl-drawer-mini .menu .dxbl-menu-item-text-container {
    display: none !important;
    width: 0;
    margin-left: 0 !important;
    padding: 0;
    overflow: hidden;
}

[b-6e2hy64djr] .navigation-drawer.dxbl-drawer-mini .menu .dxbl-menu-item-text {
    visibility: hidden;
    opacity: 0;
    transition: visibility linear var(--dxbl-drawer-animation-duration, 300ms), opacity linear var(--dxbl-drawer-animation-duration, 300ms);
}

[b-6e2hy64djr] .navigation-drawer.dxbl-drawer-mini > .dxbl-drawer-panel:hover .menu .dxbl-menu-item > .dxbl-btn {
    justify-content: flex-start;
}

[b-6e2hy64djr] .navigation-drawer.dxbl-drawer-mini > .dxbl-drawer-panel:hover .menu .dxbl-menu-item-text-container {
    display: flex !important;
    width: auto;
    margin-left: 0.6rem !important;
    padding: revert;
    overflow: visible;
}

[b-6e2hy64djr] .navigation-drawer.dxbl-drawer-mini > .dxbl-drawer-panel:hover .menu .dxbl-menu-item-text {
    visibility: visible;
    opacity: 1;
}

/* Sidebar footer */
.navigation-drawer-footer[b-6e2hy64djr] {
    display: flex;
    justify-content: center;
    padding-bottom: 1rem;
    width: 100%;
}

.kaefer-footer-text[b-6e2hy64djr] {
    color: rgba(255, 255, 255, 0.65);
    font-size: 0.72rem;
    letter-spacing: 0.03em;
    white-space: nowrap;
}

/* Hide the footer text while collapsed; restore it once the panel expands on hover */
[b-6e2hy64djr] .navigation-drawer.dxbl-drawer-mini .kaefer-footer-text {
    visibility: hidden;
    opacity: 0;
    transition: visibility linear var(--dxbl-drawer-animation-duration, 300ms), opacity linear var(--dxbl-drawer-animation-duration, 300ms);
}

[b-6e2hy64djr] .navigation-drawer.dxbl-drawer-mini > .dxbl-drawer-panel:hover .kaefer-footer-text {
    visibility: visible;
    opacity: 1;
}

/* ── Main content area ───────────────────────────────────────── */
.drawer-content[b-6e2hy64djr] {
    display: flex;
    flex-direction: column;
    height: 100%;
    overflow: hidden;
}

.page-content-container[b-6e2hy64djr] {
    display: flex;
    flex-direction: column;
    flex-grow: 1;
    min-height: 0;
    overflow: auto;
    padding: 1.5rem;
}

/* ── Top Ribbon ──────────────────────────────────────────────── */
.top-ribbon[b-6e2hy64djr] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    background: #E63719;
    color: #fff;
    height: 56px;
    padding: 0 1rem;
    flex-shrink: 0;
    box-shadow: 0 2px 6px rgba(0,0,0,0.18);
}

/* Left cluster: app title */
.ribbon-left[b-6e2hy64djr] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-shrink: 0;
}

.ribbon-title-link[b-6e2hy64djr] {
    text-decoration: none;
}

.ribbon-app-title[b-6e2hy64djr] {
    color: #fff;
    font-size: 1.45rem;
    font-weight: 500;
    letter-spacing: 0.03em;
    white-space: nowrap;
}

/* Center cluster: search bar */
.ribbon-center[b-6e2hy64djr] {
    display: flex;
    justify-content: center;
    flex-grow: 1;
    min-width: 0;
    padding: 0 1rem;
}

/* Right cluster: language switcher + user widget */
.ribbon-right[b-6e2hy64djr] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-shrink: 0;
    margin-left: auto;
}

.ribbon-search-wrapper[b-6e2hy64djr] {
    display: flex;
    align-items: center;
    background: rgba(255,255,255,0.15);
    border: 1px solid rgba(255,255,255,0.35);
    border-radius: 24px;
    padding: 0 1rem;
    gap: 0.5rem;
    width: 100%;
    max-width: 480px;
    transition: background 0.2s, border-color 0.2s;
}

    .ribbon-search-wrapper:focus-within[b-6e2hy64djr] {
        background: rgba(255,255,255,0.25);
        border-color: rgba(255,255,255,0.7);
    }

.ribbon-search-icon[b-6e2hy64djr] {
    width: 18px;
    height: 18px;
    color: rgba(255,255,255,0.8);
    flex-shrink: 0;
}

.ribbon-search-input[b-6e2hy64djr] {
    background: transparent;
    border: none;
    outline: none;
    color: #fff;
    font-size: 0.95rem;
    width: 100%;
    padding: 0.5rem 0;
}

    .ribbon-search-input[b-6e2hy64djr]::placeholder {
        color: rgba(255,255,255,0.65);
    }

    .ribbon-search-input[b-6e2hy64djr]::-webkit-search-cancel-button {
        filter: invert(1) opacity(0.7);
    }

/* Force LoginDisplay text to white inside the ribbon */
.ribbon-right[b-6e2hy64djr]  .user-name {
    color: #fff;
}

.ribbon-right[b-6e2hy64djr]  .logout-icon-btn {
    color: rgba(255,255,255,0.85);
}

    .ribbon-right[b-6e2hy64djr]  .logout-icon-btn:hover {
        background: rgba(255,255,255,0.15);
        color: #fff;
    }

/* Avatar ring on red background */
.ribbon-right[b-6e2hy64djr]  .user-avatar {
    background: rgba(255,255,255,0.25);
    box-shadow: 0 0 0 2px rgba(255,255,255,0.45);
}

/* Language switcher: flag + 2-letter code */
[b-6e2hy64djr] .ribbon-language-switcher {
    --dxbl-combo-box-bg: rgba(255,255,255,0.15);
    --dxbl-combo-box-border-color: rgba(255,255,255,0.35);
    --dxbl-combo-box-hover-border-color: rgba(255,255,255,0.7);
    --dxbl-combo-box-focus-border-color: rgba(255,255,255,0.9);
    --dxbl-combo-box-color: #fff;
    --dxbl-combo-box-dropdown-icon-color: rgba(255,255,255,0.85);
    width: 96px;
    border-radius: 20px;
    overflow: hidden;
    transition: background 0.2s, border-color 0.2s;
}

    /* The editor's inner container also draws its own border/background;
       force it to inherit the same rounding so both sides of the pill match */
    [b-6e2hy64djr] .ribbon-language-switcher > * {
        border-radius: 20px !important;
    }

    [b-6e2hy64djr] .ribbon-language-switcher:hover {
        background: rgba(255,255,255,0.22);
    }

    [b-6e2hy64djr] .ribbon-language-switcher input {
        color: #fff;
        cursor: pointer;
    }

.language-item[b-6e2hy64djr] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.15rem 0;
}

.language-item-selected[b-6e2hy64djr] {
    gap: 0.5rem;
}

[b-6e2hy64djr] .language-flag {
    flex-shrink: 0;
    border-radius: 3px;
    box-shadow: 0 0 0 1px rgba(0,0,0,0.1);
    width: 1.3em;
    line-height: 1em;
}

.language-name[b-6e2hy64djr] {
    flex-grow: 1;
    color: var(--dxbl-list-item-color, inherit);
}

[b-6e2hy64djr] .language-code {
    font-weight: 600;
    letter-spacing: 0.02em;
    opacity: 0.85;
    font-size: 0.85em;
}

/* Dropdown list styling */
[b-6e2hy64djr] .ribbon-language-switcher-dropdown .language-name {
    color: #333;
}

[b-6e2hy64djr] .ribbon-language-switcher-dropdown .dxbl-list-item {
    padding: 0.5rem 0.9rem;
}
/* _content/KLESSONSHUB/Components/Layout/NavMenu.razor.rz.scp.css */
[b-7nufcbwob0] .menu {
    --dxbl-menu-bottom-left-border-radius: 0;
    --dxbl-menu-bottom-right-border-radius: 0;
    --dxbl-menu-top-left-border-radius: 0;
    --dxbl-menu-top-right-border-radius: 0;
    --dxbl-menu-item-padding-x: 1.25rem;
    --dxbl-menu-item-padding-y: 0.75rem;
    --dxbl-menu-item-font-size: 1rem;
    --dxbl-menu-item-image-size: 1.5rem;
    --dxbl-menu-item-image-spacing: 0.9rem;
    /* Text and icons: white on red */
    --dxbl-menu-item-color: rgba(255, 255, 255, 0.92);
    --dxbl-menu-item-image-color: rgba(255, 255, 255, 0.92);
    --dxbl-menu-item-hover-bg: rgba(255, 255, 255, 0.15);
    --dxbl-menu-item-hover-color: #fff;
    --dxbl-menu-item-hover-image-color: #fff;
    background: none;
}

/* Active / selected item */
[b-7nufcbwob0] .menu-item-active {
    background-color: rgba(0, 0, 0, 0.22) !important;
}

    [b-7nufcbwob0] .menu-item-active .dxbl-menu-item-text,
    [b-7nufcbwob0] .menu-item-active .dxbl-image {
        color: #fff !important;
        font-weight: 600;
    }
/* _content/KLESSONSHUB/Components/Pages/Approval/ApprovalCallback.razor.rz.scp.css */
.approval-callback-container[b-e5mm72r5ia] {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 60vh;
    padding: 40px 20px;
}

.approval-loading[b-e5mm72r5ia] {
    text-align: center;
    color: #666;
}

.approval-result[b-e5mm72r5ia] {
    max-width: 520px;
    width: 100%;
    text-align: center;
    padding: 48px 40px;
    border-radius: 8px;
    border: 1px solid #e0e0e0;
    background: white;
    box-shadow: 0 2px 12px rgba(0,0,0,0.08);
}

.approval-result-icon[b-e5mm72r5ia] {
    font-size: 52px;
    margin-bottom: 16px;
}

.approval-result h2[b-e5mm72r5ia] {
    margin: 0 0 12px;
    font-size: 24px;
    color: #333;
}

.approval-result p[b-e5mm72r5ia] {
    color: #555;
    font-size: 15px;
    line-height: 1.6;
    margin-bottom: 28px;
}

.approval-success[b-e5mm72r5ia] {
    border-top: 4px solid #28a745;
}

.approval-rejected[b-e5mm72r5ia] {
    border-top: 4px solid #dc3545;
}

.approval-error[b-e5mm72r5ia] {
    border-top: 4px solid #E63719;
}

.approval-home-link[b-e5mm72r5ia] {
    display: inline-block;
    background: #E63719;
    color: white;
    padding: 10px 24px;
    border-radius: 4px;
    text-decoration: none;
    font-size: 14px;
}

.approval-home-link:hover[b-e5mm72r5ia] {
    background: #c42e14;
}

.approval-redirect-hint[b-e5mm72r5ia] {
    font-size: 13px;
    color: #888;
    margin-bottom: 16px;
}
/* _content/KLESSONSHUB/Components/Pages/Auth/AccessDenied.razor.rz.scp.css */
.access-denied-container[b-81otraipol] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 5rem 2rem;
    text-align: center;
    gap: 1rem;
    height: 100%;
}

.access-denied-icon[b-81otraipol] {
    font-size: 4rem;
}

.access-denied-title[b-81otraipol] {
    margin: 0;
    font-size: 1.75rem;
    font-weight: 700;
    color: var(--dxbl-accent-color-130);
}

.access-denied-message[b-81otraipol] {
    margin: 0;
    color: var(--dxds-color-content-secondary-default-rest);
    line-height: 1.6;
}
/* _content/KLESSONSHUB/Components/Pages/Auth/Login.razor.rz.scp.css */
/* ── Root layout ─────────────────────────────── */
.login-layout-root[b-yw2eymwo7n] {
    height: 100vh;
    width: 100vw;
    overflow: hidden;
    margin: 0;
    padding: 0;
}

.login-page[b-yw2eymwo7n] {
    display: flex;
    height: 100vh;
    width: 100vw;
    overflow: hidden;
    font-family: var(--font-aptos);
}

/* ══════════════════════════════════════════════
   LEFT PANEL
══════════════════════════════════════════════ */
.login-left[b-yw2eymwo7n] {
    position: relative;
    width: 52%;
    min-width: 400px;
    background: #ffffff;
    display: flex;
    flex-direction: column;
    overflow-y: auto;
    z-index: 1;
    box-shadow: 6px 0 32px rgba(0, 0, 0, 0.09);
}

/* KAEFER brand accent bar */
.login-left[b-yw2eymwo7n]::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, #E63719 0%, #FF6600 55%, #0066B3 100%);
    z-index: 2;
}

.login-left-inner[b-yw2eymwo7n] {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 2.75rem 4rem;
    height: 100%;
    min-height: 560px;
    box-sizing: border-box;
    animation: fadeSlideLeft-b-yw2eymwo7n 0.55s ease-out both;
}

/* ── Branding row ── */
.login-branding[b-yw2eymwo7n] {
    display: flex;
    align-items: center;
    gap: 0.9rem;
    padding-top: 0.4rem;
}

.login-logo[b-yw2eymwo7n] {
    height: 30px;
    width: auto;
}

.login-brand-divider[b-yw2eymwo7n] {
    width: 1px;
    height: 24px;
    background: #e2e5ea;
    flex-shrink: 0;
}

.login-brand-label[b-yw2eymwo7n] {
    font-size: 0.82rem;
    font-weight: 700;
    color: #E63719;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

/* ── Main content area ── */
.login-content[b-yw2eymwo7n] {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 1.5rem;
    padding: 1.5rem 0;
}

.login-chip[b-yw2eymwo7n] {
    display: inline-flex;
    align-self: flex-start;
    background: rgba(230, 55, 25, 0.07);
    color: #E63719;
    border: 1px solid rgba(230, 55, 25, 0.2);
    border-radius: 100px;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    padding: 0.3rem 0.95rem;
}

.login-headline[b-yw2eymwo7n] {
    font-size: clamp(2.75rem, 5vw, 4rem);
    font-weight: 800;
    line-height: 1.1;
    color: #E63719;
    margin: 0;
    letter-spacing: -0.03em;
}

.login-subtext[b-yw2eymwo7n] {
    font-size: 0.97rem;
    line-height: 1.72;
    color: #6b7280;
    margin: 0;
    max-width: 420px;
}

.login-action[b-yw2eymwo7n] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.8rem;
    margin-top: 0.4rem;
}

/* ── DxButton — Microsoft sign-in style ── */
[b-yw2eymwo7n] .login-ms-btn.dxbl-btn {
    background: #ffffff !important;
    border: 1.5px solid #d1d5db !important;
    color: #111827 !important;
    font-size: 0.95rem !important;
    font-weight: 600 !important;
    font-family: var(--font-aptos) !important;
    padding: 0.78rem 1.8rem !important;
    border-radius: 6px !important;
    min-width: 260px !important;
    height: auto !important;
    gap: 0.7rem !important;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.07) !important;
    transition: background 0.18s ease, border-color 0.18s ease,
                box-shadow 0.18s ease, transform 0.18s ease !important;
    cursor: pointer !important;
    letter-spacing: 0.01em !important;
}

[b-yw2eymwo7n] .login-ms-btn.dxbl-btn:hover {
    background: #f9fafb !important;
    border-color: #9ca3af !important;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.1) !important;
    transform: translateY(-1px) !important;
}

[b-yw2eymwo7n] .login-ms-btn.dxbl-btn:active {
    transform: translateY(0) !important;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.07) !important;
}

/* Microsoft Windows four-colour logo */
[b-yw2eymwo7n] .ms-windows-logo {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 21 21'%3E%3Crect x='1' y='1' width='9' height='9' fill='%23f25022'/%3E%3Crect x='11' y='1' width='9' height='9' fill='%237fba00'/%3E%3Crect x='1' y='11' width='9' height='9' fill='%2300a4ef'/%3E%3Crect x='11' y='11' width='9' height='9' fill='%23ffb900'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-size: contain !important;
    background-position: center !important;
    width: 20px !important;
    height: 20px !important;
    min-width: 20px !important;
    display: inline-block !important;
}

.login-hint[b-yw2eymwo7n] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.8rem;
    color: #9ca3af;
    margin: 0;
}

.login-hint-icon[b-yw2eymwo7n] {
    width: 13px;
    height: 13px;
    flex-shrink: 0;
}

/* ── Footer ── */
.login-footer-row[b-yw2eymwo7n] {
    font-size: 0.78rem;
    color: #9ca3af;
    letter-spacing: 0.01em;
}

/* ══════════════════════════════════════════════
   RIGHT SLIDESHOW PANEL
══════════════════════════════════════════════ */
.login-right[b-yw2eymwo7n] {
    flex: 1;
    position: relative;
    overflow: hidden;
}

.login-slideshow[b-yw2eymwo7n] {
    position: relative;
    width: 100%;
    height: 100%;
}

/* ── Individual slides ── */
.login-slide[b-yw2eymwo7n] {
    position: absolute;
    inset: 0;
    opacity: 0;
    transition: opacity 1.1s ease;
    pointer-events: none;
}

.login-slide--active[b-yw2eymwo7n] {
    opacity: 1;
    pointer-events: auto;
}

/* ── Hero image with Ken Burns zoom ── */
.login-slide-img[b-yw2eymwo7n] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
    display: block;
}

.login-slide--active .login-slide-img[b-yw2eymwo7n] {
    animation: kenBurns-b-yw2eymwo7n 9s ease-out both;
}

/* ── Dark gradient overlay (same on every slide) ── */
.login-img-overlay[b-yw2eymwo7n] {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        160deg,
        rgba(0, 0, 0, 0.08) 0%,
        rgba(0, 10, 40, 0.22) 40%,
        rgba(0, 5, 25, 0.84) 100%
    );
    display: flex;
    align-items: flex-end;
    padding: 3rem 3.5rem;
}

/* ── Quote block fades up when slide becomes active ── */
.login-quote[b-yw2eymwo7n] {
    max-width: 440px;
    opacity: 0;
    transform: translateY(18px);
    transition: opacity 0.75s 0.45s ease, transform 0.75s 0.45s ease;
}

.login-slide--active .login-quote[b-yw2eymwo7n] {
    opacity: 1;
    transform: translateY(0);
}

.login-quote-mark[b-yw2eymwo7n] {
    width: 32px;
    height: auto;
    display: block;
    margin-bottom: 1rem;
    opacity: 0.6;
}

.login-quote-text[b-yw2eymwo7n] {
    font-size: 1.25rem;
    font-weight: 400;
    font-style: italic;
    line-height: 1.6;
    color: rgba(255, 255, 255, 0.92);
    margin: 0 0 0.9rem;
}

.login-quote-source[b-yw2eymwo7n] {
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.45);
}

/* ── Dot navigation ── */
.login-slide-dots[b-yw2eymwo7n] {
    position: absolute;
    bottom: 1.75rem;
    right: 3.5rem;
    display: flex;
    gap: 0.5rem;
    z-index: 10;
}

.login-slide-dot[b-yw2eymwo7n] {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.35);
    border: none;
    padding: 0;
    cursor: pointer;
    transition: background 0.3s ease, transform 0.3s ease, width 0.3s ease;
    flex-shrink: 0;
}

.login-slide-dot--active[b-yw2eymwo7n] {
    background: #ffffff;
    width: 24px;
    border-radius: 4px;
    transform: none;
}

.login-slide-dot:hover:not(.login-slide-dot--active)[b-yw2eymwo7n] {
    background: rgba(255, 255, 255, 0.65);
    transform: scale(1.25);
}

/* ══════════════════════════════════════════════
   ANIMATIONS
══════════════════════════════════════════════ */
@keyframes fadeSlideLeft-b-yw2eymwo7n {
    from {
        opacity: 0;
        transform: translateX(-22px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes fadeUp-b-yw2eymwo7n {
    from {
        opacity: 0;
        transform: translateY(18px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes kenBurns-b-yw2eymwo7n {
    from {
        transform: scale(1.08);
        transform-origin: center center;
    }
    to {
        transform: scale(1);
        transform-origin: center center;
    }
}

/* ══════════════════════════════════════════════
   RESPONSIVE
══════════════════════════════════════════════ */
@media (max-width: 960px) {
    .login-right[b-yw2eymwo7n] {
        display: none;
    }

    .login-left[b-yw2eymwo7n] {
        width: 100%;
        min-width: unset;
    }

    .login-left-inner[b-yw2eymwo7n] {
        padding: 2rem 2.5rem;
    }
}

@media (max-width: 480px) {
    .login-left-inner[b-yw2eymwo7n] {
        padding: 1.75rem 1.5rem;
    }

    .login-headline[b-yw2eymwo7n] {
        font-size: 2.4rem;
    }

    [b-yw2eymwo7n] .login-ms-btn.dxbl-btn {
        min-width: unset !important;
        width: 100% !important;
    }
}
/* _content/KLESSONSHUB/Components/Pages/Index/Index.razor.rz.scp.css */
.gallery-container[b-ooe9fzumt2] {
    display: flex;
    flex-direction: column;
    height: 100%;
    gap: 1.5rem;
    padding-top: 0.5rem;
}

.gallery-header[b-ooe9fzumt2] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    flex-shrink: 0;
}

.gallery-actions[b-ooe9fzumt2] {
    display: flex;
    gap: 0.75rem;
    align-items: center;
    flex-wrap: wrap;
}

[b-ooe9fzumt2] .search-box {
    flex: 1;
    min-width: 200px;
}

[b-ooe9fzumt2] .submit-button,
[b-ooe9fzumt2] .my-submissions-button {
    white-space: nowrap;
}

/* ── Filter bar ── */
.filter-bar[b-ooe9fzumt2] {
    display: flex;
    gap: 0.65rem;
    align-items: center;
    flex-wrap: wrap;
}

[b-ooe9fzumt2] .filter-select {
    min-width: 160px;
    max-width: 200px;
    flex: 1 1 160px;
}

[b-ooe9fzumt2] .filter-sort {
    min-width: 140px;
    max-width: 200px;
    width: auto;
    flex: 0 1 auto;
}

[b-ooe9fzumt2] .filter-date {
    min-width: 140px;
    max-width: 200px;
    flex: 1 1 140px;
}

[b-ooe9fzumt2] .clear-filters-button {
    white-space: nowrap;
    flex-shrink: 0;
}

/* ── Grid — auto-fill on desktop, 2-col on tablet, 1-col on phone ── */
.gallery-grid[b-ooe9fzumt2] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 1rem;
    overflow-y: auto;
    padding-bottom: 1rem;
    flex: 1 1 auto;
    min-height: 0;
    /* default stretch makes all cards in the same row equal height */
}

/* ── Card — uniform height, flex column so engagement bar pins to bottom ── */
.lesson-card[b-ooe9fzumt2] {
    background: #fff;
    border: 1px solid #e0e0e0;
    border-radius: 0.75rem;
    padding: 1.25rem;
    cursor: pointer;
    transition: box-shadow 0.2s, transform 0.15s;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    position: relative;
}

.lesson-card:hover[b-ooe9fzumt2] {
    box-shadow: 0 6px 24px rgba(0, 0, 0, 0.1);
    transform: translateY(-2px);
}

/* AI Summary tooltip — fades in over the card on hover, scrollable if content is long */
.lesson-card-tooltip[b-ooe9fzumt2] {
    position: absolute;
    inset: 0;
    z-index: 5;
    background: linear-gradient(135deg, #fff8f6 0%, #fff3f0 100%);
    border-radius: 0.75rem;
    padding: 1.25rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.15s ease;
    overflow-y: auto;
    pointer-events: none;
}

.lesson-card:hover .lesson-card-tooltip[b-ooe9fzumt2] {
    opacity: 1;
    visibility: visible;
}

.lesson-card-tooltip-label[b-ooe9fzumt2] {
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: #E63719;
    flex-shrink: 0;
}

.lesson-card-tooltip-text[b-ooe9fzumt2] {
    margin: 0;
    font-size: 0.9rem;
    line-height: 1.6;
    color: #333;
    font-style: italic;
    white-space: pre-wrap;
}

.lesson-card-image-wrap[b-ooe9fzumt2] {
    width: 45%;
    aspect-ratio: 1 / 1;
    border-radius: 0;
    overflow: hidden;
    background: #fff;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto;
}

.lesson-card-image[b-ooe9fzumt2] {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center;
    display: block;
}

.lesson-card-header[b-ooe9fzumt2] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-shrink: 0;
}

.project-type-badge[b-ooe9fzumt2] {
    font-size: 0.7rem;
    font-weight: 600;
    padding: 0.2rem 0.6rem;
    border-radius: 1rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    /* background and color are set via inline style from ProjectTypeBadgeHelper */
}

.lesson-date[b-ooe9fzumt2] {
    color: #888;
    font-size: 0.8rem;
    white-space: nowrap;
}

/* Title: always reserves exactly 2 lines so every card starts the body at the same depth */
.lesson-card-title[b-ooe9fzumt2] {
    margin: 0;
    font-size: 1rem;
    font-weight: 600;
    color: #222;
    line-height: 1.3;
    min-height: calc(1rem * 1.3 * 2);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    flex-shrink: 0;
}

/* Summary: grows to fill remaining vertical space; clamp at 2 lines */
.lesson-card-summary[b-ooe9fzumt2] {
    margin: 0;
    font-size: 0.85rem;
    color: #555;
    line-height: 1.4;
    flex-grow: 1;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.loading-container[b-ooe9fzumt2] {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 4rem 0;
}

.empty-state[b-ooe9fzumt2] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 4rem 2rem;
    text-align: center;
    gap: 0.5rem;
}

.empty-state-icon[b-ooe9fzumt2] {
    font-size: 3rem;
}

.empty-state h3[b-ooe9fzumt2] {
    margin: 0;
    color: #333;
}

.empty-state p[b-ooe9fzumt2] {
    margin: 0;
    color: #666;
}

.pagination-container[b-ooe9fzumt2] {
    display: flex;
    justify-content: center;
    padding: 1rem 0;
    flex-shrink: 0;
}

/* ── Responsive ── */

/* Large phone / small tablet → 2 columns */
@media (max-width: 900px) {
    .gallery-grid[b-ooe9fzumt2] {
        grid-template-columns: repeat(2, 1fr);
        gap: 0.75rem;
    }
}

/* Phone → single column, tighter padding */
@media (max-width: 540px) {
    .gallery-container[b-ooe9fzumt2] {
        gap: 1rem;
        padding-top: 0.25rem;
    }

    .gallery-grid[b-ooe9fzumt2] {
        grid-template-columns: 1fr;
        gap: 0.65rem;
    }

    .gallery-actions[b-ooe9fzumt2] {
        gap: 0.5rem;
    }

    .filter-bar[b-ooe9fzumt2] {
        gap: 0.4rem;
    }

    [b-ooe9fzumt2] .filter-select,
    [b-ooe9fzumt2] .filter-date {
        min-width: 0;
        flex: 1 1 calc(50% - 0.4rem);
    }

    [b-ooe9fzumt2] .search-box {
        min-width: 0;
    }

    .lesson-card[b-ooe9fzumt2] {
        padding: 1rem;
    }

    .lesson-card-title[b-ooe9fzumt2] {
        font-size: 0.95rem;
    }
}


.lesson-card-tags[b-ooe9fzumt2] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-top: 0.5rem;
    margin-bottom: 0.25rem;
}

.active-tag-filter[b-ooe9fzumt2] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    background: #d0e2f8;
    border: 1px solid var(--kaefer-blue);
    border-radius: 20px;
    padding: 0.2rem 0.5rem 0.2rem 0.65rem;
    font-size: 0.78rem;
    font-family: var(--font-aptos);
    font-weight: 600;
    color: var(--kaefer-blue);
    white-space: nowrap;
}

.active-tag-filter-label[b-ooe9fzumt2] {
    color: var(--kaefer-blue);
}

.active-tag-filter-clear[b-ooe9fzumt2] {
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
    font-size: 0.7rem;
    color: var(--kaefer-blue);
    opacity: 0.7;
    line-height: 1;
}

.active-tag-filter-clear:hover[b-ooe9fzumt2] {
    opacity: 1;
}
/* _content/KLESSONSHUB/Components/Pages/Lessons/Detail.razor.rz.scp.css */
.loading-container[b-dn8y2u563k] {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 4rem 0;
}

/* Status banner for pending/rejected/draft lessons */
.detail-status-banner[b-dn8y2u563k] {
    padding: 12px 18px;
    border-radius: 6px;
    margin-bottom: 1.25rem;
    font-size: 0.9rem;
    line-height: 1.5;
    border-left: 4px solid transparent;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
}

.detail-status-banner--pendingapproval[b-dn8y2u563k] {
    background: #fff8e1;
    border-left-color: #f0c36d;
    color: #7a5c00;
}

.detail-status-banner--rejected[b-dn8y2u563k] {
    background: #fff0f0;
    border-left-color: #dc3545;
    color: #842029;
}

.detail-status-banner--draft[b-dn8y2u563k] {
    background: #f3f3f3;
    border-left-color: #aaa;
    color: #555;
}

.not-found[b-dn8y2u563k] {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 4rem 2rem;
    text-align: center;
    gap: 0.5rem;
}

.detail-container[b-dn8y2u563k] {
    display: flex;
    flex-direction: column;
    gap: 2rem;
    padding-top: 0.5rem;
    overflow-y: auto;
    padding-bottom: 2rem;
}

.detail-header[b-dn8y2u563k] {
    border-bottom: 2px solid var(--dxbl-accent-color-100);
    padding-bottom: 1.25rem;
}

.detail-header-content[b-dn8y2u563k] {
    display: flex;
    align-items: flex-start;
    gap: 1.25rem;
}

.detail-header-image-wrap[b-dn8y2u563k] {
    width: 96px;
    height: 96px;
    border-radius: 0rem;
    overflow: hidden;
    background: #fff;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.detail-header-image[b-dn8y2u563k] {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center;
    display: block;
}

.ai-summary-block[b-dn8y2u563k] {
    background: linear-gradient(135deg, #fff8f6 0%, #fff3f0 100%);
    border-left: 4px solid #E63719;
    border-radius: 0.75rem;
    padding: 1rem 1.5rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.ai-summary-label[b-dn8y2u563k] {
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: #E63719;
    font-family: var(--font-aptos);
}

.ai-summary-text[b-dn8y2u563k] {
    margin: 0;
    font-size: 0.975rem;
    line-height: 1.7;
    color: #333;
    font-style: italic;
    font-family: var(--font-aptos);
}

.project-type-badge[b-dn8y2u563k] {
    font-size: 0.7rem;
    font-weight: 600;
    padding: 0.25rem 0.75rem;
    border-radius: 1rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    /* background and color are set via inline style from ProjectTypeBadgeHelper */
}

.detail-title[b-dn8y2u563k] {
    margin: 0.75rem 0 0.5rem 0;
    font-size: 1.5rem;
    font-weight: 700;
    color: #222;
}

.detail-meta[b-dn8y2u563k] {
    display: flex;
    flex-wrap: wrap;
    gap: 1.25rem;
    color: #666;
    font-size: 0.875rem;
}

.meta-item[b-dn8y2u563k] {
    white-space: nowrap;
}

.detail-sections[b-dn8y2u563k] {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.detail-sections[b-dn8y2u563k] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.detail-sections-row[b-dn8y2u563k] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}

@media (max-width: 768px) {
    .detail-sections-row[b-dn8y2u563k] {
        grid-template-columns: 1fr;
    }
}

.detail-section[b-dn8y2u563k] {
    background: #f9f9fb;
    border-radius: 0.75rem;
    padding: 1.25rem 1.5rem;
    border-left: 4px solid var(--dxbl-accent-color-100);
}

.section-heading[b-dn8y2u563k] {
    margin: 0 0 0.75rem 0;
    font-size: 1rem;
    font-weight: 600;
    color: var(--dxbl-accent-color-130);
}

.section-content[b-dn8y2u563k] {
    margin: 0;
    font-size: 0.925rem;
    line-height: 1.6;
    color: #333;
    white-space: pre-wrap;
}

/* Paired table for sections 1-4 */
.detail-section[b-dn8y2u563k] {
    grid-column: 1 / -1;
}

.paired-table[b-dn8y2u563k] {
    display: flex;
    flex-direction: column;
}

.paired-table-header[b-dn8y2u563k] {
    display: grid;
    grid-template-columns: 2rem 1fr 1.5rem 1fr;
    gap: 1rem;
    padding: 0.5rem 0;
    border-bottom: 2px solid var(--dxbl-accent-color-100);
    font-weight: 600;
    font-size: 0.9rem;
    color: var(--dxbl-accent-color-130);
}

.paired-table-row[b-dn8y2u563k] {
    display: grid;
    grid-template-columns: 2rem 1fr 1.5rem 1fr;
    gap: 1rem;
    padding: 0.75rem 0;
    border-bottom: 1px solid #eee;
}

.pt-arrow[b-dn8y2u563k] {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
    color: #FF6600;
    font-weight: 700;
    align-self: center;
}

    .paired-table-row:last-child[b-dn8y2u563k] {
        border-bottom: none;
    }

.pt-num[b-dn8y2u563k] {
    color: #999;
    font-size: 0.85rem;
    font-weight: 600;
    align-self: start;
    padding-top: 0.1rem;
}

.pt-col[b-dn8y2u563k] {
    margin: 0;
    font-size: 0.925rem;
    line-height: 1.6;
    color: #333;
}

@media (max-width: 768px) {
    .paired-table-header[b-dn8y2u563k],
    .paired-table-row[b-dn8y2u563k] {
        grid-template-columns: 2rem 1fr;
    }

    .paired-table-header .pt-col:last-child[b-dn8y2u563k],
    .paired-table-row .pt-col:last-child[b-dn8y2u563k],
    .pt-arrow[b-dn8y2u563k] {
        display: none;
    }
}

.detail-tags-section[b-dn8y2u563k] {
    padding-top: 0.5rem;
}

.detail-tags[b-dn8y2u563k] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}
/* _content/KLESSONSHUB/Components/Pages/Lessons/Submit.razor.rz.scp.css */
.submit-container[b-fb9qlmrezq] {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    padding-top: 0.5rem;
    overflow-y: auto;
    padding-bottom: 2rem;
}

.general-remarks-label[b-fb9qlmrezq] {
    font-weight: 600;
    font-size: 0.875rem;
    color: var(--dxbl-accent-color-130);
    display: flex;
    align-items: center;
    gap: 0.35rem;
    padding-bottom: 0.25rem;
}

.submit-notice[b-fb9qlmrezq] {
    background: #e8f4fd;
    border: 1px solid #b3d9f5;
    border-left: 4px solid #0066B3;
    border-radius: 4px;
    padding: 12px 16px;
    font-size: 0.875rem;
    color: #1a4f72;
    line-height: 1.5;
}

[b-fb9qlmrezq] .lesson-form {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.form-actions[b-fb9qlmrezq] {
    display: flex;
    gap: 1rem;
    justify-content: flex-end;
    padding-top: 1rem;
}

/* AI Summary section */
.ai-summary-section[b-fb9qlmrezq] {
    margin-top: 1.5rem;
    padding: 1.25rem 1.5rem;
    background: #f8f9ff;
    border: 1px solid #d0d8f0;
    border-radius: 0.75rem;
}

.ai-summary-header[b-fb9qlmrezq] {
    display: flex;
    align-items: baseline;
    gap: 0.75rem;
    margin-bottom: 0.75rem;
}

.ai-summary-label[b-fb9qlmrezq] {
    font-weight: 600;
    font-size: 1rem;
    color: #1a1a2e;
    font-family: var(--font-aptos);
}

.ai-summary-hint[b-fb9qlmrezq] {
    font-size: 0.85rem;
    color: #6b7280;
    font-family: var(--font-aptos);
}

.ai-summary-input-row[b-fb9qlmrezq] {
    display: flex;
    gap: 0.5rem;
    align-items: flex-start;
}

[b-fb9qlmrezq] .ai-summary-memo {
    flex: 1;
}

.required-star[b-fb9qlmrezq] {
    color: var(--dxds-color-content-danger-default-rest);
    font-size: 0.9rem;
}

.btn-ai-generate[b-fb9qlmrezq] {
    flex-shrink: 0;
    width: 2.2rem;
    height: 2.2rem;
    margin-top: 0.25rem;
    border: 1px solid #d0d8f0;
    border-radius: 50%;
    background: #fff;
    color: #FF6600;
    font-size: 1.25rem;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.15s, color 0.15s, transform 0.15s;
}

.btn-ai-generate:hover:not(:disabled)[b-fb9qlmrezq] {
    background: #FF6600;
    color: #fff;
    transform: scale(1.1);
}

.btn-ai-generate:disabled[b-fb9qlmrezq] {
    opacity: 0.5;
    cursor: not-allowed;
}

@keyframes spin-b-fb9qlmrezq {
    from { transform: rotate(0deg); }
    to   { transform: rotate(360deg); }
}

.btn-ai-generate.spinning[b-fb9qlmrezq] {
    animation: spin-b-fb9qlmrezq 1s linear infinite;
}

.ai-summary-error[b-fb9qlmrezq] {
    margin-top: 0.5rem;
    font-size: 0.85rem;
    color: var(--dxds-color-content-danger-default-rest);
    font-family: var(--font-aptos);
}

/* Tooltip wrapper for the disabled submit button */
.submit-btn-wrapper[b-fb9qlmrezq] {
    display: inline-block;
    cursor: default;
}

.submit-btn-wrapper[title]:hover[b-fb9qlmrezq]::after {
    content: attr(title);
    position: absolute;
    bottom: calc(100% + 0.4rem);
    right: 0;
    background: #1a1a2e;
    color: #fff;
    font-size: 0.8rem;
    padding: 0.4rem 0.7rem;
    border-radius: 0.4rem;
    white-space: nowrap;
    pointer-events: none;
    font-family: var(--font-aptos);
    z-index: 100;
}

.submit-btn-wrapper[b-fb9qlmrezq] {
    position: relative;
}

.validation-summary[b-fb9qlmrezq] {
    color: var(--dxds-color-content-danger-default-rest);
    font-size: 0.875rem;
}

.status-message[b-fb9qlmrezq] {
    padding: 0.75rem 1rem;
    border-radius: 0.5rem;
    font-size: 0.9rem;
    margin-top: 0.5rem;
}

.status-message.success[b-fb9qlmrezq] {
    background: #e6f4ea;
    color: #1e7e34;
    border: 1px solid #b7dfbf;
}

.status-message.error[b-fb9qlmrezq] {
    background: #fdecea;
    color: var(--dxds-color-content-danger-default-rest);
    border: 1px solid #f5c6cb;
}

/* Paired row editor */
.paired-section[b-fb9qlmrezq] {
    display: flex;
    flex-direction: column;
}

.paired-header[b-fb9qlmrezq] {
    display: grid;
    grid-template-columns: 2rem 1fr 1.5rem 1fr 2rem;
    gap: 1rem;
    padding: 0.4rem 0;
    border-bottom: 2px solid var(--dxbl-accent-color-100);
    margin-bottom: 0.25rem;
}

.paired-col-label[b-fb9qlmrezq] {
    font-weight: 600;
    font-size: 0.875rem;
    color: var(--dxbl-accent-color-130);
    display: flex;
    align-items: center;
    gap: 0.35rem;
    flex-wrap: wrap;
}

.field-info-icon[b-fb9qlmrezq] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1rem;
    height: 1rem;
    border-radius: 50%;
    background: var(--kaefer-blue);
    color: #fff;
    font-size: 0.65rem;
    font-style: normal;
    font-weight: 700;
    font-family: var(--font-aptos);
    cursor: default;
    position: relative;
    flex-shrink: 0;
    line-height: 1;
}

.paired-num-col[b-fb9qlmrezq] {
    color: #999;
    font-size: 0.85rem;
    font-weight: 600;
    display: flex;
    align-items: flex-start;
    padding-top: 0.6rem;
}

.paired-row[b-fb9qlmrezq] {
    display: grid;
    grid-template-columns: 2rem 1fr 1.5rem 1fr 2rem;
    gap: 1rem;
    padding: 0.5rem 0;
    border-bottom: 1px solid #f0f0f0;
    align-items: start;
}

.paired-arrow-col[b-fb9qlmrezq] {
    display: flex;
    align-items: center;
    justify-content: center;
    padding-top: 0.6rem;
    font-size: 1.25rem;
    color: #FF6600;
    font-weight: 700;
    line-height: 1;
}

.paired-col[b-fb9qlmrezq] {
    min-width: 0;
}

.paired-action-col[b-fb9qlmrezq] {
    display: flex;
    align-items: flex-start;
    padding-top: 0.4rem;
}

.btn-remove-row[b-fb9qlmrezq] {
    background: none;
    border: none;
    color: #dc3545;
    cursor: pointer;
    font-size: 1rem;
    padding: 0.2rem 0.4rem;
    border-radius: 0.25rem;
    line-height: 1;
}

    .btn-remove-row:hover[b-fb9qlmrezq] {
        background: #fdecea;
    }

.add-row-container[b-fb9qlmrezq] {
    padding-top: 0.75rem;
}

.btn-add-row[b-fb9qlmrezq] {
    background: none;
    border: 1px dashed var(--kaefer-blue);
    color: var(--kaefer-blue);
    cursor: pointer;
    font-size: 0.875rem;
    padding: 0.4rem 1rem;
    border-radius: 0.375rem;
    width: 100%;
    transition: background 0.15s;
}

    .btn-add-row:hover[b-fb9qlmrezq] {
        background: #e8f0f8;
    }

@media (max-width: 768px) {
    .paired-header[b-fb9qlmrezq],
    .paired-row[b-fb9qlmrezq] {
        grid-template-columns: 2rem 1fr 2rem;
    }

    .paired-header .paired-col-label:last-of-type[b-fb9qlmrezq],
    .paired-row .paired-col:last-of-type[b-fb9qlmrezq],
    .paired-arrow-col[b-fb9qlmrezq] {
        display: none;
    }
}

.tags-section-label[b-fb9qlmrezq] {
    font-weight: 600;
    font-size: 0.875rem;
    color: var(--dxbl-accent-color-130);
    display: flex;
    align-items: center;
    gap: 0.35rem;
    padding-bottom: 0.25rem;
}

/* ── Attachment section (outside DxFormLayout) ─────── */
.attachment-section[b-fb9qlmrezq] {
    background: #fff;
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    padding: 1.25rem 1.5rem;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.attachment-section-heading[b-fb9qlmrezq] {
    font-family: var(--font-aptos);
    font-weight: 600;
    font-size: 0.95rem;
    color: var(--dxbl-accent-color-130);
}

.attachment-save-first-notice[b-fb9qlmrezq] {
    display: flex;
    align-items: center;
    gap: 1rem;
    background: #f5f8ff;
    border: 1px dashed #0066B3;
    border-radius: 8px;
    padding: 1rem 1.25rem;
    flex-wrap: wrap;
}

.attachment-save-first-icon[b-fb9qlmrezq] {
    font-size: 2rem;
    flex-shrink: 0;
}

.attachment-save-first-body[b-fb9qlmrezq] {
    flex: 1;
    min-width: 200px;
}

    .attachment-save-first-body p[b-fb9qlmrezq] {
        margin: 0;
        font-family: var(--font-aptos);
        font-size: 0.9rem;
        font-weight: 500;
        color: #333;
    }

.attachment-save-first-sub[b-fb9qlmrezq] {
    font-size: 0.8rem !important;
    color: #777 !important;
    font-weight: 400 !important;
    margin-top: 0.2rem !important;
}

.attachment-save-draft-btn[b-fb9qlmrezq] {
    flex-shrink: 0;
}

/* _content/KLESSONSHUB/Components/Pages/MySubmissions/MySubmissions.razor.rz.scp.css */
.my-submissions-container[b-rfcip6hlj4] {
    display: flex;
    flex-direction: column;
    height: 100%;
    gap: 1.5rem;
    padding-top: 0.5rem;
}

.my-submissions-header[b-rfcip6hlj4] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    flex-shrink: 0;
}

.header-actions[b-rfcip6hlj4] {
    display: flex;
    gap: 0.75rem;
    align-items: center;
    flex-wrap: wrap;
}

/* Status filter chips */
.status-filter-bar[b-rfcip6hlj4] {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
    flex-shrink: 0;
}

.status-filter-chip[b-rfcip6hlj4] {
    background: #f0f0f0;
    border: 1px solid #ddd;
    border-radius: 2rem;
    padding: 0.3rem 0.9rem;
    font-size: 0.8rem;
    font-weight: 600;
    color: #555;
    cursor: pointer;
    transition: background 0.15s, color 0.15s, border-color 0.15s;
    font-family: var(--font-aptos);
}

.status-filter-chip:hover[b-rfcip6hlj4] {
    background: #e0e0e0;
    color: #333;
}

.status-filter-chip.active[b-rfcip6hlj4] {
    background: #E63719;
    border-color: #E63719;
    color: #fff;
}

/* Grid */
.submissions-grid[b-rfcip6hlj4] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 1rem;
    overflow-y: auto;
    padding-bottom: 1rem;
    min-height: 0;
    flex: 1 1 auto;
}

/* Cards */
.submission-card[b-rfcip6hlj4] {
    background: #fff;
    border: 1px solid #e0e0e0;
    border-radius: 0.75rem;
    padding: 1.25rem;
    cursor: pointer;
    transition: box-shadow 0.2s, transform 0.15s;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.submission-card:hover[b-rfcip6hlj4] {
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
    transform: translateY(-2px);
}

.submission-card--draft[b-rfcip6hlj4],
.submission-card--rejected[b-rfcip6hlj4] {
    border-color: #f0c36d;
    background: #fffdf5;
}

.submission-card--draft:hover[b-rfcip6hlj4],
.submission-card--rejected:hover[b-rfcip6hlj4] {
    box-shadow: 0 4px 16px rgba(230, 55, 25, 0.12);
}

.submission-card--approved[b-rfcip6hlj4] {
    border-color: #b7dfb8;
    background: #f6fff6;
}

.submission-card--approved:hover[b-rfcip6hlj4] {
    box-shadow: 0 4px 16px rgba(40, 167, 69, 0.12);
}

.submission-card-image-wrap[b-rfcip6hlj4] {
    width: 100%;
    aspect-ratio: 16 / 9;
    border-radius: 0.5rem;
    overflow: hidden;
    background: #fff;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.submission-card-image[b-rfcip6hlj4] {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center;
    display: block;
}

.submission-card-header[b-rfcip6hlj4] {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.project-type-badge[b-rfcip6hlj4] {
    font-size: 0.7rem;
    font-weight: 600;
    padding: 0.2rem 0.6rem;
    border-radius: 1rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    /* background and color are set via inline style from ProjectTypeBadgeHelper */
}

.submission-card-title[b-rfcip6hlj4] {
    margin: 0;
    font-size: 1rem;
    font-weight: 600;
    color: #222;
    line-height: 1.3;
}

.submission-card-code[b-rfcip6hlj4] {
    margin: 0;
    font-size: 0.8rem;
    color: var(--dxbl-accent-color-100);
    font-weight: 600;
}

.submission-card-location[b-rfcip6hlj4] {
    margin: 0;
    font-size: 0.8rem;
    color: #666;
}

.submission-card-summary[b-rfcip6hlj4] {
    margin: 0;
    font-size: 0.85rem;
    color: #555;
    line-height: 1.4;
    flex-grow: 1;
}

.submission-card-footer[b-rfcip6hlj4] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 0.25rem;
    flex-wrap: wrap;
    gap: 0.25rem;
}

.submission-date[b-rfcip6hlj4] {
    font-size: 0.75rem;
    color: #888;
}

.edit-hint[b-rfcip6hlj4] {
    font-size: 0.75rem;
    color: #E63719;
    font-weight: 600;
}

/* Status badges */
.approval-status-badge[b-rfcip6hlj4] {
    font-size: 0.7rem;
    font-weight: 600;
    padding: 0.2rem 0.55rem;
    border-radius: 1rem;
    white-space: nowrap;
}

.approval-status-badge--draft[b-rfcip6hlj4] {
    background: #e9ecef;
    color: #555;
}

.approval-status-badge--pendingapproval[b-rfcip6hlj4] {
    background: #fff3cd;
    color: #856404;
}

.approval-status-badge--approved[b-rfcip6hlj4] {
    background: #d1e7dd;
    color: #0a3622;
}

.approval-status-badge--rejected[b-rfcip6hlj4] {
    background: #f8d7da;
    color: #842029;
}

/* Loading / empty */
.loading-container[b-rfcip6hlj4] {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 4rem 0;
}

.empty-state[b-rfcip6hlj4] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 4rem 2rem;
    text-align: center;
    gap: 0.75rem;
}

.empty-state-icon[b-rfcip6hlj4] {
    font-size: 3rem;
}

.empty-state h3[b-rfcip6hlj4] {
    margin: 0;
    color: #333;
}

.empty-state p[b-rfcip6hlj4] {
    margin: 0;
    color: #666;
}

/* ── Delete button on card ─────────────────────────── */
.submission-card-delete-btn[b-rfcip6hlj4] {
    background: none;
    border: none;
    cursor: pointer;
    font-size: 1rem;
    padding: 0.2rem 0.4rem;
    border-radius: 4px;
    color: #999;
    line-height: 1;
    margin-left: auto;
    transition: color 0.15s, background 0.15s;
}

    .submission-card-delete-btn:hover[b-rfcip6hlj4] {
        color: #c62828;
        background: #fdecea;
    }

/* ── Delete confirmation popup content ────────────── */
.delete-attachment-warning[b-rfcip6hlj4] {
    background: #fff8e1;
    border: 1px solid #ffe082;
    border-radius: 6px;
    padding: 0.6rem 0.85rem;
    font-family: var(--font-aptos);
    font-size: 0.875rem;
    color: #795548;
    margin: 0.5rem 0;
}

.delete-lesson-warning[b-rfcip6hlj4] {
    color: #c62828;
    font-size: 0.875rem;
    font-family: var(--font-aptos);
    margin-top: 0.5rem;
}

.submission-delete-error[b-rfcip6hlj4] {
    position: fixed;
    bottom: 1.5rem;
    left: 50%;
    transform: translateX(-50%);
    background: #fdecea;
    border: 1px solid #f5c6c6;
    border-radius: 6px;
    padding: 0.65rem 1.25rem;
    color: #c62828;
    font-family: var(--font-aptos);
    font-size: 0.875rem;
    z-index: 1000;
    box-shadow: 0 2px 8px rgba(0,0,0,0.12);
}
/* _content/KLESSONSHUB/Components/Shared/AttachmentList.razor.rz.scp.css */
.attachment-list-section[b-55r7170u68] {
    margin-top: 0.5rem;
}

/* ── Attachment List ───────────────────────────────── */
.attachment-list[b-55r7170u68] {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
}

.attachment-item[b-55r7170u68] {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    background: #f9f9f9;
    border: 1px solid #e5e5e5;
    border-radius: 6px;
    padding: 0.65rem 1rem;
    font-family: var(--font-aptos);
}

.attachment-file-icon[b-55r7170u68] {
    font-size: 1.4rem;
    flex-shrink: 0;
}

.attachment-info[b-55r7170u68] {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-width: 0;
}

.attachment-name[b-55r7170u68] {
    font-weight: 500;
    color: #222;
    font-size: 0.9rem;
    word-break: break-all;
}

.attachment-meta[b-55r7170u68] {
    font-size: 0.78rem;
    color: #777;
    margin-top: 0.1rem;
}

.attachment-actions[b-55r7170u68] {
    display: flex;
    gap: 0.5rem;
    flex-shrink: 0;
}

.attachment-download-btn[b-55r7170u68] {
    font-size: 0.8rem !important;
}

.attachment-delete-btn[b-55r7170u68] {
    font-size: 0.8rem !important;
}

/* ── Delete confirmation ───────────────────────────── */
.attachment-delete-warning[b-55r7170u68] {
    color: #c62828;
    font-size: 0.875rem;
    margin: 0.5rem 0;
    font-family: var(--font-aptos);
}

/* ── Error ─────────────────────────────────────────── */
.attachment-error[b-55r7170u68] {
    background: #fdecea;
    border: 1px solid #f5c6c6;
    border-radius: 6px;
    padding: 0.5rem 0.85rem;
    color: #c62828;
    font-family: var(--font-aptos);
    font-size: 0.875rem;
    margin-top: 0.5rem;
}

/* ── Login prompt for anonymous users ─────────────── */
.attachment-login-prompt[b-55r7170u68] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    background: #f5f5f5;
    border: 1px solid #e0e0e0;
    border-radius: 6px;
    padding: 0.65rem 1rem;
    color: #555;
    font-family: var(--font-aptos);
    font-size: 0.875rem;
}

.attachment-lock-icon[b-55r7170u68] {
    font-size: 1.1rem;
}
/* _content/KLESSONSHUB/Components/Shared/AttachmentUploader.razor.rz.scp.css */
.attachment-uploader[b-eoszafvf20] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

/* ── Guidelines Banner ─────────────────────────────── */
.attachment-guidelines[b-eoszafvf20] {
    border: 1px solid #e0e0e0;
    border-left: 4px solid #E63719;
    border-radius: 6px;
    background: #fdf8f7;
    padding: 1rem 1.2rem;
    font-family: var(--font-aptos);
    font-size: 0.875rem;
}

.guidelines-header[b-eoszafvf20] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-weight: 600;
    color: #333;
    margin-bottom: 0.75rem;
    font-size: 0.9rem;
}

.guidelines-icon[b-eoszafvf20] {
    font-size: 1.1rem;
}

.guidelines-body[b-eoszafvf20] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
    margin-bottom: 0.75rem;
}

@media (max-width: 600px) {
    .guidelines-body[b-eoszafvf20] {
        grid-template-columns: 1fr;
    }
}

.guidelines-col ul[b-eoszafvf20] {
    margin: 0.25rem 0 0 1.1rem;
    padding: 0;
    line-height: 1.7;
    color: #444;
}

.guidelines-col-title[b-eoszafvf20] {
    font-weight: 600;
    margin: 0 0 0.25rem 0;
}

.guidelines-allowed .guidelines-col-title[b-eoszafvf20] { color: #2e7d32; }
.guidelines-forbidden .guidelines-col-title[b-eoszafvf20] { color: #c62828; }

.guidelines-limits[b-eoszafvf20] {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    padding-top: 0.6rem;
    border-top: 1px solid #e8e8e8;
    color: #555;
    font-size: 0.82rem;
}

/* ── Attachment List ───────────────────────────────── */
.attachment-list[b-eoszafvf20] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.attachment-item[b-eoszafvf20] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    background: #f9f9f9;
    border: 1px solid #e5e5e5;
    border-radius: 6px;
    padding: 0.5rem 0.75rem;
    font-family: var(--font-aptos);
    font-size: 0.875rem;
}

.attachment-file-icon[b-eoszafvf20] {
    font-size: 1.2rem;
    flex-shrink: 0;
}

.attachment-name[b-eoszafvf20] {
    flex: 1;
    font-weight: 500;
    color: #333;
    word-break: break-all;
}

.attachment-size[b-eoszafvf20] {
    color: #777;
    font-size: 0.8rem;
    white-space: nowrap;
}

.attachment-remove-btn[b-eoszafvf20] {
    background: none;
    border: none;
    cursor: pointer;
    color: #c62828;
    font-size: 0.9rem;
    padding: 0.2rem 0.4rem;
    border-radius: 4px;
    line-height: 1;
    flex-shrink: 0;
}

    .attachment-remove-btn:hover[b-eoszafvf20] {
        background: #fdecea;
    }

/* ── Upload Input ──────────────────────────────────── */
.attachment-input-area[b-eoszafvf20] {
    position: relative;
}

.attachment-file-input[b-eoszafvf20] {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    overflow: hidden;
}

.attachment-file-label[b-eoszafvf20] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    cursor: pointer;
    background: #fff;
    border: 2px dashed #0066B3;
    border-radius: 6px;
    padding: 0.7rem 1.25rem;
    color: #0066B3;
    font-family: var(--font-aptos);
    font-size: 0.875rem;
    font-weight: 500;
    transition: background 0.15s, border-color 0.15s;
    width: 100%;
    justify-content: center;
}

    .attachment-file-label:hover[b-eoszafvf20] {
        background: #f0f6fc;
        border-color: #004a8a;
    }

.attachment-upload-icon[b-eoszafvf20] {
    font-size: 1rem;
}

/* ── States ────────────────────────────────────────── */
.attachment-uploading[b-eoszafvf20] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    color: #555;
    font-family: var(--font-aptos);
    font-size: 0.875rem;
}

.attachment-limit-reached[b-eoszafvf20] {
    color: #2e7d32;
    font-family: var(--font-aptos);
    font-size: 0.875rem;
    font-weight: 500;
}

.attachment-error[b-eoszafvf20] {
    background: #fdecea;
    border: 1px solid #f5c6c6;
    border-radius: 6px;
    padding: 0.5rem 0.85rem;
    color: #c62828;
    font-family: var(--font-aptos);
    font-size: 0.875rem;
}

.attachment-save-first-notice[b-eoszafvf20] {
    background: #fff8e1;
    border: 1px solid #ffe082;
    border-radius: 6px;
    padding: 0.6rem 1rem;
    color: #795548;
    font-family: var(--font-aptos);
    font-size: 0.875rem;
}
/* _content/KLESSONSHUB/Components/Shared/LessonEngagementBar.razor.rz.scp.css */
/* ── Engagement Bar ── */
.eng-bar[b-tuw4wdqtyb] {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    padding-top: 0.75rem;
    margin-top: auto;
    border-top: 1px solid #f0f0f0;
    font-family: var(--font-aptos);
}

.eng-btn[b-tuw4wdqtyb] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.35rem 0.7rem;
    border: 1.5px solid #e0e0e0;
    border-radius: 2rem;
    background: transparent;
    color: #666;
    font-family: var(--font-aptos);
    font-size: 0.78rem;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.18s ease;
    white-space: nowrap;
    line-height: 1;
}

.eng-btn:hover[b-tuw4wdqtyb] {
    background: #f5f5f5;
    border-color: #bbb;
    color: #333;
    transform: translateY(-1px);
}

.eng-btn:active[b-tuw4wdqtyb] {
    transform: translateY(0);
}

.eng-btn:disabled[b-tuw4wdqtyb] {
    opacity: 0.5;
    cursor: not-allowed;
    transform: none;
}

/* Upvote active state */
.eng-upvote.active[b-tuw4wdqtyb] {
    background: #fff5f3;
    border-color: #E63719;
    color: #E63719;
    font-weight: 700;
}

.eng-upvote.active:hover[b-tuw4wdqtyb] {
    background: #ffe8e3;
}

/* Comments active state */
.eng-comments.active[b-tuw4wdqtyb] {
    background: #f0f7ff;
    border-color: #0066B3;
    color: #0066B3;
    font-weight: 700;
}

/* Share copied state */
.eng-share.copied[b-tuw4wdqtyb] {
    background: #f0fff4;
    border-color: #13a538;
    color: #13a538;
    font-weight: 700;
}

.eng-icon[b-tuw4wdqtyb] {
    font-size: 0.85rem;
    line-height: 1;
}

/* ── Comment Panel ── */
.eng-comment-panel[b-tuw4wdqtyb] {
    border-top: 1px solid #f0f0f0;
    padding-top: 0.75rem;
    margin-top: 0.25rem;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    font-family: var(--font-aptos);
    animation: slideDown-b-tuw4wdqtyb 0.18s ease;
}

@keyframes slideDown-b-tuw4wdqtyb {
    from { opacity: 0; transform: translateY(-6px); }
    to   { opacity: 1; transform: translateY(0); }
}

.eng-comments-loading[b-tuw4wdqtyb] {
    display: flex;
    justify-content: center;
    padding: 0.75rem 0;
}

.eng-no-comments[b-tuw4wdqtyb] {
    margin: 0;
    font-size: 0.8rem;
    color: #999;
    text-align: center;
    padding: 0.5rem 0;
}

/* ── Comment list ── */
.eng-comments-list[b-tuw4wdqtyb] {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    max-height: 220px;
    overflow-y: auto;
    padding-right: 0.25rem;
}

.eng-comments-list[b-tuw4wdqtyb]::-webkit-scrollbar { width: 4px; }
.eng-comments-list[b-tuw4wdqtyb]::-webkit-scrollbar-track { background: transparent; }
.eng-comments-list[b-tuw4wdqtyb]::-webkit-scrollbar-thumb { background: #ddd; border-radius: 2px; }

.eng-comment[b-tuw4wdqtyb] {
    display: flex;
    gap: 0.6rem;
    align-items: flex-start;
}

.eng-comment-avatar[b-tuw4wdqtyb] {
    flex-shrink: 0;
    width: 2rem;
    height: 2rem;
    border-radius: 50%;
    background: linear-gradient(135deg, #0066B3, #009dcc);
    color: #fff;
    font-size: 0.65rem;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    letter-spacing: 0.02em;
}

.eng-comment-body[b-tuw4wdqtyb] {
    flex: 1;
    min-width: 0;
}

.eng-comment-meta[b-tuw4wdqtyb] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    margin-bottom: 0.2rem;
}

.eng-comment-author[b-tuw4wdqtyb] {
    font-size: 0.78rem;
    font-weight: 700;
    color: #222;
}

.eng-comment-time[b-tuw4wdqtyb] {
    font-size: 0.72rem;
    color: #aaa;
}

.eng-comment-delete[b-tuw4wdqtyb] {
    margin-left: auto;
    background: none;
    border: none;
    color: #ccc;
    font-size: 0.7rem;
    cursor: pointer;
    padding: 0 0.1rem;
    line-height: 1;
    transition: color 0.15s;
}

.eng-comment-delete:hover[b-tuw4wdqtyb] {
    color: #E63719;
}

.eng-comment-text[b-tuw4wdqtyb] {
    margin: 0;
    font-size: 0.82rem;
    color: #444;
    line-height: 1.45;
    word-break: break-word;
}

/* ── Compose box ── */
.eng-comment-compose[b-tuw4wdqtyb] {
    display: flex;
    gap: 0.6rem;
    align-items: flex-start;
}

.eng-compose-avatar[b-tuw4wdqtyb] {
    flex-shrink: 0;
    width: 2rem;
    height: 2rem;
    border-radius: 50%;
    background: linear-gradient(135deg, #E63719, #FF6600);
    color: #fff;
    font-size: 0.65rem;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
}

.eng-compose-input-wrap[b-tuw4wdqtyb] {
    flex: 1;
    display: flex;
    gap: 0.4rem;
    align-items: flex-end;
}

.eng-compose-textarea[b-tuw4wdqtyb] {
    flex: 1;
    resize: none;
    border: 1.5px solid #e0e0e0;
    border-radius: 0.75rem;
    padding: 0.45rem 0.7rem;
    font-family: var(--font-aptos);
    font-size: 0.82rem;
    color: #333;
    line-height: 1.4;
    outline: none;
    transition: border-color 0.15s;
    background: #fafafa;
}

.eng-compose-textarea:focus[b-tuw4wdqtyb] {
    border-color: #0066B3;
    background: #fff;
}

.eng-compose-textarea[b-tuw4wdqtyb]::placeholder {
    color: #bbb;
}

.eng-compose-send[b-tuw4wdqtyb] {
    flex-shrink: 0;
    width: 2.1rem;
    height: 2.1rem;
    border-radius: 50%;
    border: none;
    background: #E63719;
    color: #fff;
    font-size: 0.9rem;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.15s, transform 0.12s;
    line-height: 1;
}

.eng-compose-send:hover:not(:disabled)[b-tuw4wdqtyb] {
    background: #c42f12;
    transform: scale(1.08);
}

.eng-compose-send:disabled[b-tuw4wdqtyb] {
    background: #ddd;
    cursor: not-allowed;
    transform: none;
}
/* _content/KLESSONSHUB/Components/Shared/LocationAutocomplete.razor.rz.scp.css */
.location-search-wrapper[b-ms03bogm2g] {
    position: relative;
    width: 100%;
    font-family: var(--font-aptos);
}

.location-input-row[b-ms03bogm2g] {
    display: flex;
    gap: 0;
    align-items: stretch;
}

.location-input-row .location-textbox[b-ms03bogm2g] {
    flex: 1;
    border-top-right-radius: 0 !important;
    border-bottom-right-radius: 0 !important;
}

.location-search-btn[b-ms03bogm2g] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    min-width: 38px;
    background-color: #E63719;
    color: #fff;
    border: 1px solid #E63719;
    border-left: none;
    border-radius: 0 4px 4px 0;
    cursor: pointer;
    transition: background-color 0.15s ease;
    padding: 0;
}

    .location-search-btn:hover:not(:disabled)[b-ms03bogm2g] {
        background-color: #c42f12;
    }

    .location-search-btn:disabled[b-ms03bogm2g] {
        opacity: 0.6;
        cursor: not-allowed;
    }

    .location-search-btn.searching[b-ms03bogm2g] {
        background-color: #c42f12;
    }

/* Spinner */
.location-spinner[b-ms03bogm2g] {
    width: 14px;
    height: 14px;
    border: 2px solid rgba(255,255,255,0.4);
    border-top-color: #fff;
    border-radius: 50%;
    animation: location-spin-b-ms03bogm2g 0.7s linear infinite;
    display: inline-block;
}

@keyframes location-spin-b-ms03bogm2g {
    to { transform: rotate(360deg); }
}

/* Selected value chip */
.location-selected-value[b-ms03bogm2g] {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-top: 6px;
    padding: 5px 10px;
    background: #f0f7ff;
    border: 1px solid #c2daf7;
    border-radius: 4px;
    font-size: 0.85rem;
    color: #1a4f8a;
}

.location-selected-icon[b-ms03bogm2g] {
    font-size: 0.9rem;
    flex-shrink: 0;
}

.location-selected-text[b-ms03bogm2g] {
    flex: 1;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.location-clear-btn[b-ms03bogm2g] {
    background: none;
    border: none;
    color: #1a4f8a;
    cursor: pointer;
    font-size: 0.8rem;
    padding: 0 2px;
    opacity: 0.6;
    flex-shrink: 0;
}

    .location-clear-btn:hover[b-ms03bogm2g] {
        opacity: 1;
    }

/* Results list */
.location-results[b-ms03bogm2g] {
    position: absolute;
    top: calc(100% + 2px);
    left: 0;
    right: 0;
    z-index: 1000;
    margin: 0;
    padding: 4px 0;
    list-style: none;
    background: #fff;
    border: 1px solid #d0d5dd;
    border-radius: 6px;
    box-shadow: 0 6px 20px rgba(0,0,0,0.12);
    max-height: 240px;
    overflow-y: auto;
}

.location-result-item[b-ms03bogm2g] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 9px 14px;
    font-size: 0.875rem;
    color: #1a1a1a;
    cursor: pointer;
    transition: background-color 0.1s ease;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

    .location-result-item:hover[b-ms03bogm2g] {
        background-color: #fef3f1;
        color: #E63719;
    }

.location-pin-icon[b-ms03bogm2g] {
    flex-shrink: 0;
    opacity: 0.5;
}

.location-result-item:hover .location-pin-icon[b-ms03bogm2g] {
    opacity: 1;
    stroke: #E63719;
}

/* No results */
.location-no-results[b-ms03bogm2g] {
    margin-top: 4px;
    padding: 7px 12px;
    font-size: 0.82rem;
    color: #888;
    background: #fafafa;
    border: 1px solid #e8e8e8;
    border-radius: 4px;
}
/* _content/KLESSONSHUB/Components/Shared/TagInput.razor.rz.scp.css */
.tag-input-wrapper[b-dy1dseh9y3] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.tag-chips[b-dy1dseh9y3] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.tag-input-row[b-dy1dseh9y3] {
    display: flex;
    gap: 0.5rem;
    align-items: center;
}

[b-dy1dseh9y3] .tag-textbox {
    flex: 1;
}

.tag-add-btn[b-dy1dseh9y3] {
    height: 34px;
    padding: 0 1rem;
    flex-shrink: 0;
    background: #E63719;
    color: #fff;
    border: none;
    border-radius: 4px;
    font-family: var(--font-aptos);
    font-size: 0.875rem;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.15s, opacity 0.15s;
    white-space: nowrap;
}

.tag-add-btn:hover:not(:disabled)[b-dy1dseh9y3] {
    background: #c42f12;
}

.tag-add-btn:disabled[b-dy1dseh9y3] {
    opacity: 0.35;
    cursor: default;
}

.tag-suggestions[b-dy1dseh9y3] {
    background: #fff;
    border: 1px solid #d0d7e2;
    border-radius: 6px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    list-style: none;
    margin: 0;
    padding: 0.25rem 0;
    max-height: 200px;
    overflow-y: auto;
    font-family: var(--font-aptos);
}

.tag-suggestion-item[b-dy1dseh9y3] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.45rem 0.75rem;
    font-size: 0.85rem;
    cursor: pointer;
    color: #333;
    transition: background 0.1s;
}

.tag-suggestion-item:hover[b-dy1dseh9y3] {
    background: #f0f5ff;
}

.tag-suggestion-icon[b-dy1dseh9y3] {
    color: var(--kaefer-blue);
    font-weight: 700;
    font-size: 0.75rem;
    min-width: 14px;
}
