/* Planbar – App-spezifische Oberfläche (Dojo-Schnitt). Nutzt nur Tokens --jk-*; kein Inline-Stil nötig. */
/* Bereichsfarben (nur Akzent/Oberkante) */
.jk .ac0{--ac:#12284A}.jk .ac1{--ac:#E88A2E}.jk .ac2{--ac:#A33949}.jk .ac3{--ac:#17703B}.jk .ac4{--ac:#1A5FB4}
.jk .ac5{--ac:#6B3FA0}.jk .ac6{--ac:#00838F}.jk .ac7{--ac:#8D6E00}.jk .ac8{--ac:#C2185B}.jk .ac9{--ac:#455A64}

/* ---------- Seitenleiste: Konto-Links ---------- */
.jk .top .navlink{display:flex;align-items:center;gap:14px;padding:10px 20px;color:var(--jk-chrome-muted);text-decoration:none;background:transparent;border:0;border-left:4px solid transparent;
  font-family:var(--jk-font-display);font-weight:700;text-transform:uppercase;letter-spacing:.06em;font-size:19px;cursor:pointer;width:100%;text-align:left}
.jk .top .navlink:hover{color:var(--jk-on-chrome)}
.jk .top .navlink .ic{width:22px;height:22px}
.jk .logoutform{margin:0}
@media (min-width:761px){
  .jk.collapsed .top .navlink{justify-content:center;padding:13px 0;border-left:0}
}
@media (max-width:760px){
  .jk .top .navlink{width:auto;padding:8px 10px;font-size:17px}
}

/* ---------- Seitenkopf, Reiter ---------- */
.jk .pagehead{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}
.jk .pagehead .btnrow{margin-top:0}
.jk .crumb{margin:0 0 4px;font-size:13px}
.jk .crumb a,.jk main a{color:var(--jk-info)}
.jk .tabs{display:flex;gap:4px;flex-wrap:wrap;border-bottom:2px solid var(--jk-border)}
.jk .tabs a{padding:8px 18px;text-decoration:none;color:var(--jk-muted);font-family:var(--jk-font-display);font-weight:700;font-size:19px;text-transform:uppercase;letter-spacing:.05em;border-bottom:4px solid transparent;margin-bottom:-2px}
.jk .tabs a:hover{color:var(--jk-text)}
.jk .tabs a.active{color:var(--jk-text);border-bottom-color:var(--jk-accent)}

/* ---------- Kacheln, Raster, Formulare ---------- */
.jk .tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
.jk .tile{background:var(--jk-surface-2);padding:16px;border-top:4px solid var(--jk-accent)}
.jk .tile h3{margin:6px 0 4px;font-size:22px}
.jk .tile p{margin:0 0 10px;font-size:14px;color:var(--jk-muted)}
.jk .ic.big{width:34px;height:34px;color:var(--jk-primary)}
.jk .cols2{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
.jk .cols3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:0 16px}
.jk .inlineform{display:flex;gap:10px;align-items:stretch}
.jk .inlineform input{flex:1;min-width:0}
.jk form.inline{display:inline-block;margin:0}
.jk .hint,.jk small.hint{display:block;font-size:12.5px;color:var(--jk-muted);margin-top:4px;font-weight:400}
.jk .req{color:var(--jk-err)}
.jk .small,.jk .btn.small{font-size:15px;padding:4px 12px;min-height:30px}
.jk input.narrow{width:90px !important;display:inline-block}
.jk .empty{color:var(--jk-muted);font-style:italic}
.jk .card.danger{border-top-color:var(--jk-err)}
.jk .btn.big{font-size:22px;padding:12px 32px;min-height:50px}
.jk .btn[disabled]{opacity:.6;cursor:wait}
.jk a.btn{display:inline-flex;align-items:center;gap:8px;text-decoration:none;color:var(--jk-on-primary)}
.jk a.btn.sec{color:var(--jk-text)}
.jk .btn .ic{width:18px;height:18px}
.jk .chk.small{font-size:12px}
.jk details{margin-top:14px}
.jk summary{cursor:pointer;font-weight:700;padding:6px 0}
.jk .meta{color:var(--jk-muted);font-size:14px;margin:6px 0}
.jk code{background:var(--jk-surface-2);padding:1px 5px}
.jk .scrolly{max-height:360px;overflow:auto}
.jk .hp{position:absolute !important;left:-9999px;width:1px !important;height:1px !important;opacity:0;pointer-events:none}
.jk .lead .badge{vertical-align:middle}

/* Teilen */
.jk .copyrow{display:flex;gap:10px}
.jk .copyrow input{flex:1;min-width:0}
.jk .sharegrid{display:grid;grid-template-columns:auto 1fr;gap:20px;align-items:center;margin:14px 0}
.jk .qr{background:#fff;padding:10px;display:inline-block;line-height:0;max-width:220px}
.jk .qr svg{width:100%;height:auto;max-width:200px;display:block}
.jk .whatsnew{border-top-color:var(--jk-accent)}
.jk .whatsnew ul{margin:0 0 12px;padding-left:20px}

/* ---------- Umfrage-Baukasten und Auswertung ---------- */
.jk .qnum{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:34px;padding:0 6px;background:var(--jk-chrome);color:var(--jk-on-chrome);margin-right:8px;font-size:22px}
.jk .branch{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:0 16px;border-left:4px solid var(--jk-accent);padding-left:14px;margin-bottom:10px}
.jk .bar{margin:8px 0}
.jk .barlabel{display:flex;justify-content:space-between;gap:12px;font-size:14px;margin-bottom:3px}
.jk .barbg{background:var(--jk-surface-2);height:16px}
.jk .barfill{background:var(--jk-primary);height:100%}
.jk .bignum{font-family:var(--jk-font-display);font-weight:700;font-size:44px;margin:4px 0;line-height:1.1}
.jk ul.plain{list-style:none;margin:0;padding:0}
.jk ul.plain li{padding:6px 0;border-bottom:1px solid var(--jk-border)}
.jk ul.quotes li{border-left:4px solid var(--jk-accent);padding:6px 12px;margin:6px 0;background:var(--jk-surface-2);border-bottom:0}
.jk .result .lead{margin-bottom:10px}

/* ---------- Öffentliche Seiten ---------- */
.jk.pub{display:block;background:var(--jk-bg);min-height:100vh}
.jk .pub-wrap{display:flex;flex-direction:column;min-height:100vh}
.jk .pub-top{display:flex;align-items:center;gap:12px;padding:12px 20px;background:var(--jk-chrome);color:var(--jk-on-chrome);border-bottom:4px solid var(--jk-accent)}
.jk .pub-org{font-family:var(--jk-font-display);font-weight:700;text-transform:uppercase;letter-spacing:.06em;font-size:22px}
.jk .pub-main{flex:1;width:100%;max-width:760px;margin:0 auto;padding:24px 16px 40px;display:grid;gap:18px;align-content:start}
.jk .pub-main.wide{max-width:1100px}
.jk .pub-main.narrow{max-width:520px;width:100%}
.jk .pub-foot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;padding:12px 20px;font-size:12.5px;color:var(--jk-muted);border-top:1px solid var(--jk-border)}
.jk .pub-foot a{color:var(--jk-muted)}
.jk.pub .login{max-width:none;width:100%}
.jk .card.hero h1{font-size:38px}
.jk .card.qpage{padding:22px}
.jk .qtitle{font-size:32px;margin:6px 0 8px}
.jk .card.thanks{text-align:center;padding:32px 18px;border-top-color:var(--jk-ok)}
.jk .card.finalcard{border-top-color:var(--jk-ok);background:var(--jk-ok-s)}
.jk .progress{height:8px;background:var(--jk-surface-2)}
.jk .progfill{height:100%;background:var(--jk-accent)}

/* Auswahlfragen mit großen Touch-Zielen */
.jk fieldset{border:0;padding:0;margin:0 0 14px;min-width:0}
.jk .choices{display:grid;gap:10px}
.jk .choice{display:flex;align-items:center;gap:12px;padding:12px 14px;border:2px solid var(--jk-border-strong);background:var(--jk-surface);cursor:pointer;font-size:17px;font-weight:400;margin:0;min-height:52px}
.jk .choice:hover{border-color:var(--jk-accent)}
.jk .choice input{width:24px;height:24px;flex:none;accent-color:var(--jk-primary);margin:0}
.jk .choice:has(input:checked){border-color:var(--jk-primary);background:var(--jk-info-s);box-shadow:inset 6px 0 0 var(--jk-primary)}
.jk .choice:focus-within{outline:2px solid var(--jk-focus);outline-offset:2px}
.jk .choices .other{margin:4px 0 0}
.jk .scalerow{display:flex;gap:8px;flex-wrap:wrap}
.jk .scaleopt{margin:0;flex:1;min-width:48px;position:relative}
.jk .scaleopt input{position:absolute;opacity:0;width:1px;height:1px}
.jk .scaleopt span{display:flex;align-items:center;justify-content:center;min-height:54px;border:2px solid var(--jk-border-strong);background:var(--jk-surface);font-family:var(--jk-font-display);font-size:26px;font-weight:700;cursor:pointer}
.jk .scaleopt input:checked + span{background:var(--jk-primary);color:var(--jk-on-primary);border-color:var(--jk-primary)}
.jk .scaleopt input:focus-visible + span{outline:2px solid var(--jk-focus);outline-offset:2px}
.jk .scalelabels{display:flex;justify-content:space-between;font-size:13px;color:var(--jk-muted);margin-top:6px}

/* ---------- Terminumfrage ---------- */
.jk .slotlist{display:grid;gap:10px;margin-bottom:14px}
.jk .slotrow{display:grid;grid-template-columns:minmax(0,1.4fr) auto minmax(0,1.6fr);gap:14px;align-items:center;padding:12px 14px;border:2px solid var(--jk-border);background:var(--jk-surface)}
.jk .slotrow.isfinal{border-color:var(--jk-ok);background:var(--jk-ok-s)}
.jk .slotwhen{display:flex;flex-direction:column}
.jk .slotwhen em{color:var(--jk-muted);font-size:13px}
.jk .slotcount{display:flex;gap:10px;font-size:14px;white-space:nowrap}
.jk .slotcount .cy{color:var(--jk-ok);font-weight:700}
.jk .slotcount .cm{color:var(--jk-warn);font-weight:700}
.jk .slotcount .cc{color:var(--jk-muted)}
.jk .tri{display:flex}
.jk .tri label{flex:1;margin:0;position:relative}
.jk .tri input{position:absolute;opacity:0;width:1px;height:1px}
.jk .tri span{display:flex;align-items:center;justify-content:center;min-height:46px;padding:0 10px;border:2px solid var(--jk-border-strong);margin-left:-2px;background:var(--jk-surface);cursor:pointer;font-weight:700;font-size:15px}
.jk .tri label:first-child span{margin-left:0}
.jk .tri .t1 input:checked + span{background:var(--jk-ok);color:#fff;border-color:var(--jk-ok)}
.jk .tri .t2 input:checked + span{background:#F2C14E;color:#2b2000;border-color:var(--jk-warn)}
.jk .tri .t0 input:checked + span{background:var(--jk-err);color:#fff;border-color:var(--jk-err)}
.jk .tri label.disabled span{opacity:.5;cursor:not-allowed}
.jk .tri input:focus-visible + span{outline:2px solid var(--jk-focus);outline-offset:2px;position:relative;z-index:1}

.jk .votegrid{font-size:14px}
.jk .votegrid th,.jk .votegrid td{padding:8px 6px;text-align:center;border:1px solid var(--jk-border)}
.jk .votegrid th:first-child,.jk .votegrid td:first-child{text-align:left;min-width:120px}
.jk .votegrid th.slot{min-width:70px;font-size:14px;vertical-align:bottom}
.jk .votegrid th.slot .sd,.jk .votegrid th.slot .st{display:block}
.jk .votegrid th.slot .st{font-weight:400;font-family:var(--jk-font-text);color:var(--jk-muted);letter-spacing:0}
.jk .votegrid .best{background:var(--jk-ok-s);box-shadow:inset 0 4px 0 var(--jk-ok)}
.jk .votegrid .final{background:var(--jk-info-s);box-shadow:inset 0 4px 0 var(--jk-info)}
.jk .votegrid td.v{font-weight:700;font-size:16px}
.jk .votegrid td.v0{color:var(--jk-err);background:var(--jk-err-s)}
.jk .votegrid td.v1{color:var(--jk-ok);background:var(--jk-ok-s)}
.jk .votegrid td.v2{color:var(--jk-warn);background:var(--jk-warn-s)}
.jk .votegrid tr.me td:first-child{box-shadow:inset 4px 0 0 var(--jk-accent);font-weight:700}
.jk .votegrid tfoot th,.jk .votegrid tfoot td{background:var(--jk-surface-2);border-top:2px solid var(--jk-text)}
.jk .votegrid .sum{font-size:18px}
.jk .legend{display:inline-block;padding:0 8px;background:var(--jk-ok-s);box-shadow:inset 0 3px 0 var(--jk-ok)}

/* ---------- Helferplan ---------- */
.jk .shiftboard{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px;align-items:start}
.jk .areahead{border-top:6px solid var(--ac,var(--jk-primary));padding:10px 14px;background:var(--jk-surface-2)}
.jk .areahead h2,.jk .areahead h3{margin:0;font-size:24px}
.jk .areahead p{margin:2px 0 0;font-size:13px;color:var(--jk-muted)}
.jk .shiftcard{background:var(--jk-surface);border:2px solid var(--jk-border);border-left:6px solid var(--ac,var(--jk-primary));padding:12px 14px;margin:8px 0}
.jk .shiftcard h4{margin:0 0 2px;font-family:var(--jk-font-display);font-size:20px;text-transform:uppercase;letter-spacing:.04em}
.jk .shiftcard .when{font-size:14px;color:var(--jk-muted)}
.jk .need,.jk .full,.jk .low{display:inline-block;padding:2px 10px;font-family:var(--jk-font-display);font-weight:700;font-size:15px;letter-spacing:.05em;text-transform:uppercase}
.jk .need{background:var(--jk-err-s);color:var(--jk-err)}
.jk .low{background:var(--jk-warn-s);color:var(--jk-warn)}
.jk .full{background:var(--jk-ok-s);color:var(--jk-ok)}
.jk .signups{list-style:none;margin:8px 0;padding:0}
.jk .signups li{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:5px 0;border-bottom:1px solid var(--jk-border);font-size:15px}
.jk .signups li.wait,.jk .wait{color:var(--jk-muted);font-style:italic}
.jk .signups li.free{color:var(--jk-muted);border-bottom:1px dashed var(--jk-border-strong)}

/* ---------- Schmale Anzeigen ---------- */
@media (max-width:760px){
  .jk .cols2,.jk .cols3{grid-template-columns:1fr}
  .jk .slotrow{grid-template-columns:1fr}
  .jk .sharegrid{grid-template-columns:1fr}
  .jk .inlineform{flex-direction:column}
  .jk .card.hero h1{font-size:30px}
  .jk .qtitle{font-size:26px}
  .jk .pagehead h1{font-size:34px}
  .jk .tabs a{padding:8px 10px;font-size:17px}
  .jk .kpi .n{font-size:44px}
  .jk .pub-org{font-size:19px}
  .jk .copyrow{flex-direction:column}
}
@media (max-width:400px){
  .jk .card{padding:14px 12px}
  .jk .btn{padding:8px 14px}
  .jk .btn.big{padding:12px 20px;width:100%}
  .jk .tri span{padding:0 4px;font-size:14px}
}
/* Breiten 0–100 % (Balken, Fortschritt) */
.jk .w0{width:0%}
.jk .w1{width:1%}
.jk .w2{width:2%}
.jk .w3{width:3%}
.jk .w4{width:4%}
.jk .w5{width:5%}
.jk .w6{width:6%}
.jk .w7{width:7%}
.jk .w8{width:8%}
.jk .w9{width:9%}
.jk .w10{width:10%}
.jk .w11{width:11%}
.jk .w12{width:12%}
.jk .w13{width:13%}
.jk .w14{width:14%}
.jk .w15{width:15%}
.jk .w16{width:16%}
.jk .w17{width:17%}
.jk .w18{width:18%}
.jk .w19{width:19%}
.jk .w20{width:20%}
.jk .w21{width:21%}
.jk .w22{width:22%}
.jk .w23{width:23%}
.jk .w24{width:24%}
.jk .w25{width:25%}
.jk .w26{width:26%}
.jk .w27{width:27%}
.jk .w28{width:28%}
.jk .w29{width:29%}
.jk .w30{width:30%}
.jk .w31{width:31%}
.jk .w32{width:32%}
.jk .w33{width:33%}
.jk .w34{width:34%}
.jk .w35{width:35%}
.jk .w36{width:36%}
.jk .w37{width:37%}
.jk .w38{width:38%}
.jk .w39{width:39%}
.jk .w40{width:40%}
.jk .w41{width:41%}
.jk .w42{width:42%}
.jk .w43{width:43%}
.jk .w44{width:44%}
.jk .w45{width:45%}
.jk .w46{width:46%}
.jk .w47{width:47%}
.jk .w48{width:48%}
.jk .w49{width:49%}
.jk .w50{width:50%}
.jk .w51{width:51%}
.jk .w52{width:52%}
.jk .w53{width:53%}
.jk .w54{width:54%}
.jk .w55{width:55%}
.jk .w56{width:56%}
.jk .w57{width:57%}
.jk .w58{width:58%}
.jk .w59{width:59%}
.jk .w60{width:60%}
.jk .w61{width:61%}
.jk .w62{width:62%}
.jk .w63{width:63%}
.jk .w64{width:64%}
.jk .w65{width:65%}
.jk .w66{width:66%}
.jk .w67{width:67%}
.jk .w68{width:68%}
.jk .w69{width:69%}
.jk .w70{width:70%}
.jk .w71{width:71%}
.jk .w72{width:72%}
.jk .w73{width:73%}
.jk .w74{width:74%}
.jk .w75{width:75%}
.jk .w76{width:76%}
.jk .w77{width:77%}
.jk .w78{width:78%}
.jk .w79{width:79%}
.jk .w80{width:80%}
.jk .w81{width:81%}
.jk .w82{width:82%}
.jk .w83{width:83%}
.jk .w84{width:84%}
.jk .w85{width:85%}
.jk .w86{width:86%}
.jk .w87{width:87%}
.jk .w88{width:88%}
.jk .w89{width:89%}
.jk .w90{width:90%}
.jk .w91{width:91%}
.jk .w92{width:92%}
.jk .w93{width:93%}
.jk .w94{width:94%}
.jk .w95{width:95%}
.jk .w96{width:96%}
.jk .w97{width:97%}
.jk .w98{width:98%}
.jk .w99{width:99%}
.jk .w100{width:100%}

/* ===== Nachträge: Eintragungsliste, Seitenleiste, Raster ===== */
.jk main{align-content:start}
.jk .top nav a{font-size:17px;gap:12px;padding-right:12px;white-space:nowrap;overflow:hidden}
.jk .top nav a .lbl{overflow:hidden;text-overflow:ellipsis}
.jk .shiftpick{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:6px 14px;padding:12px 14px;margin:0 0 8px;font-weight:400;font-size:15px;
  background:var(--jk-surface);border:2px solid var(--jk-border);border-left:6px solid var(--jk-ok);cursor:pointer}
.jk .shiftpick.part{border-left-color:var(--jk-accent)}
.jk .shiftpick.full{border-left-color:var(--jk-err)}
.jk .shiftpick.disabled{opacity:.55;cursor:not-allowed}
.jk .shiftpick:has(input:checked){border-color:var(--jk-primary);background:var(--jk-info-s)}
.jk .shiftpick input[type=checkbox]{width:22px;height:22px;margin:0}
.jk .shiftpick .pickbody{display:flex;flex-direction:column;gap:2px;min-width:0}
.jk .shiftpick .pickbody small{display:block;color:var(--jk-muted);font-size:13px}
.jk .shiftpick .pickstate{font-family:var(--jk-font-display);font-weight:700;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}
.jk .dayhead{margin:16px 0 8px}
.jk .stickybar{position:sticky;bottom:0;padding:12px 0;background:var(--jk-bg)}

/* ===== Anmeldung und Einrichtung: breite, ruhige Karte ===== */
.jk.pub.plain .pub-main{padding-top:48px}
.jk.pub .login{padding:32px 36px 28px;border-top-width:6px;border-top-color:var(--jk-accent)}
.jk.pub .login h3{font-size:34px;margin-bottom:18px}
.jk.pub .login .field{margin-bottom:18px}
.jk.pub .login input:not([type=checkbox]):not([type=radio]){min-height:46px;font-size:17px}
.jk.pub .login .btnrow{margin-top:10px}
.jk.pub .login .btn{min-height:46px;font-size:20px;padding:10px 26px}
.jk.pub .login .small{margin:18px 0 0;font-size:14px}
@media (max-width:560px){.jk.pub .login{padding:22px 18px}}
