/* Autoškolio */
:root {
    --brand-cobalt: #3155F5;
    --brand-ink: #15233B;
    --brand-lime: #C4EE45;
    --brand-hover: #2443CF;
}
html.app-ui {
    --bs-primary: var(--brand-cobalt);
    --bs-primary-rgb: 49, 85, 245;
    --bs-body-color: var(--brand-ink);
    --bs-emphasis-color: var(--brand-ink);
    --bs-link-color: var(--brand-cobalt);
    --bs-link-color-rgb: 49, 85, 245;
    --bs-link-hover-color: var(--brand-hover);
    --bs-link-hover-color-rgb: 36, 67, 207;
}
:where(html.app-ui) body { background:var(--brand-ink); color:#f5f7fb; --bs-secondary-color:#c5cfe0; }
.app-ui .card { color:var(--brand-ink); --bs-secondary-color:#536179; }
.app-ui .navbar.bg-dark { background-color:var(--brand-ink) !important; border-bottom:1px solid rgba(255,255,255,.14); }
.app-ui .navbar-brand { border-bottom:2px solid var(--brand-lime); }
.app-ui .btn-primary, .app-ui .btn-outline-primary {
    --bs-btn-hover-bg: var(--brand-hover);
    --bs-btn-hover-border-color: var(--brand-hover);
    --bs-btn-active-bg: var(--brand-hover);
    --bs-btn-active-border-color: var(--brand-hover);
    --bs-btn-focus-shadow-rgb: 49, 85, 245;
}
.app-ui .btn-primary {
    --bs-btn-bg: var(--brand-cobalt);
    --bs-btn-border-color: var(--brand-cobalt);
    --bs-btn-disabled-bg: var(--brand-cobalt);
    --bs-btn-disabled-border-color: var(--brand-cobalt);
}
.app-ui .btn-outline-primary {
    --bs-btn-color: var(--brand-cobalt);
    --bs-btn-border-color: var(--brand-cobalt);
    --bs-btn-disabled-color: var(--brand-cobalt);
    --bs-btn-disabled-border-color: var(--brand-cobalt);
}
.app-ui .form-check-input:checked { background-color:var(--brand-cobalt); border-color:var(--brand-cobalt); }
.app-ui :is(.form-control,.form-select,.form-check-input):focus { border-color:var(--brand-cobalt); box-shadow:0 0 0 .25rem rgba(49,85,245,.18); }


/* Sdílené rozhraní aplikace */
:where(html.app-ui) .card {
    border: 0;
    box-shadow: 0 4px 18px rgba(0, 0, 0, .06);
}

:where(html.app-ui) .stat-number {
    font-size: 2rem;
    font-weight: 800;
}

:where(html.app-ui) .calendar-legend {
    display: inline-block;
    width: 12px;
    height: 12px;
    border-radius: 4px;
    margin-right: 5px;
    vertical-align: -1px;
}

:where(html.app-ui) .calendar-legend-free {
    background: #198754;
}

:where(html.app-ui) .calendar-legend-booked {
    background: #ffc107;
}

:where(html.app-ui) .calendar-legend-completed {
    background: var(--brand-cobalt);
}

:where(html.app-ui) .calendar-legend-busy {
    background: #dee2e6;
}

:where(html.app-ui) .week-calendar-wrap {
    overflow-x: auto;
    padding-bottom: 4px;
}

:where(html.app-ui) .week-calendar {
    display: grid;
    grid-template-columns: repeat(7, minmax(165px, 1fr));
    min-width: 1155px;
    border: 1px solid #e5e7eb;
    border-radius: 14px;
    overflow: hidden;
    background: #fff;
}

:where(html.app-ui) .week-day {
    min-width: 0;
    border-right: 1px solid #e5e7eb;
    background: #fff;
}

:where(html.app-ui) .week-day:last-child {
    border-right: 0;
}

:where(html.app-ui) .week-day-today {
    background: #f8fbff;
}

:where(html.app-ui) .week-day-header {
    padding: 12px 10px;
    text-align: center;
    border-bottom: 1px solid #e5e7eb;
    background: #f8f9fa;
    position: sticky;
    top: 0;
    z-index: 1;
}

:where(html.app-ui) .week-day-today .week-day-header {
    background: #eaf3ff;
}

:where(html.app-ui) .week-day-name {
    font-weight: 700;
    font-size: .9rem;
}

:where(html.app-ui) .week-day-date {
    color: #6c757d;
    font-size: .82rem;
    margin-top: 2px;
}

:where(html.app-ui) .week-day-body {
    min-height: 380px;
    padding: 8px;
}

:where(html.app-ui) .calendar-slot {
    display: block;
    width: 100%;
    border: 0;
    border-radius: 10px;
    padding: 9px 10px;
    margin-bottom: 8px;
    text-align: left;
    line-height: 1.25;
}

:where(html.app-ui) .calendar-slot-time, :where(html.app-ui) .calendar-slot-title, :where(html.app-ui) .calendar-slot-meta {
    display: block;
}

:where(html.app-ui) .calendar-slot-time {
    font-weight: 800;
    font-size: .95rem;
}

:where(html.app-ui) .calendar-slot-title {
    font-weight: 700;
    font-size: .82rem;
    margin-top: 3px;
}

:where(html.app-ui) .calendar-slot-meta {
    font-size: .75rem;
    margin-top: 3px;
    opacity: .85;
}

:where(html.app-ui) .calendar-slot-free {
    background: #198754;
    color: #fff;
}

:where(html.app-ui) .calendar-slot-booked {
    background: #ffc107;
    color: #212529;
}

:where(html.app-ui) .calendar-slot-completed {
    background: var(--brand-cobalt);
    color: #fff;
}

:where(html.app-ui) .calendar-slot-busy {
    background: #e9ecef;
    color: #6c757d;
}

:where(html.app-ui) .calendar-slot-button {
    cursor: pointer;
    transition: transform .12s ease, box-shadow .12s ease, background .12s ease;
}

:where(html.app-ui) .calendar-slot-button:hover, :where(html.app-ui) .calendar-slot-button:focus {
    background: #157347;
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(25, 135, 84, .22);
    outline: none;
}

:where(html.app-ui) .calendar-empty {
    color: #adb5bd;
    font-size: .82rem;
    text-align: center;
    padding: 28px 4px;
}

@media (max-width: 767.98px) {
    :where(html.app-ui) .week-calendar {
        grid-template-columns: repeat(7, 155px);
        min-width: 1085px;
    }

    :where(html.app-ui) .week-day-body {
        min-height: 300px;
    }
}
:where(html.app-ui) .lesson-gauge {
    position: relative;
    max-width: 380px;
    margin: 5px auto 0;
    padding: 0 20px;
}

:where(html.app-ui) .lesson-gauge-svg {
    display: block;
    width: 100%;
    height: auto;
    overflow: visible;
}

:where(html.app-ui) .lesson-gauge-bg, :where(html.app-ui) .lesson-gauge-progress {
    fill: none;
    stroke-width: 14;
    stroke-linecap: round;
}

:where(html.app-ui) .lesson-gauge-bg {
    stroke: #e9ecef;
}

:where(html.app-ui) .lesson-gauge-progress {
    stroke: var(--brand-cobalt);
    transition: stroke-dashoffset .8s ease;
}

:where(html.app-ui) .lesson-gauge-value {
    font-size: 25px;
    font-weight: 700;
    fill: #212529;
}

:where(html.app-ui) .lesson-gauge-caption {
    font-size: 11px;
    fill: #6c757d;
}

:where(html.app-ui) .lesson-gauge-label {
    position: absolute;
    font-size: 13px;
    font-weight: 600;
    color: #6c757d;
}

:where(html.app-ui) .lesson-gauge-start {
    left: 4px;
    bottom: 11px;
}

:where(html.app-ui) .lesson-gauge-half {
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    text-align: center;
}

:where(html.app-ui) .lesson-gauge-half small {
    display: block;
    font-size: 10px;
    line-height: 10px;
}

:where(html.app-ui) .lesson-gauge-end {
    right: -8px;
    bottom: 11px;
}

:where(html.app-ui) .superadmin-menu-group > summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    cursor: pointer;
    list-style: none;
}

:where(html.app-ui) .superadmin-menu-group > summary::-webkit-details-marker {
    display: none;
}

:where(html.app-ui) .superadmin-menu-group > summary::after {
    content: "";
    width: .45rem;
    height: .45rem;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(45deg);
}

:where(html.app-ui) .superadmin-menu-group[open] > summary::after {
    transform: rotate(225deg);
}

:where(html.app-ui) .superadmin-submenu {
    display: grid;
    gap: .35rem;
    margin: .4rem 0 .15rem .6rem;
    padding-left: .6rem;
    border-left: 1px solid #7889a6;
}

:where(html.app-ui) .superadmin-menu .btn {
    text-align: left;
}

:where(html.app-ui) .superadmin-menu .btn-outline-secondary {
    --bs-btn-color: #dce5f4;
    --bs-btn-border-color: #7889a6;
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #203250;
    --bs-btn-hover-border-color: #a7b6d1;
}

:where(html.app-ui) .admin-submenu {
    padding: 12px 0;
}

:where(html.app-ui) .admin-submenu .btn {
    width: 100%;
    font-weight: 600;
}

:where(html.app-ui) .admin-submenu .btn.active {
    background: var(--brand-cobalt);
    border-color: var(--brand-cobalt);
    color: #fff;
}

/* Žákovská aplikace */
html.student-ui {
        --student-dark: var(--brand-ink);
        --student-dark-2: #203250;
        --student-accent: var(--brand-lime);
        --student-bg: #f3f5f8;
        --student-card: #ffffff;
        --student-muted: #6c757d;
        --student-line: #e6e9ee;
    }
:where(html.student-ui) #videa .inner{
    border-radius:5px;
    border: solid 1px var(--student-muted);

}

