/*!
 * Kurdia Events — frontend styles
 * Hiwa Menbari · kurds.ca
 *
 * Design system: CSS custom properties (tokens) → component primitives →
 * layout. Tokens live at the :root level so a theme can override any of
 * them without rewriting the whole sheet. Components are scoped under
 * .kdev-* class roots to avoid global-namespace collisions.
 */
 :root{--kdev-color-bg:#ffffff;--kdev-color-surface:#ffffff;--kdev-color-surface-alt:#f8fafc;--kdev-color-surface-mute:#f1f5f9;--kdev-color-border:#e5e7eb;--kdev-color-border-strong:#cbd5e1;--kdev-color-text:#0f172a;--kdev-color-text-muted:#475569;--kdev-color-text-subtle:#64748b;--kdev-color-text-faint:#94a3b8;--kdev-color-brand:#0f766e;--kdev-color-brand-strong:#115e59;--kdev-color-brand-soft:#ccfbf1;--kdev-color-brand-contrast:#ffffff;--kdev-color-success:#047857;--kdev-color-success-soft:#d1fae5;--kdev-color-warning:#b45309;--kdev-color-warning-soft:#fef3c7;--kdev-color-danger:#b91c1c;--kdev-color-danger-soft:#fee2e2;--kdev-color-info:#1d4ed8;--kdev-color-info-soft:#dbeafe;--kdev-font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
	                  "Helvetica Neue", Arial, "Noto Sans", "Noto Naskh Arabic",
	                  sans-serif;--kdev-font-mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas,
	                  "Liberation Mono", monospace;--kdev-text-xs:0.75rem;--kdev-text-sm:0.875rem;--kdev-text-base:1rem;--kdev-text-lg:1.125rem;--kdev-text-xl:1.25rem;--kdev-text-2xl:clamp(1.4rem, 1.1rem + 1.2vw, 1.75rem);--kdev-text-3xl:clamp(1.75rem, 1.3rem + 2vw, 2.4rem);--kdev-text-4xl:clamp(2rem, 1.4rem + 3vw, 3rem);--kdev-space-1:4px;--kdev-space-2:8px;--kdev-space-3:12px;--kdev-space-4:16px;--kdev-space-5:20px;--kdev-space-6:24px;--kdev-space-8:32px;--kdev-space-10:40px;--kdev-space-12:48px;--kdev-space-16:64px;--kdev-radius-sm:6px;--kdev-radius:10px;--kdev-radius-lg:16px;--kdev-radius-xl:22px;--kdev-radius-pill:9999px;--kdev-shadow-xs:0 1px 2px rgba(15, 23, 42, 0.04);--kdev-shadow-sm:0 2px 4px rgba(15, 23, 42, 0.06);--kdev-shadow:0 6px 16px rgba(15, 23, 42, 0.08);--kdev-shadow-lg:0 18px 36px -8px rgba(15, 23, 42, 0.18);--kdev-ease:cubic-bezier(0.4, 0, 0.2, 1);--kdev-duration-fast:140ms;--kdev-duration:220ms;--kdev-width-prose:720px;--kdev-width-wide:1200px}@media (prefers-color-scheme:dark){:root{--kdev-color-bg:#0b1220;--kdev-color-surface:#111827;--kdev-color-surface-alt:#1f2937;--kdev-color-surface-mute:#1e293b;--kdev-color-border:#1f2a44;--kdev-color-border-strong:#334155;--kdev-color-text:#f1f5f9;--kdev-color-text-muted:#cbd5e1;--kdev-color-text-subtle:#94a3b8;--kdev-color-text-faint:#64748b;--kdev-color-brand-soft:#134e4a}}@media (prefers-reduced-motion:reduce){:root{--kdev-duration:0ms;--kdev-duration-fast:0ms}[class*="kdev-"] *{animation:none!important;transition:none!important}}[class*="kdev-"],[class*="kdev-"] *{box-sizing:border-box}.kdev-event :where(p),.kdev-archive :where(p){line-height:1.7}.kdev-event :where(a),.kdev-archive :where(a),[class*="kdev-"] :where(a):where(:focus-visible){outline:none}[class*="kdev-"] :focus-visible{outline:2px solid var(--kdev-color-brand);outline-offset:2px;border-radius:var(--kdev-radius-sm)}.kdev-btn,.kdev-event__tickets .button,.kdev-ticket__buy{display:inline-flex;align-items:center;justify-content:center;gap:var(--kdev-space-2);padding:10px 18px;min-height:42px;border:1px solid #fff0;border-radius:var(--kdev-radius-sm);background:var(--kdev-color-brand);color:var(--kdev-color-brand-contrast);font:inherit;font-weight:600;font-size:var(--kdev-text-sm);letter-spacing:.01em;text-decoration:none;cursor:pointer;transition:background-color var(--kdev-duration) var(--kdev-ease),transform var(--kdev-duration-fast) var(--kdev-ease),box-shadow var(--kdev-duration) var(--kdev-ease);white-space:nowrap}.kdev-btn:hover,.kdev-event__tickets .button:hover,.kdev-ticket__buy:hover{background:var(--kdev-color-brand-strong);color:var(--kdev-color-brand-contrast);box-shadow:var(--kdev-shadow-sm)}.kdev-btn:active,.kdev-ticket__buy:active{transform:translateY(1px)}.kdev-btn--ghost{background:#fff0;color:var(--kdev-color-brand);border-color:var(--kdev-color-border-strong)}.kdev-btn--ghost:hover{background:var(--kdev-color-brand-soft);color:var(--kdev-color-brand-strong)}.kdev-btn:disabled,.kdev-btn[aria-disabled="true"]{opacity:.6;cursor:not-allowed}[class*="kdev-"] input[type="text"],[class*="kdev-"] input[type="number"],[class*="kdev-"] input[type="email"],[class*="kdev-"] input[type="search"],[class*="kdev-"] input[type="tel"],[class*="kdev-"] input[type="url"],[class*="kdev-"] select,[class*="kdev-"] textarea{width:100%;padding:10px 12px;background:var(--kdev-color-surface);color:var(--kdev-color-text);border:1px solid var(--kdev-color-border-strong);border-radius:var(--kdev-radius-sm);font:inherit;font-size:var(--kdev-text-base);transition:border-color var(--kdev-duration-fast) var(--kdev-ease),box-shadow var(--kdev-duration-fast) var(--kdev-ease)}[class*="kdev-"] input:focus,[class*="kdev-"] select:focus,[class*="kdev-"] textarea:focus{border-color:var(--kdev-color-brand);box-shadow:0 0 0 3px var(--kdev-color-brand-soft);outline:none}.kdev-badge{display:inline-flex;align-items:center;padding:2px 10px;border-radius:var(--kdev-radius-pill);background:var(--kdev-color-surface-mute);color:var(--kdev-color-text-muted);font-size:var(--kdev-text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.05em;line-height:1.8}.kdev-badge--brand{background:var(--kdev-color-brand-soft);color:var(--kdev-color-brand-strong)}.kdev-badge--success{background:var(--kdev-color-success-soft);color:var(--kdev-color-success)}.kdev-badge--warning{background:var(--kdev-color-warning-soft);color:var(--kdev-color-warning)}.kdev-badge--danger{background:var(--kdev-color-danger-soft);color:var(--kdev-color-danger)}.kdev-badge--info{background:var(--kdev-color-info-soft);color:var(--kdev-color-info)}.kdev-event{max-width:var(--kdev-width-wide);margin:var(--kdev-space-8) auto;padding:0 var(--kdev-space-4);color:var(--kdev-color-text);font-family:var(--kdev-font-sans)}.kdev-event__banner{position:relative;overflow:hidden;border-radius:var(--kdev-radius-lg);box-shadow:var(--kdev-shadow);aspect-ratio:16 / 7;background:var(--kdev-color-surface-mute)}.kdev-event__banner img{width:100%;height:100%;object-fit:cover;display:block}.kdev-event__title{margin:var(--kdev-space-6) 0 var(--kdev-space-4);font-size:var(--kdev-text-4xl);font-weight:700;line-height:1.15;letter-spacing:-.015em}.kdev-event__meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--kdev-space-4) var(--kdev-space-6);margin:var(--kdev-space-4) 0 var(--kdev-space-8);padding:var(--kdev-space-5) var(--kdev-space-6);background:var(--kdev-color-surface-alt);border:1px solid var(--kdev-color-border);border-radius:var(--kdev-radius)}.kdev-event__meta>div{display:flex;flex-direction:column;gap:var(--kdev-space-1);min-width:0}.kdev-event__meta dt{font-size:var(--kdev-text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--kdev-color-text-subtle)}.kdev-event__meta dd{margin:0;font-weight:500;color:var(--kdev-color-text);overflow-wrap:anywhere}.kdev-event__address{display:block;font-size:var(--kdev-text-sm);color:var(--kdev-color-text-muted);font-weight:400}.kdev-event__content{max-width:var(--kdev-width-prose);margin:var(--kdev-space-8) auto;font-size:var(--kdev-text-lg);color:var(--kdev-color-text-muted)}.kdev-event__content>*+*{margin-top:var(--kdev-space-4)}.kdev-event__tickets{margin:var(--kdev-space-10) auto 0;max-width:var(--kdev-width-wide);padding:var(--kdev-space-8);background:var(--kdev-color-surface);border:1px solid var(--kdev-color-border);border-radius:var(--kdev-radius-lg);box-shadow:var(--kdev-shadow-xs)}.kdev-event__tickets>h2{margin:0 0 var(--kdev-space-6);font-size:var(--kdev-text-2xl);font-weight:700;letter-spacing:-.01em}.kdev-ticket-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--kdev-space-3)}.kdev-ticket-list__item{display:grid;grid-template-columns:1fr auto;align-items:center;gap:var(--kdev-space-6);padding:var(--kdev-space-5) var(--kdev-space-6);background:var(--kdev-color-surface);border:1px solid var(--kdev-color-border);border-radius:var(--kdev-radius);transition:border-color var(--kdev-duration) var(--kdev-ease),box-shadow var(--kdev-duration) var(--kdev-ease),transform var(--kdev-duration-fast) var(--kdev-ease)}.kdev-ticket-list__item:hover{border-color:var(--kdev-color-brand);box-shadow:var(--kdev-shadow-sm)}.kdev-ticket-list__item.is-sold-out{opacity:.6;background:var(--kdev-color-surface-alt)}.kdev-ticket-list__item.is-sold-out:hover{border-color:var(--kdev-color-border);box-shadow:none}.kdev-ticket__info{min-width:0}.kdev-ticket__name{margin:0 0 var(--kdev-space-1);font-size:var(--kdev-text-lg);font-weight:600;color:var(--kdev-color-text);line-height:1.3}.kdev-ticket__description{margin:var(--kdev-space-1) 0 var(--kdev-space-3);font-size:var(--kdev-text-sm);color:var(--kdev-color-text-muted);line-height:1.5}.kdev-ticket__price{display:inline-flex;align-items:baseline;gap:var(--kdev-space-2);font-size:var(--kdev-text-xl);font-weight:700;color:var(--kdev-color-text)}.kdev-ticket__price-original{text-decoration:line-through;color:var(--kdev-color-text-faint);font-weight:400;font-size:var(--kdev-text-base)}.kdev-ticket__price-sale{color:var(--kdev-color-danger)}.kdev-ticket__price-regular{color:var(--kdev-color-text)}.kdev-ticket__currency{font-size:var(--kdev-text-sm);color:var(--kdev-color-text-subtle);font-weight:500;margin-left:var(--kdev-space-1)}.kdev-ticket__remaining{margin:var(--kdev-space-2) 0 0;font-size:var(--kdev-text-xs);font-weight:600;color:var(--kdev-color-text-subtle);text-transform:uppercase;letter-spacing:.06em}.kdev-ticket__action{display:flex;align-items:center;gap:var(--kdev-space-3)}.kdev-ticket__qty{width:72px!important;text-align:center;font-variant-numeric:tabular-nums}.kdev-ticket__sold-out,.kdev-ticket__not-on-sale{padding:6px 12px;border-radius:var(--kdev-radius-pill);background:var(--kdev-color-surface-mute);color:var(--kdev-color-text-muted);font-size:var(--kdev-text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.05em}.kdev-ticket__sold-out{background:var(--kdev-color-danger-soft);color:var(--kdev-color-danger)}.kdev-event-card,.kdev-elementor-card,.kdev-block-card,.kdev-shortcode-card{background:var(--kdev-color-surface);border:1px solid var(--kdev-color-border);border-radius:var(--kdev-radius);overflow:hidden;transition:transform var(--kdev-duration) var(--kdev-ease),box-shadow var(--kdev-duration) var(--kdev-ease),border-color var(--kdev-duration) var(--kdev-ease);display:flex;flex-direction:column}.kdev-event-card:hover,.kdev-elementor-card:hover,.kdev-block-card:hover,.kdev-shortcode-card:hover{transform:translateY(-3px);box-shadow:var(--kdev-shadow-lg);border-color:#fff0}.kdev-event-card__link,.kdev-elementor-card a,.kdev-block-card a,.kdev-shortcode-card a{display:flex;flex-direction:column;height:100%;color:inherit;text-decoration:none}.kdev-event-card__thumb,.kdev-elementor-card__thumb,.kdev-block-card__thumb,.kdev-shortcode-card__thumb{position:relative;overflow:hidden;background:var(--kdev-color-surface-mute);aspect-ratio:16 / 10}.kdev-event-card__thumb img,.kdev-elementor-card__thumb img,.kdev-block-card__thumb img,.kdev-shortcode-card__thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 400ms var(--kdev-ease)}.kdev-event-card:hover .kdev-event-card__thumb img,.kdev-elementor-card:hover .kdev-elementor-card__thumb img,.kdev-block-card:hover .kdev-block-card__thumb img,.kdev-shortcode-card:hover .kdev-shortcode-card__thumb img{transform:scale(1.04)}.kdev-event-card__title,.kdev-elementor-card__title,.kdev-block-card__title,.kdev-shortcode-card__title{margin:var(--kdev-space-4) var(--kdev-space-5) var(--kdev-space-2);font-size:var(--kdev-text-lg);font-weight:600;line-height:1.35;color:var(--kdev-color-text);letter-spacing:-.005em}.kdev-event-card__when,.kdev-elementor-card__date,.kdev-block-card__date,.kdev-shortcode-card__date{margin:0 var(--kdev-space-5) var(--kdev-space-3);font-size:var(--kdev-text-sm);font-weight:500;color:var(--kdev-color-brand-strong);display:inline-flex;align-items:center;gap:var(--kdev-space-2)}.kdev-event-card__excerpt,.kdev-elementor-card__excerpt{margin:0 var(--kdev-space-5) var(--kdev-space-5);color:var(--kdev-color-text-muted);font-size:var(--kdev-text-sm);line-height:1.55;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.kdev-archive{max-width:var(--kdev-width-wide);margin:var(--kdev-space-8) auto;padding:0 var(--kdev-space-4);color:var(--kdev-color-text);font-family:var(--kdev-font-sans)}.kdev-archive__header{margin-bottom:var(--kdev-space-8);padding-bottom:var(--kdev-space-5);border-bottom:1px solid var(--kdev-color-border)}.kdev-archive__header h1{margin:0;font-size:var(--kdev-text-3xl);font-weight:700;letter-spacing:-.015em}.kdev-archive__empty{padding:var(--kdev-space-12);background:var(--kdev-color-surface-alt);border:1px dashed var(--kdev-color-border-strong);border-radius:var(--kdev-radius);color:var(--kdev-color-text-muted);text-align:center;font-size:var(--kdev-text-base)}.kdev-archive__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--kdev-space-6);margin-bottom:var(--kdev-space-8)}.kdev-archive .page-numbers{display:inline-flex;min-width:36px;height:36px;padding:0 10px;align-items:center;justify-content:center;border:1px solid var(--kdev-color-border);border-radius:var(--kdev-radius-sm);background:var(--kdev-color-surface);color:var(--kdev-color-text);text-decoration:none;font-weight:500;margin:0 2px;transition:all var(--kdev-duration-fast) var(--kdev-ease)}.kdev-archive .page-numbers:hover,.kdev-archive .page-numbers.current{background:var(--kdev-color-brand);color:var(--kdev-color-brand-contrast);border-color:var(--kdev-color-brand)}.kdev-elementor-listing,.kdev-block-listing,.kdev-shortcode-listing{display:grid;gap:var(--kdev-space-6)}.kdev-cols-1{grid-template-columns:1fr}.kdev-cols-2{grid-template-columns:repeat(2,1fr)}.kdev-cols-3{grid-template-columns:repeat(3,1fr)}.kdev-cols-4{grid-template-columns:repeat(4,1fr)}@media (max-width:900px){.kdev-cols-4{grid-template-columns:repeat(3,1fr)}}@media (max-width:760px){.kdev-cols-3,.kdev-cols-4{grid-template-columns:repeat(2,1fr)}}@media (max-width:500px){.kdev-cols-2,.kdev-cols-3,.kdev-cols-4{grid-template-columns:1fr}}.kdev-scan-result{max-width:520px;margin:var(--kdev-space-16) auto;padding:var(--kdev-space-10);border-radius:var(--kdev-radius-lg);text-align:center;background:var(--kdev-color-surface);border:1px solid var(--kdev-color-border);box-shadow:var(--kdev-shadow);font-family:var(--kdev-font-sans)}.kdev-scan-result h1{margin:0 0 var(--kdev-space-2);font-size:var(--kdev-text-3xl);font-weight:700;letter-spacing:-.015em}.kdev-scan-result.is-ok{background:linear-gradient(180deg,var(--kdev-color-success-soft) 0%,var(--kdev-color-surface) 80%);border-color:var(--kdev-color-success)}.kdev-scan-result.is-ok h1{color:var(--kdev-color-success)}.kdev-scan-result.is-error{background:linear-gradient(180deg,var(--kdev-color-danger-soft) 0%,var(--kdev-color-surface) 80%);border-color:var(--kdev-color-danger)}.kdev-scan-result.is-error h1{color:var(--kdev-color-danger)}.kdev-scan-result__message{margin:var(--kdev-space-4) 0 var(--kdev-space-6);font-size:var(--kdev-text-lg);color:var(--kdev-color-text-muted)}.kdev-scan-result__attendee{padding:var(--kdev-space-5);background:var(--kdev-color-surface-alt);border:1px solid var(--kdev-color-border);border-radius:var(--kdev-radius);text-align:left}.kdev-scan-result__attendee p{margin:var(--kdev-space-1) 0;font-size:var(--kdev-text-sm)}.kdev-scanner-form{display:flex;gap:var(--kdev-space-3);margin:var(--kdev-space-6) 0}.kdev-scanner-form input[type="text"]{flex:1}.kdev-scanner-result{padding:var(--kdev-space-4) var(--kdev-space-5);border-radius:var(--kdev-radius);min-height:1.5em;font-weight:500;transition:background-color var(--kdev-duration) var(--kdev-ease)}.kdev-scanner-result.is-ok{background:var(--kdev-color-success-soft);color:var(--kdev-color-success);border:1px solid var(--kdev-color-success)}.kdev-scanner-result.is-error{background:var(--kdev-color-danger-soft);color:var(--kdev-color-danger);border:1px solid var(--kdev-color-danger)}.kdev-store-events{margin-top:var(--kdev-space-10);padding-top:var(--kdev-space-8);border-top:1px solid var(--kdev-color-border)}.kdev-store-events>h2{margin:0 0 var(--kdev-space-5);font-size:var(--kdev-text-xl);font-weight:700}.kdev-store-events__list{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--kdev-space-4);padding:0;list-style:none;margin:0}.kdev-store-events__list li{background:var(--kdev-color-surface);border:1px solid var(--kdev-color-border);border-radius:var(--kdev-radius);overflow:hidden;transition:border-color var(--kdev-duration) var(--kdev-ease),box-shadow var(--kdev-duration) var(--kdev-ease)}.kdev-store-events__list li:hover{border-color:var(--kdev-color-brand);box-shadow:var(--kdev-shadow-sm)}.kdev-store-events__list li a{display:block;padding:var(--kdev-space-4);color:inherit;text-decoration:none}.kdev-store-events__list img{display:block;width:100%;aspect-ratio:16 / 10;object-fit:cover;border-radius:var(--kdev-radius-sm);margin-bottom:var(--kdev-space-3)}.kdev-store-events__title{display:block;font-weight:600;color:var(--kdev-color-text);font-size:var(--kdev-text-base);line-height:1.35}.kdev-store-events__when{display:block;font-size:var(--kdev-text-sm);color:var(--kdev-color-brand-strong);margin-top:var(--kdev-space-1);font-weight:500}.kdev-archive__grid.is-loading{opacity:.5;pointer-events:none;transition:opacity var(--kdev-duration) var(--kdev-ease)}.kdev-qr-fallback{display:inline-block;padding:var(--kdev-space-3) var(--kdev-space-4);border-radius:var(--kdev-radius-sm);background:var(--kdev-color-surface-mute);color:var(--kdev-color-text-muted);font-family:var(--kdev-font-mono);font-size:var(--kdev-text-xs);word-break:break-all;max-width:100%}.kdev-add-to-calendar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--kdev-space-2);margin:var(--kdev-space-4) 0 0}.kdev-add-to-calendar__label{font-size:var(--kdev-text-sm);font-weight:600;color:var(--kdev-color-text-subtle);margin-right:var(--kdev-space-1)}.kdev-add-to-calendar .kdev-btn{padding:6px 14px;min-height:36px;font-size:var(--kdev-text-xs)}.kdev-calendar{max-width:var(--kdev-width-wide);margin:var(--kdev-space-6) auto;font-family:var(--kdev-font-sans);color:var(--kdev-color-text)}.kdev-calendar__head{display:flex;align-items:center;justify-content:space-between;gap:var(--kdev-space-4);margin-bottom:var(--kdev-space-4)}.kdev-calendar__title{margin:0;font-size:var(--kdev-text-2xl);font-weight:700;text-align:center;flex:1}.kdev-calendar__nav{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--kdev-radius-sm);border:1px solid var(--kdev-color-border);background:var(--kdev-color-surface);color:var(--kdev-color-text);text-decoration:none;font-size:var(--kdev-text-lg);transition:all var(--kdev-duration-fast) var(--kdev-ease)}.kdev-calendar__nav:hover{background:var(--kdev-color-brand);color:var(--kdev-color-brand-contrast);border-color:var(--kdev-color-brand)}.kdev-calendar__grid{width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed;border:1px solid var(--kdev-color-border);border-radius:var(--kdev-radius);overflow:hidden}.kdev-calendar__grid th{padding:var(--kdev-space-3);background:var(--kdev-color-surface-alt);font-size:var(--kdev-text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--kdev-color-text-subtle);text-align:center;border-bottom:1px solid var(--kdev-color-border)}.kdev-cal-cell{height:110px;vertical-align:top;padding:var(--kdev-space-2);border-right:1px solid var(--kdev-color-border);border-bottom:1px solid var(--kdev-color-border);background:var(--kdev-color-surface)}.kdev-cal-cell.is-outside{background:var(--kdev-color-surface-alt)}.kdev-cal-cell.is-outside .kdev-cal-cell__day{color:var(--kdev-color-text-faint)}.kdev-cal-cell.is-today{background:var(--kdev-color-brand-soft)}.kdev-cal-cell.is-today .kdev-cal-cell__day{background:var(--kdev-color-brand);color:var(--kdev-color-brand-contrast);border-radius:var(--kdev-radius-pill)}.kdev-cal-cell__day{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;font-size:var(--kdev-text-sm);font-weight:600;margin-bottom:var(--kdev-space-1)}.kdev-cal-cell__events{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.kdev-cal-cell__events a{display:block;padding:2px 6px;border-radius:4px;background:var(--kdev-color-brand);color:var(--kdev-color-brand-contrast);font-size:var(--kdev-text-xs);text-decoration:none;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;transition:opacity var(--kdev-duration-fast) var(--kdev-ease)}.kdev-cal-cell__events a:hover{opacity:.85}.kdev-cal-cell__time{font-weight:700;margin-right:4px}@media (max-width:640px){.kdev-cal-cell{height:auto;min-height:64px;padding:4px}.kdev-cal-cell__name{display:none}.kdev-cal-cell__events a{text-align:center;padding:2px}.kdev-cal-cell__time{margin:0}}.kdev-scanner-app{max-width:480px;margin:0 auto;font-family:var(--kdev-font-sans)}.kdev-scanner-gate{max-width:480px;margin:var(--kdev-space-8) auto;padding:var(--kdev-space-6);text-align:center;background:var(--kdev-color-surface-alt);border:1px solid var(--kdev-color-border);border-radius:var(--kdev-radius);color:var(--kdev-color-text-muted)}.kdev-scanner-app__viewport{position:relative;aspect-ratio:1 / 1;background:#0b1220;border-radius:var(--kdev-radius-lg);overflow:hidden;box-shadow:var(--kdev-shadow)}.kdev-scanner-app__video{width:100%;height:100%;object-fit:cover;display:block;opacity:.35;transition:opacity var(--kdev-duration) var(--kdev-ease)}.kdev-scanner-app.is-scanning .kdev-scanner-app__video{opacity:1}.kdev-scanner-app__reticle{position:absolute;inset:18%;border:3px solid rgb(255 255 255 / .85);border-radius:var(--kdev-radius);box-shadow:0 0 0 100vmax rgb(0 0 0 / .35);pointer-events:none;opacity:0;transition:opacity var(--kdev-duration) var(--kdev-ease)}.kdev-scanner-app.is-scanning .kdev-scanner-app__reticle{opacity:1}.kdev-scanner-app__controls{display:flex;align-items:center;gap:var(--kdev-space-3);margin:var(--kdev-space-4) 0}.kdev-scanner-app__queued{margin-left:auto;font-size:var(--kdev-text-sm);font-weight:600;color:var(--kdev-color-warning)}.kdev-seat-picker{margin:var(--kdev-space-10) auto 0;max-width:var(--kdev-width-wide);padding:var(--kdev-space-8);background:var(--kdev-color-surface);border:1px solid var(--kdev-color-border);border-radius:var(--kdev-radius-lg)}.kdev-seat-picker__title{margin:0 0 var(--kdev-space-6);font-size:var(--kdev-text-2xl);font-weight:700}.kdev-seat-picker__stage{text-align:center}.kdev-seat-picker__screen{margin:0 auto var(--kdev-space-6);max-width:70%;padding:var(--kdev-space-2);background:linear-gradient(180deg,var(--kdev-color-surface-mute),transparent);border-top:3px solid var(--kdev-color-border-strong);border-radius:50% 50% 0 0 / 100% 100% 0 0;font-size:var(--kdev-text-xs);font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--kdev-color-text-subtle)}.kdev-seat-picker__grid{display:inline-grid;gap:6px;margin:0 auto;max-width:100%;overflow-x:auto;padding:var(--kdev-space-2)}.kdev-seat-picker .kdev-seat,.kdev-seat-picker__legend .kdev-seat{width:30px;height:30px;min-width:30px;border:1px solid var(--kdev-color-border-strong);border-radius:6px 6px 3px 3px;background:var(--kdev-color-surface);font-size:10px;color:var(--kdev-color-text-muted);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0;transition:transform 100ms var(--kdev-ease),background-color var(--kdev-duration-fast) var(--kdev-ease)}.kdev-seat-picker .kdev-seat.is-available{background:#d1fae5;border-color:#6ee7b7;color:#065f46}.kdev-seat-picker .kdev-seat.is-available:hover{transform:translateY(-2px)}.kdev-seat-picker .kdev-seat.is-selected{background:var(--kdev-color-brand);border-color:var(--kdev-color-brand-strong);color:#fff;transform:translateY(-2px)}.kdev-seat-picker .kdev-seat.is-booked{background:#e5e7eb;border-color:#cbd5e1;color:#9ca3af;cursor:not-allowed}.kdev-seat-picker .kdev-seat.is-blocked{background:repeating-linear-gradient(45deg,#f3f4f6,#f3f4f6 4px,#e5e7eb 4px,#e5e7eb 8px);border-color:#e5e7eb;cursor:not-allowed;color:#fff0}.kdev-seat-picker .kdev-seat.is-aisle{background:#fff0;border:none;cursor:default;pointer-events:none}.kdev-seat-picker__legend{display:flex;flex-wrap:wrap;gap:var(--kdev-space-4);justify-content:center;margin:var(--kdev-space-6) 0;font-size:var(--kdev-text-sm);color:var(--kdev-color-text-muted)}.kdev-seat-picker__legend span{display:inline-flex;align-items:center;gap:var(--kdev-space-2)}.kdev-seat-picker__legend .kdev-seat{width:20px;height:20px;min-width:20px;cursor:default}.kdev-seat-picker__footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--kdev-space-4);padding-top:var(--kdev-space-5);border-top:1px solid var(--kdev-color-border)}.kdev-seat-picker__summary{margin:0;font-weight:600;color:var(--kdev-color-text)}.kdev-seat-picker__message{margin:var(--kdev-space-3) 0 0;font-size:var(--kdev-text-sm);color:var(--kdev-color-text-muted);min-height:1.2em}@media (max-width:640px){.kdev-event{margin:var(--kdev-space-4) auto}.kdev-event__banner{aspect-ratio:16 / 9;border-radius:var(--kdev-radius)}.kdev-event__title{font-size:var(--kdev-text-3xl);margin-top:var(--kdev-space-5)}.kdev-event__meta{padding:var(--kdev-space-4)}.kdev-event__tickets{padding:var(--kdev-space-5)}.kdev-ticket-list__item{grid-template-columns:1fr;gap:var(--kdev-space-4)}.kdev-ticket__action{justify-content:space-between;width:100%}.kdev-ticket__buy{flex:1;justify-content:center}}[dir="rtl"] .kdev-event__meta dt,[dir="rtl"] .kdev-event__meta dd{text-align:right}[dir="rtl"] .kdev-event-card__when::before,[dir="rtl"] .kdev-elementor-card__date::before,[dir="rtl"] .kdev-block-card__date::before{transform:scaleX(-1)}[dir="rtl"] .kdev-ticket__currency{margin-left:0;margin-right:var(--kdev-space-1)}[dir="rtl"] .kdev-ticket__price-original{margin-right:0;margin-left:var(--kdev-space-1)}