:root {
  color-scheme: dark;
  --bg: #080a0d;
  --bg-soft: #0d1015;
  --panel: rgba(18, 22, 29, .92);
  --panel-strong: #151a22;
  --panel-hover: #1a202a;
  --text: #f4f6f8;
  --muted: #929ca9;
  --line: rgba(255,255,255,.09);
  --line-strong: rgba(255,255,255,.16);
  --red: #ef3138;
  --red-strong: #ff4047;
  --red-soft: rgba(239,49,56,.13);
  --green: #39d98a;
  --amber: #ffbf47;
  --shadow: 0 24px 80px rgba(0,0,0,.38);
  --radius: 22px;
  --radius-sm: 14px;
  --sidebar: 264px;
}

:root[data-theme="light"] {
  color-scheme: light;
  --bg: #f3f5f7;
  --bg-soft: #e9edf1;
  --panel: rgba(255,255,255,.94);
  --panel-strong: #ffffff;
  --panel-hover: #f5f7f9;
  --text: #15181d;
  --muted: #68727e;
  --line: rgba(20,26,35,.10);
  --line-strong: rgba(20,26,35,.16);
  --red-soft: rgba(239,49,56,.09);
  --shadow: 0 24px 70px rgba(48,58,72,.12);
}

* { box-sizing: border-box; }
html { min-height: 100%; background: var(--bg); }
body {
  margin: 0;
  min-height: 100vh;
  background:
    radial-gradient(circle at 80% -5%, rgba(239,49,56,.12), transparent 32rem),
    radial-gradient(circle at -10% 85%, rgba(107,125,255,.08), transparent 28rem),
    var(--bg);
  color: var(--text);
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  -webkit-font-smoothing: antialiased;
}
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
a { color: inherit; }