@media (max-width: 767.98px) {

    

    html.student-ui {
        scroll-behavior: smooth;
        background: var(--student-bg);
    }

    :where(html.student-ui) body {
        background: var(--student-bg);
        color: var(--brand-ink);
        --bs-secondary-color: #536179;
        padding-bottom: calc(82px + env(safe-area-inset-bottom));
    }

    :where(html.student-ui) .container {
        padding-left: 14px;
        padding-right: 14px;
    }

    :where(html.student-ui) .student-app-head {
        margin-top: 3px;
    }

    :where(html.student-ui) .student-app-brand {
        margin-bottom: 6px;
        color: #758096;
        font-size: .72rem;
        font-weight: 800;
        letter-spacing: .08em;
    }

    :where(html.student-ui) .student-app-head h1 {
        color: #111827;
        font-size: 1.55rem;
        font-weight: 800;
    }

    :where(html.student-ui) .student-app-head p {
        font-size: .88rem;
    }

    :where(html.student-ui) .student-dashboard > [class*="col-"], :where(html.student-ui) .student-side-stats > .row > [class*="col-"] {
        margin-top: 0;
    }

    :where(html.student-ui) .student-dashboard .card, :where(html.student-ui) .student-next-ride, :where(html.student-ui) .student-calendar-card, :where(html.student-ui) .card {
        border: 0;
        border-radius: 16px;
        box-shadow: 0 5px 20px rgba(20, 30, 50, .07);
    }

    :where(html.student-ui) .student-gauge-col {
        width: 100%;
    }

    :where(html.student-ui) .student-gauge-card {
        min-height: 205px;
    }

    :where(html.student-ui) .lesson-gauge {
        max-width: 310px;
        margin-left: auto;
        margin-right: auto;
    }

    :where(html.student-ui) .lesson-gauge-value {
        font-size: 25px;
    }

    :where(html.student-ui) .student-side-stats {
        width: 100%;
    }

    :where(html.student-ui) .student-side-stats > .row > .col-md-6 {
        width: 50%;
    }

    :where(html.student-ui) .student-side-stats .card {
        height: 100%;
        min-height: 112px;
    }

    :where(html.student-ui) .student-side-stats .text-muted {
        font-size: .76rem;
        line-height: 1.2;
    }

    :where(html.student-ui) .student-side-stats .stat-number {
        margin-top: 7px;
        font-size: 1.28rem;
        line-height: 1.15;
        font-weight: 800;
        overflow-wrap: anywhere;
    }

    :where(html.student-ui) .student-exam-card {
        background: var(--student-dark);
        color: #fff;
    }

    :where(html.student-ui) .student-exam-card .text-muted {
        color: rgba(255,255,255,.62) !important;
    }

    :where(html.student-ui) .student-exam-card .stat-number {
        color: #fff;
    }

    :where(html.student-ui) .student-video-btn {
        min-height: 48px;
        display: flex;
        align-items: center;
        justify-content: center;
        font-weight: 700;
    }

    :where(html.student-ui) .student-next-ride {
        padding: 18px;
        background: var(--student-dark);
        color: #fff;
    }

    :where(html.student-ui) .student-next-ride__label {
        color: rgba(255,255,255,.58);
        font-size: .72rem;
        font-weight: 800;
        letter-spacing: .07em;
    }

    :where(html.student-ui) .student-next-ride__date {
        margin-top: 7px;
        font-size: 1.35rem;
        line-height: 1.1;
        font-weight: 800;
    }

    :where(html.student-ui) .student-next-ride__time {
        margin-top: 4px;
        font-size: 1.1rem;
        color: var(--student-accent);
        font-weight: 800;
    }

    :where(html.student-ui) .student-next-ride__empty {
        margin-top: 8px;
        color: rgba(255,255,255,.78);
    }

    :where(html.student-ui) .student-next-ride .btn-primary {
        border-color: var(--student-accent);
        background: var(--student-accent);
        color: var(--student-dark);
        font-weight: 800;
    }

    

    :where(html.student-ui) #calendar {
        scroll-margin-top: 12px;
    }

    :where(html.student-ui) .student-calendar-card {
        padding: 12px !important;
        overflow: hidden !important;
    }

    :where(html.student-ui) .student-calendar-card .week-calendar-wrap {
        display: block !important;

        width: 100% !important;
        max-width: 100% !important;

        overflow-x: auto !important;
        overflow-y: hidden !important;

        margin: 0 !important;
        padding: 0 0 10px !important;

        -webkit-overflow-scrolling: touch;
        overscroll-behavior-x: contain;
        touch-action: pan-x pan-y;

        scrollbar-width: thin;
    }

    
    :where(html.student-ui) .student-calendar-card .week-calendar {
        display: grid !important;
        grid-template-columns: repeat(7, 150px) !important;
        grid-template-rows: auto !important;

        grid-auto-flow: column !important;
        grid-auto-columns: 150px !important;

        gap: 10px !important;

        width: max-content !important;
        min-width: max-content !important;
        max-width: none !important;

        margin: 0 !important;
        padding: 0 2px !important;
    }

    :where(html.student-ui) .student-calendar-card .week-day {
        display: block !important;

        width: 150px !important;
        min-width: 150px !important;
        max-width: 150px !important;

        grid-column: auto !important;
        grid-row: 1 !important;

        margin: 0 !important;

        border-radius: 13px;
        overflow: hidden;
    }

    :where(html.student-ui) .student-calendar-card .week-day-header {
        min-height: 60px;
        padding: 9px 10px;
    }

    :where(html.student-ui) .student-calendar-card .week-day-name {
        font-size: .82rem;
        font-weight: 800;
    }

    :where(html.student-ui) .student-calendar-card .week-day-date {
        font-size: .76rem;
    }

    :where(html.student-ui) .student-calendar-card .week-day-body {
        padding: 8px;
    }

    :where(html.student-ui) .student-calendar-card .calendar-slot, :where(html.student-ui) .student-calendar-card .calendar-slot-button {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
    }

    :where(html.student-ui) .student-calendar-card .calendar-slot-button {
        min-height: 82px;
    }

    
    :where(html.student-ui) .student-calendar-card .week-day:nth-child(6), :where(html.student-ui) .student-calendar-card .week-day:nth-child(7) {
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
    }

    
    :where(html.student-ui) .student-calendar-card .week-calendar-wrap::after {
        content: "";
        display: block;
        width: 1px;
        height: 1px;
    }

    :where(html.student-ui) .student-calendar-card .btn {
        min-height: 42px;
    }

    :where(html.student-ui) .student-calendar-card > .d-flex:first-child .d-flex {
        width: 100%;
    }

    :where(html.student-ui) .student-calendar-card > .d-flex:first-child .d-flex .btn {
        flex: 1;
    }

    

    :where(html.student-ui) .student-bottom-nav {
        position: fixed;
        z-index: 1050;
        left: 0;
        right: 0;
        bottom: 0;

        display: grid;
        grid-template-columns: repeat(4, 1fr);

        padding: 7px 6px calc(7px + env(safe-area-inset-bottom));

        background: rgba(11, 18, 32, .98);
        border-top: 1px solid rgba(255,255,255,.08);
        box-shadow: 0 -8px 30px rgba(0,0,0,.15);
        backdrop-filter: blur(12px);
    }

    :where(html.student-ui) .student-bottom-nav a {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;

        min-height: 52px;

        color: #aab2c0;
        text-decoration: none;

        font-size: .69rem;
        font-weight: 700;

        border-radius: 10px;
    }

    :where(html.student-ui) .student-bottom-nav a.active, :where(html.student-ui) .student-bottom-nav a:active {
        color: var(--student-accent);
    }

    :where(html.student-ui) .student-bottom-nav__icon {
        display: block;
        height: 24px;
        margin-bottom: 1px;

        font-size: 1.35rem;
        line-height: 22px;
        font-weight: 400;
    }

    @media (display-mode: standalone) {
        :where(html.student-ui) .student-app-head {
            padding-top: max(6px, env(safe-area-inset-top));
        }
    }


    

    :where(html.student-ui) .student-bottom-nav {
        z-index: 2147483000 !important;
        pointer-events: auto !important;
        isolation: isolate;
        transform: translateZ(0);
        -webkit-transform: translateZ(0);
        touch-action: manipulation;
    }

    :where(html.student-ui) .student-bottom-nav, :where(html.student-ui) .student-bottom-nav * {
        pointer-events: auto !important;
    }

    :where(html.student-ui) .student-bottom-nav a {
        position: relative;
        z-index: 2;
        cursor: pointer;
        -webkit-tap-highlight-color: rgba(216,255,57,.16);
        touch-action: manipulation;
        user-select: none;
        -webkit-user-select: none;
    }

    :where(html.student-ui) .student-bottom-nav a:active {
        background: rgba(255,255,255,.08);
    }

    
    :where(html.student-ui) body::after {
        content: none !important;
        pointer-events: none !important;
    }

}



