/* ---- Kalender ---- */
.cal{max-width:980px;padding-bottom:20px}
.cal-top{display:flex;align-items:center;gap:4px;margin-bottom:8px}
.cal-title-wrap{flex:1;min-width:0;text-align:center}
.cal-ttl{font-size:18px;font-weight:600;line-height:1.25}
.iconbtn.flip svg{transform:scaleX(-1)}
.cal-add{width:42px;height:42px;border-radius:50%;border:0;background:var(--accent);color:#fff;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex:none;box-shadow:0 0 16px rgba(168,85,247,.4)}
.cal-bar{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.cal-seg{flex:1;display:flex;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:3px}
.cal-seg button{flex:1;border:0;background:transparent;color:var(--muted);font:inherit;font-size:14px;padding:8px 0;border-radius:9px;cursor:pointer}
.cal-seg button.on{background:var(--card2);color:var(--text);box-shadow:0 0 0 1px rgba(168,85,247,.45)}
.cal-today{border:1px solid var(--line);background:transparent;color:var(--text);border-radius:12px;padding:9px 14px;font:inherit;font-size:14px;cursor:pointer}
.cal-content{touch-action:pan-y}

/* Zeitraster (Tag/Woche) */
.cal-tg{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:rgba(255,255,255,.015)}
.cal-gut{width:44px;flex:none;position:relative}
.cal-tg-head{display:flex;border-bottom:1px solid var(--line);background:var(--bg2)}
.cal-dh{flex:1;min-width:0;text-align:center;padding:6px 0 7px;color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:2px;font-size:12px}
.cal-dh b{font-size:17px;color:var(--text);font-weight:600;width:30px;height:30px;line-height:30px;border-radius:50%}
.cal-dh.today b{background:var(--accent);color:#fff}
.cal-dh.today{color:var(--text)}
.cal-tg:not(.week) .cal-dh{flex-direction:row;justify-content:center;gap:8px;font-size:14px}
.cal-tg-all{display:flex;border-bottom:1px solid var(--line);background:var(--bg2);min-height:30px}
.cal-tg-all .cal-gut{display:flex;align-items:center;justify-content:center;color:var(--muted)}
.cal-tg-all small{font-size:9px;text-align:center;line-height:1.1}
.cal-allcol{flex:1;min-width:0;padding:3px 2px;display:flex;flex-direction:column;gap:2px}
.cal-chip{border:1px solid;border-radius:6px;color:var(--text);font:inherit;font-size:11px;padding:2px 5px;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}
.cal-scroll{overflow-y:auto;-webkit-overflow-scrolling:touch;height:calc(var(--vvh,100dvh) - 300px - var(--safe-b) - var(--safe-t));min-height:300px}
.cal-body{position:relative;display:flex}
.cal-hours span{position:absolute;right:6px;transform:translateY(-50%);font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}
.cal-col{flex:1;min-width:0;position:relative;border-left:1px solid var(--line);
  background-image:repeating-linear-gradient(to bottom,transparent 0,transparent 55px,rgba(255,255,255,.07) 55px,rgba(255,255,255,.07) 56px)}
.cal-ev{position:absolute;box-sizing:border-box;border:1px solid;border-left-width:3px;border-radius:8px;color:var(--text);font:inherit;text-align:left;padding:2px 5px;overflow:hidden;cursor:pointer;display:flex;flex-direction:column;gap:0;line-height:1.2}
.cal-ev b{font-size:12px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.cal-ev span{font-size:10.5px;color:rgba(255,255,255,.7);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.cal-tg.week .cal-ev b{font-size:10.5px}
.cal-now{position:absolute;left:0;right:0;height:0;border-top:2px solid #f43f5e;pointer-events:none;z-index:3}
.cal-now i{position:absolute;left:-5px;top:-6px;width:10px;height:10px;border-radius:50%;background:#f43f5e;box-shadow:0 0 8px #f43f5e}

/* Monat */
.cal-month{border:1px solid var(--line);border-radius:16px;overflow:hidden}
.cal-mh{display:grid;grid-template-columns:repeat(7,1fr);background:var(--bg2);border-bottom:1px solid var(--line)}
.cal-mh span{text-align:center;padding:8px 0;font-size:12px;color:var(--muted)}
.cal-mg{display:grid;grid-template-columns:repeat(7,1fr);height:calc(var(--vvh,100dvh) - 300px - var(--safe-b) - var(--safe-t));min-height:340px}
.cal-mc{border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:transparent;color:var(--text);font:inherit;padding:3px 2px;text-align:left;display:flex;flex-direction:column;gap:2px;min-width:0;overflow:hidden;cursor:pointer}
.cal-mc:nth-child(7n){border-right:0}
.cal-mc b{font-size:13px;font-weight:500;width:22px;height:22px;line-height:22px;text-align:center;border-radius:50%;align-self:center}
.cal-mc.out{color:var(--muted);opacity:.45}
.cal-mc.today b{background:var(--accent);color:#fff}
.cal-mev{font-size:9.5px;line-height:1.25;border-radius:3px;padding:0 3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.cal-mc small{font-size:9.5px;color:var(--muted);text-align:center}

/* Jahr */
.cal-year{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 18px}
.cal-ym{min-width:0}
.cal-ymt{border:0;background:transparent;color:var(--a2,#c084fc);font:inherit;font-size:17px;font-weight:600;padding:2px 0 8px;cursor:pointer;text-align:left}
.cal-yg{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-auto-rows:30px;gap:2px 0;text-align:center}
.cal-yh{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));text-align:center;margin-bottom:1px}
.cal-yh i{font-style:normal;font-size:11px;color:var(--muted);line-height:18px}
.cal-yd{border:0;background:transparent;color:var(--text);font:inherit;font-size:14px;padding:0;border-radius:50%;cursor:pointer;position:relative;height:30px;display:flex;align-items:center;justify-content:center}
.cal-yd.has::after{content:"";position:absolute;bottom:2px;left:50%;width:4px;height:4px;margin-left:-2px;border-radius:50%;background:#c084fc;box-shadow:0 0 6px #c084fc}
.cal-yd.today{background:var(--accent);color:#fff}

/* Editor */
.cal-modal{position:fixed;left:0;right:0;top:var(--vvt,0px);height:var(--vvh,100dvh);background:rgba(3,4,12,.62);backdrop-filter:blur(3px);z-index:50;display:flex;align-items:flex-end;justify-content:center}
.cal-sheet{width:100%;max-width:560px;max-height:calc(100% - 8px);overflow-y:auto;overscroll-behavior:contain;background:var(--bg2);border:1px solid var(--line);border-radius:22px 22px 0 0;padding:0 16px calc(18px + var(--safe-b))}
html.kbd .cal-sheet{padding-bottom:14px}
.cal-locwrap{position:relative}
.cal-locwrap .cal-field{padding-right:52px}
.cal-locbtn{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:40px;height:40px;border-radius:50%;border:0;background:rgba(168,85,247,.2);color:#c084fc;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
.cal-locbtn.busy{animation:pulse 1.1s infinite}
.cal-locbtn:disabled{opacity:.7}
.cal-sheet-head{display:flex;align-items:center;justify-content:space-between;padding:14px 0;position:sticky;top:0;background:var(--bg2);z-index:2}
.cal-link{border:0;background:transparent;color:var(--muted);font:inherit;font-size:16px;cursor:pointer;padding:4px}
.cal-link.strong{color:#c084fc;font-weight:600}
.cal-form{display:flex;flex-direction:column;gap:10px}
.cal-title,.cal-field{width:100%;box-sizing:border-box;background:var(--card);border:1px solid var(--line);border-radius:12px;color:var(--text);font:inherit;font-size:16px;padding:12px 14px;outline:none;resize:vertical}
.cal-title{font-size:18px;font-weight:600}
.cal-row{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:8px 12px;min-height:44px;box-sizing:border-box}
.cal-row input[type=checkbox]{width:22px;height:22px;accent-color:#a855f7}
.cal-dt{display:flex;gap:6px;min-width:0;flex:1;justify-content:flex-end}
.cal-dt input{min-width:0;flex:0 1 auto}
.cal-dt input[type=date]{max-width:142px}
.cal-dt input[type=time]{max-width:104px}
.cal-row>span:first-child{flex:none}
.cal-row input[type=date],.cal-row input[type=time],.cal-row select{background:var(--bg2);border:1px solid var(--line);border-radius:9px;color:var(--text);font:inherit;font-size:16px;padding:7px 6px}
.cal-colors{display:flex;gap:12px;padding:4px 4px}
.cal-dot{width:30px;height:30px;border-radius:50%;border:2px solid transparent;cursor:pointer;padding:0}
.cal-dot.on{border-color:#fff}
.cal-hint{font-size:13px}
.cal-del{width:100%;margin-top:4px}
@media (min-width:821px){.cal-year{grid-template-columns:repeat(3,minmax(0,1fr))}.cal-scroll{height:calc(100dvh - 270px)}.cal-mg{height:calc(100dvh - 270px)}.cal-modal{align-items:center}.cal-sheet{border-radius:22px;max-height:88%}.cal-year{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* Eigene Auswahl fuer Datum, Zeit und Wiederholung (statt iOS-Standard) */
.cal-pick{border:1px solid var(--line);background:var(--bg2);color:var(--text);font:inherit;font-size:16px;border-radius:10px;padding:8px 12px;cursor:pointer;white-space:nowrap}
.cal-pick:active{border-color:rgba(168,85,247,.6)}
.cal-dt{gap:8px}
.cal-seg2{display:flex;flex-wrap:wrap;gap:6px}
.cal-seg2 button{border:1px solid var(--line);background:var(--card);color:var(--muted);font:inherit;font-size:14px;border-radius:999px;padding:8px 14px;cursor:pointer}
.cal-seg2 button.on{background:var(--accent);border-color:transparent;color:#fff}
.cal-lab{font-size:12px;letter-spacing:.1em;text-transform:uppercase;margin:-4px 2px 0}
.cal-pop{position:fixed;left:0;right:0;top:var(--vvt,0px);height:var(--vvh,100dvh);z-index:60;background:rgba(3,4,12,.55);display:flex;align-items:center;justify-content:center;padding:16px;box-sizing:border-box}
.cal-pcard{width:100%;max-width:340px;background:linear-gradient(180deg,#171a2e,#10121f);border:1px solid rgba(168,85,247,.4);border-radius:22px;padding:14px 14px 8px;box-shadow:0 18px 50px rgba(0,0,0,.6),0 0 30px rgba(168,85,247,.15)}
.cal-pcard.small{max-width:260px}
.cal-phead{display:flex;align-items:center;justify-content:space-between;padding:0 4px 8px}
.cal-phead b{font-size:17px}
.cal-pwd{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;font-size:12px;color:var(--muted);padding-bottom:4px}
.cal-pgrid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.cal-pd{aspect-ratio:1;border:0;background:transparent;color:var(--text);font:inherit;font-size:16px;border-radius:50%;cursor:pointer;padding:0}
.cal-pd.out{color:var(--muted);opacity:.4}
.cal-pd.today{box-shadow:inset 0 0 0 1.5px rgba(168,85,247,.8)}
.cal-pd.sel{background:var(--accent);color:#fff;box-shadow:0 0 14px rgba(168,85,247,.55)}
.cal-pfoot{display:flex;justify-content:space-between;padding:8px 4px 4px}
.cal-tw{position:relative;display:flex;align-items:center;justify-content:center;gap:4px;height:200px}
.cal-tband{position:absolute;left:8px;right:8px;top:80px;height:40px;border-radius:12px;background:rgba(168,85,247,.2);border:1px solid rgba(168,85,247,.5);pointer-events:none}
.cal-tcol{width:84px;height:200px;overflow-y:auto;scroll-snap-type:y mandatory;padding:80px 0;box-sizing:border-box;scrollbar-width:none;-webkit-overflow-scrolling:touch;position:relative;z-index:1}
.cal-tcol::-webkit-scrollbar{display:none}
.cal-tcol button{display:block;width:100%;height:40px;border:0;background:transparent;color:var(--muted);font:inherit;font-size:22px;font-variant-numeric:tabular-nums;scroll-snap-align:center;cursor:pointer;padding:0}
.cal-tcol button.on{color:var(--text);font-weight:600}
.cal-tsep{font-size:22px;color:var(--muted);position:relative;z-index:1}

/* Wiederholungs-Rad, Wochentage, Schalter; gerundete Quadrate statt Ovale */
.cal-pick.wide{max-width:60%;overflow:hidden;text-overflow:ellipsis;text-align:right}
.cal-ptitle{font-size:17px;font-weight:600;text-align:center;padding:2px 0 10px}
.cal-tw.wide{gap:6px}
.cal-tlab{position:relative;z-index:1;font-size:20px;color:var(--text);padding-right:2px}
.cal-tlab.dim{opacity:.3}
.cal-tcol.dim{opacity:.28;pointer-events:none}
.cal-wdays{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin:12px 0 6px}
.cal-wd{aspect-ratio:1;border:1px solid var(--line);background:var(--card);color:var(--muted);font:inherit;font-size:14px;border-radius:12px;cursor:pointer;padding:0}
.cal-wd.on{background:var(--accent);border-color:transparent;color:#fff;box-shadow:0 0 12px rgba(168,85,247,.4)}
.cal-switch{display:flex;align-items:center;justify-content:space-between;width:100%;margin-top:8px;border:1px solid var(--line);background:var(--card);color:var(--text);font:inherit;font-size:16px;border-radius:14px;padding:12px 14px;cursor:pointer;text-align:left}
.cal-switch i{width:48px;height:28px;border-radius:9px;background:rgba(255,255,255,.12);position:relative;flex:none;transition:background .15s}
.cal-switch i b{position:absolute;left:3px;top:3px;width:22px;height:22px;border-radius:7px;background:#fff;transition:left .15s}
.cal-switch.on i{background:var(--accent)}
.cal-switch.on i b{left:23px}
.cal-seg{border-radius:14px}
.cal-seg button{border-radius:11px}
.cal-row{border-radius:14px}
.cal-pick{border-radius:12px}
.tr-chip{border-radius:14px;padding:9px 14px}
.brain-tab{border-radius:14px}

/* Sprach-Auswahl (Uebersetzer) */
.tr-sel{flex:1;min-width:0;display:flex;align-items:center;justify-content:space-between;gap:6px;background:var(--card);border:1px solid var(--line);border-radius:14px;color:var(--text);font:inherit;font-size:16px;padding:12px 12px;cursor:pointer;text-align:left}
.tr-sel span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tr-sel svg{flex:none;color:var(--muted)}
.lp-card{max-width:360px;padding-bottom:10px}
.lp-list{max-height:min(62vh,520px);overflow-y:auto;-webkit-overflow-scrolling:touch;padding:0 2px}
.lp-head{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:600;padding:12px 8px 6px}
.lp-row{display:flex;align-items:center;gap:6px;border-radius:12px;padding:0 4px 0 12px;min-height:46px;cursor:pointer}
.lp-row:active{background:rgba(255,255,255,.06)}
.lp-row.sel{background:rgba(168,85,247,.2);box-shadow:inset 0 0 0 1px rgba(168,85,247,.5)}
.lp-name{flex:1;min-width:0;font-size:16px}
.lp-row .iconbtn{width:40px;height:40px}
.lp-row .iconbtn.on{color:#facc15}
.lp-row .iconbtn.on svg{fill:#facc15}