.brand { display:flex; align-items:center; gap:12px; font-weight:800; letter-spacing:.08em; }
.brand-mark {
  width: 38px; height: 38px; border-radius: 12px; position: relative;
  display:grid; place-items:center; background: linear-gradient(145deg, #ff464c, #b80e19);
  box-shadow: 0 10px 28px rgba(239,49,56,.28);
}
.brand-mark::before { content:""; width:20px; height:11px; border:2px solid white; border-radius:70% 15% 70% 15%; transform:rotate(-12deg); opacity:.95; }
.brand-mark::after { content:""; position:absolute; width:5px; height:5px; border-radius:50%; background:white; }
.brand small { display:block; margin-top:2px; font-weight:600; letter-spacing:.04em; color:var(--muted); font-size:10px; }

.auth-shell { min-height:100vh; display:grid; grid-template-columns: minmax(380px, .9fr) minmax(520px, 1.1fr); }
.auth-panel { display:flex; flex-direction:column; padding:48px clamp(28px, 6vw, 88px); border-right:1px solid var(--line); background:rgba(8,10,13,.68); backdrop-filter:blur(16px); }
:root[data-theme="light"] .auth-panel { background:rgba(255,255,255,.78); }
.auth-top { display:flex; align-items:center; justify-content:space-between; }
.auth-main { width:min(100%, 480px); margin:auto 0; padding:54px 0; }
.eyebrow { color:var(--red-strong); font-size:12px; font-weight:800; letter-spacing:.16em; text-transform:uppercase; }
h1 { font-size:clamp(38px,5vw,68px); line-height:.98; margin:14px 0 18px; letter-spacing:-.045em; }
h2 { font-size:28px; letter-spacing:-.03em; margin:0; }
h3 { margin:0; font-size:17px; }
.lead { color:var(--muted); font-size:17px; line-height:1.65; max-width:50ch; }
.auth-form { display:grid; gap:15px; margin-top:34px; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.field { display:grid; gap:7px; }
.field label { font-size:12px; color:var(--muted); font-weight:700; letter-spacing:.02em; }
.field input, .field select, .field textarea {
  width:100%; color:var(--text); background:var(--panel-strong); border:1px solid var(--line);
  border-radius:13px; padding:13px 14px; outline:none; transition:.2s border,.2s box-shadow,.2s background;
}
.field input:focus, .field select:focus, .field textarea:focus { border-color:rgba(239,49,56,.7); box-shadow:0 0 0 4px var(--red-soft); }
.field textarea { resize:vertical; min-height:95px; }
.btn { border:1px solid var(--line); border-radius:13px; min-height:44px; padding:0 16px; background:var(--panel-strong); color:var(--text); font-weight:750; display:inline-flex; align-items:center; justify-content:center; gap:9px; transition:.18s ease; }
.btn:hover { transform:translateY(-1px); border-color:var(--line-strong); background:var(--panel-hover); }
.btn-primary { background:linear-gradient(145deg,#f53a41,#d91f29); border-color:transparent; color:#fff; box-shadow:0 14px 28px rgba(239,49,56,.18); }
.btn-primary:hover { background:linear-gradient(145deg,#ff464d,#e9232d); }
.btn-ghost { background:transparent; }
.btn-danger-soft { color:#ff7479; background:var(--red-soft); border-color:rgba(239,49,56,.20); }
.btn-sm { min-height:36px; font-size:12px; padding:0 12px; border-radius:11px; }
.icon-btn { width:42px; height:42px; padding:0; border-radius:13px; }
.auth-switch { margin-top:16px; color:var(--muted); font-size:13px; }
.link-button { border:0; background:none; color:var(--red-strong); padding:0; font-weight:800; }
.auth-visual { padding:48px; position:relative; overflow:hidden; display:flex; align-items:center; justify-content:center; }
.visual-card { width:min(720px,90%); border:1px solid var(--line); border-radius:30px; padding:30px; background:linear-gradient(145deg, rgba(255,255,255,.06), rgba(255,255,255,.02)); box-shadow:var(--shadow); backdrop-filter:blur(16px); transform:rotate(-1deg); }
.visual-head { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:24px; }
.visual-kpi { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.mock-card { min-height:120px; padding:18px; border-radius:18px; background:var(--panel); border:1px solid var(--line); }
.mock-label { color:var(--muted); font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.08em; }
.mock-number { margin-top:10px; font-size:32px; font-weight:850; letter-spacing:-.04em; }
.mock-event { margin-top:15px; padding:16px; border-radius:17px; border:1px solid var(--line); background:var(--panel); display:grid; grid-template-columns:52px 1fr auto; gap:16px; align-items:center; }
.mock-date { width:52px;height:52px;border-radius:14px;background:var(--red-soft);display:grid;place-items:center;text-align:center;color:var(--red-strong);font-weight:850; }
.mock-date small { display:block; font-size:9px; letter-spacing:.08em; }
.status-pill { display:inline-flex; align-items:center; gap:7px; border-radius:999px; padding:7px 10px; border:1px solid var(--line); background:var(--panel); color:var(--muted); font-size:11px; font-weight:800; }
.status-dot { width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 0 4px rgba(57,217,138,.10); }

.app-shell { min-height:100vh; display:grid; grid-template-columns:var(--sidebar) 1fr; }
.sidebar { position:sticky; top:0; height:100vh; padding:24px 18px; border-right:1px solid var(--line); background:rgba(8,10,13,.78); backdrop-filter:blur(18px); display:flex; flex-direction:column; gap:28px; }
:root[data-theme="light"] .sidebar { background:rgba(255,255,255,.82); }
.side-nav { display:grid; gap:7px; }
.nav-item { border:0; background:transparent; color:var(--muted); min-height:45px; border-radius:12px; padding:0 13px; display:flex; align-items:center; gap:12px; text-align:left; font-weight:700; }
.nav-item.active { background:var(--red-soft); color:var(--text); }
.nav-item .nav-icon { width:22px; text-align:center; opacity:.8; }
.side-foot { margin-top:auto; display:grid; gap:12px; }
.user-chip { display:flex; align-items:center; gap:10px; padding:11px; border:1px solid var(--line); border-radius:14px; background:var(--panel); min-width:0; }
.avatar { width:34px; height:34px; border-radius:11px; background:linear-gradient(145deg,#fd545a,#b7121b); color:#fff; display:grid; place-items:center; font-weight:850; flex:0 0 auto; }
.user-meta { min-width:0; }
.user-meta strong, .user-meta span { display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.user-meta strong { font-size:12px; }
.user-meta span { color:var(--muted); font-size:10px; margin-top:2px; }
.main { min-width:0; }
.topbar { min-height:80px; display:flex; align-items:center; justify-content:space-between; gap:18px; padding:0 clamp(22px,4vw,54px); border-bottom:1px solid var(--line); position:sticky; top:0; z-index:10; background:rgba(8,10,13,.7); backdrop-filter:blur(18px); }
:root[data-theme="light"] .topbar { background:rgba(243,245,247,.75); }
.top-title small { display:block; color:var(--muted); font-size:11px; margin-top:4px; }
.top-actions { display:flex; align-items:center; gap:9px; }
.content { padding:clamp(24px,4vw,54px); max-width:1500px; margin:0 auto; }
.hero-row { display:flex; align-items:end; justify-content:space-between; gap:24px; margin-bottom:30px; }
.hero-row h1 { font-size:clamp(34px,4.2vw,58px); margin:7px 0 0; }
.hero-actions { display:flex; gap:10px; flex-wrap:wrap; }
.metrics { display:grid; grid-template-columns:repeat(4,1fr); gap:15px; margin-bottom:26px; }
.metric { background:var(--panel); border:1px solid var(--line); border-radius:18px; padding:19px; box-shadow:0 14px 35px rgba(0,0,0,.06); }
.metric-head { display:flex; justify-content:space-between; align-items:center; color:var(--muted); font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.07em; }
.metric-value { margin-top:13px; font-size:29px; font-weight:850; letter-spacing:-.04em; }
.metric-note { margin-top:5px; color:var(--muted); font-size:11px; }
.section { margin-top:28px; }
.section-head { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-bottom:13px; }
.section-head p { margin:5px 0 0; color:var(--muted); font-size:12px; }
.org-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.org-card { border:1px solid var(--line); border-radius:20px; background:var(--panel); overflow:hidden; box-shadow:0 16px 42px rgba(0,0,0,.07); }
.org-card-head { padding:20px; display:flex; justify-content:space-between; gap:16px; align-items:flex-start; border-bottom:1px solid var(--line); }
.org-title { display:flex; gap:13px; min-width:0; }
.org-logo { width:46px; height:46px; border-radius:14px; background:var(--red-soft); color:var(--red-strong); display:grid; place-items:center; font-size:17px; font-weight:900; flex:0 0 auto; }
.org-title h3 { margin:2px 0 5px; }
.org-title p { margin:0; color:var(--muted); font-size:11px; }
.team-list { padding:10px; display:grid; gap:8px; }
.team-row { display:flex; align-items:center; gap:13px; padding:13px; border:1px solid transparent; border-radius:14px; transition:.18s; }
.team-row:hover { border-color:var(--line); background:var(--panel-hover); }
.team-symbol { width:38px; height:38px; border-radius:12px; background:var(--bg-soft); display:grid; place-items:center; }
.team-data { flex:1; min-width:0; }
.team-data strong { display:block; font-size:13px; }
.team-data span { display:block; color:var(--muted); font-size:10px; margin-top:4px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.team-actions { display:flex; gap:7px; }
.empty { padding:42px 28px; border:1px dashed var(--line-strong); border-radius:20px; text-align:center; background:linear-gradient(145deg,var(--panel),transparent); }
.empty-icon { width:60px;height:60px;border-radius:18px;background:var(--red-soft);color:var(--red-strong);display:grid;place-items:center;margin:0 auto 16px;font-size:24px; }
.empty h3 { font-size:20px; }
.empty p { max-width:48ch; margin:9px auto 20px; color:var(--muted); line-height:1.6; font-size:13px; }
.integration-row { display:grid; grid-template-columns:repeat(2,1fr); gap:14px; }
.integration-card { border:1px solid var(--line); border-radius:18px; background:var(--panel); padding:18px; display:flex; align-items:center; justify-content:space-between; gap:15px; }
.integration-name { display:flex; align-items:center; gap:12px; }
.integration-icon { width:40px;height:40px;border-radius:12px;background:var(--bg-soft);display:grid;place-items:center;font-weight:900; }
.integration-name p { margin:4px 0 0; color:var(--muted); font-size:10px; }

.modal-backdrop { position:fixed; inset:0; z-index:100; background:rgba(0,0,0,.65); display:grid; place-items:center; padding:20px; backdrop-filter:blur(8px); }
.modal { width:min(720px,100%); max-height:min(850px,calc(100vh - 40px)); overflow:auto; background:var(--panel-strong); border:1px solid var(--line-strong); border-radius:24px; box-shadow:var(--shadow); }
.modal-head { padding:22px 24px; border-bottom:1px solid var(--line); display:flex; align-items:flex-start; justify-content:space-between; gap:20px; position:sticky; top:0; z-index:2; background:var(--panel-strong); }
.modal-head p { margin:6px 0 0; color:var(--muted); font-size:11px; }
.modal-body { padding:24px; }
.modal-foot { padding:17px 24px; border-top:1px solid var(--line); display:flex; justify-content:flex-end; gap:10px; position:sticky; bottom:0; background:var(--panel-strong); }
.wizard-steps { display:grid; grid-template-columns:repeat(4,1fr); gap:7px; margin-bottom:22px; }
.wizard-step { height:4px; background:var(--line); border-radius:999px; overflow:hidden; }
.wizard-step.active { background:var(--red); }
.callout { padding:14px 15px; border-radius:13px; border:1px solid var(--line); background:var(--bg-soft); color:var(--muted); font-size:12px; line-height:1.55; }
.callout strong { color:var(--text); }
.token-box { margin-top:14px; display:flex; gap:8px; align-items:center; padding:12px; border:1px dashed rgba(239,49,56,.45); border-radius:13px; background:var(--red-soft); }
.token-box code { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; color:var(--text); font-size:11px; }
.loader { width:18px; height:18px; border:2px solid rgba(255,255,255,.2); border-top-color:#fff; border-radius:50%; animation:spin .7s linear infinite; }
@keyframes spin { to { transform:rotate(360deg); } }
.toast-root { position:fixed; right:20px; bottom:20px; z-index:200; display:grid; gap:10px; width:min(390px,calc(100vw - 40px)); }
.toast { padding:14px 15px; border-radius:14px; border:1px solid var(--line-strong); background:var(--panel-strong); box-shadow:var(--shadow); display:flex; gap:11px; align-items:flex-start; animation:toastin .2s ease; }
.toast.error { border-color:rgba(239,49,56,.35); }
.toast strong { font-size:12px; display:block; }
.toast span { font-size:11px; color:var(--muted); line-height:1.45; display:block; margin-top:3px; }
@keyframes toastin { from { opacity:0; transform:translateY(8px); } }
.mobile-menu { display:none; }

@media (max-width: 1050px) {
  .auth-shell { grid-template-columns:1fr; }
  .auth-visual { display:none; }
  .auth-panel { border-right:0; }
  .metrics { grid-template-columns:repeat(2,1fr); }
  .org-grid { grid-template-columns:1fr; }
}
@media (max-width: 820px) {
  :root { --sidebar: 0px; }
  .app-shell { display:block; }
  .sidebar { display:none; }
  .topbar { min-height:68px; padding:0 18px; }
  .topbar .brand { display:flex; }
  .mobile-menu { display:inline-flex; }
  .content { padding:24px 18px 42px; }
  .hero-row { align-items:flex-start; flex-direction:column; }
  .hero-row h1 { font-size:40px; }
  .integration-row { grid-template-columns:1fr; }
}
@media (max-width: 560px) {
  .auth-panel { padding:25px 20px; }
  .auth-main { padding:38px 0; }
  h1 { font-size:42px; }
  .form-grid { grid-template-columns:1fr; }
  .metrics { grid-template-columns:1fr 1fr; gap:10px; }
  .metric { padding:15px; }
  .metric-value { font-size:24px; }
  .org-card-head { flex-direction:column; }
  .team-row { align-items:flex-start; }
  .team-actions { flex-direction:column; }
  .modal-backdrop { padding:8px; }
  .modal { max-height:calc(100vh - 16px); border-radius:19px; }
  .modal-head,.modal-body,.modal-foot { padding-left:17px; padding-right:17px; }
}

/* v0.1.3 – Team Detail & Member Management */
.team-row-clickable { cursor:pointer; }
.back-link { border:0; background:transparent; color:var(--muted); font-weight:750; padding:0; margin-bottom:18px; display:inline-flex; align-items:center; gap:8px; }
.back-link:hover { color:var(--text); }
.team-hero { border:1px solid var(--line); border-radius:26px; background:linear-gradient(135deg,var(--panel),rgba(239,49,56,.06)); padding:clamp(24px,4vw,40px); display:flex; align-items:center; justify-content:space-between; gap:28px; margin-bottom:18px; overflow:hidden; position:relative; }
.team-hero::after { content:""; position:absolute; right:-100px; top:-130px; width:320px; height:320px; border-radius:50%; background:radial-gradient(circle,rgba(239,49,56,.16),transparent 65%); pointer-events:none; }
.team-hero h1 { font-size:clamp(42px,5vw,70px); margin:10px 0 10px; }
.team-hero p { color:var(--muted); margin:0; font-size:14px; }
.hero-chips { display:flex; gap:8px; flex-wrap:wrap; margin-top:18px; }
.team-hero-mark { width:112px; height:112px; border-radius:28px; background:linear-gradient(145deg,#fa444b,#a90d16); display:grid; place-items:center; color:white; font-size:28px; font-weight:900; letter-spacing:-.04em; box-shadow:0 20px 50px rgba(239,49,56,.22); flex:0 0 auto; z-index:1; }
.team-metrics { margin-top:0; }
.member-table { border:1px solid var(--line); border-radius:20px; background:var(--panel); overflow:hidden; }
.member-table-head, .member-row { display:grid; grid-template-columns:64px minmax(210px,1.35fr) minmax(160px,.9fr) minmax(190px,1fr) 115px auto; gap:14px; align-items:center; }
.member-table-head { padding:12px 18px; border-bottom:1px solid var(--line); color:var(--muted); font-size:10px; font-weight:850; text-transform:uppercase; letter-spacing:.07em; background:var(--bg-soft); }
.member-row { padding:15px 18px; border-bottom:1px solid var(--line); }
.member-row:last-child { border-bottom:0; }
.member-row:hover { background:var(--panel-hover); }
.jersey-box { width:42px; height:42px; border-radius:12px; background:var(--bg-soft); display:grid; place-items:center; font-size:15px; font-weight:900; }
.member-person { display:flex; align-items:center; gap:11px; min-width:0; }
.member-person > div:last-child { min-width:0; }
.member-person strong, .member-person span, .member-role strong, .member-role span { display:block; }
.member-person strong { font-size:13px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.member-person span, .member-role span { color:var(--muted); font-size:10px; margin-top:3px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.member-role strong { font-size:12px; }
.avatar-soft { background:var(--red-soft); color:var(--red-strong); }
.member-compliance { display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.mini-badge { display:inline-flex; align-items:center; border:1px solid var(--line); background:var(--bg-soft); color:var(--muted); border-radius:999px; padding:6px 8px; font-size:9px; font-weight:800; }
.mini-badge.ok { color:var(--green); border-color:rgba(57,217,138,.18); background:rgba(57,217,138,.06); }
.status-pill.warn .status-dot { background:var(--amber); box-shadow:0 0 0 4px rgba(255,191,71,.10); }
.management-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.management-card { border:1px solid var(--line); border-radius:20px; background:var(--panel); padding:18px; min-width:0; }
.card-title { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; padding-bottom:13px; border-bottom:1px solid var(--line); }
.card-title h3 { margin-top:5px; }
.counter { min-width:34px; height:34px; border-radius:11px; background:var(--red-soft); color:var(--red-strong); display:grid; place-items:center; font-weight:900; }
.pending-row { display:grid; grid-template-columns:1fr auto auto; gap:12px; align-items:center; padding:13px 0; border-bottom:1px solid var(--line); }
.pending-row:last-child { border-bottom:0; }
.pending-row strong, .pending-row span { display:block; }
.pending-row strong { font-size:12px; }
.pending-row > div > span { color:var(--muted); font-size:10px; margin-top:4px; }
.request-card { padding:14px 0; border-bottom:1px solid var(--line); }
.request-card:last-child { border-bottom:0; }
.request-card p { color:var(--muted); font-size:11px; line-height:1.55; margin:10px 0; }
.request-actions { display:flex; justify-content:flex-end; gap:8px; }
.sub-empty { color:var(--muted); padding:22px 4px; font-size:12px; text-align:center; }
.roadmap-strip { display:grid; grid-template-columns:repeat(4,1fr); border:1px solid var(--line); border-radius:18px; overflow:hidden; background:var(--panel); }
.roadmap-strip > div { padding:18px; border-right:1px solid var(--line); }
.roadmap-strip > div:last-child { border-right:0; }
.roadmap-strip strong, .roadmap-strip span { display:block; }
.roadmap-strip strong { font-size:12px; }
.roadmap-strip span { color:var(--muted); font-size:10px; margin-top:5px; }

@media (max-width: 1250px) {
  .member-table-head { display:none; }
  .member-row { grid-template-columns:50px 1.2fr 1fr auto; }
  .member-compliance { grid-column:2 / 4; }
  .member-status { grid-column:4; grid-row:1; }
  .member-row > div:last-child { grid-column:4; grid-row:2; }
}
@media (max-width: 900px) {
  .management-grid { grid-template-columns:1fr; }
  .roadmap-strip { grid-template-columns:1fr 1fr; }
  .roadmap-strip > div:nth-child(2) { border-right:0; }
  .roadmap-strip > div:nth-child(-n+2) { border-bottom:1px solid var(--line); }
}
@media (max-width: 650px) {
  .team-hero { align-items:flex-start; }
  .team-hero-mark { width:72px; height:72px; border-radius:20px; font-size:20px; }
  .member-row { grid-template-columns:44px 1fr auto; gap:10px; }
  .member-role { grid-column:2 / 4; }
  .member-compliance { grid-column:2 / 4; }
  .member-status { grid-column:2; grid-row:auto; }
  .member-row > div:last-child { grid-column:3; grid-row:auto; }
  .pending-row { grid-template-columns:1fr auto; }
  .pending-row > button { grid-column:1 / 3; }
  .roadmap-strip { grid-template-columns:1fr; }
  .roadmap-strip > div { border-right:0 !important; border-bottom:1px solid var(--line); }
  .roadmap-strip > div:last-child { border-bottom:0; }
}


/* v0.1.3.2 – Teams navigation hotfix */
.team-directory-card { cursor: pointer; transition: transform .16s ease, border-color .16s ease, background .16s ease; }
.team-directory-card:hover { transform: translateY(-2px); border-color: rgba(255,59,69,.45); background: var(--bg-soft); }
.team-directory-foot { display:flex; align-items:center; justify-content:space-between; gap:16px; padding-top:16px; margin-top:16px; border-top:1px solid var(--border); color:var(--muted); font-size:13px; }
.team-directory-foot strong { color:var(--text); }

/* v0.1.3.5 – multi-role membership & team identity */
.role-tags { display:flex; flex-wrap:wrap; gap:6px; }
.role-tag { display:inline-flex; align-items:center; border:1px solid var(--line); background:var(--bg-soft); border-radius:999px; padding:5px 8px; font-size:9px; font-weight:850; color:var(--text); }
.role-picker { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-top:8px; }
.role-choice { display:flex; gap:10px; align-items:flex-start; padding:12px; border:1px solid var(--line); border-radius:14px; background:var(--bg-soft); cursor:pointer; }
.role-choice:hover { border-color:rgba(239,49,56,.35); }
.role-choice input { margin-top:3px; accent-color:var(--red-strong); }
.role-choice span, .role-choice strong, .role-choice small { display:block; }
.role-choice strong { font-size:12px; }
.role-choice small { margin-top:3px; color:var(--muted); font-size:9px; }
@media (max-width:650px) { .role-picker { grid-template-columns:1fr; } }

/* v0.2.1 – Calendar Management */
.calendar-toolbar { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:16px; }
.filter-tabs { display:flex; gap:8px; flex-wrap:wrap; }
.filter-tab { border:1px solid var(--line); background:var(--panel); color:var(--muted); min-height:38px; padding:0 14px; border-radius:999px; font-weight:800; font-size:11px; }
.filter-tab.active { color:#fff; background:linear-gradient(145deg,#f53a41,#d91f29); border-color:transparent; }
.event-list { display:grid; gap:12px; }
.event-card { display:grid; grid-template-columns:62px minmax(0,1fr) auto; gap:16px; align-items:center; padding:16px; border:1px solid var(--line); background:var(--panel); border-radius:18px; transition:.16s ease; cursor:pointer; }
.event-card:hover { transform:translateY(-1px); border-color:var(--line-strong); background:var(--panel-hover); }
.event-card.cancelled { opacity:.62; }
.event-date { width:58px; height:58px; border-radius:15px; background:var(--red-soft); display:grid; align-content:center; justify-items:center; color:var(--red-strong); }
.event-date small { font-size:9px; font-weight:900; letter-spacing:.09em; }
.event-date strong { font-size:21px; line-height:1.05; }
.event-main { min-width:0; }
.event-main h3 { font-size:15px; margin:5px 0; }
.event-main p { margin:0; color:var(--muted); font-size:11px; line-height:1.5; }
.event-meta { display:flex; align-items:center; gap:8px; color:var(--muted); font-size:10px; font-weight:700; flex-wrap:wrap; }
.event-type { display:inline-flex; padding:5px 8px; border-radius:999px; background:var(--bg-soft); border:1px solid var(--line); text-transform:uppercase; font-size:9px; letter-spacing:.06em; }
.type-match { color:var(--red-strong); border-color:rgba(239,49,56,.22); background:var(--red-soft); }
.type-training { color:var(--green); border-color:rgba(57,217,138,.18); background:rgba(57,217,138,.06); }
.event-counts { display:flex; gap:6px; flex-wrap:wrap; margin-top:9px; }
.event-side { display:grid; justify-items:end; gap:8px; }
.attendance-actions { display:flex; gap:7px; flex-wrap:wrap; }
.attendance-active.yes { color:var(--green); border-color:rgba(57,217,138,.35); background:rgba(57,217,138,.08); }
.attendance-active.maybe { color:var(--amber); border-color:rgba(255,191,71,.35); background:rgba(255,191,71,.08); }
.attendance-active.no { color:#ff7479; border-color:rgba(239,49,56,.35); background:var(--red-soft); }
.calendar-empty { min-height:220px; }
.modal-wide { width:min(860px,100%); }
.event-detail-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.event-detail-grid > div { padding:14px; border:1px solid var(--line); border-radius:14px; background:var(--bg-soft); }
.event-detail-grid span, .event-detail-grid strong { display:block; }
.event-detail-grid span { color:var(--muted); font-size:10px; margin-bottom:5px; }
.event-detail-grid strong { font-size:12px; }
.attendance-panel { margin-top:20px; padding:16px; border:1px solid var(--line); border-radius:16px; background:var(--bg-soft); }
.attendance-roster { border:1px solid var(--line); border-radius:16px; overflow:hidden; }
.attendance-person { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:12px 14px; border-bottom:1px solid var(--line); }
.attendance-person:last-child { border-bottom:0; }
.attendance-state { display:inline-flex; align-items:center; border:1px solid var(--line); border-radius:999px; padding:6px 9px; font-size:9px; font-weight:850; }
.state-yes { color:var(--green); border-color:rgba(57,217,138,.2); }
.state-maybe { color:var(--amber); border-color:rgba(255,191,71,.2); }
.state-no { color:#ff7479; border-color:rgba(239,49,56,.2); }
.state-open { color:var(--muted); }
@media (max-width:760px) {
  .event-card { grid-template-columns:54px 1fr; align-items:start; }
  .event-side { grid-column:2; justify-items:start; }
  .event-detail-grid { grid-template-columns:1fr; }
  .calendar-toolbar { align-items:flex-start; flex-direction:column; }
}

/* v0.2.1 Calendar management */
.callout-danger { border-color:rgba(239,49,56,.28); background:var(--red-soft); }
.modal-foot-split { justify-content:space-between; align-items:center; flex-wrap:wrap; }
.modal-foot-left,.modal-foot-right { display:flex; gap:10px; flex-wrap:wrap; }
@media (max-width:680px) {
  .modal-foot-split,.modal-foot-left,.modal-foot-right { width:100%; }
  .modal-foot-left .btn,.modal-foot-right .btn { flex:1 1 auto; }
}

/* v0.2.1.1 – Smart Series & Deadlines */
.is-hidden { display:none !important; }
.smart-rule-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:14px; }
.series-planner { margin-top:18px; padding:16px; border:1px solid var(--line); background:var(--bg-soft); border-radius:15px; }
.series-planner-head { display:flex; align-items:center; justify-content:space-between; gap:18px; }
.series-planner-head > div { display:grid; gap:4px; }
.series-planner-head strong { color:var(--text); font-size:14px; }
.series-planner-head span { color:var(--muted); font-size:12px; }
.series-planner-head select { min-width:180px; }
.series-options { margin-top:16px; display:grid; gap:16px; }
.weekday-picker { display:flex; flex-wrap:wrap; gap:8px; }
.weekday-picker label { cursor:pointer; }
.weekday-picker input { position:absolute; opacity:0; pointer-events:none; }
.weekday-picker span { display:grid; place-items:center; min-width:42px; height:38px; padding:0 10px; border-radius:11px; border:1px solid var(--line); background:var(--panel); color:var(--muted); font-weight:800; }
.weekday-picker input:checked + span { border-color:rgba(239,49,56,.55); background:var(--red-soft); color:var(--red); }
.field small { color:var(--muted); font-size:11px; line-height:1.45; }
.series-scope { padding:14px; border:1px solid var(--line); border-radius:13px; background:var(--bg-soft); }
@media (max-width:720px) {
  .smart-rule-grid { grid-template-columns:1fr; }
  .series-planner-head { align-items:stretch; flex-direction:column; }
  .series-planner-head select { width:100%; min-width:0; }
}

/* v0.2.1.3 – Practical Time UX */
.time-planner { margin-top:16px; padding:16px; border:1px solid var(--line); background:var(--bg-soft); border-radius:15px; }
.time-planner-head { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:14px; }
.time-planner-head > div { display:grid; gap:4px; }
.time-planner-head strong { color:var(--text); font-size:14px; }
.time-planner-head span { color:var(--muted); font-size:12px; }
.practical-time-grid { display:grid; grid-template-columns:1.15fr .85fr 1fr; gap:14px; }
.practical-exact-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; padding:10px; border:1px dashed var(--line); border-radius:13px; background:var(--panel); }
.weekday-schedules { min-height:0; }
.weekday-schedule-list { display:grid; gap:10px; padding:13px; border:1px solid var(--line); border-radius:13px; background:var(--panel); }
.weekday-schedule-title { display:grid; gap:3px; }
.weekday-schedule-title strong { color:var(--text); font-size:12px; }
.weekday-schedule-title span { color:var(--muted); font-size:10px; }
.weekday-schedule-row { display:grid; grid-template-columns:minmax(110px,.8fr) 1fr 1fr; align-items:end; gap:10px; padding-top:10px; border-top:1px solid var(--line); }
.weekday-schedule-row > strong { align-self:center; font-size:12px; }
.weekday-schedule-row label { display:grid; gap:5px; }
.weekday-schedule-row label > span { color:var(--muted); font-size:10px; font-weight:750; }
@media (max-width:720px) {
  .practical-time-grid { grid-template-columns:1fr; }
  .practical-exact-grid { grid-template-columns:1fr; }
  .weekday-schedule-row { grid-template-columns:1fr 1fr; }
  .weekday-schedule-row > strong { grid-column:1 / -1; }
}

/* v0.2.2 – Calendar Views & Export */
.calendar-mode-tabs { display:flex; align-items:flex-end; gap:4px; margin:0 0 18px; border-bottom:1px solid var(--line); }
.calendar-mode-tab { appearance:none; border:0; border-bottom:3px solid transparent; background:transparent; color:var(--muted); padding:12px 18px 10px; font-size:12px; font-weight:850; cursor:pointer; }
.calendar-mode-tab:hover { color:var(--text); }
.calendar-mode-tab.active { color:var(--text); border-bottom-color:var(--red-strong); }
.calendar-board { border:1px solid var(--line); background:var(--panel); border-radius:20px; overflow:hidden; }
.calendar-board-toolbar { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:14px; padding:14px 16px; border-bottom:1px solid var(--line); background:var(--panel-strong); }
.calendar-board-toolbar h2 { margin:0; font-size:16px; text-transform:capitalize; text-align:center; }
.calendar-nav { display:flex; gap:7px; align-items:center; }
.calendar-range-toggle { display:flex; justify-content:flex-end; gap:5px; }
.calendar-range-toggle .btn.active { background:var(--text); color:var(--bg); border-color:var(--text); }
.calendar-weekdays, .print-weekdays { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); }
.calendar-weekdays strong { padding:9px 8px; text-align:center; color:var(--muted); font-size:10px; border-bottom:1px solid var(--line); }
.calendar-month-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); }
.calendar-day { min-height:122px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); padding:8px; background:var(--panel); min-width:0; }
.calendar-day:nth-child(7n) { border-right:0; }
.calendar-day.outside { opacity:.38; background:var(--bg-soft); }
.calendar-day.today { box-shadow:inset 0 0 0 2px rgba(239,49,56,.55); background:linear-gradient(180deg,var(--red-soft),var(--panel) 48%); }
.calendar-day-number { min-height:24px; display:flex; align-items:center; justify-content:space-between; gap:5px; margin-bottom:5px; }
.calendar-day-number span { display:grid; place-items:center; width:24px; height:24px; border-radius:8px; font-size:11px; font-weight:900; }
.calendar-day.today .calendar-day-number span { color:#fff; background:var(--red-strong); }
.calendar-day-number small { color:var(--red-strong); font-size:8px; font-weight:900; text-transform:uppercase; }
.calendar-day-events { display:grid; gap:4px; min-width:0; }
.calendar-event-chip { appearance:none; width:100%; border:1px solid var(--line); border-left:3px solid var(--muted); background:var(--bg-soft); color:var(--text); border-radius:8px; padding:6px 7px; text-align:left; font-size:9px; font-weight:750; cursor:pointer; min-width:0; overflow:hidden; }
.calendar-event-chip span { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.calendar-event-chip:hover { border-color:var(--line-strong); transform:translateY(-1px); }
.calendar-event-chip.chip-training { border-left-color:var(--green); }
.calendar-event-chip.chip-match { border-left-color:var(--red-strong); background:var(--red-soft); }
.calendar-event-chip.chip-meeting, .calendar-event-chip.chip-tournament, .calendar-event-chip.chip-other { border-left-color:var(--amber); }
.calendar-event-chip.cancelled { opacity:.5; text-decoration:line-through; }
.calendar-more { color:var(--muted); font-size:8px; padding:2px 4px; font-weight:800; }
.calendar-week-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); min-height:360px; }
.calendar-week-day { border-right:1px solid var(--line); min-width:0; background:var(--panel); }
.calendar-week-day:last-child { border-right:0; }
.calendar-week-day.today { background:linear-gradient(180deg,var(--red-soft),var(--panel) 32%); }
.calendar-week-day-head { padding:12px 10px; border-bottom:1px solid var(--line); display:grid; gap:3px; text-align:center; }
.calendar-week-day-head strong { font-size:10px; text-transform:uppercase; color:var(--muted); }
.calendar-week-day-head span { font-size:13px; font-weight:900; }
.calendar-week-events { display:grid; align-content:start; gap:8px; padding:10px; }
.calendar-no-events { color:var(--muted); font-size:9px; text-align:center; padding:20px 0; }
.archive-panel { border:1px solid var(--line); background:var(--panel); border-radius:18px; overflow:hidden; }
.archive-head { display:flex; justify-content:space-between; align-items:center; padding:15px 17px; border-bottom:1px solid var(--line); }
.archive-head > div { display:grid; gap:3px; }
.archive-head strong { font-size:12px; }
.archive-head span { color:var(--muted); font-size:10px; }
.archive-table { display:grid; }
.archive-row { appearance:none; width:100%; display:grid; grid-template-columns:minmax(220px,1.4fr) 180px minmax(160px,1fr) 110px; gap:14px; align-items:center; min-height:58px; padding:10px 16px; border:0; border-bottom:1px solid var(--line); background:transparent; color:var(--text); text-align:left; cursor:pointer; }
.archive-row:not(.archive-labels):hover { background:var(--panel-hover); }
.archive-row span:first-child { display:grid; gap:2px; }
.archive-row strong { font-size:11px; }
.archive-row small, .archive-row span { color:var(--muted); font-size:10px; }
.archive-row.archive-labels { min-height:36px; background:var(--bg-soft); cursor:default; font-weight:900; }
.archive-row.archive-labels span { color:var(--text); font-size:9px; text-transform:uppercase; letter-spacing:.04em; }
.archive-more-wrap { display:flex; justify-content:center; padding:14px; }
.print-custom-range { margin-top:16px; padding:14px; border:1px dashed var(--line-strong); border-radius:14px; background:var(--bg-soft); }
.print-options { display:grid; gap:10px; margin-top:18px; }
.print-options > strong { font-size:11px; }
.print-checks { display:flex; gap:10px; flex-wrap:wrap; }
.print-checks label { display:flex; align-items:center; gap:7px; border:1px solid var(--line); border-radius:11px; padding:9px 11px; background:var(--bg-soft); color:var(--text); font-size:10px; font-weight:750; }
.print-checks input { accent-color:var(--red-strong); }
.print-sheet { display:none; }

@media (max-width: 1050px) {
  .calendar-day { min-height:105px; padding:6px; }
  .calendar-event-chip { padding:5px; font-size:8px; }
  .archive-row { grid-template-columns:minmax(190px,1.3fr) 145px minmax(130px,1fr) 90px; }
}
@media (max-width: 760px) {
  .calendar-mode-tabs { overflow:auto; }
  .calendar-board-toolbar { grid-template-columns:1fr; justify-items:stretch; }
  .calendar-board-toolbar h2 { grid-row:1; }
  .calendar-nav,.calendar-range-toggle { justify-content:center; }
  .calendar-month { overflow:auto; }
  .calendar-weekdays,.calendar-month-grid { min-width:760px; }
  .calendar-week-grid { grid-template-columns:1fr; }
  .calendar-week-day { border-right:0; border-bottom:1px solid var(--line); }
  .calendar-week-day-head { text-align:left; display:flex; align-items:center; justify-content:space-between; }
  .archive-table { overflow:auto; }
  .archive-row { min-width:720px; }
}

@media print {
  /* v0.2.2.1 – Print Layout Hotfix: kompakt genug für A4 quer, auch bei 6 Kalenderwochen. */
  @page { size:A4 landscape; margin:5mm; }
  html, body, #app { min-height:0 !important; height:auto !important; overflow:visible !important; background:#fff !important; }
  body { margin:0 !important; color:#111 !important; }
  #app > .app-shell, .modal-backdrop, #toast-root { display:none !important; }
  .print-sheet { display:block !important; width:100% !important; max-width:none !important; min-height:0 !important; height:auto !important; overflow:visible !important; color:#111; font-family:Arial,Helvetica,sans-serif; }
  .print-header { display:flex; justify-content:space-between; align-items:flex-end; border-bottom:1.5px solid #111; padding-bottom:2.5mm; margin-bottom:2.5mm; break-inside:avoid; page-break-inside:avoid; }
  .print-header span { font-size:6.5pt; font-weight:800; letter-spacing:.08em; }
  .print-header h1 { margin:.6mm 0 0; font-size:15pt; line-height:1; }
  .print-header > div:last-child { font-size:7pt; }

  .print-sheet-calendar .print-month-section { break-inside:avoid-page; page-break-inside:avoid; overflow:hidden; }
  .print-month-section { break-after:page; page-break-after:always; }
  .print-month-section:last-of-type { break-after:auto; page-break-after:auto; }
  .print-month-section h2 { margin:0 0 1.5mm; text-transform:capitalize; font-size:10pt; line-height:1.05; }
  .print-weekdays { border-top:1px solid #555; border-left:1px solid #555; }
  .print-weekdays b { border-right:1px solid #555; padding:1mm; text-align:center; font-size:7pt; line-height:1; background:#eee; }
  .print-month-grid { display:grid; grid-template-columns:repeat(7,1fr); grid-auto-rows:21mm; border-top:1px solid #777; border-left:1px solid #777; }
  .print-day { min-height:0; height:21mm; max-height:21mm; padding:.8mm 1mm; border-right:1px solid #777; border-bottom:1px solid #777; font-size:6pt; overflow:hidden; }
  .print-day.outside { color:#aaa; background:#f5f5f5; }
  .print-day > b { display:block; margin-bottom:.4mm; font-size:7pt; line-height:1; }
  .print-event { border-left:1.5px solid #555; padding-left:.8mm; margin:.45mm 0; line-height:1.05; overflow:hidden; }
  .print-event strong,.print-event span { display:block; font-size:5.3pt; line-height:1.08; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .print-event span { color:#444; }
  .print-training { border-left-color:#178a52; }
  .print-match { border-left-color:#d51f2d; }

  .print-sheet-list .print-header { margin-bottom:2mm; }
  .print-list { display:grid; border-top:1px solid #777; }
  .print-list-row { display:grid; grid-template-columns:39mm 1fr; gap:4mm; padding:2mm 1mm; border-bottom:1px solid #bbb; break-inside:avoid; page-break-inside:avoid; }
  .print-list-row > div { display:grid; gap:.35mm; align-content:start; }
  .print-list-row strong { font-size:8pt; line-height:1.05; }
  .print-list-row span { color:#333; font-size:7pt; line-height:1.1; }
  .print-sheet footer { margin-top:2.5mm; border-top:1px solid #aaa; padding-top:1.5mm; color:#555; font-size:6.5pt; text-align:right; break-inside:avoid; page-break-inside:avoid; }
  .print-sheet-calendar footer { position:fixed; left:0; right:0; bottom:0; margin:0; padding-top:1mm; background:#fff; }
}

/* v0.2.3 – Calendar Subscription / ICS */
.subscription-status { display:flex; align-items:flex-start; gap:12px; padding:15px 16px; border:1px solid var(--line); border-radius:16px; background:var(--bg-soft); margin-bottom:18px; }
.subscription-status > div { display:grid; grid-template-columns:auto 1fr; column-gap:9px; align-items:center; width:100%; }
.subscription-status .status-dot { grid-row:1 / span 2; }
.subscription-status strong { font-size:14px; }
.subscription-status p { grid-column:2; color:var(--muted); margin:4px 0 0; font-size:11px; line-height:1.55; }
.subscription-status.active { border-color:rgba(50,210,128,.32); background:rgba(50,210,128,.06); }
.subscription-link-block { margin-top:18px; display:grid; gap:8px; }
.subscription-link-block > label { font-size:11px; color:var(--muted); font-weight:850; }
.subscription-link-block > small { color:var(--muted); font-size:10px; line-height:1.45; }
.subscription-url { display:grid; grid-template-columns:1fr auto; gap:8px; }
.subscription-url input { min-width:0; font-family:ui-monospace,SFMono-Regular,Consolas,monospace; font-size:10px; }
.provider-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:18px; }
.provider-grid > div { border:1px solid var(--line); border-radius:14px; background:var(--panel-strong); padding:14px; display:grid; gap:8px; align-content:start; }
.provider-grid strong { font-size:12px; }
.provider-grid span { color:var(--muted); font-size:10px; line-height:1.55; }
.provider-grid .btn { justify-self:start; }
.subscription-danger { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-top:18px; padding-top:16px; border-top:1px solid var(--line); }
.subscription-danger span { color:var(--muted); font-size:9px; flex-basis:100%; }
@media (max-width:760px) {
  .subscription-url { grid-template-columns:1fr; }
  .provider-grid { grid-template-columns:1fr; }
}

/* v0.3.0 – SSVB / SAMS Integration */
.team-hero-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:14px; }
.source-badge { display:inline-flex; align-items:center; border:1px solid rgba(50,210,128,.28); background:rgba(50,210,128,.08); color:var(--green); border-radius:999px; padding:3px 7px; font-size:8px; font-weight:900; letter-spacing:.04em; text-transform:uppercase; }
.sams-modal .modal-body { display:grid; gap:16px; }
.sams-status-card { display:flex; align-items:center; justify-content:space-between; gap:16px; border:1px solid var(--line); background:var(--bg-soft); border-radius:16px; padding:15px 16px; }
.sams-status-card > div { display:grid; grid-template-columns:auto 1fr; column-gap:9px; align-items:center; min-width:0; }
.sams-status-card .status-dot { grid-row:1 / span 2; }
.sams-status-card strong { font-size:13px; }
.sams-status-card p { grid-column:2; margin:3px 0 0; color:var(--muted); font-size:10px; overflow-wrap:anywhere; }
.sams-status-card.connected { border-color:rgba(50,210,128,.32); background:rgba(50,210,128,.06); }
.sams-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.sams-info-card { display:grid; gap:5px; border:1px solid var(--line); background:var(--panel-strong); border-radius:14px; padding:14px; }
.sams-info-card > span { color:var(--muted); font-size:9px; font-weight:850; text-transform:uppercase; letter-spacing:.05em; }
.sams-info-card strong { font-size:12px; }
.sams-info-card small { color:var(--muted); font-size:9px; overflow-wrap:anywhere; }
.sams-setup-block { border:1px solid var(--line); background:var(--panel); border-radius:16px; padding:16px; }
.sams-setup-block .section-head { margin-bottom:12px; }
.sams-inline-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:14px; }
.sams-mapping-summary { line-height:1.55; }
.sams-key-replace { border-top:1px solid var(--line); padding-top:14px; }
.sams-key-replace summary { cursor:pointer; color:var(--muted); font-size:10px; font-weight:800; }
.sams-key-replace form { display:grid; grid-template-columns:1fr auto; align-items:end; gap:10px; margin-top:12px; }
.sams-official-callout { border-color:rgba(50,210,128,.26); background:rgba(50,210,128,.055); }
.modal-foot-note { color:var(--muted); font-size:9px; line-height:1.4; margin-right:auto; max-width:65%; }
.sams-modal select[size] { min-height:120px; padding:4px; }
.sams-modal select[size] option { padding:7px 8px; border-radius:7px; }
@media (max-width:760px) {
  .sams-grid { grid-template-columns:1fr; }
  .sams-key-replace form { grid-template-columns:1fr; }
  .modal-foot-note { max-width:100%; width:100%; }
}

/* v0.4.0 – Matchday / Spieltag */
.modal-xwide{width:min(1180px,calc(100vw - 36px));max-width:1180px}
.matchday-entry{margin-top:16px;padding:16px 18px;border:1px solid rgba(255,55,67,.26);background:linear-gradient(135deg,rgba(255,55,67,.10),rgba(255,55,67,.03));border-radius:16px;display:flex;align-items:center;justify-content:space-between;gap:18px}
.matchday-entry div{display:flex;flex-direction:column;gap:4px}.matchday-entry span{color:var(--muted);font-size:13px}
.matchday-modal .modal-body{padding-top:18px}.matchday-hero{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.matchday-hero>div,.matchday-readonly-plan>div{background:var(--panel-strong);border:1px solid var(--line);border-radius:14px;padding:14px}.matchday-hero span,.matchday-readonly-plan span{display:block;color:var(--muted);font-size:12px;margin-bottom:5px}.matchday-hero strong{font-size:14px}.matchday-section{margin-top:24px}.matchday-section>.section-head{margin-bottom:12px}.matchday-plan-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.matchday-plan-grid .field-span{grid-column:1/-1}.matchday-form-actions{display:flex;justify-content:flex-end;margin-top:14px}.matchday-readonly-plan{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.matchday-readonly-plan .wide{grid-column:1/-1}.matchday-readonly-plan p{margin:0;white-space:pre-wrap;color:var(--text)}
.matchday-roster{border:1px solid var(--line);border-radius:16px;overflow:hidden}.matchday-member{display:grid;grid-template-columns:minmax(220px,1.2fr) minmax(150px,.7fr) auto;align-items:center;gap:14px;padding:12px 14px;border-bottom:1px solid var(--line)}.matchday-member:last-child{border-bottom:0}.matchday-member-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.matchday-nomination-actions{display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap}.btn-xs{padding:7px 9px;font-size:11px;min-height:30px}.matchday-nomination-actions .btn.active{border-color:rgba(54,211,153,.5);background:rgba(54,211,153,.14)}.matchday-nomination-actions .btn.active.danger{border-color:rgba(255,76,86,.5);background:rgba(255,76,86,.14)}
.matchday-task-form{display:grid;grid-template-columns:1.4fr 1fr auto;gap:12px;align-items:end;margin-bottom:12px}.matchday-task-list{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:16px;overflow:hidden}.matchday-task{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:12px 14px;border-bottom:1px solid var(--line)}.matchday-task:last-child{border-bottom:0}.matchday-task.done .matchday-task-main strong{text-decoration:line-through;color:var(--muted)}.matchday-task-check{width:34px;height:34px;border-radius:10px;border:1px solid var(--line);background:var(--panel-strong);color:var(--text);font-weight:900;cursor:pointer}.matchday-task-check:disabled{opacity:.45;cursor:not-allowed}.matchday-task.done .matchday-task-check{background:rgba(54,211,153,.12);border-color:rgba(54,211,153,.35);color:#36d399}.matchday-task-main{display:flex;flex-direction:column;gap:3px}.matchday-task-main span{color:var(--muted);font-size:12px}.empty.compact{padding:22px;border:0;border-radius:0}
@media(max-width:900px){.matchday-hero{grid-template-columns:repeat(2,minmax(0,1fr))}.matchday-member{grid-template-columns:1fr}.matchday-nomination-actions{justify-content:flex-start}.matchday-task-form{grid-template-columns:1fr}.matchday-task{grid-template-columns:auto 1fr}.matchday-task>.status-pill,.matchday-task>.btn{grid-column:2}.matchday-plan-grid,.matchday-readonly-plan{grid-template-columns:1fr}.matchday-plan-grid .field-span,.matchday-readonly-plan .wide{grid-column:auto}}
@media(max-width:620px){.matchday-hero{grid-template-columns:1fr}.matchday-entry{align-items:flex-start;flex-direction:column}.modal-xwide{width:calc(100vw - 18px)}}

/* v0.4.0.1 – Match Creation UX */
.match-create-panel{margin-top:16px;padding:16px;border:1px solid rgba(255,55,67,.26);background:linear-gradient(135deg,rgba(255,55,67,.08),rgba(255,55,67,.02));border-radius:16px}
.match-create-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px}.match-create-head div{display:flex;flex-direction:column;gap:4px}.match-create-head strong{font-size:15px}.match-create-head span{font-size:12px;color:var(--muted)}
.match-create-details{margin-top:14px;border-top:1px solid var(--line);padding-top:12px}.match-create-details summary{cursor:pointer;font-weight:800;font-size:13px;color:var(--text);user-select:none}.match-create-details[open] summary{margin-bottom:12px}
.match-create-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.match-create-detail-grid .field-span{grid-column:1/-1}.match-create-detail-grid textarea{min-height:78px}
@media(max-width:760px){.match-create-detail-grid{grid-template-columns:1fr}.match-create-detail-grid .field-span{grid-column:auto}}

/* v0.4.1 – Lineup & Venue Navigation */
.field-text-action{margin-top:7px;padding:0;border:0;background:transparent;color:var(--muted);font-size:12px;font-weight:800;cursor:pointer;text-align:left}.field-text-action:hover{color:var(--text)}
.maps-inline-link,.maps-route-link{display:inline-flex;align-items:center;gap:6px;margin-top:7px;color:var(--text);font-size:12px;font-weight:800;text-decoration:none}.maps-inline-link:hover,.maps-route-link:hover{text-decoration:underline}.matchday-location-card{display:flex;flex-direction:column;align-items:flex-start}.matchday-location-card .maps-route-link{color:var(--accent)}
.lineup-section>.section-head{align-items:flex-start}.lineup-board{display:grid;grid-template-columns:minmax(0,1fr) 220px;grid-template-areas:"net libero" "court libero";gap:12px}.lineup-net{grid-area:net;background:var(--panel-strong);border:1px solid var(--line);border-radius:14px 14px 6px 6px;padding:8px 12px;text-align:center;font-size:11px;font-weight:950;letter-spacing:.16em;color:var(--muted)}.lineup-court{grid-area:court;border:1px solid var(--line);border-radius:6px 6px 18px 18px;padding:14px;background:linear-gradient(180deg,rgba(255,55,67,.06),transparent)}.lineup-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.lineup-row+.lineup-row{margin-top:10px}.lineup-libero{grid-area:libero}.lineup-libero .lineup-slot{height:100%}.lineup-slot{border:1px solid var(--line);border-radius:14px;background:var(--panel);padding:12px;min-height:105px;display:flex;flex-direction:column;gap:8px}.lineup-slot-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.lineup-slot-head strong{display:grid;place-items:center;width:28px;height:28px;border-radius:9px;background:rgba(255,55,67,.12);color:var(--accent);font-size:14px}.lineup-slot-head span{color:var(--muted);font-size:11px;font-weight:800}.lineup-slot select{width:100%;min-width:0}.lineup-slot small,.lineup-person,.lineup-empty{color:var(--muted);font-size:11px}.lineup-person b{color:var(--text);font-size:12px}.lineup-bench{margin-top:12px;border:1px solid var(--line);border-radius:16px;overflow:hidden}.lineup-bench-head{padding:12px 14px;background:var(--panel-strong);border-bottom:1px solid var(--line)}.lineup-bench-head>div{display:flex;align-items:center;justify-content:space-between;gap:12px}.lineup-bench-head span{color:var(--muted);font-size:11px}.lineup-bench-list{display:flex;flex-direction:column}.lineup-bench-person{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 14px;border-bottom:1px solid var(--line)}.lineup-bench-person:last-child{border-bottom:0}.lineup-bench-person>div{display:flex;flex-direction:column;gap:2px}.lineup-bench-person span{color:var(--muted);font-size:11px}.lineup-bench-person .btn.active{border-color:rgba(54,211,153,.5);background:rgba(54,211,153,.14)}.lineup-unassigned{border-top:1px dashed var(--line);padding-top:10px}.lineup-unassigned>strong{display:block;padding:0 14px 8px;font-size:12px}.lineup-empty-state{border:1px solid var(--line)!important;border-radius:16px!important}
@media(max-width:900px){.lineup-board{grid-template-columns:1fr;grid-template-areas:"net" "court" "libero"}.lineup-libero .lineup-slot{height:auto}.lineup-row{grid-template-columns:1fr}.lineup-bench-person{align-items:flex-start;flex-direction:column}}

/* v0.4.2 – compact matchday lineup in event overview */
.event-lineup-preview{margin-top:14px;border:1px solid var(--line);border-radius:18px;background:var(--panel);overflow:hidden}
.event-lineup-preview-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 14px;border-bottom:1px solid var(--line);background:var(--panel-strong)}
.event-lineup-preview-head>div:first-child{display:flex;flex-direction:column;gap:2px}.event-lineup-preview-head strong{font-size:14px}.event-lineup-preview-head span{font-size:11px;color:var(--muted)}
.event-lineup-preview-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}
.event-lineup-preview-body{display:grid;grid-template-columns:minmax(0,1fr) 190px;gap:12px;padding:12px}
.event-mini-court-wrap{min-width:0}.event-mini-net{text-align:center;padding:5px 8px;border:1px solid var(--line);border-bottom:0;border-radius:12px 12px 0 0;background:var(--panel-strong);font-size:9px;font-weight:950;letter-spacing:.16em;color:var(--muted)}
.event-mini-court{padding:8px;border:1px solid var(--line);border-radius:0 0 14px 14px;background:linear-gradient(180deg,rgba(255,55,67,.07),rgba(255,55,67,.015))}
.event-mini-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.event-mini-row+.event-mini-row{margin-top:7px}
.event-lineup-cell{position:relative;min-width:0;min-height:64px;padding:8px 7px 7px;border:1px dashed var(--line);border-radius:11px;background:var(--panel);display:flex;flex-direction:column;justify-content:center;gap:1px;text-align:center}
.event-lineup-cell.occupied{border-style:solid;border-color:rgba(255,55,67,.32);background:rgba(255,55,67,.055)}
.event-lineup-number{position:absolute;top:5px;left:6px;display:grid;place-items:center;width:20px;height:20px;border-radius:7px;background:rgba(255,55,67,.12);color:var(--accent);font-size:10px;font-weight:950}
.event-lineup-cell strong{padding:9px 2px 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}.event-lineup-cell small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:9px}
.event-lineup-side{display:grid;grid-template-rows:1fr 1fr;gap:8px}.event-lineup-side-card{min-width:0;padding:10px 11px;border:1px solid var(--line);border-radius:12px;background:var(--panel-strong);display:flex;flex-direction:column;gap:3px;justify-content:center}.event-lineup-side-card span{color:var(--muted);font-size:10px;font-weight:800}.event-lineup-side-card strong{font-size:11px;line-height:1.35;overflow-wrap:anywhere}.event-lineup-side-card small{color:var(--muted);font-size:9px}
@media(max-width:760px){.event-lineup-preview-head{align-items:flex-start;flex-direction:column}.event-lineup-preview-actions{width:100%;justify-content:space-between;flex-wrap:wrap}.event-lineup-preview-body{grid-template-columns:1fr}.event-lineup-side{grid-template-columns:1fr 1fr;grid-template-rows:auto}.event-lineup-cell{min-height:58px}.event-lineup-cell strong{font-size:10px}}

/* v0.4.3 – Matchday Logistics & Reminders */
.matchday-group-create{margin-bottom:12px;border:1px solid var(--line);border-radius:16px;background:var(--panel-strong);padding:12px 14px}.matchday-group-create summary{cursor:pointer;font-size:12px;font-weight:900}.matchday-group-create[open] summary{margin-bottom:14px}.matchday-group-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.matchday-group-form .field-span{grid-column:1/-1}.matchday-group-form textarea{min-height:70px}.matchday-group-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.matchday-group-card{border:1px solid var(--line);border-radius:16px;background:var(--panel);padding:14px;display:flex;flex-direction:column;gap:11px}.matchday-group-card.carpool{border-color:rgba(54,211,153,.24);background:linear-gradient(135deg,rgba(54,211,153,.055),var(--panel))}.matchday-group-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.matchday-group-head>div{display:flex;flex-direction:column;align-items:flex-start;gap:6px}.matchday-group-head strong{font-size:14px}.matchday-group-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 12px;color:var(--muted);font-size:11px}.matchday-group-meta .wide{grid-column:1/-1}.matchday-group-meta b{color:var(--text)}.matchday-group-members{display:flex;flex-wrap:wrap;gap:6px}.matchday-group-member{display:inline-flex;align-items:center;padding:6px 8px;border:1px solid var(--line);border-radius:999px;background:var(--panel-strong);font-size:10px;font-weight:800}.muted-inline{color:var(--muted);font-size:11px}.matchday-group-actions{display:flex;align-items:center;gap:7px;justify-content:flex-end;margin-top:auto}
.matchday-task-tools{display:flex;flex-direction:column;gap:10px;margin-bottom:12px}.matchday-task-presets{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.matchday-task-presets>span{color:var(--muted);font-size:10px;font-weight:850;margin-right:2px}.matchday-task-tools .matchday-task-form{grid-template-columns:1.3fr 1fr 1fr;align-items:end}.matchday-task-tools .matchday-task-form .field-span{grid-column:1/3}.matchday-task-tools .matchday-task-form>button{grid-column:3;align-self:end}.matchday-task-main span{line-height:1.45}
.matchday-reminder-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.matchday-reminder-card{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:14px;padding:12px;background:var(--panel);cursor:pointer}.matchday-reminder-card.active{border-color:rgba(255,55,67,.32);background:rgba(255,55,67,.055)}.matchday-reminder-card input{accent-color:var(--accent)}.matchday-reminder-card>span{display:flex;flex-direction:column;gap:3px}.matchday-reminder-card strong{font-size:12px}.matchday-reminder-card small{color:var(--muted);font-size:10px}.matchday-reminder-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px}.matchday-reminder-foot>span{color:var(--muted);font-size:10px;line-height:1.45}
@media(max-width:900px){.matchday-group-list{grid-template-columns:1fr}.matchday-task-tools .matchday-task-form{grid-template-columns:1fr}.matchday-task-tools .matchday-task-form .field-span,.matchday-task-tools .matchday-task-form>button{grid-column:auto}.matchday-reminder-grid{grid-template-columns:1fr}.matchday-reminder-foot{align-items:flex-start;flex-direction:column}.matchday-group-form{grid-template-columns:1fr}.matchday-group-form .field-span{grid-column:auto}}