@media (max-width: 767.98px) {
    :where(html.student-ui) .student-push-card {
        background: #fff;
    }

    :where(html.student-ui) .student-push-bell {
        font-size: 1.45rem;
        line-height: 1;
    }

    :where(html.student-ui) .student-push-card .btn {
        min-height: 46px;
        font-weight: 700;
    }

    :where(html.student-ui) .student-push-card.is-enabled {
        border: 1px solid rgba(25, 135, 84, .18);
    }
}

/* index.php */
html.landing-ui { color-scheme: light; --ink:var(--brand-ink); --muted:#536179; --blue:var(--brand-cobalt); --lime:var(--brand-lime); --line:#dce2f1; }
        :where(html.landing-ui) * { box-sizing:border-box; }
        html.landing-ui { scroll-behavior:smooth; scroll-padding-top:24px; }
        :where(html.landing-ui) body { margin:0; background:#f7f8fd; color:var(--ink); font:16px/1.65 system-ui,-apple-system,"Segoe UI",sans-serif; }
        :where(html.landing-ui) a { color:inherit; }
        :where(html.landing-ui) .wrap { width:min(1120px,calc(100% - 40px)); margin:auto; }
        :where(html.landing-ui) header { background:white; border-bottom:1px solid var(--line); }
        :where(html.landing-ui) nav { display:flex; align-items:center; justify-content:space-between; gap:20px; min-height:88px; }
        :where(html.landing-ui) .brand { display:flex; align-items:center; flex-shrink:0; text-decoration:none; }
        :where(html.landing-ui) .brand img { display:block; width:240px; max-width:100%; height:auto; }
        :where(html.landing-ui) .nav-links { display:flex; align-items:center; gap:28px; }
        :where(html.landing-ui) .nav-links a { text-decoration:none; font-weight:600; font-size:14px; }
        :where(html.landing-ui) .button { display:inline-flex; align-items:center; justify-content:center; padding:12px 21px; border:1px solid transparent; border-radius:10px; background:var(--blue); color:white; font-weight:700; text-decoration:none; transition:background .15s; }
        :where(html.landing-ui) .button:hover { background:#2443cf; }
        :where(html.landing-ui) .button.secondary { background:transparent; color:var(--ink); border-color:#c5d0df; }
        :where(html.landing-ui) .button.secondary:hover { background:#e9edff; }
        :where(html.landing-ui) a:focus-visible { outline:3px solid var(--blue); outline-offset:5px; }
        :where(html.landing-ui) .hero { padding:82px 0 72px; background:radial-gradient(ellipse at top right,#dce4ff,transparent 65%); border-bottom:1px solid var(--line); }
        :where(html.landing-ui) .hero-grid { display:grid; grid-template-columns:1.15fr 1fr; gap:64px; align-items:center; }
        :where(html.landing-ui) .eyebrow { color:var(--blue); font-size:12px; font-weight:800; letter-spacing:1.6px; text-transform:uppercase; margin:0 0 18px; }
        :where(html.landing-ui) h1 { font-size:clamp(36px,4.4vw,56px); line-height:1.12; letter-spacing:-2px; margin:0 0 24px; }
        :where(html.landing-ui) h1 span { color:var(--blue); }
        :where(html.landing-ui) .lead { font-size:18px; color:var(--muted); max-width:540px; margin:0 0 28px; }
        :where(html.landing-ui) .actions { display:flex; gap:12px; flex-wrap:wrap; }
        :where(html.landing-ui) .hero-note { color:var(--muted); font-size:13px; margin:18px 0 0; }
        :where(html.landing-ui) .hero-note::before { content:""; display:inline-block; width:9px; height:9px; margin-right:8px; border-radius:50%; background:var(--lime); border:1px solid #7a991c; }
        :where(html.landing-ui) .preview { border:1px solid #cfdaeb; background:white; border-radius:20px; box-shadow:0 24px 65px #213e6a18; overflow:hidden; transform:rotate(1deg); }
        :where(html.landing-ui) .preview-top { display:flex; justify-content:space-between; align-items:center; padding:20px 24px; background:var(--blue); color:white; border-bottom:1px solid var(--blue); }
        :where(html.landing-ui) .preview-top strong { font-size:15px; }
        :where(html.landing-ui) .sample { font-size:11px; color:var(--ink); background:var(--lime); padding:3px 9px; border-radius:20px; white-space:nowrap; }
        :where(html.landing-ui) .preview-body { padding:24px; }
        :where(html.landing-ui) .preview-label { font-size:12px; color:var(--muted); margin:0 0 14px; }
        :where(html.landing-ui) .schedule { display:grid; gap:12px; }
        :where(html.landing-ui) .slot { display:flex; align-items:center; gap:14px; padding:15px; background:#f4f7fc; border-radius:10px; border-left:3px solid var(--blue); }
        :where(html.landing-ui) .slot time { font-weight:800; font-size:14px; }
        :where(html.landing-ui) .slot strong { display:block; font-size:14px; }
        :where(html.landing-ui) .slot small { color:var(--muted); font-size:12px; }
        :where(html.landing-ui) .slot.available { border-color:#789b12; background:#f1f8dc; }
        :where(html.landing-ui) .slot.theory { border-color:var(--ink); background:#edf0f7; }
        :where(html.landing-ui) .preview-foot { margin:18px 0 0; color:var(--muted); font-size:12px; }
        :where(html.landing-ui) section.content { padding:70px 0; }
        :where(html.landing-ui) .section-heading { max-width:650px; margin-bottom:32px; }
        :where(html.landing-ui) h2 { font-size:clamp(28px,3vw,36px); line-height:1.2; letter-spacing:-1px; margin:0 0 14px; }
        :where(html.landing-ui) .section-heading p { color:var(--muted); margin:0; }
        :where(html.landing-ui) .section-heading .eyebrow { color:var(--blue); margin-bottom:14px; }
        :where(html.landing-ui) .features { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
        :where(html.landing-ui) .card { background:white; border:1px solid var(--line); border-radius:15px; padding:26px; border-top:3px solid var(--blue); }
        :where(html.landing-ui) .number { font-size:12px; font-weight:800; color:var(--blue); display:block; margin-bottom:20px; }
        :where(html.landing-ui) h3 { font-size:18px; margin:0 0 10px; }
        :where(html.landing-ui) .card p { margin:0; color:var(--muted); font-size:14px; }
        :where(html.landing-ui) .roles-section { background:var(--ink); color:white; }
        :where(html.landing-ui) .roles-section .section-heading .eyebrow { color:var(--lime); }
        :where(html.landing-ui) .roles h3::before { content:""; display:inline-block; width:8px; height:8px; margin-right:10px; background:var(--lime); border-radius:2px; }
        :where(html.landing-ui) .roles { display:grid; grid-template-columns:repeat(3,1fr); gap:32px; }
        :where(html.landing-ui) .roles p { color:#c5cfe0; margin:0; font-size:15px; }
        :where(html.landing-ui) .cta { display:flex; align-items:center; justify-content:space-between; gap:32px; padding:40px; background:var(--blue); color:white; border-radius:18px; }
        :where(html.landing-ui) .cta h2 { font-size:28px; }
        :where(html.landing-ui) .cta p { margin:0; color:#edf0ff; }
        :where(html.landing-ui) .cta .button { flex-shrink:0; background:var(--lime); color:var(--ink); }
        :where(html.landing-ui) .cta .button:hover { background:#d2f56d; }
        :where(html.landing-ui) .cta .button:focus-visible { outline-color:white; }
        :where(html.landing-ui) footer { padding:0 0 28px; font-size:13px; color:var(--muted); }
        :where(html.landing-ui) .footer-inner { border-top:1px solid var(--line); padding-top:24px; display:flex; justify-content:space-between; gap:16px; }
        @media(max-width:850px) { :where(html.landing-ui) .hero-grid { grid-template-columns:1fr; gap:36px; } :where(html.landing-ui) .hero { padding:52px 0; } :where(html.landing-ui) .preview { transform:none; max-width:560px; width:100%; } :where(html.landing-ui) .features { grid-template-columns:repeat(2,1fr); } :where(html.landing-ui) .roles { gap:22px; } }
        @media(max-width:560px) { :where(html.landing-ui) .wrap { width:calc(100% - 32px); } :where(html.landing-ui) nav { min-height:76px; gap:12px; } :where(html.landing-ui) .brand { min-width:0; flex-shrink:1; } :where(html.landing-ui) .brand img { width:170px; } :where(html.landing-ui) .preview-top { padding:16px; gap:12px; flex-wrap:wrap; } :where(html.landing-ui) .nav-links { gap:0; } :where(html.landing-ui) .nav-links .features-link { display:none; } :where(html.landing-ui) .nav-links .button { padding:9px 13px; } :where(html.landing-ui) h1 { letter-spacing:-1.3px; } :where(html.landing-ui) .features, :where(html.landing-ui) .roles { grid-template-columns:1fr; } :where(html.landing-ui) section.content { padding:48px 0; } :where(html.landing-ui) .cta { align-items:flex-start; flex-direction:column; padding:28px; } :where(html.landing-ui) .footer-inner { flex-direction:column; } }
        @media(prefers-reduced-motion:reduce) { html.landing-ui { scroll-behavior:auto; } :where(html.landing-ui) .button { transition:none; } }

/* offline.html */
:where(html.offline-ui) *{box-sizing:border-box}
    :where(html.offline-ui) body{
      margin:0;
      min-height:100vh;
      display:grid;
      place-items:center;
      padding:24px;
      background:var(--brand-ink);
      color:#fff;
      font-family:Arial,Helvetica,sans-serif;
    }
    :where(html.offline-ui) .box{
      width:min(520px,100%);
      padding:32px;
      border-radius:20px;
      background:#203250;
      border:1px solid rgba(255,255,255,.08);
      text-align:center;
      box-shadow:0 20px 60px rgba(0,0,0,.25);
    }
    :where(html.offline-ui) h1{font-size:28px;margin:0 0 12px}
    :where(html.offline-ui) p{color:#b8c1d1;line-height:1.55;margin:0 0 24px}
    :where(html.offline-ui) button{
      border:0;
      border-radius:10px;
      padding:13px 20px;
      font-weight:700;
      background:var(--brand-cobalt);
      color:#fff;
      cursor:pointer;
    }

/* superadmin/action/exam_report_debug.php */
:where(html.exam-debug-ui) body{font-family:Arial,sans-serif;padding:24px;color:#222}
:where(html.exam-debug-ui) table{border-collapse:collapse;width:100%;margin:16px 0 32px}
:where(html.exam-debug-ui) th, :where(html.exam-debug-ui) td{border:1px solid #ccc;padding:8px;text-align:left}
:where(html.exam-debug-ui) th{background:#eee}
:where(html.exam-debug-ui) .ok{padding:12px;background:#d1e7dd;border:1px solid #badbcc}
:where(html.exam-debug-ui) .bad{padding:12px;background:#f8d7da;border:1px solid #f5c2c7}
:where(html.exam-debug-ui) code{background:#eee;padding:2px 5px}

/* admin/pages/rides.php */
:where(html.app-ui) .calendar-slot-theory, :where(html.app-ui) .calendar-legend-theory { background: #f77 !important; border-color: #f77 !important; color: #211 !important; }
        :where(html.app-ui) .calendar-slot-theory span { color: #211 !important; }

/* admin/pages/students.php */
:where(html.app-ui) .student-progress-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    align-items: center;
    margin-bottom: 12px;
    font-size: .82rem;
    color: #6c757d;
}

:where(html.app-ui) .student-progress-legend-item {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

:where(html.app-ui) .student-progress-dot, :where(html.app-ui) .student-progress-legend-dot {
    display: inline-block;
    flex: 0 0 auto;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    border: 1px solid rgba(0, 0, 0, .10);
    background: #d9dee3;
}

:where(html.app-ui) .student-progress-dots {
    display: grid;
    grid-template-columns: repeat(14, 10px);
    gap: 4px;
    width: max-content;
    min-width: 192px;
}

:where(html.app-ui) .student-progress-dot.is-ac, :where(html.app-ui) .student-progress-legend-dot.is-ac {
    background: var(--brand-cobalt);
    border-color: var(--brand-cobalt);
}

:where(html.app-ui) .student-progress-dot.is-completed, :where(html.app-ui) .student-progress-legend-dot.is-completed {
    background: #198754;
    border-color: #198754;
}

:where(html.app-ui) .student-progress-dot.is-booked, :where(html.app-ui) .student-progress-legend-dot.is-booked {
    background: #ffc107;
    border-color: #e0a800;
}

:where(html.app-ui) .student-progress-dot.is-empty, :where(html.app-ui) .student-progress-legend-dot.is-empty {
    background: #d9dee3;
    border-color: #c8ced4;
}
:where(html.app-ui) .student-theory-topics { display:flex; align-items:flex-start; gap:8px; width:max-content; }
:where(html.app-ui) .student-theory-topic { display:flex; flex-direction:column; align-items:center; gap:4px; min-width:14px; font-size:.75rem; line-height:1.2; color:#6c757d; }

/* admin/pages/vehicle-detail.php */
:where(html.app-ui) .vehicle-calendar {
    display: grid;
    grid-template-columns: repeat(7, minmax(70px, 1fr));
    gap: 5px;
    min-width: 620px;
}

:where(html.app-ui) .vehicle-calendar-head {
    padding: 7px 5px;
    text-align: center;
    font-size: .78rem;
    font-weight: 700;
    color: #6c757d;
}

:where(html.app-ui) .vehicle-calendar-day {
    min-height: 76px;
    display: block;
    padding: 7px;
    border: 1px solid #dee2e6;
    border-radius: .5rem;
    background: #fff;
    color: inherit;
    text-decoration: none;
}

:where(html.app-ui) .vehicle-calendar-day:hover {
    border-color: var(--brand-cobalt);
    background: #f8fbff;
}

:where(html.app-ui) .vehicle-calendar-day.is-other-month {
    opacity: .45;
}

:where(html.app-ui) .vehicle-calendar-day.is-today {
    border-color: var(--brand-cobalt);
}

:where(html.app-ui) .vehicle-calendar-day.has-note {
    background: #fff8db;
}

:where(html.app-ui) .vehicle-calendar-date {
    font-size: .85rem;
    font-weight: 700;
}

:where(html.app-ui) .vehicle-calendar-note {
    margin-top: 6px;
    font-size: .72rem;
    color: #6c757d;
    line-height: 1.2;
}

:where(html.app-ui) .vehicle-calendar-plus {
    font-size: .72rem;
    color: var(--brand-cobalt);
}

/* superadmin/pages/settings.php */
:where(html.app-ui) .settings-section > summary { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:20px 24px; cursor:pointer; list-style:none; font-size:1.1rem; font-weight:600; }
:where(html.app-ui) .settings-section > summary::-webkit-details-marker { display:none; }
:where(html.app-ui) .settings-section > summary::after { content:""; flex-shrink:0; width:10px; height:10px; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:rotate(45deg); margin-right:4px; }
:where(html.app-ui) .settings-section[open] > summary::after { transform:rotate(225deg); }
:where(html.app-ui) .settings-section[open] > summary { border-bottom:1px solid #dee2e6; }
:where(html.app-ui) .settings-section > summary:focus-visible { outline:3px solid var(--brand-cobalt); outline-offset:-3px; border-radius:6px; }

/* superadmin/pages/student-detail.php */
:where(html.app-ui) .student-summary-cards > div { min-width:0; }
:where(html.app-ui) .student-document-item { padding:16px; border:1px solid #e0e5ed; border-radius:12px; height:100%; display:flex; flex-direction:column; }
:where(html.app-ui) .student-document-item input[type="file"] { margin-top:auto; }
:where(html.app-ui) .student-document-item .form-control { min-width:0; width:100%; font-size:.75rem; }
:where(html.app-ui) .student-detail-theory { display:flex; flex-wrap:wrap; gap:10px; }
:where(html.app-ui) .student-detail-topic { display:flex; flex-direction:column; align-items:center; gap:5px; min-width:16px; font-size:.8rem; }
:where(html.app-ui) .student-detail-topic-dot { display:block; width:11px; height:11px; border-radius:50%; background:#d9dee3; border:1px solid #c8ced4; }
:where(html.app-ui) .student-detail-topic-dot.is-completed { background:#198754; border-color:#198754; }
:where(html.app-ui) .student-detail-driving-dots { display:grid; grid-template-columns:repeat(14, 11px); gap:5px; }
:where(html.app-ui) .student-detail-collapse > summary { cursor:pointer; list-style:none; }
:where(html.app-ui) .student-detail-collapse > summary::-webkit-details-marker { display:none; }
:where(html.app-ui) .student-detail-collapse > summary::after { content:""; width:10px; height:10px; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:rotate(45deg); flex-shrink:0; }
:where(html.app-ui) .student-detail-collapse[open] > summary::after { transform:rotate(225deg); }
:where(html.app-ui) .student-detail-collapse > summary:focus-visible { outline:3px solid var(--brand-cobalt); outline-offset:5px; }

/* student/index.php */
:where(html.app-ui) #calendar .calendar-slot-theory, :where(html.app-ui) #calendar .calendar-legend-theory { background: #f77 !important; border-color: #f77 !important; color: #211 !important; }
:where(html.app-ui) #calendar .calendar-slot-theory span { color: #211 !important; }
:where(html.app-ui) #calendar .calendar-slot-theory { cursor: default; }

/* student/recenze.php */
:where(html.app-ui) .review-stars{display:flex;flex-direction:row-reverse;justify-content:flex-end;gap:.35rem}
:where(html.app-ui) .review-stars input{position:absolute;opacity:0;width:1px;height:1px}
:where(html.app-ui) .review-stars label{font-size:2.7rem;line-height:1.3;color:#6c757d;cursor:pointer;padding:.1rem}
:where(html.app-ui) .review-stars input:checked~label, :where(html.app-ui) .review-stars label:hover, :where(html.app-ui) .review-stars label:hover~label{color:#b77900}
:where(html.app-ui) .review-stars input:focus-visible+label{outline:3px solid var(--bs-primary);outline-offset:2px;border-radius:.25rem}

.month-label { min-width:180px; }
.vehicle-month-label { min-width:160px; }
.teacher-filter { max-width:420px; }
.preserve-lines { white-space:pre-wrap; }
.review-form { max-width:680px; }

/* Sazba PDF se načítá na serveru podle šablony. */
/* PDF admin/action/pdf.php
body{font-family:dejavusans;font-size:10pt;color:#15233B}table{border-collapse:collapse;width:100%}th,td{padding:8px;border:1px solid #dce2f1}th{background:#edf1ff;text-align:left}.right{text-align:right}

*/

/* PDF superadmin/monthly-report-pdf.php
body{font-family:sans-serif;font-size:9pt;color:#15233B}
h1{font-size:14pt;margin:0 0 6px}
h2{font-size:11pt;margin:8px 0 4px}
table{width:100%;border-collapse:collapse}
th,td{border:.35mm solid #222;padding:1.5mm 2mm;vertical-align:middle}
.center{text-align:center}.muted{color:#777}
.header td,.header th{font-size:8.2pt;padding:1.8mm}
.report th,.report td{height:4.1mm;padding-top:.6mm;padding-bottom:.6mm}
.header th {
    font-weight: 400;
}

.header th strong {
    font-weight: 700;
}
.pdf-layout-1 { margin-top:3mm; }
.pdf-layout-2 { width:34%; }
.pdf-layout-3 { width:22%; }
.pdf-layout-4 { width:25%; }
*/

/* PDF superadmin/teacher_day_pdf.php
body {
        font-family: sans-serif;
        font-size: 10pt;
    }

    h1 {
        font-size: 18pt;
        margin-bottom: 4mm;
    }

    .meta {
        margin-bottom: 6mm;
    }

    table {
        width: 100%;
        border-collapse: collapse;
    }

    th,
    td {
        border: 1px solid #777;
        padding: 2.5mm;
    }

    th {
        background: #eeeeee;
    }

    .summary {
        margin-top: 5mm;
        text-align: right;
        font-weight: bold;
    }
.pdf-layout-1 { text-align:right;; }
.pdf-layout-2 { text-align:center;; }
*/

/* PDF superadmin/action/day_pdf.php
@page { margin: 8mm 8mm 8mm 8mm; }
    body { font-family: dejavusans, sans-serif; font-size: 9pt; color:#15233B; }
    .title { font-size: 11pt; font-weight: bold; margin: 0 0 3mm; }
    table { width: 100%; border-collapse: collapse; table-layout: fixed; }
    th, td { border: 1px solid #000; padding: 2.2mm 1.4mm; vertical-align: middle; }
    .top td { font-size: 10pt; font-weight: normal; height: 8mm; }
    .top .date { width: 16%; text-align: center; font-weight: bold; font-size: 11pt; }
    .top .spz { width: 19%; text-align: center; font-weight: bold; }
    .top .teacher { width: 28%; }
    .top .head-total { width: 18.5%; }
    .label { font-weight: bold; }
    .gap td { height: 5mm; padding: 0; }
    .main th { font-size: 8.5pt; font-weight: bold; text-align: center; padding: 2mm 1mm; white-space: nowrap; }
    .main td { height: 7mm; font-size: 8.5pt; text-align: center; padding: 1.8mm 1mm; }
    .main td.student { text-align: left; font-size: 8.8pt; }
    .main td.time { white-space: nowrap; }
    .w-student { width: 17%; }
    .w-time { width: 10.5%; }
    .w-evidence { width: 8.5%; }
    .w-course { width: 7%; }
    .w-km { width: 10%; }
    .w-lesson { width: 7%; }
    .w-kmtotal { width: 9%; }
    .w-sign { width: 11.5%; }

*/

/* PDF superadmin/action/overview_pdf.php
body {
        font-family: dejavusans;
        font-size: 10.5pt;
        color:#15233B;
    }

    h1 {
        margin: 0 0 4px;
        font-size: 18pt;
    }

    .month {
        margin-bottom: 18px;
        color: #666;
        font-size: 11pt;
    }

    table {
        width: 100%;
        border-collapse: collapse;
    }

    th {
        padding: 8px 7px;
        background: #eeeeee;
        border: 1px solid #bbbbbb;
        text-align: left;
        font-weight: bold;
    }

    td {
        padding: 8px 7px;
        border: 1px solid #cccccc;
        vertical-align: top;
    }

    .hours {
        width: 90px;
        text-align: right;
    }

    .type {
        width: 130px;
        font-weight: bold;
    }

    .student {
        width: 190px;
    }

    .total td {
        background: #f5f5f5;
        font-weight: bold;
    }

    .summary {
        margin-top: 16px;
        width: 55%;
    }

    .summary td {
        padding: 5px 7px;
    }

    .empty {
        text-align: center;
        color: #777;
        padding: 18px;
    }

*/

/* PDF superadmin/action/student_rides_pdf.php
body { font-family: dejavusans; font-size: 11pt; color:#15233B; }
h1 { font-size: 18pt; margin: 0 0 6mm; }
p { margin: 0 0 5mm; }
table { width: 100%; border-collapse: collapse; table-layout: fixed; }
th, td { border: 0.2mm solid #aaa; padding: 3mm; text-align: center; }
th { background: #eee; font-weight: bold; }
thead { display: table-header-group; }
tr { page-break-inside: avoid; }
.small { font-size: 9pt; color: #666; }
.pdf-layout-1 { text-align:right;font-size:9pt;color:#666; }
*/

/* PDF superadmin/action/week_pdf.php
body { font-family: dejavusans; font-size: 10pt; color:#15233B; }
h1 { font-size: 18pt; margin: 0 0 3mm; }
p { margin: 0 0 5mm; }
table { border-collapse: collapse; width: 100%; table-layout: fixed; }
th, td { border: 0.2mm solid #aaa; padding: 2.5mm; text-align: center; vertical-align: top; overflow-wrap: break-word; }
th { background: #eee; }
.left { text-align: left; }
.theory td { background: #ffdddd; }
.empty { color: #777; text-align: left; }
tr { page-break-inside: avoid; }
.pdf-layout-1 { text-align:right;font-size:9pt; }
*/

/* PDF superadmin/action/student_payment_pdf.php
body { font-family: dejavusans, sans-serif; font-size: 10pt; color: #15233B; line-height: 1.55; }
h1 { color: #15233B; font-size: 23pt; margin: 1mm 0 0; }
table { width: 100%; border-collapse: collapse; margin: 0 0 7mm; }
th, td { padding: 3.5mm; border-bottom: 0.25mm solid #dce2f1; vertical-align: top; }
th { background: #edf1ff; text-align: left; font-size: 9pt; }
.heading td { border-bottom: 1mm solid #3155F5; vertical-align: middle; padding: 0 0 5mm; }
.eyebrow { font-size: 9pt; font-weight: bold; color: #3155F5; letter-spacing: 1pt; }
.logo { width: 46mm; text-align: right; }
.parties th { width: 50%; }
.parties td { background: #f8faff; }
.metadata td { border: 0; background: #edf1ff; }
.total th { background: #3155F5; color: white; font-size: 11pt; }
.money { text-align: right; white-space: nowrap; }
*/
