/* Venue Manager design tokens. docs/ui-concept.md explains the choices.
   Fonts are self-hosted on purpose: no requests to Google (DSGVO). */
@font-face{font-family:"IBM Plex Sans";font-weight:400;font-display:swap;src:url(fonts/ibm-plex-sans-latin-ext-400-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"IBM Plex Sans";font-weight:400;font-display:swap;src:url(fonts/ibm-plex-sans-latin-400-normal.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:"IBM Plex Sans";font-weight:700;font-display:swap;src:url(fonts/ibm-plex-sans-latin-ext-700-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"IBM Plex Sans";font-weight:700;font-display:swap;src:url(fonts/ibm-plex-sans-latin-700-normal.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:"IBM Plex Sans Condensed";font-weight:700;font-display:swap;src:url(fonts/ibm-plex-sans-condensed-latin-ext-700-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"IBM Plex Sans Condensed";font-weight:700;font-display:swap;src:url(fonts/ibm-plex-sans-condensed-latin-700-normal.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{
  --font:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --display:"IBM Plex Sans Condensed","Arial Narrow",system-ui,sans-serif;
  /* Surfaces: tone instead of shadows */
  --s0:#E8E9EE;--s1:#F5F6F8;--s2:#FFFFFF;
  --ink:#16171D;--ink2:#555764;--line:#C9CBD5;--wash:rgba(22,23,29,.06);--wash2:rgba(22,23,29,.11);
  /* brand = primary buttons and selected states, accent = links and focus. Both follow the club colour:
     an install sets --brand-l/-d, --on-l/-d and --accent-l/-d, defaults apply otherwise.
     tally = "now" and nothing else; status colours and Gewerk tape stay fixed so they mean the same everywhere */
  --brand:var(--brand-l,var(--ink));--on-brand:var(--on-l,var(--s1));
  --brand-rail:var(--brand-d,#FFFFFF);--on-brand-rail:var(--on-d,#15151A);
  --accent:var(--accent-l,#2340D8);--tally:#D9182F;
  --ok:#0C7337;--ok-bg:#D4F0DE;--warn:#8A5208;--warn-bg:#FBE9C6;--bad:#B3172B;--bad-bg:#FADADD;--maybe:#3B3FA8;--maybe-bg:#DFE2FA;
  /* The rail stays dark in both themes */
  --rail:#1A1B23;--rail-ink:#C9CBD8;--rail-on:#FFFFFF;
  /* Gewerke as spike tape. Text on tape is always --tape-ink */
  --tape-ink:#15151A;--t-ton:#FFD21F;--t-licht:#FF8A2A;--t-video:#27C1EE;--t-buehne:#37D27C;--t-bar:#FF5CA8;--t-einlass:#B894FF;--t-booking:#E3E4E8;--t-buero:#BFCBD6;
  --r-ctl:4px;--r-panel:6px;
  --step:clamp(14.5px,.3vw + 13.4px,15px);
  color-scheme:light;
}
@media screen and (prefers-color-scheme:dark){:root:not([data-theme=light]){
  --s0:#14151B;--s1:#1C1E26;--s2:#262832;--ink:#ECEDF3;--ink2:#A4A7B5;--line:#3A3D4A;--wash:rgba(236,237,243,.07);--wash2:rgba(236,237,243,.13);
  --brand:var(--brand-d,var(--ink));--on-brand:var(--on-d,var(--s1));--accent:var(--accent-d,#96A8FF);--tally:#FF5763;--ok:#5AD68F;--ok-bg:#153B26;--warn:#F2B650;--warn-bg:#3E2E10;--bad:#FF7B85;--bad-bg:#45171D;--maybe:#AEB4FF;--maybe-bg:#272A58;--rail:#0E0F14;color-scheme:dark}}
@media screen{:root[data-theme=dark]{
  --s0:#14151B;--s1:#1C1E26;--s2:#262832;--ink:#ECEDF3;--ink2:#A4A7B5;--line:#3A3D4A;--wash:rgba(236,237,243,.07);--wash2:rgba(236,237,243,.13);
  --brand:var(--brand-d,var(--ink));--on-brand:var(--on-d,var(--s1));--accent:var(--accent-d,#96A8FF);--tally:#FF5763;--ok:#5AD68F;--ok-bg:#153B26;--warn:#F2B650;--warn-bg:#3E2E10;--bad:#FF7B85;--bad-bg:#45171D;--maybe:#AEB4FF;--maybe-bg:#272A58;--rail:#0E0F14;color-scheme:dark}}
/* Gewerk label: spike tape with a torn end */
.tape{display:inline-block;background:var(--t,var(--t-booking));color:var(--tape-ink);font:700 12px/1.5 var(--font);padding:1px 12px 1px 7px;white-space:nowrap;
  clip-path:polygon(0 0,100% 0,calc(100% - 4px) 25%,100% 50%,calc(100% - 4px) 75%,100% 100%,0 100%)}
.tape[data-g=Ton]{--t:var(--t-ton)}.tape[data-g=Licht]{--t:var(--t-licht)}.tape[data-g=Video]{--t:var(--t-video)}.tape[data-g=Bühne]{--t:var(--t-buehne)}
.tape[data-g=Bar]{--t:var(--t-bar)}.tape[data-g=Einlass]{--t:var(--t-einlass)}.tape[data-g=Booking]{--t:var(--t-booking)}.tape[data-g=Büro]{--t:var(--t-buero)}
/* Status puck: shape carries the meaning, colour only supports it */
.puck{display:inline-block;width:1em;height:1em;flex:none;vertical-align:-.12em}
