/* Ticket pages (/{lang}/jizdenky). Mobile-first, single column, actions within thumb reach.
   Deliberately self-contained: this flow ships before the rest of the client zone. */

.tk-shell {
    max-width: 640px;
    margin: 0 auto;
    padding: 0 16px 96px;
}

.tk-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 16px 0;
}

.tk-brand {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    text-decoration: none;
    color: inherit;
}

.tk-brand-text { font-weight: 600; }

.tk-h1 { font-size: 1.5rem; margin: 8px 0 4px; }
.tk-h1-second { margin-top: 32px; }
.tk-lead { color: #555; margin: 0 0 20px; }

.tk-label { display: block; font-weight: 600; margin-bottom: 6px; }

.tk-input {
    width: 100%;
    padding: 14px 12px;
    font-size: 1rem;               /* 16px keeps iOS Safari from zooming on focus */
    border: 1px solid #ccc;
    border-radius: 8px;
    margin-bottom: 16px;
}

.tk-btn {
    display: inline-block;
    padding: 14px 20px;
    min-height: 48px;              /* comfortable touch target */
    font-size: 1rem;
    border: 1px solid #1AA3E0;
    border-radius: 8px;
    background: #fff;
    color: #1AA3E0;
    text-decoration: none;
    text-align: center;
    cursor: pointer;
}

.tk-btn-primary { background: #1AA3E0; color: #fff; }

.tk-day {
    font-size: 1rem;
    text-transform: capitalize;
    margin: 20px 0 8px;
    color: #333;
}

.tk-conn {
    display: grid;
    grid-template-columns: auto 1fr auto;
    grid-template-areas:
        "check time  price"
        "check route price"
        "check meta  price";
    align-items: center;
    gap: 2px 12px;
    padding: 12px;
    border: 1px solid #ddd;
    border-radius: 10px;
    margin-bottom: 8px;
    cursor: pointer;
}

.tk-conn input[type="checkbox"] { grid-area: check; width: 22px; height: 22px; }
.tk-conn-time  { grid-area: time;  font-weight: 700; font-size: 1.1rem; }
.tk-conn-route { grid-area: route; }
.tk-conn-meta  { grid-area: meta;  color: #666; font-size: 0.875rem; }
.tk-conn-price { grid-area: price; font-weight: 700; }

/* The pay button follows the page rather than the scroll position on very short lists,
   but sticks to the bottom edge once the list is long enough to scroll. */
.tk-paybar {
    position: sticky;
    bottom: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 0;
    background: #fff;
    border-top: 1px solid #eee;
}

.tk-paybar-total { font-weight: 600; }

/* Stands in for the pay button when no gateway is configured. Right-aligned like the button it
   replaces, and deliberately quiet — it is an apology, not a call to action. */
.tk-paybar-note {
    text-align: right;
    font-size: .9rem;
    color: #666;
}

.tk-ticket {
    border: 1px solid #ddd;
    border-radius: 10px;
    padding: 12px;
    margin-bottom: 12px;
}

.tk-ticket-head { display: flex; flex-direction: column; gap: 2px; margin-bottom: 8px; }
.tk-ticket-when { font-weight: 700; }
.tk-ticket-route { color: #444; }
.tk-ticket-img { display: block; width: 100%; height: auto; border-radius: 8px; }

.tk-ticket-cancelled { border-color: #d33; }
.tk-ticket-void { color: #d33; font-weight: 600; margin: 0; }

.tk-alert {
    padding: 12px;
    border: 1px solid #d33;
    border-radius: 8px;
    background: #fff5f5;
    color: #a00;
    margin: 12px 0;
}

/* Comgate Checkout mount points. The SDK renders inside these, so the page only reserves space
   and spacing — styling of the widgets themselves goes through the SDK's own appearance options. */
.tk-paybtn {
    min-height: 48px;
    margin-bottom: 10px;
}

.tk-cardbox {
    margin-top: 8px;
}
