/* ‎tickets — חלון הראווה הציבורי. חוקי ברזל 7 ו-10.
 *
 * **אין כאן שום דומיין חיצוני, ואל תוסיף.** הפונטים מוגשים מהשרת שלנו
 * (‎static/fonts/), כי הקהל יושב מאחורי נטפרי, רימון וטכלוק — ובקשה
 * חוצה-דומיין שם נחסמת, והדף מגיע בלי הסגנון או מחכה לתפוגה.
 *
 * אין ‎@import, אין ‎url() לכתובת מרוחקת, ואין iframe בתבניות.
 * ‎apps/core/tests/test_no_external_resources.py סורק את הקובץ הזה **ואת
 * ה-HTML המורנדר של כל דף ציבורי**, ונכשל בקול.
 *
 * הפונטים מוגדרים ב-hebrew-admin.css ונטענים גם כאן? **לא.** כל דף
 * ציבורי טוען את הקובץ הזה בלבד, ולכן ה-@font-face משוכפל כאן במכוון —
 * עדיף שכפול של 8 הצהרות מאשר בקשה שנייה לקובץ CSS שלם.
 */

/* ── פונטים מקומיים ─────────────────────────────────────────────────── */

@font-face {
  font-family: 'Heebo';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("../fonts/heebo-hebrew.de80852899c5.woff2") format('woff2');
  unicode-range: U+0307-0308, U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F;
}
@font-face {
  font-family: 'Heebo';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("../fonts/heebo-latin.480b1d24f2aa.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Rubik';
  font-style: normal;
  font-weight: 400 500;
  font-display: swap;
  src: url("../fonts/rubik-hebrew.bda074a677ba.woff2") format('woff2');
  unicode-range: U+0307-0308, U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F;
}
@font-face {
  font-family: 'Rubik';
  font-style: normal;
  font-weight: 400 500;
  font-display: swap;
  src: url("../fonts/rubik-latin.b65daadded74.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ── בסיס ────────────────────────────────────────────────────────────── */

:root {
  --ink: #1f2937;
  --muted: #6b7280;
  --line: #e5e7eb;
  --bg: #f8f9fb;
  --card: #ffffff;
  --accent: #1d4ed8;
  --ok: #047857;
  --warn: #b45309;
  --err: #b91c1c;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  font-family: 'Rubik', system-ui, sans-serif;
  font-size: 17px;
  line-height: 1.7;
  color: var(--ink);
  background: var(--bg);
}

h1, h2, h3 { font-family: 'Heebo', system-ui, sans-serif; line-height: 1.3; }
h1 { font-size: 1.7rem; margin: 0 0 .3rem; }
h2 { font-size: 1.25rem; margin: 2rem 0 .5rem; }
h3 { font-size: 1.1rem; margin: 0 0 .2rem; }

a { color: var(--accent); }

main { max-width: 44rem; margin: 0 auto; padding: 1.5rem 1rem 3rem; }

/* מספרים, מחירים וטלפונים — LTR גם בתוך פסקה עברית. בלי זה
 * '050-123-4567' מוצג בסדר שנראה נכון ומועתק שגוי. */
.ltr { direction: ltr; unicode-bidi: isolate; display: inline-block; }
.num { font-variant-numeric: tabular-nums; }

.meta { color: var(--muted); margin: .2rem 0 1rem; }
.fine { color: var(--muted); font-size: .85rem; }
.empty { color: var(--muted); padding: 1.5rem 0; }
.prose { margin: 1rem 0; }

/* ── ראש ותחתית ──────────────────────────────────────────────────────── */

.top {
  display: flex; justify-content: space-between; align-items: center;
  gap: 1rem; flex-wrap: wrap;
  background: var(--card); border-bottom: 1px solid var(--line);
  padding: .9rem 1rem;
}
.brand { font-family: 'Heebo', sans-serif; font-weight: 700; font-size: 1.15rem; text-decoration: none; color: var(--ink); }

.seller {
  max-width: 44rem; margin: 0 auto; padding: 1.5rem 1rem 3rem;
  border-top: 1px solid var(--line); color: var(--muted); font-size: .9rem;
}
.seller p { margin: .25rem 0; }
.seller-line { color: var(--ink); }

/* ── הודעות ──────────────────────────────────────────────────────────── */

.messages { max-width: 44rem; margin: 1rem auto 0; padding: 0 1rem; list-style: none; }
.msg { padding: .7rem 1rem; border-radius: 8px; margin: .4rem 0; background: var(--card); border-inline-start: 4px solid var(--muted); }
.msg.error { border-color: var(--err); color: var(--err); }
.msg.success { border-color: var(--ok); color: var(--ok); }

/* ── כרטיסים ואירועים ────────────────────────────────────────────────── */

.cards { list-style: none; padding: 0; margin: 1rem 0; display: grid; gap: .8rem; }
.card { background: var(--card); border: 1px solid var(--line); border-radius: 10px; padding: 1rem 1.2rem; }
.card h2, .card h3 { margin-top: 0; }
.card .meta { margin-bottom: .3rem; }

.tag {
  font-size: .75rem; background: var(--bg); border: 1px solid var(--line);
  border-radius: 999px; padding: .1rem .5rem; color: var(--muted);
}

/* ── טבלת כרטיסים ────────────────────────────────────────────────────── */

.tickets { width: 100%; border-collapse: collapse; background: var(--card); border: 1px solid var(--line); border-radius: 10px; overflow: hidden; }
.tickets th, .tickets td { padding: .6rem .7rem; text-align: right; border-bottom: 1px solid var(--line); }
.tickets thead th { background: var(--bg); font-family: 'Heebo', sans-serif; font-size: .9rem; }
.tickets tfoot th { background: var(--bg); }
.tickets tr:last-child td { border-bottom: 0; }
.soldout { color: var(--err); }

/* ── טפסים ───────────────────────────────────────────────────────────── */

input[type=number] { width: 4.5rem; }
input, button {
  font: inherit; padding: .5rem .6rem;
  border: 1px solid var(--line); border-radius: 8px; background: #fff;
}
label { display: block; margin: .6rem 0; }
label input { display: block; width: 100%; max-width: 22rem; margin-top: .2rem; }

fieldset.who { border: 1px solid var(--line); border-radius: 10px; padding: 1rem 1.2rem; margin: 1.5rem 0; background: var(--card); }
legend { font-family: 'Heebo', sans-serif; padding: 0 .4rem; }

button {
  background: var(--accent); color: #fff; border: 0; cursor: pointer;
  padding: .7rem 1.4rem; font-weight: 500; border-radius: 8px;
}
button.secondary { background: var(--card); color: var(--err); border: 1px solid var(--line); }

.pay { display: flex; gap: .8rem; flex-wrap: wrap; margin-top: 1.5rem; }

/* ── סטטוס הזמנה ─────────────────────────────────────────────────────── */

.status { padding: .8rem 1rem; border-radius: 8px; background: var(--card); border-inline-start: 4px solid var(--muted); }
.status-paid { border-color: var(--ok); color: var(--ok); }
.status-pending { border-color: var(--warn); color: var(--warn); }

.mock-notice {
  background: #fff7ed; border: 1px dashed var(--warn); color: var(--warn);
  padding: .8rem 1rem; border-radius: 8px; margin: 1rem 0;
}
